diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-24 13:16:26 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-24 13:16:26 -0400 |
commit | 6c5103890057b1bb781b26b7aae38d33e4c517d8 (patch) | |
tree | e6e57961dcddcb5841acb34956e70b9dc696a880 /drivers/target | |
parent | 3dab04e6978e358ad2307bca563fabd6c5d2c58b (diff) | |
parent | 9d2e157d970a73b3f270b631828e03eb452d525e (diff) |
Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block
* 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block: (65 commits)
Documentation/iostats.txt: bit-size reference etc.
cfq-iosched: removing unnecessary think time checking
cfq-iosched: Don't clear queue stats when preempt.
blk-throttle: Reset group slice when limits are changed
blk-cgroup: Only give unaccounted_time under debug
cfq-iosched: Don't set active queue in preempt
block: fix non-atomic access to genhd inflight structures
block: attempt to merge with existing requests on plug flush
block: NULL dereference on error path in __blkdev_get()
cfq-iosched: Don't update group weights when on service tree
fs: assign sb->s_bdi to default_backing_dev_info if the bdi is going away
block: Require subsystems to explicitly allocate bio_set integrity mempool
jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging
jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging
fs: make fsync_buffers_list() plug
mm: make generic_writepages() use plugging
blk-cgroup: Add unaccounted time to timeslice_used.
block: fixup plugging stubs for !CONFIG_BLOCK
block: remove obsolete comments for blkdev_issue_zeroout.
blktrace: Use rq->cmd_flags directly in blk_add_trace_rq.
...
Fix up conflicts in fs/{aio.c,super.c}
Diffstat (limited to 'drivers/target')
-rw-r--r-- | drivers/target/target_core_iblock.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c index 3df570db0e4..eb0afec046e 100644 --- a/drivers/target/target_core_iblock.c +++ b/drivers/target/target_core_iblock.c | |||
@@ -391,9 +391,8 @@ static int iblock_do_task(struct se_task *task) | |||
391 | { | 391 | { |
392 | struct se_device *dev = task->task_se_cmd->se_dev; | 392 | struct se_device *dev = task->task_se_cmd->se_dev; |
393 | struct iblock_req *req = IBLOCK_REQ(task); | 393 | struct iblock_req *req = IBLOCK_REQ(task); |
394 | struct iblock_dev *ibd = (struct iblock_dev *)req->ib_dev; | ||
395 | struct request_queue *q = bdev_get_queue(ibd->ibd_bd); | ||
396 | struct bio *bio = req->ib_bio, *nbio = NULL; | 394 | struct bio *bio = req->ib_bio, *nbio = NULL; |
395 | struct blk_plug plug; | ||
397 | int rw; | 396 | int rw; |
398 | 397 | ||
399 | if (task->task_data_direction == DMA_TO_DEVICE) { | 398 | if (task->task_data_direction == DMA_TO_DEVICE) { |
@@ -411,6 +410,7 @@ static int iblock_do_task(struct se_task *task) | |||
411 | rw = READ; | 410 | rw = READ; |
412 | } | 411 | } |
413 | 412 | ||
413 | blk_start_plug(&plug); | ||
414 | while (bio) { | 414 | while (bio) { |
415 | nbio = bio->bi_next; | 415 | nbio = bio->bi_next; |
416 | bio->bi_next = NULL; | 416 | bio->bi_next = NULL; |
@@ -420,9 +420,8 @@ static int iblock_do_task(struct se_task *task) | |||
420 | submit_bio(rw, bio); | 420 | submit_bio(rw, bio); |
421 | bio = nbio; | 421 | bio = nbio; |
422 | } | 422 | } |
423 | blk_finish_plug(&plug); | ||
423 | 424 | ||
424 | if (q->unplug_fn) | ||
425 | q->unplug_fn(q); | ||
426 | return PYX_TRANSPORT_SENT_TO_TRANSPORT; | 425 | return PYX_TRANSPORT_SENT_TO_TRANSPORT; |
427 | } | 426 | } |
428 | 427 | ||