diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-12-14 11:13:54 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-12-14 11:13:54 -0800 | 
| commit | 81c64b0bd0900405b4e55f3d48a2fc7dd5e1676c (patch) | |
| tree | a4cdfebf4e3e39bd80b1685c389ffea04baaf8dd /fs/overlayfs/inode.c | |
| parent | e31736d9fae841e8a1612f263136454af10f476a (diff) | |
| parent | 35c6cb41686c4de03d738fd95617a0cf7441bbe1 (diff) | |
Merge tag 'ovl-fixes-5.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs
Pull overlayfs fixes from Miklos Szeredi:
 "Fix some bugs and documentation"
* tag 'ovl-fixes-5.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
  docs: filesystems: overlayfs: Fix restview warnings
  docs: filesystems: overlayfs: Rename overlayfs.txt to .rst
  ovl: relax WARN_ON() on rename to self
  ovl: fix corner case of non-unique st_dev;st_ino
  ovl: don't use a temp buf for encoding real fh
  ovl: make sure that real fid is 32bit aligned in memory
  ovl: fix lookup failure on multi lower squashfs
Diffstat (limited to 'fs/overlayfs/inode.c')
| -rw-r--r-- | fs/overlayfs/inode.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c index bc14781886bf..b045cf1826fc 100644 --- a/fs/overlayfs/inode.c +++ b/fs/overlayfs/inode.c @@ -200,8 +200,14 @@ int ovl_getattr(const struct path *path, struct kstat *stat,  			if (ovl_test_flag(OVL_INDEX, d_inode(dentry)) ||  			    (!ovl_verify_lower(dentry->d_sb) &&  			     (is_dir || lowerstat.nlink == 1))) { -				stat->ino = lowerstat.ino;  				lower_layer = ovl_layer_lower(dentry); +				/* +				 * Cannot use origin st_dev;st_ino because +				 * origin inode content may differ from overlay +				 * inode content. +				 */ +				if (samefs || lower_layer->fsid) +					stat->ino = lowerstat.ino;  			}  			/*  | 
