mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-02-24 06:24:27 +00:00
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: Jie Liu <jeff.liu@oracle.com>
This commit is contained in:
parent
8f24b49688
commit
6af021d8fc
@ -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)
|
|||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user