On Mon, Feb 03, 2025 at 07:06:15PM +1030, Qu Wenruo wrote: > Thus my current plan to fix it is to make btrfs to skip csum for direct IO. > This will make btrfs to align with EXT4/XFS behavior, without the complex > AS_STABLE_FLAGS passing (and there is no way for user space to probe that > flag IIRC). > > But that will break the current per-inode level NODATASUM setting, and will > cause some incompatibility (a new incompat flag needed, extra handling if no > data csum found, extra fsck support etc). I don't think simply removing the checksums when using direct I/O is a good idea as it unexpectedly reduces the protection envelope. The best (or least bad) fix would be to simply not support actually direct I/O without NODATASUM and fall back to buffered I/O (preferably the new uncached variant from Jens) unless explicitly overridden.