From: Miklos Szeredi Date: Thu, 12 Apr 2018 10:04:49 +0000 (+0200) Subject: ovl: add WARN_ON() for non-dir redirect cases X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=3a291774d17e096950854506d8869dfe950ec932;p=openwrt%2Fstaging%2Fblogic.git ovl: add WARN_ON() for non-dir redirect cases Signed-off-by: Miklos Szeredi --- 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; }