mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 08:25:20 +09:00
When a btrfs partition is configured with both Compression= and CopyFiles=, we need to ensure files are copied during filesystem creation using mkfs.btrfs --rootdir, rather than copying files afterwards via loop device mounting. This is required because mkfs.btrfs can only apply compression settings when files are provided via --rootdir during filesystem creation. If we format the filesystem first and then mount it to copy files, the compression setting is meaningless. Modify the partition_needs_populate() condition to force the --rootdir code path when the format is btrfs and compression is requested. This ensures that partition_populate_directory() runs and creates a temporary directory with the files, which is then passed to make_filesystem() as the root parameter, allowing mkfs.btrfs to create the filesystem with compression applied. Fixes: https://github.com/systemd/systemd/issues/39584