Merge branch 'for-2.6.36' of git://git.kernel.dk/linux-2.6-block
* 'for-2.6.36' of git://git.kernel.dk/linux-2.6-block: (149 commits) block: make sure that REQ_* types are seen even with CONFIG_BLOCK=n xen-blkfront: fix missing out label blkdev: fix blkdev_issue_zeroout return value block: update request stacking methods to support discards block: fix missing export of blk_types.h writeback: fix bad _bh spinlock nesting drbd: revert "delay probes", feature is being re-implemented differently drbd: Initialize all members of sync_conf to their defaults [Bugz 315] drbd: Disable delay probes for the upcomming release writeback: cleanup bdi_register writeback: add new tracepoints writeback: remove unnecessary init_timer call writeback: optimize periodic bdi thread wakeups writeback: prevent unnecessary bdi threads wakeups writeback: move bdi threads exiting logic to the forker thread writeback: restructure bdi forker loop a little writeback: move last_active to bdi writeback: do not remove bdi from bdi_list writeback: simplify bdi code a little writeback: do not lose wake-ups in bdi threads ... Fixed up pretty trivial conflicts in drivers/block/virtio_blk.c and drivers/scsi/scsi_error.c as per Jens.
This commit is contained in:
@ -480,7 +480,7 @@ static void end_workqueue_bio(struct bio *bio, int err)
|
||||
end_io_wq->work.func = end_workqueue_fn;
|
||||
end_io_wq->work.flags = 0;
|
||||
|
||||
if (bio->bi_rw & (1 << BIO_RW)) {
|
||||
if (bio->bi_rw & REQ_WRITE) {
|
||||
if (end_io_wq->metadata)
|
||||
btrfs_queue_worker(&fs_info->endio_meta_write_workers,
|
||||
&end_io_wq->work);
|
||||
@ -604,7 +604,7 @@ int btrfs_wq_submit_bio(struct btrfs_fs_info *fs_info, struct inode *inode,
|
||||
|
||||
atomic_inc(&fs_info->nr_async_submits);
|
||||
|
||||
if (rw & (1 << BIO_RW_SYNCIO))
|
||||
if (rw & REQ_SYNC)
|
||||
btrfs_set_work_high_prio(&async->work);
|
||||
|
||||
btrfs_queue_worker(&fs_info->workers, &async->work);
|
||||
@ -668,7 +668,7 @@ static int btree_submit_bio_hook(struct inode *inode, int rw, struct bio *bio,
|
||||
bio, 1);
|
||||
BUG_ON(ret);
|
||||
|
||||
if (!(rw & (1 << BIO_RW))) {
|
||||
if (!(rw & REQ_WRITE)) {
|
||||
/*
|
||||
* called for a read, do the setup so that checksum validation
|
||||
* can happen in the async kernel threads
|
||||
@ -1427,7 +1427,7 @@ static void end_workqueue_fn(struct btrfs_work *work)
|
||||
* ram and up to date before trying to verify things. For
|
||||
* blocksize <= pagesize, it is basically a noop
|
||||
*/
|
||||
if (!(bio->bi_rw & (1 << BIO_RW)) && end_io_wq->metadata &&
|
||||
if (!(bio->bi_rw & REQ_WRITE) && end_io_wq->metadata &&
|
||||
!bio_ready_for_csum(bio)) {
|
||||
btrfs_queue_worker(&fs_info->endio_meta_workers,
|
||||
&end_io_wq->work);
|
||||
|
@ -1429,7 +1429,7 @@ static int btrfs_submit_bio_hook(struct inode *inode, int rw, struct bio *bio,
|
||||
ret = btrfs_bio_wq_end_io(root->fs_info, bio, 0);
|
||||
BUG_ON(ret);
|
||||
|
||||
if (!(rw & (1 << BIO_RW))) {
|
||||
if (!(rw & REQ_WRITE)) {
|
||||
if (bio_flags & EXTENT_BIO_COMPRESSED) {
|
||||
return btrfs_submit_compressed_read(inode, bio,
|
||||
mirror_num, bio_flags);
|
||||
@ -1841,7 +1841,7 @@ static int btrfs_io_failed_hook(struct bio *failed_bio,
|
||||
bio->bi_size = 0;
|
||||
|
||||
bio_add_page(bio, page, failrec->len, start - page_offset(page));
|
||||
if (failed_bio->bi_rw & (1 << BIO_RW))
|
||||
if (failed_bio->bi_rw & REQ_WRITE)
|
||||
rw = WRITE;
|
||||
else
|
||||
rw = READ;
|
||||
@ -5647,7 +5647,7 @@ static void btrfs_submit_direct(int rw, struct bio *bio, struct inode *inode,
|
||||
struct bio_vec *bvec = bio->bi_io_vec;
|
||||
u64 start;
|
||||
int skip_sum;
|
||||
int write = rw & (1 << BIO_RW);
|
||||
int write = rw & REQ_WRITE;
|
||||
int ret = 0;
|
||||
|
||||
skip_sum = BTRFS_I(inode)->flags & BTRFS_INODE_NODATASUM;
|
||||
|
@ -258,7 +258,7 @@ loop_lock:
|
||||
|
||||
BUG_ON(atomic_read(&cur->bi_cnt) == 0);
|
||||
|
||||
if (bio_rw_flagged(cur, BIO_RW_SYNCIO))
|
||||
if (cur->bi_rw & REQ_SYNC)
|
||||
num_sync_run++;
|
||||
|
||||
submit_bio(cur->bi_rw, cur);
|
||||
@ -2651,7 +2651,7 @@ static int __btrfs_map_block(struct btrfs_mapping_tree *map_tree, int rw,
|
||||
int max_errors = 0;
|
||||
struct btrfs_multi_bio *multi = NULL;
|
||||
|
||||
if (multi_ret && !(rw & (1 << BIO_RW)))
|
||||
if (multi_ret && !(rw & REQ_WRITE))
|
||||
stripes_allocated = 1;
|
||||
again:
|
||||
if (multi_ret) {
|
||||
@ -2687,7 +2687,7 @@ again:
|
||||
mirror_num = 0;
|
||||
|
||||
/* if our multi bio struct is too small, back off and try again */
|
||||
if (rw & (1 << BIO_RW)) {
|
||||
if (rw & REQ_WRITE) {
|
||||
if (map->type & (BTRFS_BLOCK_GROUP_RAID1 |
|
||||
BTRFS_BLOCK_GROUP_DUP)) {
|
||||
stripes_required = map->num_stripes;
|
||||
@ -2697,7 +2697,7 @@ again:
|
||||
max_errors = 1;
|
||||
}
|
||||
}
|
||||
if (multi_ret && (rw & (1 << BIO_RW)) &&
|
||||
if (multi_ret && (rw & REQ_WRITE) &&
|
||||
stripes_allocated < stripes_required) {
|
||||
stripes_allocated = map->num_stripes;
|
||||
free_extent_map(em);
|
||||
@ -2733,7 +2733,7 @@ again:
|
||||
num_stripes = 1;
|
||||
stripe_index = 0;
|
||||
if (map->type & BTRFS_BLOCK_GROUP_RAID1) {
|
||||
if (unplug_page || (rw & (1 << BIO_RW)))
|
||||
if (unplug_page || (rw & REQ_WRITE))
|
||||
num_stripes = map->num_stripes;
|
||||
else if (mirror_num)
|
||||
stripe_index = mirror_num - 1;
|
||||
@ -2744,7 +2744,7 @@ again:
|
||||
}
|
||||
|
||||
} else if (map->type & BTRFS_BLOCK_GROUP_DUP) {
|
||||
if (rw & (1 << BIO_RW))
|
||||
if (rw & REQ_WRITE)
|
||||
num_stripes = map->num_stripes;
|
||||
else if (mirror_num)
|
||||
stripe_index = mirror_num - 1;
|
||||
@ -2755,7 +2755,7 @@ again:
|
||||
stripe_index = do_div(stripe_nr, factor);
|
||||
stripe_index *= map->sub_stripes;
|
||||
|
||||
if (unplug_page || (rw & (1 << BIO_RW)))
|
||||
if (unplug_page || (rw & REQ_WRITE))
|
||||
num_stripes = map->sub_stripes;
|
||||
else if (mirror_num)
|
||||
stripe_index += mirror_num - 1;
|
||||
@ -2945,7 +2945,7 @@ static noinline int schedule_bio(struct btrfs_root *root,
|
||||
struct btrfs_pending_bios *pending_bios;
|
||||
|
||||
/* don't bother with additional async steps for reads, right now */
|
||||
if (!(rw & (1 << BIO_RW))) {
|
||||
if (!(rw & REQ_WRITE)) {
|
||||
bio_get(bio);
|
||||
submit_bio(rw, bio);
|
||||
bio_put(bio);
|
||||
@ -2964,7 +2964,7 @@ static noinline int schedule_bio(struct btrfs_root *root,
|
||||
bio->bi_rw |= rw;
|
||||
|
||||
spin_lock(&device->io_lock);
|
||||
if (bio_rw_flagged(bio, BIO_RW_SYNCIO))
|
||||
if (bio->bi_rw & REQ_SYNC)
|
||||
pending_bios = &device->pending_sync_bios;
|
||||
else
|
||||
pending_bios = &device->pending_bios;
|
||||
|
Reference in New Issue
Block a user