My recent debugging session with Neal's broken filesystem uncovered a glaring
hole in my rescue=all patches, they don't deal with a NULL dev_root properly.
In testing I only ever tested corrupting the extent tree or the csum tree, since
those are the most problematic.  The following 3 fixes allowed Neal to get
rescue=all working without panicing the machine, and I verified everything by
using btrfs-corrupt-block to corrupt a dev root of a file system.  Thanks,


Josef Bacik (3):
  btrfs: init devices always
  btrfs: do not init dev stats if we have no dev_root
  btrfs: don't init dev replace for bad dev root

 fs/btrfs/dev-replace.c | 3 +++
 fs/btrfs/disk-io.c     | 2 +-
 fs/btrfs/volumes.c     | 3 +++
 3 files changed, 7 insertions(+), 1 deletion(-)


Reply via email to