Hi! On Mon 15-06-20 18:53:11, Filipe Manana wrote: > I found out a bug in btrfs where a RWF_NOWRITE does not fail if we > write to a range that starts with an extent followed by holes (since > it requires allocating extent(s)). > > When writing a test case for fstests I noticed xfs fails with -EAGAIN > as expected, but ext4 succeeds just like btrfs currently does: > > mkfs.ext4 -F /dev/sdb > mount /dev/sdb /mnt > > xfs_io -f -d -c "pwrite -S 0xab -b 256K 0 256K" /mnt/bar > xfs_io -c "fpunch 64K 64K" /mnt/bar > sync > xfs_io -d -c "pwrite -N -V 1 -b 128K -S 0xfe 0 128K" /mnt/bar > > Is this a known bug? Or is there a technical reason that makes it too > expensive to check no extents will need to be allocated? Thanks for report! This is actually a fallout of the conversion of ext4 direct IO code to iomap (commit 378f32bab37 "ext4: introduce direct I/O write using iomap infrastructure"). I'll send a fix. Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR