|
@@ -361,8 +361,18 @@ out:
|
|
|
struct inode *gfs2_lookup_simple(struct inode *dip, const char *name)
|
|
|
{
|
|
|
struct qstr qstr;
|
|
|
+ struct inode *inode;
|
|
|
gfs2_str2qstr(&qstr, name);
|
|
|
- return gfs2_lookupi(dip, &qstr, 1, NULL);
|
|
|
+ inode = gfs2_lookupi(dip, &qstr, 1, NULL);
|
|
|
+ /* gfs2_lookupi has inconsistent callers: vfs
|
|
|
+ * related routines expect NULL for no entry found,
|
|
|
+ * gfs2_lookup_simple callers expect ENOENT
|
|
|
+ * and do not check for NULL.
|
|
|
+ */
|
|
|
+ if (inode == NULL)
|
|
|
+ return ERR_PTR(-ENOENT);
|
|
|
+ else
|
|
|
+ return inode;
|
|
|
}
|
|
|
|
|
|
|