Btrfs: skip submitting barrier for missing device
authorHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Wed, 5 Feb 2014 07:34:38 +0000 (16:34 +0900)
committerJosef Bacik <jbacik@fb.com>
Mon, 10 Mar 2014 19:15:53 +0000 (15:15 -0400)
commitf88ba6a2a44ee98e8d59654463dc157bb6d13c43
treeacaa54b48346b05a918041ddfd500417123b2cc5
parent29bce2f3997a8dc5195b7a7724362d1e55df7bb2
Btrfs: skip submitting barrier for missing device

I got an error on v3.13:
 BTRFS error (device sdf1) in write_all_supers:3378: errno=-5 IO failure (errors while submitting device barriers.)

how to reproduce:
  > mkfs.btrfs -f -d raid1 /dev/sdf1 /dev/sdf2
  > wipefs -a /dev/sdf2
  > mount -o degraded /dev/sdf1 /mnt
  > btrfs balance start -f -sconvert=single -mconvert=single -dconvert=single /mnt

The reason of the error is that barrier_all_devices() failed to submit
barrier to the missing device.  However it is clear that we cannot do
anything on missing device, and also it is not necessary to care chunks
on the missing device.

This patch stops sending/waiting barrier if device is missing.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Josef Bacik <jbacik@fb.com>
fs/btrfs/disk-io.c