linux/fs/overlayfs
hujianyang a425c037f3 ovl: Fix opaque regression in ovl_lookup
Current multi-layer support overlayfs has a regression in
.lookup(). If there is a directory in upperdir and a regular
file has same name in lowerdir in a merged directory, lower
file is hidden and upper directory is set to opaque in former
case. But it is changed in present code.

In lowerdir lookup path, if a found inode is not directory,
the type checking of previous inode is missing. This inode
will be copied to the lowerstack of ovl_entry directly.

That will lead to several wrong conditions, for example,
the reading of the directory in upperdir may return an error
like:

   ls: reading directory .: Not a directory

This patch makes the lowerdir lookup path check the opaque
for non-directory file too.

Signed-off-by: hujianyang <hujianyang@huawei.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
2015-01-08 14:47:20 +01:00
..
copy_up.c ovl: Cleanup redundant blank lines 2014-12-13 00:59:52 +01:00
dir.c ovl: Use macros to present ovl_xattr 2014-12-13 00:59:52 +01:00
inode.c ovl: Use macros to present ovl_xattr 2014-12-13 00:59:52 +01:00
Kconfig ovl: rename filesystem type to "overlay" 2014-11-20 16:39:59 +01:00
Makefile ovl: rename filesystem type to "overlay" 2014-11-20 16:39:59 +01:00
overlayfs.h ovl: Use macros to present ovl_xattr 2014-12-13 00:59:52 +01:00
readdir.c ovl: check whiteout on lowest layer as well 2014-12-13 00:59:45 +01:00
super.c ovl: Fix opaque regression in ovl_lookup 2015-01-08 14:47:20 +01:00