Btrfs: handle errors when doing slow caching
authorJosef Bacik <jbacik@fusionio.com>
Mon, 5 Aug 2013 15:15:21 +0000 (11:15 -0400)
committerChris Mason <chris.mason@fusionio.com>
Sun, 1 Sep 2013 12:04:47 +0000 (08:04 -0400)
commit36cce922875563a1e2a4b6a53fbe1147f652a51e
treefad46576765b99267f7906de13343886f8a5a361
parent0f0fe8f710f29dbd4b2c915fc1c36962e4957b3b
Btrfs: handle errors when doing slow caching

Alex Lyakas reported a bug where wait_block_group_cache_progress() would wait
forever if a drive failed.  This is because we just bail out if there is an
error while trying to cache a block group, we don't update anybody who may be
waiting.  So this introduces a new enum for the cache state in case of error and
makes everybody bail out if we have an error.  Alex tested and verified this
patch fixed his problem.  This fixes bz 59431.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
fs/btrfs/ctree.h
fs/btrfs/extent-tree.c