diff options
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_ioctl.c')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_ioctl.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index 69809eef8a54..05a447e51cc0 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c | |||
@@ -1174,7 +1174,8 @@ xfs_ioc_xattr( | |||
1174 | 1174 | ||
1175 | switch (cmd) { | 1175 | switch (cmd) { |
1176 | case XFS_IOC_FSGETXATTR: { | 1176 | case XFS_IOC_FSGETXATTR: { |
1177 | va.va_mask = XFS_AT_XFLAGS|XFS_AT_EXTSIZE|XFS_AT_NEXTENTS; | 1177 | va.va_mask = XFS_AT_XFLAGS | XFS_AT_EXTSIZE | \ |
1178 | XFS_AT_NEXTENTS | XFS_AT_PROJID; | ||
1178 | VOP_GETATTR(vp, &va, 0, NULL, error); | 1179 | VOP_GETATTR(vp, &va, 0, NULL, error); |
1179 | if (error) | 1180 | if (error) |
1180 | return -error; | 1181 | return -error; |
@@ -1182,6 +1183,7 @@ xfs_ioc_xattr( | |||
1182 | fa.fsx_xflags = va.va_xflags; | 1183 | fa.fsx_xflags = va.va_xflags; |
1183 | fa.fsx_extsize = va.va_extsize; | 1184 | fa.fsx_extsize = va.va_extsize; |
1184 | fa.fsx_nextents = va.va_nextents; | 1185 | fa.fsx_nextents = va.va_nextents; |
1186 | fa.fsx_projid = va.va_projid; | ||
1185 | 1187 | ||
1186 | if (copy_to_user(arg, &fa, sizeof(fa))) | 1188 | if (copy_to_user(arg, &fa, sizeof(fa))) |
1187 | return -XFS_ERROR(EFAULT); | 1189 | return -XFS_ERROR(EFAULT); |
@@ -1196,9 +1198,10 @@ xfs_ioc_xattr( | |||
1196 | if (filp->f_flags & (O_NDELAY|O_NONBLOCK)) | 1198 | if (filp->f_flags & (O_NDELAY|O_NONBLOCK)) |
1197 | attr_flags |= ATTR_NONBLOCK; | 1199 | attr_flags |= ATTR_NONBLOCK; |
1198 | 1200 | ||
1199 | va.va_mask = XFS_AT_XFLAGS | XFS_AT_EXTSIZE; | 1201 | va.va_mask = XFS_AT_XFLAGS | XFS_AT_EXTSIZE | XFS_AT_PROJID; |
1200 | va.va_xflags = fa.fsx_xflags; | 1202 | va.va_xflags = fa.fsx_xflags; |
1201 | va.va_extsize = fa.fsx_extsize; | 1203 | va.va_extsize = fa.fsx_extsize; |
1204 | va.va_projid = fa.fsx_projid; | ||
1202 | 1205 | ||
1203 | VOP_SETATTR(vp, &va, attr_flags, NULL, error); | 1206 | VOP_SETATTR(vp, &va, attr_flags, NULL, error); |
1204 | if (!error) | 1207 | if (!error) |
@@ -1207,7 +1210,8 @@ xfs_ioc_xattr( | |||
1207 | } | 1210 | } |
1208 | 1211 | ||
1209 | case XFS_IOC_FSGETXATTRA: { | 1212 | case XFS_IOC_FSGETXATTRA: { |
1210 | va.va_mask = XFS_AT_XFLAGS|XFS_AT_EXTSIZE|XFS_AT_ANEXTENTS; | 1213 | va.va_mask = XFS_AT_XFLAGS | XFS_AT_EXTSIZE | \ |
1214 | XFS_AT_ANEXTENTS | XFS_AT_PROJID; | ||
1211 | VOP_GETATTR(vp, &va, 0, NULL, error); | 1215 | VOP_GETATTR(vp, &va, 0, NULL, error); |
1212 | if (error) | 1216 | if (error) |
1213 | return -error; | 1217 | return -error; |
@@ -1215,6 +1219,7 @@ xfs_ioc_xattr( | |||
1215 | fa.fsx_xflags = va.va_xflags; | 1219 | fa.fsx_xflags = va.va_xflags; |
1216 | fa.fsx_extsize = va.va_extsize; | 1220 | fa.fsx_extsize = va.va_extsize; |
1217 | fa.fsx_nextents = va.va_anextents; | 1221 | fa.fsx_nextents = va.va_anextents; |
1222 | fa.fsx_projid = va.va_projid; | ||
1218 | 1223 | ||
1219 | if (copy_to_user(arg, &fa, sizeof(fa))) | 1224 | if (copy_to_user(arg, &fa, sizeof(fa))) |
1220 | return -XFS_ERROR(EFAULT); | 1225 | return -XFS_ERROR(EFAULT); |