> > > > How did you finally end up testing the error case. Want to simualate > > > > error aritificially and test it. > > > > > > I used the blockdev error injection layer. It only works with ext2, because > ext4 (and other filesystems) will error and go into readonly. > > dd if=/dev/zero of=/tmp/loop bs=1M count=100 > losetup /dev/loop8 /tmp/loop > mkfs.ext2 /dev/loop8 > mount -o errors=continue /dev/loop8 /mnt/loop/ > mkdir -p /mnt/loop/{upperdir,workdir} > mount -t overlay -o volatile,index=off,lowerdir=/root/lowerdir,upperdir=/mnt/loop/upperdir,workdir=/mnt/loop/workdir none /mnt/foo/ > echo 1 > /sys/block/loop8/make-it-fail > echo 100 > /sys/kernel/debug/fail_make_request/probability > echo 1 > /sys/kernel/debug/fail_make_request/times > dd if=/dev/zero of=/mnt/foo/zero bs=1M count=1 > sync > > I tried to get XFS tests working, but I was unable to get a simpler repro than > above. This is also easy enough to do with a simple kernel module. Maybe it'd be > neat to be able to inject in errseq increments via the fault injection API one > day? I have no idea what the VFS's approach here is. > Here you go. A simple xfstest: https://github.com/amir73il/xfstests/commits/ovl-volatile It passes with check -overlay on xfs/ext4 and it fails if you uncomment the -o volatile mount option Just move it to the tests/overlay/ tests and add syncfs (I wasn't sure about how to do that). Thanks, Amir.