* [PATCH v2 0/2] staging: lustre: lprocfs: Fix coding style issues
@ 2017-05-19 2:49 Mathias Rav
2017-05-19 2:49 ` [PATCH v2 1/2] staging: lustre: Use kstrtouint_from_user in ldlm_rw_uint Mathias Rav
2017-05-19 2:49 ` [PATCH v2 2/2] staging: lustre: lprocfs: Use seq_puts instead of seq_printf Mathias Rav
0 siblings, 2 replies; 3+ messages in thread
From: Mathias Rav @ 2017-05-19 2:49 UTC (permalink / raw)
To: Greg Kroah-Hartman, devel, Oleg Drokin, Andreas Dilger, James Simmons
Cc: mathiasrav, Linux Kernel Mailing List, Lustre Development List
This patchset fixes two style issues in lprocfs_status.c related to
simple_strtoul and seq_printf (reported by checkpatch).
v1->v2:
- Patch 1/2 now completely removes lprocfs_{rd,wr}_uint
- Patch 2/2 unchanged
Mathias Rav (2):
staging: lustre: Use kstrtouint_from_user in ldlm_rw_uint
staging: lustre: lprocfs: Use seq_puts instead of seq_printf
.../staging/lustre/lustre/ldlm/ldlm_resource.c | 20 +++++++-
.../lustre/lustre/obdclass/lprocfs_status.c | 54 ++++-----------------
2 files changed, 29 insertions(+), 45 deletions(-)
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v2 1/2] staging: lustre: Use kstrtouint_from_user in ldlm_rw_uint
2017-05-19 2:49 [PATCH v2 0/2] staging: lustre: lprocfs: Fix coding style issues Mathias Rav
@ 2017-05-19 2:49 ` Mathias Rav
2017-05-19 2:49 ` [PATCH v2 2/2] staging: lustre: lprocfs: Use seq_puts instead of seq_printf Mathias Rav
1 sibling, 0 replies; 3+ messages in thread
From: Mathias Rav @ 2017-05-19 2:49 UTC (permalink / raw)
To: Greg Kroah-Hartman, devel, Oleg Drokin, Andreas Dilger, James Simmons
Cc: mathiasrav, Linux Kernel Mailing List, Lustre Development List
Clean up the helper functions used to implement "dump_granted_max" in
debugfs.
Replace the lprocfs_rd_uint() and lprocfs_wr_uint() generic callbacks
with a simpler, more direct implementation of ldlm_rw_uint_fops.
There's a slight change in lustre debugfs write semantics: Using kstrtox
causes EINVAL when the written number is followed by other (garbage)
characters, whereas previously the garbage would be ignored and such a
write would succeed.
Signed-off-by: Mathias Rav <mathiasrav@gmail.com>
---
drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 20 ++++++++++++-
.../lustre/lustre/obdclass/lprocfs_status.c | 34 ----------------------
2 files changed, 19 insertions(+), 35 deletions(-)
diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c
index 633f65b078eb..1c8b0ea10c32 100644
--- a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c
+++ b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c
@@ -78,7 +78,25 @@ lprocfs_wr_dump_ns(struct file *file, const char __user *buffer,
LPROC_SEQ_FOPS_WR_ONLY(ldlm, dump_ns);
-LPROC_SEQ_FOPS_RW_TYPE(ldlm_rw, uint);
+static int ldlm_rw_uint_seq_show(struct seq_file *m, void *v)
+{
+ seq_printf(m, "%u\n", *(unsigned int *)m->private);
+ return 0;
+}
+
+static ssize_t
+ldlm_rw_uint_seq_write(struct file *file, const char __user *buffer,
+ size_t count, loff_t *off)
+{
+ struct seq_file *seq = file->private_data;
+
+ if (count == 0)
+ return 0;
+ return kstrtouint_from_user(buffer, count, 0,
+ (unsigned int *)seq->private);
+}
+
+LPROC_SEQ_FOPS(ldlm_rw_uint);
static struct lprocfs_vars ldlm_debugfs_list[] = {
{ "dump_namespaces", &ldlm_dump_ns_fops, NULL, 0222 },
diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c
index 1ec6e3767d81..b42c4092bf22 100644
--- a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c
+++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c
@@ -389,40 +389,6 @@ struct dentry *ldebugfs_register(const char *name,
EXPORT_SYMBOL_GPL(ldebugfs_register);
/* Generic callbacks */
-int lprocfs_rd_uint(struct seq_file *m, void *data)
-{
- seq_printf(m, "%u\n", *(unsigned int *)data);
- return 0;
-}
-EXPORT_SYMBOL(lprocfs_rd_uint);
-
-int lprocfs_wr_uint(struct file *file, const char __user *buffer,
- unsigned long count, void *data)
-{
- unsigned *p = data;
- char dummy[MAX_STRING_SIZE + 1], *end;
- unsigned long tmp;
-
- if (count >= sizeof(dummy))
- return -EINVAL;
-
- if (count == 0)
- return 0;
-
- if (copy_from_user(dummy, buffer, count))
- return -EFAULT;
-
- dummy[count] = '\0';
-
- tmp = simple_strtoul(dummy, &end, 0);
- if (dummy == end)
- return -EINVAL;
-
- *p = (unsigned int)tmp;
- return count;
-}
-EXPORT_SYMBOL(lprocfs_wr_uint);
-
static ssize_t uuid_show(struct kobject *kobj, struct attribute *attr,
char *buf)
{
--
2.13.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v2 2/2] staging: lustre: lprocfs: Use seq_puts instead of seq_printf
2017-05-19 2:49 [PATCH v2 0/2] staging: lustre: lprocfs: Fix coding style issues Mathias Rav
2017-05-19 2:49 ` [PATCH v2 1/2] staging: lustre: Use kstrtouint_from_user in ldlm_rw_uint Mathias Rav
@ 2017-05-19 2:49 ` Mathias Rav
1 sibling, 0 replies; 3+ messages in thread
From: Mathias Rav @ 2017-05-19 2:49 UTC (permalink / raw)
To: Greg Kroah-Hartman, devel, Oleg Drokin, Andreas Dilger, James Simmons
Cc: mathiasrav, Linux Kernel Mailing List, Lustre Development List
Reported by checkpatch.pl: "WARNING: Prefer seq_puts to seq_printf".
Signed-off-by: Mathias Rav <mathiasrav@gmail.com>
---
.../staging/lustre/lustre/obdclass/lprocfs_status.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c
index b42c4092bf22..6d1caed02733 100644
--- a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c
+++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c
@@ -702,7 +702,7 @@ static int obd_import_flags2str(struct obd_import *imp, struct seq_file *m)
bool first = true;
if (imp->imp_obd->obd_no_recov) {
- seq_printf(m, "no_recov");
+ seq_puts(m, "no_recov");
first = false;
}
@@ -768,15 +768,15 @@ int lprocfs_rd_import(struct seq_file *m, void *data)
imp->imp_connect_data.ocd_instance);
obd_connect_seq_flags2str(m, imp->imp_connect_data.ocd_connect_flags,
", ");
- seq_printf(m, " ]\n");
+ seq_puts(m, " ]\n");
obd_connect_data_seqprint(m, ocd);
- seq_printf(m, " import_flags: [ ");
+ seq_puts(m, " import_flags: [ ");
obd_import_flags2str(imp, m);
- seq_printf(m,
- " ]\n"
- " connection:\n"
- " failover_nids: [ ");
+ seq_puts(m,
+ " ]\n"
+ " connection:\n"
+ " failover_nids: [ ");
spin_lock(&imp->imp_lock);
j = 0;
list_for_each_entry(conn, &imp->imp_conn_list, oic_item) {
@@ -909,7 +909,7 @@ int lprocfs_rd_state(struct seq_file *m, void *data)
seq_printf(m, "current_state: %s\n",
ptlrpc_import_state_name(imp->imp_state));
- seq_printf(m, "state_history:\n");
+ seq_puts(m, "state_history:\n");
k = imp->imp_state_hist_idx;
for (j = 0; j < IMP_STATE_HIST_LEN; j++) {
struct import_state_hist *ish =
@@ -931,7 +931,7 @@ int lprocfs_at_hist_helper(struct seq_file *m, struct adaptive_timeout *at)
for (i = 0; i < AT_BINS; i++)
seq_printf(m, "%3u ", at->at_hist[i]);
- seq_printf(m, "\n");
+ seq_puts(m, "\n");
return 0;
}
EXPORT_SYMBOL(lprocfs_at_hist_helper);
@@ -999,7 +999,7 @@ int lprocfs_rd_connect_flags(struct seq_file *m, void *data)
flags = obd->u.cli.cl_import->imp_connect_data.ocd_connect_flags;
seq_printf(m, "flags=%#llx\n", flags);
obd_connect_seq_flags2str(m, flags, "\n");
- seq_printf(m, "\n");
+ seq_puts(m, "\n");
up_read(&obd->u.cli.cl_sem);
return 0;
}
--
2.13.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-05-19 2:49 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-19 2:49 [PATCH v2 0/2] staging: lustre: lprocfs: Fix coding style issues Mathias Rav
2017-05-19 2:49 ` [PATCH v2 1/2] staging: lustre: Use kstrtouint_from_user in ldlm_rw_uint Mathias Rav
2017-05-19 2:49 ` [PATCH v2 2/2] staging: lustre: lprocfs: Use seq_puts instead of seq_printf Mathias Rav
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).