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

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
...@@ -1755,7 +1755,7 @@ static int find_desired_extent(struct inode *inode, loff_t *offset, int origin) ...@@ -1755,7 +1755,7 @@ static int find_desired_extent(struct inode *inode, loff_t *offset, int origin)
start - root->sectorsize, start - root->sectorsize,
root->sectorsize, 0); root->sectorsize, 0);
if (IS_ERR(em)) { if (IS_ERR(em)) {
ret = -ENXIO; ret = PTR_ERR(em);
goto out; goto out;
} }
last_end = em->start + em->len; last_end = em->start + em->len;
...@@ -1767,7 +1767,7 @@ static int find_desired_extent(struct inode *inode, loff_t *offset, int origin) ...@@ -1767,7 +1767,7 @@ static int find_desired_extent(struct inode *inode, loff_t *offset, int origin)
while (1) { while (1) {
em = btrfs_get_extent_fiemap(inode, NULL, 0, start, len, 0); em = btrfs_get_extent_fiemap(inode, NULL, 0, start, len, 0);
if (IS_ERR(em)) { if (IS_ERR(em)) {
ret = -ENXIO; ret = PTR_ERR(em);
break; break;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment