mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Linux 6.17 compat: Fix broken projectquota on 6.17
We need to specifically use the FX_XFLAG_* macros in zpl_ioctl_*attr() codepaths, and the FS_*_FL macros in the zpl_ioctl_*flags() codepaths. The earlier code just assumes the FS_*_FL macros for both codepaths. The 6.17 kernel add a bitmask check in copy_fsxattr_from_user() that exposed this error via failing 'projectquota' ZTS tests. Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Tony Hutter <hutter2@llnl.gov> Closes #17884 Closes #17869
This commit is contained in:
@@ -278,7 +278,7 @@ zfs_ioctl_getxattr(vnode_t *vp, zfsxattr_t *fsx)
|
||||
|
||||
memset(fsx, 0, sizeof (*fsx));
|
||||
fsx->fsx_xflags = (zp->z_pflags & ZFS_PROJINHERIT) ?
|
||||
ZFS_PROJINHERIT_FL : 0;
|
||||
FS_PROJINHERIT_FL : 0;
|
||||
fsx->fsx_projid = zp->z_projid;
|
||||
|
||||
return (0);
|
||||
@@ -290,7 +290,7 @@ zfs_ioctl_setflags(vnode_t *vp, uint32_t ioctl_flags, xvattr_t *xva)
|
||||
uint64_t zfs_flags = VTOZ(vp)->z_pflags;
|
||||
xoptattr_t *xoap;
|
||||
|
||||
if (ioctl_flags & ~(ZFS_PROJINHERIT_FL))
|
||||
if (ioctl_flags & ~(FS_PROJINHERIT_FL))
|
||||
return (SET_ERROR(EOPNOTSUPP));
|
||||
|
||||
xva_init(xva);
|
||||
@@ -304,7 +304,7 @@ zfs_ioctl_setflags(vnode_t *vp, uint32_t ioctl_flags, xvattr_t *xva)
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
FLAG_CHANGE(ZFS_PROJINHERIT_FL, ZFS_PROJINHERIT, XAT_PROJINHERIT,
|
||||
FLAG_CHANGE(FS_PROJINHERIT_FL, ZFS_PROJINHERIT, XAT_PROJINHERIT,
|
||||
xoap->xoa_projinherit);
|
||||
|
||||
#undef FLAG_CHANGE
|
||||
|
||||
Reference in New Issue
Block a user