summaryrefslogtreecommitdiffstats
path: root/fs/overlayfs
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@redhat.com>2018-04-12 12:04:49 +0200
committerMiklos Szeredi <mszeredi@redhat.com>2018-04-12 12:04:49 +0200
commit3a291774d17e096950854506d8869dfe950ec932 (patch)
treef554558b42d15f4df67cbf6cc2dd476b06652738 /fs/overlayfs
parent0471a9cdb00ff4a84e781c6dc4b0f87297bac1ed (diff)
downloadlinux-3a291774d17e096950854506d8869dfe950ec932.tar.gz
linux-3a291774d17e096950854506d8869dfe950ec932.tar.bz2
linux-3a291774d17e096950854506d8869dfe950ec932.zip
ovl: add WARN_ON() for non-dir redirect cases
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'fs/overlayfs')
-rw-r--r--fs/overlayfs/namei.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c
index 72230b759b58..52f0b13be633 100644
--- a/fs/overlayfs/namei.c
+++ b/fs/overlayfs/namei.c
@@ -256,6 +256,12 @@ static int ovl_lookup_single(struct dentry *base, struct ovl_lookup_data *d,
d->stop = true;
if (d->is_dir)
goto put_and_out;
+
+ /*
+ * NB: handle failure to lookup non-last element when non-dir
+ * redirects become possible
+ */
+ WARN_ON(!last_element);
goto out;
}
if (last_element)
@@ -1006,6 +1012,11 @@ struct dentry *ovl_lookup(struct inode *dir, struct dentry *dentry,
if (IS_ERR(inode))
goto out_free_oe;
+ /*
+ * NB: handle redirected hard links when non-dir redirects
+ * become possible
+ */
+ WARN_ON(OVL_I(inode)->redirect);
OVL_I(inode)->redirect = upperredirect;
}