aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/myricom
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2010-03-04 21:00:42 -0500
committerAlex Elder <aelder@sgi.com>2010-03-05 12:01:53 -0500
commit3ed3a4343b79a79d10e31f85f2d1afabcead76c6 (patch)
tree9d3982cfb179bff8071ef99f2e2b36e3872dfa6a /firmware/myricom
parent20f6b2c785cf187445f126321638ab8ba7aa7494 (diff)
xfs: truncate delalloc extents when IO fails in writeback
We currently use block_invalidatepage() to clean up pages where I/O fails in ->writepage(). Unfortunately, if the page has delalloc regions on it, we fail to remove the delalloc regions when we invalidate the page. This can result in tripping a BUG() in xfs_get_blocks() later on if a direct IO read is done on that same region - the delalloc extent is returned when none is supposed to be there. Fix this by truncating away the delalloc regions on the page before invalidating it. Because they are delalloc, we can do this without needing a transaction. Indeed - if we get ENOSPC errors, we have to be able to do this truncation without a transaction as there is no space left for block reservation (typically why we see a ENOSPC in writeback). Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Alex Elder <aelder@sgi.com>
Diffstat (limited to 'firmware/myricom')
0 files changed, 0 insertions, 0 deletions