Whamcloud - gitweb
LU-9325 fld: replace simple_strto* with kstr* functions 98/39498/3
authorJames Simmons <jsimmons@infradead.org>
Sat, 25 Jul 2020 21:27:22 +0000 (17:27 -0400)
committerOleg Drokin <green@whamcloud.com>
Thu, 13 Aug 2020 06:04:15 +0000 (06:04 +0000)
The fldb debugfs files use simple_strto* to parse input from the
user. simple_strto* is considered obsolete so replace it with
the equivalent kstrto* functions.

Change-Id: I6d32939152ee0d65df4ec45937d7d0be03b8274e
Test-Parameters: trivial env=ONLY=68 testlist=conf-sanity
Signed-off-by: James Simmons <jsimmons@infradead.org>
Reviewed-on: https://review.whamcloud.com/39498
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Neil Brown <neilb@suse.de>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
Reviewed-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/fid/lproc_fid.c

index df896be..ffa537f 100644 (file)
@@ -426,6 +426,7 @@ static ssize_t fldb_seq_write(struct file *file, const char __user *buf,
        int                      rc = 0;
        char                     _buffer[MAX_FID_RANGE_STRLEN];
        char                    *buffer = _buffer;
        int                      rc = 0;
        char                     _buffer[MAX_FID_RANGE_STRLEN];
        char                    *buffer = _buffer;
+       char *tmp;
        ENTRY;
 
        param = seq->private;
        ENTRY;
 
        param = seq->private;
@@ -446,23 +447,36 @@ static ssize_t fldb_seq_write(struct file *file, const char __user *buf,
                GOTO(out, rc = -EINVAL);
        buffer++;
 
                GOTO(out, rc = -EINVAL);
        buffer++;
 
-       range.lsr_start = simple_strtoull(buffer, &buffer, 0);
-       if (*buffer != '-')
+       tmp = strchr(buffer, '-');
+       if (!tmp)
                GOTO(out, rc = -EINVAL);
                GOTO(out, rc = -EINVAL);
-       buffer++;
+       *tmp++ = '\0';
+       rc = kstrtoull(buffer, 0, &range.lsr_start);
+       if (rc)
+               GOTO(out, rc);
+       buffer = tmp;
 
 
-       range.lsr_end = simple_strtoull(buffer, &buffer, 0);
-       if (*buffer != ')')
+       tmp = strchr(buffer, ')');
+       if (!tmp)
                GOTO(out, rc = -EINVAL);
                GOTO(out, rc = -EINVAL);
-       buffer++;
+       *tmp++ = '\0';
+       rc = kstrtoull(buffer, 0, &range.lsr_end);
+       if (rc)
+               GOTO(out, rc);
+       buffer = tmp;
+
        if (*buffer != ':')
                GOTO(out, rc = -EINVAL);
        buffer++;
 
        if (*buffer != ':')
                GOTO(out, rc = -EINVAL);
        buffer++;
 
-       range.lsr_index = simple_strtoul(buffer, &buffer, 0);
-       if (*buffer != ':')
+       tmp = strchr(buffer, ':');
+       if (!tmp)
                GOTO(out, rc = -EINVAL);
                GOTO(out, rc = -EINVAL);
-       buffer++;
+       *tmp++ = '\0';
+       rc = kstrtouint(buffer, 0, &range.lsr_index);
+       if (rc)
+               GOTO(out, rc);
+       buffer = tmp;
 
        if (strncmp(buffer, "mdt", 3) == 0)
                range.lsr_flags = LU_SEQ_RANGE_MDT;
 
        if (strncmp(buffer, "mdt", 3) == 0)
                range.lsr_flags = LU_SEQ_RANGE_MDT;