diff options
author | NeilBrown <neilb@cse.unsw.edu.au> | 2005-05-16 21:53:16 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-17 07:59:12 -0700 |
commit | 7a5febe9ffeecd1e78c5b505260ccc1ef18021b4 (patch) | |
tree | f3d61987a3f961f33a77334052805457a2ef2460 /drivers/md/multipath.c | |
parent | 29ac8e056f2016a8404edc02749d095019aa1f82 (diff) | |
download | op-kernel-dev-7a5febe9ffeecd1e78c5b505260ccc1ef18021b4.zip op-kernel-dev-7a5febe9ffeecd1e78c5b505260ccc1ef18021b4.tar.gz |
[PATCH] md: set the unplug_fn and issue_flush_fn for md devices *after* committed to creation
We we set the too early, they may still be in place and possibly get called
even though the array didn't get set up properly.
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/md/multipath.c')
-rw-r--r-- | drivers/md/multipath.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/md/multipath.c b/drivers/md/multipath.c index 4e4bfde..2ae2d70 100644 --- a/drivers/md/multipath.c +++ b/drivers/md/multipath.c @@ -462,10 +462,6 @@ static int multipath_run (mddev_t *mddev) } memset(conf->multipaths, 0, sizeof(struct multipath_info)*mddev->raid_disks); - mddev->queue->unplug_fn = multipath_unplug; - - mddev->queue->issue_flush_fn = multipath_issue_flush; - conf->working_disks = 0; ITERATE_RDEV(mddev,rdev,tmp) { disk_idx = rdev->raid_disk; @@ -528,6 +524,10 @@ static int multipath_run (mddev_t *mddev) * Ok, everything is just fine now */ mddev->array_size = mddev->size; + + mddev->queue->unplug_fn = multipath_unplug; + mddev->queue->issue_flush_fn = multipath_issue_flush; + return 0; out_free_conf: |