[PATCH] ovl: whiteout of lower dir should't dispaly in merge dir.

From: zhangaihua1
Date: Mon Aug 08 2016 - 05:13:00 EST


From: Aihua Zhang <zhangaihua1@xxxxxxxxxx>

mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,workdir=/workdir /merge
ls /lower/test_dir
whiteout

ls /merge/test_dir
whiteout ------should't display here

this patch fixed it.

Signed-off-by: Aihua Zhang <zhangaihua1@xxxxxxxxxx>
---
fs/overlayfs/readdir.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/fs/overlayfs/readdir.c b/fs/overlayfs/readdir.c
index cf37fc7..21cd5a4 100644
--- a/fs/overlayfs/readdir.c
+++ b/fs/overlayfs/readdir.c
@@ -362,7 +362,7 @@ static int ovl_iterate(struct file *file, struct dir_context *ctx)
if (!ctx->pos)
ovl_dir_reset(file);

- if (od->is_real)
+ if ((od->is_real) && (od->is_upper))
return iterate_dir(od->realfile, ctx);

if (!od->cache) {
--
1.7.1