From: Amir Goldstein Date: Fri, 20 Oct 2017 14:19:06 +0000 (+0300) Subject: ovl: handle ENOENT on index lookup X-Git-Tag: v4.13.11~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=725b704522357dad35d46cd0a2b26418669fd06f;p=thirdparty%2Fkernel%2Fstable.git ovl: handle ENOENT on index lookup commit 7937a56fdf0b064c2ffa33025210f725a4ebc822 upstream. Treat ENOENT from index entry lookup the same way as treating a returned negative dentry. Apparently, either could be returned if file is not found, depending on the underlying file system. Fixes: 359f392ca53e ("ovl: lookup index entry for copy up origin") Signed-off-by: Amir Goldstein Signed-off-by: Greg Kroah-Hartman --- diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c index b88b2165e8eb5..e2fc425da165d 100644 --- a/fs/overlayfs/namei.c +++ b/fs/overlayfs/namei.c @@ -507,6 +507,10 @@ static struct dentry *ovl_lookup_index(struct dentry *dentry, index = lookup_one_len_unlocked(name.name, ofs->indexdir, name.len); if (IS_ERR(index)) { err = PTR_ERR(index); + if (err == -ENOENT) { + index = NULL; + goto out; + } pr_warn_ratelimited("overlayfs: failed inode index lookup (ino=%lu, key=%*s, err=%i);\n" "overlayfs: mount with '-o index=off' to disable inodes index.\n", d_inode(origin)->i_ino, name.len, name.name,