diff options
author | NeilBrown <neilb@suse.de> | 2012-07-31 03:08:15 -0400 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2012-07-31 03:08:15 -0400 |
commit | 74018dc3063a2c729fc73041c0a9f03aac995920 (patch) | |
tree | 03f01bca3a2d9f7cf31785fbe74e9ab76bb0d4cd /drivers | |
parent | 2a7d5559b346574057dce4672d1ed9aaa9d1e685 (diff) |
blk: pass from_schedule to non-request unplug functions.
This will allow md/raid to know why the unplug was called,
and will be able to act according - if !from_schedule it
is safe to perform tasks which could themselves schedule.
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/block/umem.c | 2 | ||||
-rw-r--r-- | drivers/md/md.c | 2 | ||||
-rw-r--r-- | drivers/md/md.h | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/drivers/block/umem.c b/drivers/block/umem.c index 6ef3489568e..eb0d8216f55 100644 --- a/drivers/block/umem.c +++ b/drivers/block/umem.c | |||
@@ -513,7 +513,7 @@ static void process_page(unsigned long data) | |||
513 | } | 513 | } |
514 | } | 514 | } |
515 | 515 | ||
516 | static void mm_unplug(struct blk_plug_cb *cb) | 516 | static void mm_unplug(struct blk_plug_cb *cb, bool from_schedule) |
517 | { | 517 | { |
518 | struct cardinfo *card = cb->data; | 518 | struct cardinfo *card = cb->data; |
519 | 519 | ||
diff --git a/drivers/md/md.c b/drivers/md/md.c index b493fa41738..db02d2efb76 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -498,7 +498,7 @@ void md_flush_request(struct mddev *mddev, struct bio *bio) | |||
498 | } | 498 | } |
499 | EXPORT_SYMBOL(md_flush_request); | 499 | EXPORT_SYMBOL(md_flush_request); |
500 | 500 | ||
501 | void md_unplug(struct blk_plug_cb *cb) | 501 | void md_unplug(struct blk_plug_cb *cb, bool from_schedule) |
502 | { | 502 | { |
503 | struct mddev *mddev = cb->data; | 503 | struct mddev *mddev = cb->data; |
504 | md_wakeup_thread(mddev->thread); | 504 | md_wakeup_thread(mddev->thread); |
diff --git a/drivers/md/md.h b/drivers/md/md.h index 8f998e08fb8..f385b038589 100644 --- a/drivers/md/md.h +++ b/drivers/md/md.h | |||
@@ -629,7 +629,7 @@ extern struct bio *bio_alloc_mddev(gfp_t gfp_mask, int nr_iovecs, | |||
629 | struct mddev *mddev); | 629 | struct mddev *mddev); |
630 | extern void md_trim_bio(struct bio *bio, int offset, int size); | 630 | extern void md_trim_bio(struct bio *bio, int offset, int size); |
631 | 631 | ||
632 | extern void md_unplug(struct blk_plug_cb *cb); | 632 | extern void md_unplug(struct blk_plug_cb *cb, bool from_schedule); |
633 | static inline int mddev_check_plugged(struct mddev *mddev) | 633 | static inline int mddev_check_plugged(struct mddev *mddev) |
634 | { | 634 | { |
635 | return !!blk_check_plugged(md_unplug, mddev, | 635 | return !!blk_check_plugged(md_unplug, mddev, |