diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-12-01 13:31:53 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-12-01 13:31:53 -0500 |
commit | 2caceb3294a78c389b462e7e236a4e744a53a474 (patch) | |
tree | cbdfc4d847410a665dbe9f75b828494c63c00377 /fs | |
parent | 92cf44e284d0c2e456d43c0951107a4ec046ef1c (diff) | |
parent | c4fcfc1619ea43a8a89ad2f83ff23905eee088bd (diff) |
Merge branch 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs
Pull overlayfs fix from Miklos Szeredi:
"This fixes a regression introduced in 4.8"
* 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
ovl: fix d_real() for stacked fs
Diffstat (limited to 'fs')
-rw-r--r-- | fs/overlayfs/super.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c index edd46a0e951d..0e100856c7b8 100644 --- a/fs/overlayfs/super.c +++ b/fs/overlayfs/super.c | |||
@@ -328,11 +328,11 @@ static struct dentry *ovl_d_real(struct dentry *dentry, | |||
328 | if (!real) | 328 | if (!real) |
329 | goto bug; | 329 | goto bug; |
330 | 330 | ||
331 | /* Handle recursion */ | ||
332 | real = d_real(real, inode, open_flags); | ||
333 | |||
331 | if (!inode || inode == d_inode(real)) | 334 | if (!inode || inode == d_inode(real)) |
332 | return real; | 335 | return real; |
333 | |||
334 | /* Handle recursion */ | ||
335 | return d_real(real, inode, open_flags); | ||
336 | bug: | 336 | bug: |
337 | WARN(1, "ovl_d_real(%pd4, %s:%lu): real dentry not found\n", dentry, | 337 | WARN(1, "ovl_d_real(%pd4, %s:%lu): real dentry not found\n", dentry, |
338 | inode ? inode->i_sb->s_id : "NULL", inode ? inode->i_ino : 0); | 338 | inode ? inode->i_sb->s_id : "NULL", inode ? inode->i_ino : 0); |