1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
Origin: https://lore.kernel.org/linux-xfs/905377ba-b2cb-4ca7-bf41-3d3382b48e1d@maven.pl/
Author: "Arkadiusz MiĆkiewicz" <arekm@maven.pl>
Date: Tue, 2 Dec 2025 16:37:45 +0100
Subject: libfrog: add wrappers for file_getattr/file_setattr syscalls
On 27/08/2025 17:15, Andrey Albershteyn wrote:
> + file_attr_to_fsxattr(fa, &fsxa);
> +
> + error = ioctl(fd, FS_IOC_FSSETXATTR, fa);
&fsxa should be passed here.
xfsprogs 6.17.0 has broken project quota due to that
# LC_ALL=C /usr/sbin/xfs_quota -x -c "project -s -p /home/xxx 389701" /home
Setting up project 389701 (path /home/xxx)...
xfs_quota: cannot set project on /home/xxx: Invalid argument
Processed 1 (/etc/projects and cmdline) paths for project 389701 with
recursion depth infinite (-1).
ioctl(5, FS_IOC_FSSETXATTR,
{fsx_xflags=FS_XFLAG_PROJINHERIT|FS_XFLAG_HASATTR, fsx_extsize=0,
fsx_projid=0, fsx_cowextsize=389701}) = -1 EINVAL (Invalid argument)
---
diff --git a/libfrog/file_attr.c b/libfrog/file_attr.c
index c2cbcb4e..6801c545 100644
--- a/libfrog/file_attr.c
+++ b/libfrog/file_attr.c
@@ -114,7 +114,7 @@ xfrog_file_setattr(
file_attr_to_fsxattr(fa, &fsxa);
- error = ioctl(fd, FS_IOC_FSSETXATTR, fa);
+ error = ioctl(fd, FS_IOC_FSSETXATTR, &fsxa);
close(fd);
return error;
|