diff options
-rw-r--r-- | drivers/scsi/libfc/fc_fcp.c | 6 | ||||
-rw-r--r-- | include/scsi/libfc.h | 3 |
2 files changed, 5 insertions, 4 deletions
diff --git a/drivers/scsi/libfc/fc_fcp.c b/drivers/scsi/libfc/fc_fcp.c index 0e67621477a8..a808e8ef1d08 100644 --- a/drivers/scsi/libfc/fc_fcp.c +++ b/drivers/scsi/libfc/fc_fcp.c | |||
@@ -154,7 +154,7 @@ static struct fc_fcp_pkt *fc_fcp_pkt_alloc(struct fc_lport *lport, gfp_t gfp) | |||
154 | memset(fsp, 0, sizeof(*fsp)); | 154 | memset(fsp, 0, sizeof(*fsp)); |
155 | fsp->lp = lport; | 155 | fsp->lp = lport; |
156 | fsp->xfer_ddp = FC_XID_UNKNOWN; | 156 | fsp->xfer_ddp = FC_XID_UNKNOWN; |
157 | atomic_set(&fsp->ref_cnt, 1); | 157 | refcount_set(&fsp->ref_cnt, 1); |
158 | init_timer(&fsp->timer); | 158 | init_timer(&fsp->timer); |
159 | fsp->timer.data = (unsigned long)fsp; | 159 | fsp->timer.data = (unsigned long)fsp; |
160 | INIT_LIST_HEAD(&fsp->list); | 160 | INIT_LIST_HEAD(&fsp->list); |
@@ -175,7 +175,7 @@ static struct fc_fcp_pkt *fc_fcp_pkt_alloc(struct fc_lport *lport, gfp_t gfp) | |||
175 | */ | 175 | */ |
176 | static void fc_fcp_pkt_release(struct fc_fcp_pkt *fsp) | 176 | static void fc_fcp_pkt_release(struct fc_fcp_pkt *fsp) |
177 | { | 177 | { |
178 | if (atomic_dec_and_test(&fsp->ref_cnt)) { | 178 | if (refcount_dec_and_test(&fsp->ref_cnt)) { |
179 | struct fc_fcp_internal *si = fc_get_scsi_internal(fsp->lp); | 179 | struct fc_fcp_internal *si = fc_get_scsi_internal(fsp->lp); |
180 | 180 | ||
181 | mempool_free(fsp, si->scsi_pkt_pool); | 181 | mempool_free(fsp, si->scsi_pkt_pool); |
@@ -188,7 +188,7 @@ static void fc_fcp_pkt_release(struct fc_fcp_pkt *fsp) | |||
188 | */ | 188 | */ |
189 | static void fc_fcp_pkt_hold(struct fc_fcp_pkt *fsp) | 189 | static void fc_fcp_pkt_hold(struct fc_fcp_pkt *fsp) |
190 | { | 190 | { |
191 | atomic_inc(&fsp->ref_cnt); | 191 | refcount_inc(&fsp->ref_cnt); |
192 | } | 192 | } |
193 | 193 | ||
194 | /** | 194 | /** |
diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h index da5033dd8cbc..2109844be53d 100644 --- a/include/scsi/libfc.h +++ b/include/scsi/libfc.h | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/timer.h> | 23 | #include <linux/timer.h> |
24 | #include <linux/if.h> | 24 | #include <linux/if.h> |
25 | #include <linux/percpu.h> | 25 | #include <linux/percpu.h> |
26 | #include <linux/refcount.h> | ||
26 | 27 | ||
27 | #include <scsi/scsi_transport.h> | 28 | #include <scsi/scsi_transport.h> |
28 | #include <scsi/scsi_transport_fc.h> | 29 | #include <scsi/scsi_transport_fc.h> |
@@ -321,7 +322,7 @@ struct fc_seq_els_data { | |||
321 | */ | 322 | */ |
322 | struct fc_fcp_pkt { | 323 | struct fc_fcp_pkt { |
323 | spinlock_t scsi_pkt_lock; | 324 | spinlock_t scsi_pkt_lock; |
324 | atomic_t ref_cnt; | 325 | refcount_t ref_cnt; |
325 | 326 | ||
326 | /* SCSI command and data transfer information */ | 327 | /* SCSI command and data transfer information */ |
327 | u32 data_len; | 328 | u32 data_len; |