On Wed, Mar 10, 2021 at 5:18 PM Martin Raiber <mar...@urbackup.org> 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.”

Reply via email to