]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
ovl: update ctx->pos on impure dir iteration
authorAmir Goldstein <amir73il@gmail.com>
Wed, 29 Nov 2017 05:35:21 +0000 (07:35 +0200)
committerMiklos Szeredi <mszeredi@redhat.com>
Mon, 11 Dec 2017 10:28:11 +0000 (11:28 +0100)
This fixes a regression with readdir of impure dir in overlayfs
that is shared to VM via 9p fs.

Reported-by: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
Fixes: 4edb83bb1041 ("ovl: constant d_ino for non-merge dirs")
Cc: <stable@vger.kernel.org> #4.14
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Tested-by: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/overlayfs/readdir.c

index 0daa4354fec4ae967da4ae43e81f7f833cd1095c..51088849ce9741a01f706fe6750a7587367eaacb 100644 (file)
@@ -663,7 +663,10 @@ static int ovl_iterate_real(struct file *file, struct dir_context *ctx)
                        return PTR_ERR(rdt.cache);
        }
 
-       return iterate_dir(od->realfile, &rdt.ctx);
+       err = iterate_dir(od->realfile, &rdt.ctx);
+       ctx->pos = rdt.ctx.pos;
+
+       return err;
 }