If we are looking in last layer, then there should not be any need to process redirect. redirect information is used only for lookup in next lower layer and there is no more lower layer to look into. So no need to process redirects. IOW, ignore redirects on lowest layer. Signed-off-by: Vivek Goyal <vgoyal@xxxxxxxxxx> --- fs/overlayfs/namei.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c index 2e173cfbda0e..32d1d96f80b6 100644 --- a/fs/overlayfs/namei.c +++ b/fs/overlayfs/namei.c @@ -248,13 +248,16 @@ static int ovl_lookup_single(struct dentry *base, struct ovl_lookup_data *d, goto out; } d->is_dir = true; - if (!d->last && ovl_is_opaquedir(this)) { - d->stop = d->opaque = true; - goto out; + if (!d->last) { + if (ovl_is_opaquedir(this)) { + d->stop = d->opaque = true; + goto out; + } + + err = ovl_check_redirect(this, d, prelen, post); + if (err) + goto out_err; } - err = ovl_check_redirect(this, d, prelen, post); - if (err) - goto out_err; out: *ret = this; return 0; -- 2.13.6 -- To unsubscribe from this list: send the line "unsubscribe linux-unionfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html