Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d421e91f authored by Chengyu Song's avatar Chengyu Song Committed by Sasha Levin
Browse files

btrfs: incorrect handling for fiemap_fill_next_extent return



[ Upstream commit 26e726afe01c1c82072cf23a5ed89ce25f39d9f2 ]

fiemap_fill_next_extent returns 0 on success, -errno on error, 1 if this was
the last extent that will fit in user array. If 1 is returned, the return
value may eventually returned to user space, which should not happen, according
to manpage of ioctl.

Signed-off-by: default avatarChengyu Song <csong84@gatech.edu>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.cz>
Reviewed-by: default avatarLiu Bo <bo.li.liu@oracle.com>
Signed-off-by: default avatarChris Mason <clm@fb.com>
Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
parent 17e0dfc7
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -4484,9 +4484,12 @@ int extent_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
		}
		ret = fiemap_fill_next_extent(fieinfo, em_start, disko,
					      em_len, flags);
		if (ret)
		if (ret) {
			if (ret == 1)
				ret = 0;
			goto out_free;
		}
	}
out_free:
	free_extent_map(em);
out: