diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-09 22:42:25 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-09 22:42:25 -0500 |
commit | 382f51fe2f2276344d8a21447656778cdf6583b6 (patch) | |
tree | c2836a2cca4126c9c026ce5aa2fdf9f1c8ccded6 /drivers/md | |
parent | 701791cc3c8fc6dd83f6ec8af7e2541b4a316606 (diff) | |
parent | 54987386ee3790f3900de4df2ed4deb0e18dfc9f (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (222 commits)
[SCSI] zfcp: Remove flag ZFCP_STATUS_FSFREQ_TMFUNCNOTSUPP
[SCSI] zfcp: Activate fc4s attributes for zfcp in FC transport class
[SCSI] zfcp: Block scsi_eh thread for rport state BLOCKED
[SCSI] zfcp: Update FSF error reporting
[SCSI] zfcp: Improve ELS ADISC handling
[SCSI] zfcp: Simplify handling of ct and els requests
[SCSI] zfcp: Remove ZFCP_DID_MASK
[SCSI] zfcp: Move WKA port to zfcp FC code
[SCSI] zfcp: Use common code definitions for FC CT structs
[SCSI] zfcp: Use common code definitions for FC ELS structs
[SCSI] zfcp: Update FCP protocol related code
[SCSI] zfcp: Dont fail SCSI commands when transitioning to blocked fc_rport
[SCSI] zfcp: Assign scheduled work to driver queue
[SCSI] zfcp: Remove STATUS_COMMON_REMOVE flag as it is not required anymore
[SCSI] zfcp: Implement module unloading
[SCSI] zfcp: Merge trace code for fsf requests in one function
[SCSI] zfcp: Access ports and units with container_of in sysfs code
[SCSI] zfcp: Remove suspend callback
[SCSI] zfcp: Remove global config_mutex
[SCSI] zfcp: Replace local reference counting with common kref
...
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 | /* |