From f875fa73f215c3e1f71656dd8aa0cd30d931fa09 Mon Sep 17 00:00:00 2001 From: James Simmons Date: Sat, 25 Jul 2020 17:27:22 -0400 Subject: [PATCH] LU-9325 fld: replace simple_strto* with kstr* functions 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 Reviewed-on: https://review.whamcloud.com/39498 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Neil Brown Reviewed-by: Jian Yu Reviewed-by: Shaun Tancheff Reviewed-by: Oleg Drokin --- lustre/fid/lproc_fid.c | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/lustre/fid/lproc_fid.c b/lustre/fid/lproc_fid.c index df896be..ffa537f 100644 --- a/lustre/fid/lproc_fid.c +++ b/lustre/fid/lproc_fid.c @@ -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; + char *tmp; 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++; - range.lsr_start = simple_strtoull(buffer, &buffer, 0); - if (*buffer != '-') + tmp = strchr(buffer, '-'); + if (!tmp) 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); - buffer++; + *tmp++ = '\0'; + rc = kstrtoull(buffer, 0, &range.lsr_end); + if (rc) + GOTO(out, rc); + buffer = tmp; + 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); - 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; -- 1.8.3.1