]> git.baikalelectronics.ru Git - kernel.git/commit
ovl: mark upper dir with type origin entries "impure"
authorAmir Goldstein <amir73il@gmail.com>
Thu, 11 May 2017 13:42:26 +0000 (16:42 +0300)
committerMiklos Szeredi <mszeredi@redhat.com>
Fri, 19 May 2017 07:33:49 +0000 (09:33 +0200)
commitda77ac535fb17b327bfd3322df30b6374d74af7b
treefd490f8a866c66e17883c240e1caffff1896c2c8
parentd14e7510ccf9c030d38a3159f7ac1d4faacc4f1b
ovl: mark upper dir with type origin entries "impure"

When moving a merge dir or non-dir with copy up origin into a non-merge
upper dir (a.k.a pure upper dir), we are marking the target parent dir
"impure". ovl_iterate() iterates pure upper dirs directly, because there is
no need to filter out whiteouts and merge dir content with lower dir. But
for the case of an "impure" upper dir, ovl_iterate() will not be able to
iterate the real upper dir directly, because it will need to lookup the
origin inode and use it to fill d_ino.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/overlayfs/dir.c
fs/overlayfs/namei.c
fs/overlayfs/overlayfs.h
fs/overlayfs/ovl_entry.h
fs/overlayfs/util.c