mirror of https://gitee.com/openkylin/linux.git
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>
This commit is contained in:
parent
ccc6d70460
commit
7ef539c88d
|
@ -1134,12 +1134,6 @@ static void fnic_fcpio_itmf_cmpl_handler(struct fnic *fnic,
|
||||||
if (hdr_status == FCPIO_IO_NOT_FOUND)
|
if (hdr_status == FCPIO_IO_NOT_FOUND)
|
||||||
CMD_ABTS_STATUS(sc) = FCPIO_SUCCESS;
|
CMD_ABTS_STATUS(sc) = FCPIO_SUCCESS;
|
||||||
|
|
||||||
atomic64_dec(&fnic_stats->io_stats.active_ios);
|
|
||||||
if (atomic64_read(&fnic->io_cmpl_skip))
|
|
||||||
atomic64_dec(&fnic->io_cmpl_skip);
|
|
||||||
else
|
|
||||||
atomic64_inc(&fnic_stats->io_stats.io_completions);
|
|
||||||
|
|
||||||
if (!(CMD_FLAGS(sc) & (FNIC_IO_ABORTED | FNIC_IO_DONE)))
|
if (!(CMD_FLAGS(sc) & (FNIC_IO_ABORTED | FNIC_IO_DONE)))
|
||||||
atomic64_inc(&misc_stats->no_icmnd_itmf_cmpls);
|
atomic64_inc(&misc_stats->no_icmnd_itmf_cmpls);
|
||||||
|
|
||||||
|
@ -1180,6 +1174,11 @@ static void fnic_fcpio_itmf_cmpl_handler(struct fnic *fnic,
|
||||||
(((u64)CMD_FLAGS(sc) << 32) |
|
(((u64)CMD_FLAGS(sc) << 32) |
|
||||||
CMD_STATE(sc)));
|
CMD_STATE(sc)));
|
||||||
sc->scsi_done(sc);
|
sc->scsi_done(sc);
|
||||||
|
atomic64_dec(&fnic_stats->io_stats.active_ios);
|
||||||
|
if (atomic64_read(&fnic->io_cmpl_skip))
|
||||||
|
atomic64_dec(&fnic->io_cmpl_skip);
|
||||||
|
else
|
||||||
|
atomic64_inc(&fnic_stats->io_stats.io_completions);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1969,6 +1968,11 @@ int fnic_abort_cmd(struct scsi_cmnd *sc)
|
||||||
/* Call SCSI completion function to complete the IO */
|
/* Call SCSI completion function to complete the IO */
|
||||||
sc->result = (DID_ABORT << 16);
|
sc->result = (DID_ABORT << 16);
|
||||||
sc->scsi_done(sc);
|
sc->scsi_done(sc);
|
||||||
|
atomic64_dec(&fnic_stats->io_stats.active_ios);
|
||||||
|
if (atomic64_read(&fnic->io_cmpl_skip))
|
||||||
|
atomic64_dec(&fnic->io_cmpl_skip);
|
||||||
|
else
|
||||||
|
atomic64_inc(&fnic_stats->io_stats.io_completions);
|
||||||
}
|
}
|
||||||
|
|
||||||
fnic_abort_cmd_end:
|
fnic_abort_cmd_end:
|
||||||
|
|
Loading…
Reference in New Issue