Btrfs: fix double increment of path->slots[0] in btrfs_next_leaf
[deliverable/linux.git] / fs / btrfs / volumes.h
index 2185de72ff7dad59154f5a568624be89ab7e8b97..5139a833f721353a32f13ed1c52c3647c0951776 100644 (file)
 #include "async-thread.h"
 
 struct buffer_head;
+struct btrfs_pending_bios {
+       struct bio *head;
+       struct bio *tail;
+};
+
 struct btrfs_device {
        struct list_head dev_list;
        struct list_head dev_alloc_list;
        struct btrfs_fs_devices *fs_devices;
        struct btrfs_root *dev_root;
-       struct bio *pending_bios;
-       struct bio *pending_bio_tail;
+
+       /* regular prio bios */
+       struct btrfs_pending_bios pending_bios;
+       /* WRITE_SYNC bios */
+       struct btrfs_pending_bios pending_sync_bios;
+
        int running_pending;
        u64 generation;
 
@@ -52,6 +61,9 @@ struct btrfs_device {
        /* size of the device */
        u64 total_bytes;
 
+       /* size of the disk */
+       u64 disk_total_bytes;
+
        /* bytes used */
        u64 bytes_used;
 
@@ -84,7 +96,12 @@ struct btrfs_fs_devices {
        u64 rw_devices;
        u64 total_rw_bytes;
        struct block_device *latest_bdev;
-       /* all of the devices in the FS */
+
+       /* 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
+        */
+       struct mutex device_list_mutex;
        struct list_head devices;
 
        /* devices not currently being allocated */
@@ -95,6 +112,11 @@ struct btrfs_fs_devices {
        int seeding;
 
        int opened;
+
+       /* set when we find or add a device that doesn't have the
+        * nonrot flag set
+        */
+       int rotating;
 };
 
 struct btrfs_bio_stripe {
This page took 0.037963 seconds and 5 git commands to generate.