On Wed, Mar 10, 2021 at 5:18 PM Martin Raiber <[email protected]> wrote:
>
> Hi,
>
> I have this in a btrfs directory. Linux kernel 5.10.16, no errors in dmesg,
> no scrub errors:
>
> ls -lh
> total 19G
> -rwxr-x--- 1 root root 783 Mar 10 14:56 disk_config.dat
> -rwxr-x--- 1 root root 783 Mar 10 14:56 disk_config.dat
> -rwxr-x--- 1 root root 783 Mar 10 14:56 disk_config.dat
> -rwxr-x--- 1 root root 783 Mar 10 14:56 disk_config.dat
> -rwxr-x--- 1 root root 783 Mar 10 14:56 disk_config.dat
> -rwxr-x--- 1 root root 783 Mar 10 14:56 disk_config.dat
> -rwxr-x--- 1 root root 783 Mar 10 14:56 disk_config.dat
> -rwxr-x--- 1 root root 783 Mar 10 14:56 disk_config.dat
> -rwxr-x--- 1 root root 783 Mar 10 14:56 disk_config.dat
> -rwxr-x--- 1 root root 783 Mar 10 14:56 disk_config.dat
> -rwxr-x--- 1 root root 783 Mar 10 14:56 disk_config.dat
> -rwxr-x--- 1 root root 783 Mar 10 14:56 disk_config.dat
> -rwxr-x--- 1 root root 783 Mar 10 14:56 disk_config.dat
> -rwxr-x--- 1 root root 783 Mar 10 14:56 disk_config.dat
> ...
>
> disk_config.dat gets written to using fsync rename ( write new version to
> disk_config.dat.new, fsync disk_config.dat.new, then rename to
> disk_config.dat -- it is missing the parent directory fsync).
That's interesting.
I've just tried something like the following on 5.10.15 (and 5.12-rc2):
create disk_config.dat
sync
for ((i = 0; i < 10; i++)); do
create disk_config.dat.new
write to disk_config.dat.new
fsync disk_config.dat.new
mv -f disk_config.dat.new disk_config.dat
done
<power fail>
mount fs
list directory
I only get one file with the name disk_config.dat and one file with
the name disk_config.dat.new.
File disk_config.dat has the data written at iteration 9 and
disk_config.dat.new has the data written at iteration 10 (expected).
You haven't mentioned, but I suppose you had a power failure / unclean
shutdown somewhere after an fsync, right?
Is this something you can reproduce at will?
>
> So far no negative consequences... (except that programs might get confused).
>
> echo 3 > /proc/sys/vm/drop_caches doesn't help.
>
> Regards,
> Martin Raiber
>
--
Filipe David Manana,
“Whether you think you can, or you think you can't — you're right.”