summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/fnic
diff options
context:
space:
mode:
authorSatish Kharat <satishkh@cisco.com>2017-02-28 19:14:56 -0500
committerMartin K. Petersen <martin.petersen@oracle.com>2017-03-23 09:57:23 -0400
commit7ef539c88d7d394410d547c9f082d477093a2a22 (patch)
treea54f6349521319254356594443cc1c98405f0cd9 /drivers/scsi/fnic
parentccc6d704602b01f6ce48abdea53736db88c5470c (diff)
scsi: fnic: Fix for "Number of Active IOs" in fnicstats becoming negative
Fixing the IO stats update (Active IOs and IO completion) to prevent "Number of Active IOs" from becoming negative in the fnistats output. Signed-off-by: Satish Kharat <satishkh@cisco.com> Signed-off-by: Sesidhar Baddela <sebaddel@cisco.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/fnic')
-rw-r--r--drivers/scsi/fnic/fnic_scsi.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/scsi/fnic/fnic_scsi.c b/drivers/scsi/fnic/fnic_scsi.c
index 5e694a591c9d..0650911929fd 100644
--- a/drivers/scsi/fnic/fnic_scsi.c
+++ b/drivers/scsi/fnic/fnic_scsi.c
@@ -1134,12 +1134,6 @@ static void fnic_fcpio_itmf_cmpl_handler(struct fnic *fnic,
1134 if (hdr_status == FCPIO_IO_NOT_FOUND) 1134 if (hdr_status == FCPIO_IO_NOT_FOUND)
1135 CMD_ABTS_STATUS(sc) = FCPIO_SUCCESS; 1135 CMD_ABTS_STATUS(sc) = FCPIO_SUCCESS;
1136 1136
1137 atomic64_dec(&fnic_stats->io_stats.active_ios);
1138 if (atomic64_read(&fnic->io_cmpl_skip))
1139 atomic64_dec(&fnic->io_cmpl_skip);
1140 else
1141 atomic64_inc(&fnic_stats->io_stats.io_completions);
1142
1143 if (!(CMD_FLAGS(sc) & (FNIC_IO_ABORTED | FNIC_IO_DONE))) 1137 if (!(CMD_FLAGS(sc) & (FNIC_IO_ABORTED | FNIC_IO_DONE)))
1144 atomic64_inc(&misc_stats->no_icmnd_itmf_cmpls); 1138 atomic64_inc(&misc_stats->no_icmnd_itmf_cmpls);
1145 1139
@@ -1180,6 +1174,11 @@ static void fnic_fcpio_itmf_cmpl_handler(struct fnic *fnic,
1180 (((u64)CMD_FLAGS(sc) << 32) | 1174 (((u64)CMD_FLAGS(sc) << 32) |
1181 CMD_STATE(sc))); 1175 CMD_STATE(sc)));
1182 sc->scsi_done(sc); 1176 sc->scsi_done(sc);
1177 atomic64_dec(&fnic_stats->io_stats.active_ios);
1178 if (atomic64_read(&fnic->io_cmpl_skip))
1179 atomic64_dec(&fnic->io_cmpl_skip);
1180 else
1181 atomic64_inc(&fnic_stats->io_stats.io_completions);
1183 } 1182 }
1184 } 1183 }
1185 1184
@@ -1969,6 +1968,11 @@ int fnic_abort_cmd(struct scsi_cmnd *sc)
1969 /* Call SCSI completion function to complete the IO */ 1968 /* Call SCSI completion function to complete the IO */
1970 sc->result = (DID_ABORT << 16); 1969 sc->result = (DID_ABORT << 16);
1971 sc->scsi_done(sc); 1970 sc->scsi_done(sc);
1971 atomic64_dec(&fnic_stats->io_stats.active_ios);
1972 if (atomic64_read(&fnic->io_cmpl_skip))
1973 atomic64_dec(&fnic->io_cmpl_skip);
1974 else
1975 atomic64_inc(&fnic_stats->io_stats.io_completions);
1972 } 1976 }
1973 1977
1974fnic_abort_cmd_end: 1978fnic_abort_cmd_end: