]> Pileus Git - ~andy/linux/blobdiff - fs/btrfs/volumes.h
Merge tag 'dm-3.14-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/device...
[~andy/linux] / fs / btrfs / volumes.h
index b72f540c8b295d1be0b3642d695ee0b8b75ebed1..8b3cd142b3734dc0161c479b9bfcc9eb144cdaab 100644 (file)
@@ -43,9 +43,8 @@ struct btrfs_device {
        /* WRITE_SYNC bios */
        struct btrfs_pending_bios pending_sync_bios;
 
-       int running_pending;
        u64 generation;
-
+       int running_pending;
        int writeable;
        int in_fs_metadata;
        int missing;
@@ -53,11 +52,11 @@ struct btrfs_device {
        int is_tgtdev_for_dev_replace;
 
        spinlock_t io_lock;
+       /* the mode sent to blkdev_get */
+       fmode_t mode;
 
        struct block_device *bdev;
 
-       /* the mode sent to blkdev_get */
-       fmode_t mode;
 
        struct rcu_string *name;
 
@@ -78,16 +77,21 @@ struct btrfs_device {
 
        /* optimal io width for this device */
        u32 io_width;
+       /* type and info about this device */
+       u64 type;
 
        /* minimal io size for this device */
        u32 sector_size;
 
-       /* type and info about this device */
-       u64 type;
 
        /* physical drive uuid (or lvm uuid) */
        u8 uuid[BTRFS_UUID_SIZE];
 
+       /* for sending down flush barriers */
+       int nobarriers;
+       struct bio *flush_bio;
+       struct completion flush_wait;
+
        /* per-device scrub information */
        struct scrub_ctx *scrub_device;
 
@@ -103,10 +107,6 @@ struct btrfs_device {
        struct radix_tree_root reada_zones;
        struct radix_tree_root reada_extents;
 
-       /* for sending down flush barriers */
-       struct bio *flush_bio;
-       struct completion flush_wait;
-       int nobarriers;
 
        /* disk I/O failure stats. For detailed description refer to
         * enum btrfs_dev_stat_values in ioctl.h */
@@ -132,7 +132,9 @@ struct btrfs_fs_devices {
 
        /* all of the devices in the FS, protected by a mutex
         * so we can safely walk it to write out the supers without
-        * worrying about add/remove by the multi-device code
+        * worrying about add/remove by the multi-device code.
+        * Scrubbing super can kick off supers writing by holding
+        * this mutex lock.
         */
        struct mutex device_list_mutex;
        struct list_head devices;