git: 4c2ea6e26d21 - stable/14 - da: Update trim stats for WRITE SAME and ATA TRIM

From: Warner Losh <imp_at_FreeBSD.org>
Date: Mon, 20 May 2024 20:06:39 UTC
The branch stable/14 has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=4c2ea6e26d210d07d29c845addeb0c2a103f5904

commit 4c2ea6e26d210d07d29c845addeb0c2a103f5904
Author:     Matthew Grooms <mgrooms@shrew.net>
AuthorDate: 2024-05-03 14:41:05 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2024-05-20 19:23:40 +0000

    da: Update trim stats for WRITE SAME and ATA TRIM
    
    The scsi UNMAP path updated trim stats in the da sysctl, but the ATA
    TRIM passthru and WRITE SAME paths did not. Add code so they do.
    
    PR: 277637
    Reviewed by: imp (tweaked WS path to update ranges)
    
    (cherry picked from commit 12117d0e9314d1706508386c1c49ace2de578b31)
---
 sys/cam/scsi/scsi_da.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c
index ae691520e157..5b1cc7314984 100644
--- a/sys/cam/scsi/scsi_da.c
+++ b/sys/cam/scsi/scsi_da.c
@@ -4209,6 +4209,9 @@ da_delete_trim(struct cam_periph *periph, union ccb *ccb, struct bio *bp)
 		      da_default_timeout * 1000);
 	ccb->ccb_h.ccb_state = DA_CCB_DELETE;
 	ccb->ccb_h.flags |= CAM_UNLOCKED;
+	softc->trim_count++;
+	softc->trim_ranges += ranges;
+	softc->trim_lbas += block_count;
 	cam_iosched_submit_trim(softc->cam_iosched);
 }
 
@@ -4269,6 +4272,9 @@ da_delete_ws(struct cam_periph *periph, union ccb *ccb, struct bio *bp)
 			da_default_timeout * 1000);
 	ccb->ccb_h.ccb_state = DA_CCB_DELETE;
 	ccb->ccb_h.flags |= CAM_UNLOCKED;
+	softc->trim_count++;
+	softc->trim_ranges++;
+	softc->trim_lbas += count;
 	cam_iosched_submit_trim(softc->cam_iosched);
 }