aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Liu <jeff.liu@oracle.com>2012-02-09 01:25:50 -0500
committerDavid Sterba <dsterba@suse.cz>2012-02-15 10:40:23 -0500
commit6af021d8fc3bcce790e7fbb391e39c5920fa3f71 (patch)
tree9b3e3f49627aed11fa3105c469b1719c71a39636
parent8f24b49688281a77e8331894ed407f0cfe732303 (diff)
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>
-rw-r--r--fs/btrfs/file.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 0621a3a7d5d1..3a520899b024 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -1755,7 +1755,7 @@ static int find_desired_extent(struct inode *inode, loff_t *offset, int origin)
1755 start - root->sectorsize, 1755 start - root->sectorsize,
1756 root->sectorsize, 0); 1756 root->sectorsize, 0);
1757 if (IS_ERR(em)) { 1757 if (IS_ERR(em)) {
1758 ret = -ENXIO; 1758 ret = PTR_ERR(em);
1759 goto out; 1759 goto out;
1760 } 1760 }
1761 last_end = em->start + em->len; 1761 last_end = em->start + em->len;
@@ -1767,7 +1767,7 @@ static int find_desired_extent(struct inode *inode, loff_t *offset, int origin)
1767 while (1) { 1767 while (1) {
1768 em = btrfs_get_extent_fiemap(inode, NULL, 0, start, len, 0); 1768 em = btrfs_get_extent_fiemap(inode, NULL, 0, start, len, 0);
1769 if (IS_ERR(em)) { 1769 if (IS_ERR(em)) {
1770 ret = -ENXIO; 1770 ret = PTR_ERR(em);
1771 break; 1771 break;
1772 } 1772 }
1773 1773