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/raid6main.c | |
parent | 29ac8e056f2016a8404edc02749d095019aa1f82 (diff) | |
download | talos-op-linux-7a5febe9ffeecd1e78c5b505260ccc1ef18021b4.tar.gz talos-op-linux-7a5febe9ffeecd1e78c5b505260ccc1ef18021b4.zip |
[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/raid6main.c')
-rw-r--r-- | drivers/md/raid6main.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/md/raid6main.c b/drivers/md/raid6main.c index 8a33f351e092..908edd78a792 100644 --- a/drivers/md/raid6main.c +++ b/drivers/md/raid6main.c @@ -1779,9 +1779,6 @@ static int run (mddev_t *mddev) atomic_set(&conf->active_stripes, 0); atomic_set(&conf->preread_active_stripes, 0); - mddev->queue->unplug_fn = raid6_unplug_device; - mddev->queue->issue_flush_fn = raid6_issue_flush; - PRINTK("raid6: run(%s) called.\n", mdname(mddev)); ITERATE_RDEV(mddev,rdev,tmp) { @@ -1895,6 +1892,9 @@ static int run (mddev_t *mddev) /* Ok, everything is just fine now */ mddev->array_size = mddev->size * (mddev->raid_disks - 2); + + mddev->queue->unplug_fn = raid6_unplug_device; + mddev->queue->issue_flush_fn = raid6_issue_flush; return 0; abort: if (conf) { |