Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 2621
b: refs/heads/master
c: 77bc5be
h: refs/heads/master
i:
  2619: 0727599
v: v3
  • Loading branch information
Nathan Scott committed Jun 21, 2005
1 parent 3cffd9b commit 92b847e
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 31 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: bd5a876ac4c130e8e1986dcdbb21839ae4cd91c0
refs/heads/master: 77bc5beb5977a166e41b87c9d55d8e9cf2b3a04f
33 changes: 8 additions & 25 deletions trunk/fs/xfs/linux-2.6/xfs_ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -777,8 +777,6 @@ xfs_ioctl(
case XFS_IOC_GETVERSION:
case XFS_IOC_GETXFLAGS:
case XFS_IOC_SETXFLAGS:
case XFS_IOC_GETPROJID:
case XFS_IOC_SETPROJID:
case XFS_IOC_FSGETXATTR:
case XFS_IOC_FSSETXATTR:
case XFS_IOC_FSGETXATTRA:
Expand Down Expand Up @@ -1176,14 +1174,16 @@ xfs_ioc_xattr(

switch (cmd) {
case XFS_IOC_FSGETXATTR: {
va.va_mask = XFS_AT_XFLAGS|XFS_AT_EXTSIZE|XFS_AT_NEXTENTS;
va.va_mask = XFS_AT_XFLAGS | XFS_AT_EXTSIZE | \
XFS_AT_NEXTENTS | XFS_AT_PROJID;
VOP_GETATTR(vp, &va, 0, NULL, error);
if (error)
return -error;

fa.fsx_xflags = va.va_xflags;
fa.fsx_extsize = va.va_extsize;
fa.fsx_nextents = va.va_nextents;
fa.fsx_projid = va.va_projid;

if (copy_to_user(arg, &fa, sizeof(fa)))
return -XFS_ERROR(EFAULT);
Expand All @@ -1198,9 +1198,10 @@ xfs_ioc_xattr(
if (filp->f_flags & (O_NDELAY|O_NONBLOCK))
attr_flags |= ATTR_NONBLOCK;

va.va_mask = XFS_AT_XFLAGS | XFS_AT_EXTSIZE;
va.va_mask = XFS_AT_XFLAGS | XFS_AT_EXTSIZE | XFS_AT_PROJID;
va.va_xflags = fa.fsx_xflags;
va.va_extsize = fa.fsx_extsize;
va.va_projid = fa.fsx_projid;

VOP_SETATTR(vp, &va, attr_flags, NULL, error);
if (!error)
Expand All @@ -1209,14 +1210,16 @@ xfs_ioc_xattr(
}

case XFS_IOC_FSGETXATTRA: {
va.va_mask = XFS_AT_XFLAGS|XFS_AT_EXTSIZE|XFS_AT_ANEXTENTS;
va.va_mask = XFS_AT_XFLAGS | XFS_AT_EXTSIZE | \
XFS_AT_ANEXTENTS | XFS_AT_PROJID;
VOP_GETATTR(vp, &va, 0, NULL, error);
if (error)
return -error;

fa.fsx_xflags = va.va_xflags;
fa.fsx_extsize = va.va_extsize;
fa.fsx_nextents = va.va_anextents;
fa.fsx_projid = va.va_projid;

if (copy_to_user(arg, &fa, sizeof(fa)))
return -XFS_ERROR(EFAULT);
Expand Down Expand Up @@ -1260,26 +1263,6 @@ xfs_ioc_xattr(
return 0;
}

case XFS_IOC_GETPROJID: {
va.va_mask = XFS_AT_PROJID;
VOP_GETATTR(vp, &va, 0, NULL, error);
if (error)
return -error;
if (copy_to_user(arg, &va.va_projid, sizeof(va.va_projid)))
return -XFS_ERROR(EFAULT);
return 0;
}

case XFS_IOC_SETPROJID: {
if (!capable(CAP_SYS_ADMIN))
return -EPERM;
va.va_mask = XFS_AT_PROJID;
if (copy_from_user(&va.va_projid, arg, sizeof(va.va_projid)))
return -XFS_ERROR(EFAULT);
VOP_SETATTR(vp, &va, 0, NULL, error);
return -error;
}

default:
return -ENOTTY;
}
Expand Down
2 changes: 0 additions & 2 deletions trunk/fs/xfs/linux-2.6/xfs_ioctl32.c
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,6 @@ __linvfs_compat_ioctl(int mode, struct file *f, unsigned cmd, unsigned long arg)
case XFS_IOC_GETBMAP:
case XFS_IOC_GETBMAPA:
case XFS_IOC_GETBMAPX:
case XFS_IOC_SETPROJID:
case XFS_IOC_GETPROJID:
/* not handled
case XFS_IOC_FD_TO_HANDLE:
case XFS_IOC_PATH_TO_HANDLE:
Expand Down
5 changes: 2 additions & 3 deletions trunk/fs/xfs/xfs_fs.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,8 @@ struct fsxattr {
__u32 fsx_xflags; /* xflags field value (get/set) */
__u32 fsx_extsize; /* extsize field value (get/set)*/
__u32 fsx_nextents; /* nextents field value (get) */
unsigned char fsx_pad[16];
__u32 fsx_projid; /* project identifier (get/set) */
unsigned char fsx_pad[12];
};
#endif

Expand Down Expand Up @@ -477,8 +478,6 @@ typedef struct xfs_handle {
/* XFS_IOC_SETBIOSIZE ---- deprecated 46 */
/* XFS_IOC_GETBIOSIZE ---- deprecated 47 */
#define XFS_IOC_GETBMAPX _IOWR('X', 56, struct getbmap)
#define XFS_IOC_SETPROJID _IOWR('X', 57, __uint32_t)
#define XFS_IOC_GETPROJID _IOWR('X', 58, __uint32_t)

/*
* ioctl commands that replace IRIX syssgi()'s
Expand Down

0 comments on commit 92b847e

Please sign in to comment.