Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9f99e50d authored by Amir Goldstein's avatar Amir Goldstein Committed by Miklos Szeredi
Browse files

ovl: set lower layer st_dev only if setting lower st_ino



For broken hardlinks, we do not return lower st_ino, so we should
also not return lower pseudo st_dev.

Fixes: a0c5ad30 ("ovl: relax same fs constraint for constant st_ino")
Cc: <stable@vger.kernel.org> #v4.15
Signed-off-by: default avatarAmir Goldstein <amir73il@gmail.com>
Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
parent 3ec9b3fa
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -118,14 +118,11 @@ 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)))
			     (is_dir || lowerstat.nlink == 1))) {
				stat->ino = lowerstat.ino;

			if (samefs)
				WARN_ON_ONCE(stat->dev != lowerstat.dev);
			else
				stat->dev = ovl_get_pseudo_dev(dentry);
			}
		}
		if (samefs) {
			/*
			 * When all layers are on the same fs, all real inode