From e8684f28de4c6a3ff63dadcc6d993c038e93f259 Mon Sep 17 00:00:00 2001 From: Hugh Dickins Date: Sun, 6 Apr 2008 23:56:57 +0100 Subject: [PATCH] --- yaml --- r: 88159 b: refs/heads/master c: 164fc5dcd6a1026fc713f5c63fad899aa484888c h: refs/heads/master i: 88157: 74ff8f88f4546474bccfd7cdaa3d53242795f930 88155: c40e22a22ee6649c1d46609eba32cb1f86c78541 88151: 0c1d3abe0e68917ca524be412b6e7750599739f2 88143: 25ade8f75b8e3b5c49c8da3b2bb403b321928507 88127: ab9c127df96d090ca4a944f4d8ec0634416c4a5a v: v3 --- [refs] | 2 +- trunk/drivers/scsi/scsi.c | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index c4595d8c193f..273079b9c24a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 797de7bdb253624c16144f40b72ec65d63cdcca2 +refs/heads/master: 164fc5dcd6a1026fc713f5c63fad899aa484888c diff --git a/trunk/drivers/scsi/scsi.c b/trunk/drivers/scsi/scsi.c index e5c6f6af8765..c78b836f59dd 100644 --- a/trunk/drivers/scsi/scsi.c +++ b/trunk/drivers/scsi/scsi.c @@ -181,6 +181,18 @@ struct scsi_cmnd *__scsi_get_command(struct Scsi_Host *shost, gfp_t gfp_mask) cmd = kmem_cache_alloc(shost->cmd_pool->cmd_slab, gfp_mask | shost->cmd_pool->gfp_mask); + if (likely(cmd)) { + buf = kmem_cache_alloc(shost->cmd_pool->sense_slab, + gfp_mask | shost->cmd_pool->gfp_mask); + if (likely(buf)) { + memset(cmd, 0, sizeof(*cmd)); + cmd->sense_buffer = buf; + } else { + kmem_cache_free(shost->cmd_pool->cmd_slab, cmd); + cmd = NULL; + } + } + if (unlikely(!cmd)) { unsigned long flags; @@ -197,16 +209,6 @@ struct scsi_cmnd *__scsi_get_command(struct Scsi_Host *shost, gfp_t gfp_mask) memset(cmd, 0, sizeof(*cmd)); cmd->sense_buffer = buf; } - } else { - buf = kmem_cache_alloc(shost->cmd_pool->sense_slab, - gfp_mask | shost->cmd_pool->gfp_mask); - if (likely(buf)) { - memset(cmd, 0, sizeof(*cmd)); - cmd->sense_buffer = buf; - } else { - kmem_cache_free(shost->cmd_pool->cmd_slab, cmd); - cmd = NULL; - } } return cmd;