diff options
author | Chandra Seetharaman <sekharan@us.ibm.com> | 2009-10-21 12:22:46 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-12-04 13:00:46 -0500 |
commit | 3ae31f6a7b6e442fc6a92f29330fbad230dc3992 (patch) | |
tree | 9ca152ac3412de2917c0486b64898e6a75f853d9 /drivers/md | |
parent | 42e62a74377bcbb526565a31aa18da8f712b93ee (diff) |
[SCSI] scsi_dh: Change the scsidh_activate interface to be asynchronous
Make scsi_dh_activate() function asynchronous, by taking in two additional
parameters, one is the callback function and the other is the data to call
the callback function with.
Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/dm-mpath.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c index 32d0b878eccc..dce971dbdfa3 100644 --- a/drivers/md/dm-mpath.c +++ b/drivers/md/dm-mpath.c | |||
@@ -1116,8 +1116,9 @@ static int pg_init_limit_reached(struct multipath *m, struct pgpath *pgpath) | |||
1116 | return limit_reached; | 1116 | return limit_reached; |
1117 | } | 1117 | } |
1118 | 1118 | ||
1119 | static void pg_init_done(struct dm_path *path, int errors) | 1119 | static void pg_init_done(void *data, int errors) |
1120 | { | 1120 | { |
1121 | struct dm_path *path = data; | ||
1121 | struct pgpath *pgpath = path_to_pgpath(path); | 1122 | struct pgpath *pgpath = path_to_pgpath(path); |
1122 | struct priority_group *pg = pgpath->pg; | 1123 | struct priority_group *pg = pgpath->pg; |
1123 | struct multipath *m = pg->m; | 1124 | struct multipath *m = pg->m; |
@@ -1183,12 +1184,11 @@ static void pg_init_done(struct dm_path *path, int errors) | |||
1183 | 1184 | ||
1184 | static void activate_path(struct work_struct *work) | 1185 | static void activate_path(struct work_struct *work) |
1185 | { | 1186 | { |
1186 | int ret; | ||
1187 | struct pgpath *pgpath = | 1187 | struct pgpath *pgpath = |
1188 | container_of(work, struct pgpath, activate_path); | 1188 | container_of(work, struct pgpath, activate_path); |
1189 | 1189 | ||
1190 | ret = scsi_dh_activate(bdev_get_queue(pgpath->path.dev->bdev)); | 1190 | scsi_dh_activate(bdev_get_queue(pgpath->path.dev->bdev), |
1191 | pg_init_done(&pgpath->path, ret); | 1191 | pg_init_done, &pgpath->path); |
1192 | } | 1192 | } |
1193 | 1193 | ||
1194 | /* | 1194 | /* |