aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/overlayfs/namei.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c
index 85ab856dd134..e4bbe6ed6a87 100644
--- a/fs/overlayfs/namei.c
+++ b/fs/overlayfs/namei.c
@@ -273,17 +273,18 @@ static int ovl_lookup_single(struct dentry *base, struct ovl_lookup_data *d,
273 d->metacopy = err; 273 d->metacopy = err;
274 d->stop = !d->metacopy; 274 d->stop = !d->metacopy;
275 goto out; 275 goto out;
276 } 276 } else {
277 if (last_element)
278 d->is_dir = true;
279 if (d->last)
280 goto out;
281
282 if (ovl_is_opaquedir(this)) {
283 d->stop = true;
284 if (last_element) 277 if (last_element)
285 d->opaque = true; 278 d->is_dir = true;
286 goto out; 279 if (d->last)
280 goto out;
281
282 if (ovl_is_opaquedir(this)) {
283 d->stop = true;
284 if (last_element)
285 d->opaque = true;
286 goto out;
287 }
287 } 288 }
288 err = ovl_check_redirect(this, d, prelen, post); 289 err = ovl_check_redirect(this, d, prelen, post);
289 if (err) 290 if (err)