File: fix-invalid-ioctl.patch

package info (click to toggle)
xfsprogs 6.17.0-2
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 11,324 kB
  • sloc: ansic: 167,334; sh: 4,604; makefile: 1,336; python: 835; cpp: 5
file content (38 lines) | stat: -rw-r--r-- 1,261 bytes parent folder | download
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;