btrfs: remove btrfs_end_io_wq
[linux-2.6-microblaze.git] / fs / btrfs / volumes.h
index 6721002..7973d11 100644 (file)
@@ -371,6 +371,9 @@ struct btrfs_bio {
        u8 csum_inline[BTRFS_BIO_INLINE_CSUM_SIZE];
        struct bvec_iter iter;
 
+       /* For read end I/O handling */
+       struct work_struct end_io_work;
+
        /*
         * This member must come last, bio_alloc_bioset will allocate enough
         * bytes for entire btrfs_bio but relies on bio being last.
@@ -391,6 +394,22 @@ static inline void btrfs_bio_free_csum(struct btrfs_bio *bbio)
        }
 }
 
+/*
+ * Iterate through a btrfs_bio (@bbio) on a per-sector basis.
+ *
+ * bvl        - struct bio_vec
+ * bbio       - struct btrfs_bio
+ * iters      - struct bvec_iter
+ * bio_offset - unsigned int
+ */
+#define btrfs_bio_for_each_sector(fs_info, bvl, bbio, iter, bio_offset)        \
+       for ((iter) = (bbio)->iter, (bio_offset) = 0;                   \
+            (iter).bi_size &&                                  \
+            (((bvl) = bio_iter_iovec((&(bbio)->bio), (iter))), 1);     \
+            (bio_offset) += fs_info->sectorsize,                       \
+            bio_advance_iter_single(&(bbio)->bio, &(iter),             \
+            (fs_info)->sectorsize))
+
 struct btrfs_io_stripe {
        struct btrfs_device *dev;
        u64 physical;