diff options
author | Dave Airlie <airlied@redhat.com> | 2013-08-19 13:49:20 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2013-08-19 13:49:20 +1000 |
commit | 3387ed83943daf6cb1bb4195ae369067b9cd80ce (patch) | |
tree | e9fc247ed3a26f5369a7ec1b1bd0ef66bda7b4dd /fs/btrfs/extent_io.c | |
parent | eb91626ac4b9af3d5602a7db888b8bc4cb23eb3b (diff) | |
parent | 63b66e5ba54b15a6592be00555d762db6db739ce (diff) | |
download | blackbird-op-linux-3387ed83943daf6cb1bb4195ae369067b9cd80ce.tar.gz blackbird-op-linux-3387ed83943daf6cb1bb4195ae369067b9cd80ce.zip |
Merge tag 'drm-intel-fixes-2013-08-15' of git://people.freedesktop.org/~danvet/drm-intel
* tag 'drm-intel-fixes-2013-08-15' of git://people.freedesktop.org/~danvet/drm-intel: (153 commits)
drm/i915: Don't deref pipe->cpu_transcoder in the hangcheck code
Diffstat (limited to 'fs/btrfs/extent_io.c')
-rw-r--r-- | fs/btrfs/extent_io.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 583d98bd065e..fe443fece851 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -4048,7 +4048,7 @@ int extent_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, } while (!end) { - u64 offset_in_extent; + u64 offset_in_extent = 0; /* break if the extent we found is outside the range */ if (em->start >= max || extent_map_end(em) < off) @@ -4064,9 +4064,12 @@ int extent_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, /* * record the offset from the start of the extent - * for adjusting the disk offset below + * for adjusting the disk offset below. Only do this if the + * extent isn't compressed since our in ram offset may be past + * what we have actually allocated on disk. */ - offset_in_extent = em_start - em->start; + if (!test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) + offset_in_extent = em_start - em->start; em_end = extent_map_end(em); em_len = em_end - em_start; emflags = em->flags; |