diff options
author | 2018-04-12 12:04:49 +0200 | |
---|---|---|
committer | 2018-04-12 12:04:49 +0200 | |
commit | 3a291774d17e096950854506d8869dfe950ec932 (patch) | |
tree | f554558b42d15f4df67cbf6cc2dd476b06652738 /fs | |
parent | ovl: cleanup setting OVL_INDEX (diff) | |
download | linux-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')
-rw-r--r-- | fs/overlayfs/namei.c | 11 |
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; } |