[SCSI] fix scsi_setup_command_freelist failure path race
Looks like that host_cmd_pool_mutex are necessary here. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
210ba1d172
commit
166a72878f
@ -319,17 +319,16 @@ int scsi_setup_command_freelist(struct Scsi_Host *shost)
|
||||
GFP_KERNEL | shost->cmd_pool->gfp_mask);
|
||||
if (!cmd)
|
||||
goto fail2;
|
||||
list_add(&cmd->list, &shost->free_list);
|
||||
list_add(&cmd->list, &shost->free_list);
|
||||
return 0;
|
||||
|
||||
fail2:
|
||||
mutex_lock(&host_cmd_pool_mutex);
|
||||
if (!--pool->users)
|
||||
kmem_cache_destroy(pool->slab);
|
||||
return -ENOMEM;
|
||||
fail:
|
||||
mutex_unlock(&host_cmd_pool_mutex);
|
||||
return -ENOMEM;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user