Btrfs: adjust the fs_devices->missing count on unmount
authorJosef Bacik <jbacik@fusionio.com>
Mon, 26 Aug 2013 17:45:53 +0000 (13:45 -0400)
committerChris Mason <chris.mason@fusionio.com>
Sun, 1 Sep 2013 12:16:31 +0000 (08:16 -0400)
I noticed that if I tried to mount a file system with -o degraded after having
done it once already we would fail to mount.  This is because the
fs_devices->missing count was getting bumped everytime we mounted, but not
getting reset whenever we unmounted.  To fix this we just drop the missing count
as we're closing devices to make sure this doesn't happen.  Thanks,

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

index 74614e3b5ad3a69349e695a96c2fd8933fe84237..f42e412901249f1a01b94af9a7f0f3d17a57556c 100644 (file)
@@ -673,6 +673,8 @@ static int __btrfs_close_devices(struct btrfs_fs_devices *fs_devices)
 
                if (device->can_discard)
                        fs_devices->num_can_discard--;
 
                if (device->can_discard)
                        fs_devices->num_can_discard--;
+               if (device->missing)
+                       fs_devices->missing_devices--;
 
                new_device = btrfs_alloc_device(NULL, &device->devid,
                                                device->uuid);
 
                new_device = btrfs_alloc_device(NULL, &device->devid,
                                                device->uuid);