ovl: fix incorrect extent info in metacopy case
authorChengguang Xu <cgxu519@mykernel.net>
Wed, 24 Jun 2020 10:20:11 +0000 (18:20 +0800)
committerMiklos Szeredi <mszeredi@redhat.com>
Thu, 12 Nov 2020 10:31:56 +0000 (11:31 +0100)
In metacopy case, we should use ovl_inode_realdata() instead of
ovl_inode_real() to get real inode which has data, so that
we can get correct information of extentes in ->fiemap operation.

Signed-off-by: Chengguang Xu <cgxu519@mykernel.net>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/overlayfs/inode.c

index b584dca845baa21b15e212c25bacb2ac176c4371..1688ae7e3438053051806c440389d216265b15bc 100644 (file)
@@ -476,7 +476,7 @@ static int ovl_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
                      u64 start, u64 len)
 {
        int err;
-       struct inode *realinode = ovl_inode_real(inode);
+       struct inode *realinode = ovl_inode_realdata(inode);
        const struct cred *old_cred;
 
        if (!realinode->i_op->fiemap)