* Re: [LTP] [PATCH 1/1] ioctl_ficlone03.c: Support test on more filesystems [not found] ` <aHEccDO8lJiTzbEs@yuki.lan> @ 2025-07-22 10:23 ` Petr Vorel 2025-07-22 11:41 ` Jan Kara 0 siblings, 1 reply; 3+ messages in thread From: Petr Vorel @ 2025-07-22 10:23 UTC (permalink / raw) To: linux-ext4; +Cc: ltp, Cyril Hrubis, Theodore Ts'o, Andreas Dilger, Jan Kara Hi ext devs, ... > > static void setup(void) > I find it strange that we manage to set the FS_IMMUTABLE_FL in the setup > with the FS_IOC_SETFLAGS without any error. Maybe it would make sense to > check with ext devs what is going on here. > > @@ -117,6 +123,10 @@ static struct tst_test test = { > > .mkfs_ver = "mkfs.xfs >= 1.5.0", > > .mkfs_opts = (const char *const []) {"-m", "reflink=1", NULL}, > > }, > > + {.type = "ext2"}, > > + {.type = "ext3"}, > > + {.type = "ext4"}, > > + {.type = "tmpfs"}, > > {} While I was working on extending [1] LTP ioctl_ficlone03.c to run on more filesystems [2], I found that ext[2-4] don't support FS_IMMUTABLE_FL. immut_fd = open(MNTPOINT"/immutable", O_CREAT | O_RDWR, 0640); mnt_file = open(MNTPOINT"/file", O_CREAT | O_RDWR, 0640); int attr = FS_IMMUTABLE_FL; ioctl(immut_fd, FS_IOC_SETFLAGS, &attr); ... struct file_clone_range *clone_range; ioctl(immut_fd, FICLONE, mnt_file), ioctl(immut_fd, FICLONERANGE, clone_range), The last two ioctl() with FICLONE and FICLONERANGE get errno EOPNOTSUPP (instead of EPERM as on other fs). Cyril raised concern [3], why first ioctl() FS_IOC_SETFLAGS even works. Shouldn't it also gets EINVAL as vfat, exfat and ntfs get? There is not any info in dmesg. Thanks for any hint. Kind regards, Petr [1] https://patchwork.ozlabs.org/project/ltp/patch/20250326142259.50981-1-pvorel@suse.cz/ [2] https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/syscalls/ioctl/ioctl_ficlone03.c [3] https://lore.kernel.org/ltp/aHEccDO8lJiTzbEs@yuki.lan/ ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [LTP] [PATCH 1/1] ioctl_ficlone03.c: Support test on more filesystems 2025-07-22 10:23 ` [LTP] [PATCH 1/1] ioctl_ficlone03.c: Support test on more filesystems Petr Vorel @ 2025-07-22 11:41 ` Jan Kara 2025-07-22 13:50 ` Petr Vorel 0 siblings, 1 reply; 3+ messages in thread From: Jan Kara @ 2025-07-22 11:41 UTC (permalink / raw) To: Petr Vorel Cc: linux-ext4, ltp, Cyril Hrubis, Theodore Ts'o, Andreas Dilger, Jan Kara Hi! On Tue 22-07-25 12:23:46, Petr Vorel wrote: > ... > > > static void setup(void) > > > I find it strange that we manage to set the FS_IMMUTABLE_FL in the setup > > with the FS_IOC_SETFLAGS without any error. Maybe it would make sense to > > check with ext devs what is going on here. > > > > @@ -117,6 +123,10 @@ static struct tst_test test = { > > > .mkfs_ver = "mkfs.xfs >= 1.5.0", > > > .mkfs_opts = (const char *const []) {"-m", "reflink=1", NULL}, > > > }, > > > + {.type = "ext2"}, > > > + {.type = "ext3"}, > > > + {.type = "ext4"}, > > > + {.type = "tmpfs"}, > > > {} > > While I was working on extending [1] LTP ioctl_ficlone03.c to run on more > filesystems [2], I found that ext[2-4] don't support FS_IMMUTABLE_FL. Why do you think FS_IMMUTABLE_FL is unsupported? ext2 was the filesystem actually introducing it to the kernel ;) > immut_fd = open(MNTPOINT"/immutable", O_CREAT | O_RDWR, 0640); > mnt_file = open(MNTPOINT"/file", O_CREAT | O_RDWR, 0640); > int attr = FS_IMMUTABLE_FL; > ioctl(immut_fd, FS_IOC_SETFLAGS, &attr); > ... > > struct file_clone_range *clone_range; > ioctl(immut_fd, FICLONE, mnt_file), > ioctl(immut_fd, FICLONERANGE, clone_range), > > The last two ioctl() with FICLONE and FICLONERANGE get errno EOPNOTSUPP > (instead of EPERM as on other fs). Cyril raised concern [3], why first > ioctl() FS_IOC_SETFLAGS even works. Shouldn't it also gets EINVAL as > vfat, exfat and ntfs get? Unlink FICLONE and FICLONERANGE which are indeed unsupported on any ext? based filesystem so EOPNOTSUPP seems like a correct answer to me. So I'm confused where you see a problem. Honza -- Jan Kara <jack@suse.com> SUSE Labs, CR ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [LTP] [PATCH 1/1] ioctl_ficlone03.c: Support test on more filesystems 2025-07-22 11:41 ` Jan Kara @ 2025-07-22 13:50 ` Petr Vorel 0 siblings, 0 replies; 3+ messages in thread From: Petr Vorel @ 2025-07-22 13:50 UTC (permalink / raw) To: Jan Kara Cc: linux-ext4, ltp, Cyril Hrubis, Theodore Ts'o, Andreas Dilger, Jan Kara Hi Jan, all, > Hi! > On Tue 22-07-25 12:23:46, Petr Vorel wrote: > > ... > > > > static void setup(void) > > > I find it strange that we manage to set the FS_IMMUTABLE_FL in the setup > > > with the FS_IOC_SETFLAGS without any error. Maybe it would make sense to > > > check with ext devs what is going on here. > > > > @@ -117,6 +123,10 @@ static struct tst_test test = { > > > > .mkfs_ver = "mkfs.xfs >= 1.5.0", > > > > .mkfs_opts = (const char *const []) {"-m", "reflink=1", NULL}, > > > > }, > > > > + {.type = "ext2"}, > > > > + {.type = "ext3"}, > > > > + {.type = "ext4"}, > > > > + {.type = "tmpfs"}, > > > > {} > > While I was working on extending [1] LTP ioctl_ficlone03.c to run on more > > filesystems [2], I found that ext[2-4] don't support FS_IMMUTABLE_FL. > Why do you think FS_IMMUTABLE_FL is unsupported? ext2 was the filesystem > actually introducing it to the kernel ;) Lol, I should have git grep kernel sources and google before asking silly question :). Thanks for correcting me. > > immut_fd = open(MNTPOINT"/immutable", O_CREAT | O_RDWR, 0640); > > mnt_file = open(MNTPOINT"/file", O_CREAT | O_RDWR, 0640); > > int attr = FS_IMMUTABLE_FL; > > ioctl(immut_fd, FS_IOC_SETFLAGS, &attr); > > ... > > struct file_clone_range *clone_range; > > ioctl(immut_fd, FICLONE, mnt_file), > > ioctl(immut_fd, FICLONERANGE, clone_range), > > The last two ioctl() with FICLONE and FICLONERANGE get errno EOPNOTSUPP > > (instead of EPERM as on other fs). Cyril raised concern [3], why first > > ioctl() FS_IOC_SETFLAGS even works. Shouldn't it also gets EINVAL as > > vfat, exfat and ntfs get? > Unlink FICLONE and FICLONERANGE which are indeed unsupported on any ext? > based filesystem so EOPNOTSUPP seems like a correct answer to me. > So I'm confused where you see a problem. Thanks for info, obviously there is no problem now :). I'll amend the commit message before merge that FICLONE and FICLONERANGE are not supported (not FS_IMMUTABLE_FL). Kind regards, Petr > Honza ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-07-22 13:50 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20250326142259.50981-1-pvorel@suse.cz>
[not found] ` <aHEccDO8lJiTzbEs@yuki.lan>
2025-07-22 10:23 ` [LTP] [PATCH 1/1] ioctl_ficlone03.c: Support test on more filesystems Petr Vorel
2025-07-22 11:41 ` Jan Kara
2025-07-22 13:50 ` Petr Vorel
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox