]> www.infradead.org Git - users/jedix/linux-maple.git/commit
Btrfs: ClearPageError during writepage and clean_tree_block
authorChris Mason <chris.mason@oracle.com>
Fri, 4 Nov 2011 16:29:37 +0000 (12:29 -0400)
committerChris Mason <chris.mason@oracle.com>
Wed, 16 Nov 2011 02:20:51 +0000 (21:20 -0500)
commit4870459695fa75c2907047066bf41faa0ebe00dd
treeb848fd8ff581e66883b85662f74fa0f5808da32b
parentd43eb6c0f83625f4c26ea287222836fc646e9704
Btrfs: ClearPageError during writepage and clean_tree_block

Failure testing was tripping up over stale PageError bits in
metadata pages.  If we have an io error on a block, and later on
end up reusing it, nobody ever clears PageError on those pages.

During commit, we'll find PageError and think we had trouble writing
the block, which will lead to aborts and other problems.

This changes clean_tree_block and the btrfs writepage code to
clear the PageError bit.  In both cases we're either completely
done with the page or the page has good stuff and the error bit
is no longer valid.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
(cherry picked from commit bf0da8c183a15656eee63c54f334c3794320872a)
fs/btrfs/extent_io.c
fs/btrfs/transaction.c