Btrfs: fix meta data raid-repair merge problem
authorJan Schmidt <list.btrfs@jan-o-sch.net>
Thu, 1 Dec 2011 14:30:36 +0000 (09:30 -0500)
committerChris Mason <chris.mason@oracle.com>
Thu, 1 Dec 2011 14:30:36 +0000 (09:30 -0500)
commitf4a8e6563ea5366f563cb741a27fe90c5fa7f0fc
treee51f3968c45fdce8372f16d4e815d44fe6a0272a
parentbe064d113906f04ea13088a8260e1e68ae0a4050
Btrfs: fix meta data raid-repair merge problem

Commit 4a54c8c16 introduced raid-repair, killing the individual
readpage_io_failed_hook entries from inode.c and disk-io.c. Commit
4bb31e92 introduced new readahead code, adding a readpage_io_failed_hook to
disk-io.c.

The raid-repair commit had logic to disable raid-repair, if
readpage_io_failed_hook is set. Thus, the readahead commit effectively
disabled raid-repair for meta data.

This commit changes the logic to always attempt raid-repair when needed and
call the readpage_io_failed_hook in case raid-repair fails. This is much
more straight forward and should have been like that from the beginning.

Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
Reported-by: Stefan Behrens <sbehrens@giantdisaster.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/extent_io.c