diff options
-rw-r--r-- | fs/nfsd/nfs4idmap.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/fs/nfsd/nfs4idmap.c b/fs/nfsd/nfs4idmap.c index 2ccffde81b84..4c0c683ce07a 100644 --- a/fs/nfsd/nfs4idmap.c +++ b/fs/nfsd/nfs4idmap.c | |||
@@ -207,6 +207,7 @@ idtoname_parse(struct cache_detail *cd, char *buf, int buflen) | |||
207 | { | 207 | { |
208 | struct ent ent, *res; | 208 | struct ent ent, *res; |
209 | char *buf1, *bp; | 209 | char *buf1, *bp; |
210 | int len; | ||
210 | int error = -EINVAL; | 211 | int error = -EINVAL; |
211 | 212 | ||
212 | if (buf[buflen - 1] != '\n') | 213 | if (buf[buflen - 1] != '\n') |
@@ -248,10 +249,11 @@ idtoname_parse(struct cache_detail *cd, char *buf, int buflen) | |||
248 | goto out; | 249 | goto out; |
249 | 250 | ||
250 | /* Name */ | 251 | /* Name */ |
251 | error = qword_get(&buf, buf1, PAGE_SIZE); | 252 | error = -EINVAL; |
252 | if (error == -EINVAL) | 253 | len = qword_get(&buf, buf1, PAGE_SIZE); |
254 | if (len < 0) | ||
253 | goto out; | 255 | goto out; |
254 | if (error == -ENOENT) | 256 | if (len == 0) |
255 | set_bit(CACHE_NEGATIVE, &ent.h.flags); | 257 | set_bit(CACHE_NEGATIVE, &ent.h.flags); |
256 | else { | 258 | else { |
257 | if (error >= IDMAP_NAMESZ) { | 259 | if (error >= IDMAP_NAMESZ) { |