> On Mon, 26 Jun 2023, Mikulas Patocka wrote: > > > The BLKFLSBUF ioctl doesn't send the flush bio to the block device, thus > > flushed data may be lurking in the disk cache and they may not be really > > flushed to the stable storage. > > > > This patch adds the call to blkdev_issue_flush to blkdev_flushbuf. > > Umm, why? This is an ioctl no one should be using, and we certainly > should not add new functionality to it. Can you explain what you're > trying to do here? Marc Smith reported a bug where he wrote to the dm-writecache target using O_DIRECT, then reset the machine without proper shutdown and the freshly written data were lost. It turned out that he didn't use the fsync or fdatasync syscall (and dm-writecache makes its metadata persistent on a FLUSH bio). When I was analyzing this issue, it turned out that there is no easy way how to send the FLUSH bio to a block device from a command line. The sync command synchronizes only filesystems, it doesn't flush cache for unmounted block devices (do you think that it should flush block devices too?). The "blockdev --flushbufs" command also doesn't send the FLUSH bio, but I would expect it to send it. Without sending the FLUSH bio, "blockdev --flushbufs" doesn't really guarantee anything. Mikulas