diff options
author | Amir Goldstein <amir73il@gmail.com> | 2020-01-14 22:17:25 +0200 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2020-01-24 09:46:45 +0100 |
commit | b7bf9908e17c4dc4b80876f299ac03ddf188efd9 (patch) | |
tree | 5b37db7eb28823b29b26e40e1b93092ecdf6b300 /fs/overlayfs/ovl_entry.h | |
parent | 1b81dddd354cf304574d79004400a6385613ae4e (diff) | |
download | lwn-b7bf9908e17c4dc4b80876f299ac03ddf188efd9.tar.gz lwn-b7bf9908e17c4dc4b80876f299ac03ddf188efd9.zip |
ovl: fix corner case of non-constant st_dev;st_ino
On non-samefs overlay without xino, non pure upper inodes should use a
pseudo_dev assigned to each unique lower fs, but if lower layer is on the
same fs and upper layer, it has no pseudo_dev assigned.
In this overlay layers setup:
- two filesystems, A and B
- upper layer is on A
- lower layer 1 is also on A
- lower layer 2 is on B
Non pure upper overlay inode, whose origin is in layer 1 will have the
st_dev;st_ino values of the real lower inode before copy up and the
st_dev;st_ino values of the real upper inode after copy up.
Fix this inconsitency by assigning a unique pseudo_dev also for upper fs,
that will be used as st_dev value along with the lower inode st_dev for
overlay inodes in the case above.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'fs/overlayfs/ovl_entry.h')
0 files changed, 0 insertions, 0 deletions