diff options
| -rw-r--r-- | fs/overlayfs/namei.c | 21 |
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) |
