btrfs-progs: docs: clarify swapfile an multi-device filesystem

It is possible to create swapfile on a multi-device filesystem but it's
not reliable. The check that verifies that in kernel:

10698                 } else if (device != map->stripes[0].dev) {
10699                         btrfs_warn(fs_info, "swapfile must be on one device");
10700                         ret = -EINVAL;
10701                         goto out;
10702                 }

This does not count devices but rather the actual placement of the
swapfile extents, so multi-device filesystem with single profile can
create it as long as there's enough space and the allocator decides to
place it properly.

[ci skip]

Pull-request: #839
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
David Sterba 2024-07-30 17:31:30 +02:00
parent 704437e022
commit 39470a52b5
1 changed files with 5 additions and 1 deletions

View File

@ -16,7 +16,11 @@ The limitations come namely from the COW-based design and mapping layer of
blocks that allows the advanced features like relocation and multi-device blocks that allows the advanced features like relocation and multi-device
filesystems. However, the swap subsystem expects simpler mapping and no filesystems. However, the swap subsystem expects simpler mapping and no
background changes of the file block location once they've been assigned to background changes of the file block location once they've been assigned to
swap. swap. The constraints mentioned above (single device and single profile) are
related to the swapfile itself, i.e. the extents and their placement. It is
possible to create swapfile on multi-device filesystem as long as the extents
are on one device but this cannot be affected by user and depends on free space
fragmentation and available unused space for new chunks.
With active swapfiles, the following whole-filesystem operations will skip With active swapfiles, the following whole-filesystem operations will skip
swapfile extents or may fail: swapfile extents or may fail: