Re: [f2fs-dev] [PATCH v5] f2fs: introduce device aliasing file
From: Jaegeuk Kim <jaegeuk@kernel.org>
Date: 2024-10-15 16:56:08
Also in:
linux-f2fs-devel, linux-fsdevel, lkml
On 10/14, Christoph Hellwig wrote:
On Mon, Oct 14, 2024 at 04:42:07PM +0000, Jaegeuk Kim wrote:quoted
quoted
Plz, refer to this patch and the description there. https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git/commit/?h=dev-test&id=8cc4e257ec20bee207bb034d5ac406e1ab31eaeaAlso, I added this in the description. --- For example, "mkfs.f2fs -c /dev/block/test@test_alias /dev/block/main" gives a file $root/test_alias which carves out /dev/block/test partition.What partition? So mkfs.f2fs adds additional devices based on the man page. So the above creates a file system with two devices, but the second device is not added to the general space pool, but mapped to a specific file? How does this file work. I guess it can't be unlinked and renamed. It probably also can't be truncated and hole punched, or use insert/collapse range. How does the user find out about this magic file? What is the use case? Are the exact semantics documented somewhere?
Let me ask for putting some design in Documentation. Just for a quick reference, the use-case looks like: # ls /dev/vd* /dev/vdb (32GB) /dev/vdc (32GB) # mkfs.ext4 /dev/vdc # mkfs.f2fs -c /dev/vdc@vdc.file /dev/vdb # mount /dev/vdb /mnt/f2fs # ls -l /mnt/f2fs vdc.file # df -h /dev/vdb 64G 33G 32G 52% /mnt/f2fs # mount -o loop /dev/vdc /mnt/ext4 # df -h /dev/vdb 64G 33G 32G 52% /mnt/f2fs /dev/loop7 32G 24K 30G 1% /mnt/ext4 # umount /mnt/ext4 # f2fs_io getflags /mnt/f2fs/vdc.file get a flag on /mnt/f2fs/vdc.file ret=0, flags=nocow(pinned),immutable # f2fs_io setflags noimmutable /mnt/f2fs/vdc.file get a flag on noimmutable ret=0, flags=800010 set a flag on /mnt/f2fs/vdc.file ret=0, flags=noimmutable # rm /mnt/f2fs/vdc.file # df -h /dev/vdb 64G 753M 64G 2% /mnt/f2fs So, key idea is, user can do any file operations on /dev/vdc, and reclaim the space after the use, while the space is counted as /data. That doesn't require modifying partition size and filesystem format.