]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
bluestore/BlueFS: fix bytes_written_slow counter with aio_write 66355/head
authorchungfengz <chungfengz@synology.com>
Thu, 6 Nov 2025 09:46:51 +0000 (09:46 +0000)
committerKonstantin Shalygin <k0ste@k0ste.ru>
Fri, 21 Nov 2025 12:41:31 +0000 (19:41 +0700)
The bytes_written_slow performance counter was incorrectly reporting
0 when using async I/O.

When aio_write() is called with a bufferlist, it uses claim_append()
to transfer ownership of the buffer to the aio structure, leaving the
source bufferlist empty. Using t.length() after aio_write() returns 0
instead of the actual bytes written.

Fix by using the pre-calculated x_len value which contains the actual
write size and is not affected by the buffer ownership transfer.

Fixes: https://tracker.ceph.com/issues/73735
Signed-off-by: chungfengz <chungfengz@synology.com>
(cherry picked from commit 5aa5b03932c4345343e5263431914c2484bd2b14)

src/os/bluestore/BlueFS.cc

index b27e22abd3379581ec10fb2be091beb3d9fc120a..f104df4d59352586cd011596359671b251996852 100644 (file)
@@ -4002,7 +4002,7 @@ int BlueFS::_flush_data(FileWriter *h, uint64_t offset, uint64_t length, bool bu
     }
     h->dirty_devs[p->bdev] = true;
     if (p->bdev == BDEV_SLOW) {
-      bytes_written_slow += t.length();
+      bytes_written_slow += x_len;
     }
 
     bloff += x_len;