[dm-devel] [PATCH v2 1/5] dm mpath: only try to load the scsi_dh module if the scsi_dh doesn't exist
Chandra Seetharaman
sekharan at us.ibm.com
Wed May 9 22:54:20 UTC 2012
Reviewed-by: Chandra Seetharaman <sekharan at us.ibm.com>
On Tue, 2012-05-08 at 17:56 -0400, Mike Snitzer wrote:
> There have been reports of multipath table loads hanging due to
> __request_module hanging (for some unknown reason).
>
> More often than not, the scsi_dh is already available and there is no
> need to request_module().
>
> Reported-by: Ben Marzinski <bmarzins at redhat.com>
> Signed-off-by: Mike Snitzer <snitzer at redhat.com>
> ---
> drivers/md/dm-mpath.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
> index 922a338..754f38f 100644
> --- a/drivers/md/dm-mpath.c
> +++ b/drivers/md/dm-mpath.c
> @@ -718,8 +718,8 @@ static int parse_hw_handler(struct dm_arg_set *as, struct multipath *m)
> return 0;
>
> m->hw_handler_name = kstrdup(dm_shift_arg(as), GFP_KERNEL);
> - request_module("scsi_dh_%s", m->hw_handler_name);
> - if (scsi_dh_handler_exist(m->hw_handler_name) == 0) {
> + if (!try_then_request_module(scsi_dh_handler_exist(m->hw_handler_name),
> + "scsi_dh_%s", m->hw_handler_name)) {
> ti->error = "unknown hardware handler type";
> ret = -EINVAL;
> goto fail;
More information about the dm-devel
mailing list