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

Commit 6af021d8 authored by Jeff Liu's avatar Jeff Liu Committed by David Sterba
Browse files

Btrfs: return the internal error unchanged if btrfs_get_extent_fiemap() call...


Btrfs: return the internal error unchanged if btrfs_get_extent_fiemap() call failed for SEEK_DATA/SEEK_HOLE inquiry

Given that ENXIO only means "offset beyond EOF" for either SEEK_DATA or SEEK_HOLE inquiry
in a desired file range, so we should return the internal error unchanged if btrfs_get_extent_fiemap()
call failed, rather than ENXIO.

Cc: Dave Chinner <david@fromorbit.com>
Signed-off-by: default avatarJie Liu <jeff.liu@oracle.com>
parent 8f24b496
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1755,7 +1755,7 @@ static int find_desired_extent(struct inode *inode, loff_t *offset, int origin)
						     start - root->sectorsize,
						     root->sectorsize, 0);
		if (IS_ERR(em)) {
			ret = -ENXIO;
			ret = PTR_ERR(em);
			goto out;
		}
		last_end = em->start + em->len;
@@ -1767,7 +1767,7 @@ static int find_desired_extent(struct inode *inode, loff_t *offset, int origin)
	while (1) {
		em = btrfs_get_extent_fiemap(inode, NULL, 0, start, len, 0);
		if (IS_ERR(em)) {
			ret = -ENXIO;
			ret = PTR_ERR(em);
			break;
		}