git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.5.x5
[linux-2.6.git]
/
drivers
/
md
/
raid0.c
diff --git
a/drivers/md/raid0.c
b/drivers/md/raid0.c
index
ae45ae9
..
e7d934e
100644
(file)
--- a/
drivers/md/raid0.c
+++ b/
drivers/md/raid0.c
@@
-48,18
+48,14
@@
static int raid0_issue_flush(request_queue_t *q, struct gendisk *disk,
mdk_rdev_t **devlist = conf->strip_zone[0].dev;
int i, ret = 0;
mdk_rdev_t **devlist = conf->strip_zone[0].dev;
int i, ret = 0;
- for (i=0; i<mddev->raid_disks; i++) {
+ for (i=0; i<mddev->raid_disks
&& ret == 0
; i++) {
struct block_device *bdev = devlist[i]->bdev;
request_queue_t *r_queue = bdev_get_queue(bdev);
struct block_device *bdev = devlist[i]->bdev;
request_queue_t *r_queue = bdev_get_queue(bdev);
- if (!r_queue->issue_flush_fn)
{
+ if (!r_queue->issue_flush_fn)
ret = -EOPNOTSUPP;
ret = -EOPNOTSUPP;
- break;
- }
-
- ret =r_queue->issue_flush_fn(r_queue, bdev->bd_disk, error_sector);
- if (ret)
- break;
+ else
+ ret = r_queue->issue_flush_fn(r_queue, bdev->bd_disk, error_sector);
}
return ret;
}
}
return ret;
}
@@
-389,6
+385,7
@@
static int raid0_stop (mddev_t *mddev)
{
raid0_conf_t *conf = mddev_to_conf(mddev);
{
raid0_conf_t *conf = mddev_to_conf(mddev);
+ blk_sync_queue(mddev->queue); /* the unplug fn references 'conf'*/
kfree (conf->hash_table);
conf->hash_table = NULL;
kfree (conf->strip_zone);
kfree (conf->hash_table);
conf->hash_table = NULL;
kfree (conf->strip_zone);