diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2007-09-18 10:17:28 (GMT) |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2007-10-16 09:24:44 (GMT) |
commit | 2a7c59e79ce060c746358b08521de0acbca6a4f1 (patch) | |
tree | 710f46e7fb039c597bb3c74ad23db54a4e575ccf /drivers/scsi/scsi_lib.c | |
parent | 8889e3c129780cdbe15fed3c366ba3aa3026684d (diff) | |
download | linux-2a7c59e79ce060c746358b08521de0acbca6a4f1.tar.xz |
remove sglist_len
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'drivers/scsi/scsi_lib.c')
-rw-r--r-- | drivers/scsi/scsi_lib.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 1a7e8d8..aac8a02 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -769,10 +769,8 @@ struct scatterlist *scsi_alloc_sgtable(struct scsi_cmnd *cmd, gfp_t gfp_mask) /* * first loop through, set initial index and return value */ - if (!ret) { - cmd->sglist_len = index; + if (!ret) ret = sgl; - } /* * chain previous sglist, if any. we know the previous @@ -825,8 +823,6 @@ void scsi_free_sgtable(struct scsi_cmnd *cmd) struct scatterlist *sgl = cmd->request_buffer; struct scsi_host_sg_pool *sgp; - BUG_ON(cmd->sglist_len >= SG_MEMPOOL_NR); - /* * if this is the biggest size sglist, check if we have * chained parts we need to free @@ -861,9 +857,10 @@ void scsi_free_sgtable(struct scsi_cmnd *cmd) * Restore original, will be freed below */ sgl = cmd->request_buffer; - } + sgp = scsi_sg_pools + SG_MEMPOOL_NR - 1; + } else + sgp = scsi_sg_pools + scsi_sgtable_index(cmd->__use_sg); - sgp = scsi_sg_pools + cmd->sglist_len; mempool_free(sgl, sgp->pool); } |