diff options
-rw-r--r-- | fs/gfs2/inode.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index 6bc443644c3c..bab338f6b610 100644 --- a/fs/gfs2/inode.c +++ b/fs/gfs2/inode.c | |||
@@ -361,8 +361,18 @@ out: | |||
361 | struct inode *gfs2_lookup_simple(struct inode *dip, const char *name) | 361 | struct inode *gfs2_lookup_simple(struct inode *dip, const char *name) |
362 | { | 362 | { |
363 | struct qstr qstr; | 363 | struct qstr qstr; |
364 | struct inode *inode; | ||
364 | gfs2_str2qstr(&qstr, name); | 365 | gfs2_str2qstr(&qstr, name); |
365 | return gfs2_lookupi(dip, &qstr, 1, NULL); | 366 | inode = gfs2_lookupi(dip, &qstr, 1, NULL); |
367 | /* gfs2_lookupi has inconsistent callers: vfs | ||
368 | * related routines expect NULL for no entry found, | ||
369 | * gfs2_lookup_simple callers expect ENOENT | ||
370 | * and do not check for NULL. | ||
371 | */ | ||
372 | if (inode == NULL) | ||
373 | return ERR_PTR(-ENOENT); | ||
374 | else | ||
375 | return inode; | ||
366 | } | 376 | } |
367 | 377 | ||
368 | 378 | ||