diff options
author | Jens Axboe <axboe@fb.com> | 2014-05-21 13:59:08 -0600 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2014-05-21 13:59:08 -0600 |
commit | e814e71ba4a6e1d7509b0f4b1928365ea650cace (patch) | |
tree | 0db6c8a94340addf1f8cab4c4b761bca8df9ab11 /block/blk-mq-cpu.c | |
parent | da41a589f52464e24ddefe76814ee35bfb07950c (diff) | |
download | lwn-e814e71ba4a6e1d7509b0f4b1928365ea650cace.tar.gz lwn-e814e71ba4a6e1d7509b0f4b1928365ea650cace.zip |
blk-mq: allow the hctx cpu hotplug notifier to return errors
Prepare this for the next patch which adds more smarts in the
plugging logic, so that we can save some memory.
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block/blk-mq-cpu.c')
-rw-r--r-- | block/blk-mq-cpu.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/block/blk-mq-cpu.c b/block/blk-mq-cpu.c index 136ef8643bba..d2c253f71b86 100644 --- a/block/blk-mq-cpu.c +++ b/block/blk-mq-cpu.c @@ -18,14 +18,18 @@ static int blk_mq_main_cpu_notify(struct notifier_block *self, { unsigned int cpu = (unsigned long) hcpu; struct blk_mq_cpu_notifier *notify; + int ret = NOTIFY_OK; raw_spin_lock(&blk_mq_cpu_notify_lock); - list_for_each_entry(notify, &blk_mq_cpu_notify_list, list) - notify->notify(notify->data, action, cpu); + list_for_each_entry(notify, &blk_mq_cpu_notify_list, list) { + ret = notify->notify(notify->data, action, cpu); + if (ret != NOTIFY_OK) + break; + } raw_spin_unlock(&blk_mq_cpu_notify_lock); - return NOTIFY_OK; + return ret; } void blk_mq_register_cpu_notifier(struct blk_mq_cpu_notifier *notifier) @@ -45,7 +49,7 @@ void blk_mq_unregister_cpu_notifier(struct blk_mq_cpu_notifier *notifier) } void blk_mq_init_cpu_notifier(struct blk_mq_cpu_notifier *notifier, - void (*fn)(void *, unsigned long, unsigned int), + int (*fn)(void *, unsigned long, unsigned int), void *data) { notifier->notify = fn; |