Files
systemd/test
dongshengyuan 2ff5250ae7 homework: skip LUKS fallocate for metadata operations
UpdateHomeEx needs to set up the home temporarily so that it can
write the refreshed identity records. Inspect and password changes use
the same setup path for metadata-oriented work.

For LUKS homes with luksDiscard=no, home_setup_luks() fully
allocates the backing image while setting it up. If diskSize=max was
previously written to a sparse image, this can fail with ENOSPC before
the user can disable auto-resize mode again.

Add a setup flag that lets metadata operations skip the full-image
fallocate step. Real create, activate, and resize paths keep the
existing allocation behavior.

Before, reproduced on Ubuntu 26.04 with /home on tmpfs:

  homectl create reprohomed \
          --storage=luks \
          --fs-type=btrfs \
          --disk-size=300M \
          --auto-resize-mode=shrink-and-grow \
          --luks-discard=no
  homectl update reprohomed --disk-size=max
  dd if=/dev/zero of=/var/tmp/homed-repro/filler bs=1M count=500
  systemctl restart systemd-homed.service
  homectl update reprohomed --auto-resize-mode=off

  Operation on home reprohomed failed:
  Not enough disk space for home reprohomed

Fixes #34527

Follow-up for: ab3b6fcb40
2026-08-27 04:54:38 +09:00
..
…
…