summaryrefslogtreecommitdiffstats
path: root/drivers/md/md.h
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.com>2017-06-05 16:05:13 +1000
committerShaohua Li <shli@fb.com>2017-06-05 16:04:35 -0700
commita415c0f10627913793709ddb75add09d2ea334dc (patch)
treeb54d1e13bae320a52efe48d316c5e10ae0ee53dd /drivers/md/md.h
parent3c2993b8c6143d8a5793746a54eba8f86f95240f (diff)
downloadlinux-stable-a415c0f10627913793709ddb75add09d2ea334dc.tar.gz
linux-stable-a415c0f10627913793709ddb75add09d2ea334dc.tar.bz2
linux-stable-a415c0f10627913793709ddb75add09d2ea334dc.zip
md: initialise ->writes_pending in personality modules.
The new per-cpu counter for writes_pending is initialised in md_alloc(), which is not called by dm-raid. So dm-raid fails when md_write_start() is called. Move the initialization to the personality modules that need it. This way it is always initialised when needed, but isn't unnecessarily initialized (requiring memory allocation) when the personality doesn't use writes_pending. Reported-by: Heinz Mauelshagen <heinzm@redhat.com> Fixes: 4ad23a976413 ("MD: use per-cpu counter for writes_pending") Signed-off-by: NeilBrown <neilb@suse.com> Signed-off-by: Shaohua Li <shli@fb.com>
Diffstat (limited to 'drivers/md/md.h')
-rw-r--r--drivers/md/md.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/md/md.h b/drivers/md/md.h
index 11f15146ce51..0fa1de42c42b 100644
--- a/drivers/md/md.h
+++ b/drivers/md/md.h
@@ -648,6 +648,7 @@ extern void md_unregister_thread(struct md_thread **threadp);
extern void md_wakeup_thread(struct md_thread *thread);
extern void md_check_recovery(struct mddev *mddev);
extern void md_reap_sync_thread(struct mddev *mddev);
+extern int mddev_init_writes_pending(struct mddev *mddev);
extern void md_write_start(struct mddev *mddev, struct bio *bi);
extern void md_write_inc(struct mddev *mddev, struct bio *bi);
extern void md_write_end(struct mddev *mddev);