[LTP] [PATCH v4 6/6] syscalls/quotactl07: Add quotactl_fd test variant
xuyang2018.jy@fujitsu.com
xuyang2018.jy@fujitsu.com
Mon Jan 10 10:03:26 CET 2022
Hi Cyril
> Hi!
>> Also man-pages has error that Q_XQUOTARM was not introduced by kernel
>> 3.16. So use invalid type directly
>
> Have you send a patch to man-pages to get this fixed?
Yes, but offical man-pages[1] hasn't updated for serval months.
The updates is on alejandro-colomar(man-pages new co-maintainer) main
branch[2][3].
This patch will get unexpect EINVAL error when kernel commit 40b52225e
("xfs: remove support for disabling quota accounting on a mounted file
system")[4] was introduced.
the unexpected EINVAL error position:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/xfs/xfs_qm_syscalls.c#n108
if we want to disable quota account feature before Q_XQUOTARM, we must
need to remount with noquota like xfs maintainer does in xfstests
xfs/220 [5].
So , I will modify this case as below:
/* Include a valid quota type to avoid other EINVAL error */
static unsigned int invalid_type = XFS_GROUP_QUOTA << 1 | XFS_USER_QUOTA;
static int mount_flag;
static void verify_quota(void)
{
TEST(do_quotactl(fd, QCMD(Q_XQUOTARM, USRQUOTA),
tst_device->dev, 0, (void *)&invalid_type));
if (TST_ERR == EINVAL)
tst_res(TPASS, "Q_XQUOTARM has quota type check");
else
tst_res(TFAIL, "Q_XQUOTARM doesn't have quota type check");
}
static void setup(void)
{
quotactl_info();
/* ensure superblock has quota data, but not running */
SAFE_MOUNT(tst_device->dev, MNTPOINT, tst_device->fs_type, 0,
"usrquota");
mount_flag = 1;
SAFE_UMOUNT(MNTPOINT);
mount_flag = 0;
SAFE_MOUNT(tst_device->dev, MNTPOINT, tst_device->fs_type, 0,
"noquota");
mount_flag = 1;
fd = SAFE_OPEN(MNTPOINT, O_RDONLY);
}
static void cleanup(void)
{
if (fd > -1)
SAFE_CLOSE(fd);
if (mount_flag && tst_umount(MNTPOINT))
tst_res(TWARN | TERRNO, "umount(%s)", MNTPOINT);
}
static struct tst_test test = {
.setup = setup,
.cleanup = cleanup,
.needs_root = 1,
.needs_kconfigs = (const char *[]) {
"CONFIG_XFS_QUOTA",
NULL
},
.test_all = verify_quota,
.format_device = 1,
.dev_fs_type = "xfs",
.mntpoint = MNTPOINT,
[1]https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/
[2]https://github.com/alejandro-colomar/man-pages/commit/38bccbcf4f51c5370a1060e6a80b90d68b0dcdc8
[3]https://github.com/alejandro-colomar/man-pages/commit/26f3978f04a1aeeb5397a5facebaef40a341afb6
[4]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=40b52225e58cd3adf9358146b4b39dccfbfe5892
[5]https://patchwork.kernel.org/project/fstests/patch/20220105195352.GM656707@magnolia/
I will send a v5 for this patchset and add TST_EXP* usage.
Best Regards
Yang Xu
>
> Reviewed-by: Cyril Hrubis<chrubis@suse.cz>
>
More information about the ltp
mailing list