kstrtoint() is better because simple_strtoul() ignores overflow and the type of 'fsidtype' is 'int' rather than 'unsigned long'. Signed-off-by: Su Hui <suhui@xxxxxxxxxxxx> --- fs/nfsd/export.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c index 0363720280d4..1bc9bc20cac3 100644 --- a/fs/nfsd/export.c +++ b/fs/nfsd/export.c @@ -83,7 +83,6 @@ static int expkey_parse(struct cache_detail *cd, char *mesg, int mlen) struct auth_domain *dom = NULL; int err; int fsidtype; - char *ep; struct svc_expkey key; struct svc_expkey *ek = NULL; @@ -109,8 +108,7 @@ static int expkey_parse(struct cache_detail *cd, char *mesg, int mlen) err = -EINVAL; if (qword_get(&mesg, buf, PAGE_SIZE) <= 0) goto out; - fsidtype = simple_strtoul(buf, &ep, 10); - if (*ep) + if (kstrtoint(buf, 10, &fsidtype)) goto out; dprintk("found fsidtype %d\n", fsidtype); if (key_len(fsidtype)==0) /* invalid type */ -- 2.30.2