The order I see is:

rename() currentsyslog archivesyslog
openat() currentsyslog
fsync() currentsyslog
fsync() dir of currentsyslog
fallocate() currentsyslog

repeats for the user log

Where I get lost is at

10:04:18 ioctl(103, FS_IOC_SETFLAGS, 0x7ffc6429954c) = 0
 > /usr/lib64/libc-2.29.9000.so(ioctl+0xb) [0xf736b]
 > /usr/lib/systemd/libsystemd-shared-242.so(chattr_fd+0xe0) [0x11da20]

I don't know if that's doing 'chattr -C' on the renamed, now archived,
log. But right after that is

10:04:18 ioctl(103, BTRFS_IOC_DEFRAG)   = 0
 > /usr/lib64/libc-2.29.9000.so(ioctl+0xb) [0xf736b]
 > /usr/lib/systemd/libsystemd-shared-242.so(btrfs_defrag_fd+0x23) [0x130803]

So even if -C can't really succeed on a non-empty file, maybe it
somehow allows defrag to compress on a filesystem that's mounted with
compress option?

Chris Murphy

Reply via email to