diff options
author | Felix Blyakher <felixb@sgi.com> | 2009-06-11 17:56:49 -0400 |
---|---|---|
committer | Felix Blyakher <felixb@sgi.com> | 2009-06-11 17:56:49 -0400 |
commit | 35fd035968de4f674b9d62ee7b1d80ab7a50c384 (patch) | |
tree | 53a936ecdf8e9c59735fa4e7794ccb503b06d5d5 /fs/xfs/linux-2.6/xfs_ioctl.c | |
parent | 4e73e0eb633f8a1b5cbf20e7f42c6dbfec1d1ca7 (diff) | |
parent | ef14f0c1578dce4b688726eb2603e50b62d6665a (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/fs/xfs/xfs
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_ioctl.c')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_ioctl.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index 34eaab608e6e..5bb523d7f37e 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c | |||
@@ -41,7 +41,6 @@ | |||
41 | #include "xfs_itable.h" | 41 | #include "xfs_itable.h" |
42 | #include "xfs_error.h" | 42 | #include "xfs_error.h" |
43 | #include "xfs_rw.h" | 43 | #include "xfs_rw.h" |
44 | #include "xfs_acl.h" | ||
45 | #include "xfs_attr.h" | 44 | #include "xfs_attr.h" |
46 | #include "xfs_bmap.h" | 45 | #include "xfs_bmap.h" |
47 | #include "xfs_buf_item.h" | 46 | #include "xfs_buf_item.h" |
@@ -899,7 +898,8 @@ xfs_ioctl_setattr( | |||
899 | struct xfs_mount *mp = ip->i_mount; | 898 | struct xfs_mount *mp = ip->i_mount; |
900 | struct xfs_trans *tp; | 899 | struct xfs_trans *tp; |
901 | unsigned int lock_flags = 0; | 900 | unsigned int lock_flags = 0; |
902 | struct xfs_dquot *udqp = NULL, *gdqp = NULL; | 901 | struct xfs_dquot *udqp = NULL; |
902 | struct xfs_dquot *gdqp = NULL; | ||
903 | struct xfs_dquot *olddquot = NULL; | 903 | struct xfs_dquot *olddquot = NULL; |
904 | int code; | 904 | int code; |
905 | 905 | ||
@@ -919,7 +919,7 @@ xfs_ioctl_setattr( | |||
919 | * because the i_*dquot fields will get updated anyway. | 919 | * because the i_*dquot fields will get updated anyway. |
920 | */ | 920 | */ |
921 | if (XFS_IS_QUOTA_ON(mp) && (mask & FSX_PROJID)) { | 921 | if (XFS_IS_QUOTA_ON(mp) && (mask & FSX_PROJID)) { |
922 | code = XFS_QM_DQVOPALLOC(mp, ip, ip->i_d.di_uid, | 922 | code = xfs_qm_vop_dqalloc(ip, ip->i_d.di_uid, |
923 | ip->i_d.di_gid, fa->fsx_projid, | 923 | ip->i_d.di_gid, fa->fsx_projid, |
924 | XFS_QMOPT_PQUOTA, &udqp, &gdqp); | 924 | XFS_QMOPT_PQUOTA, &udqp, &gdqp); |
925 | if (code) | 925 | if (code) |
@@ -954,10 +954,11 @@ xfs_ioctl_setattr( | |||
954 | * Do a quota reservation only if projid is actually going to change. | 954 | * Do a quota reservation only if projid is actually going to change. |
955 | */ | 955 | */ |
956 | if (mask & FSX_PROJID) { | 956 | if (mask & FSX_PROJID) { |
957 | if (XFS_IS_PQUOTA_ON(mp) && | 957 | if (XFS_IS_QUOTA_RUNNING(mp) && |
958 | XFS_IS_PQUOTA_ON(mp) && | ||
958 | ip->i_d.di_projid != fa->fsx_projid) { | 959 | ip->i_d.di_projid != fa->fsx_projid) { |
959 | ASSERT(tp); | 960 | ASSERT(tp); |
960 | code = XFS_QM_DQVOPCHOWNRESV(mp, tp, ip, udqp, gdqp, | 961 | code = xfs_qm_vop_chown_reserve(tp, ip, udqp, gdqp, |
961 | capable(CAP_FOWNER) ? | 962 | capable(CAP_FOWNER) ? |
962 | XFS_QMOPT_FORCE_RES : 0); | 963 | XFS_QMOPT_FORCE_RES : 0); |
963 | if (code) /* out of quota */ | 964 | if (code) /* out of quota */ |
@@ -1059,8 +1060,8 @@ xfs_ioctl_setattr( | |||
1059 | * in the transaction. | 1060 | * in the transaction. |
1060 | */ | 1061 | */ |
1061 | if (ip->i_d.di_projid != fa->fsx_projid) { | 1062 | if (ip->i_d.di_projid != fa->fsx_projid) { |
1062 | if (XFS_IS_PQUOTA_ON(mp)) { | 1063 | if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_PQUOTA_ON(mp)) { |
1063 | olddquot = XFS_QM_DQVOPCHOWN(mp, tp, ip, | 1064 | olddquot = xfs_qm_vop_chown(tp, ip, |
1064 | &ip->i_gdquot, gdqp); | 1065 | &ip->i_gdquot, gdqp); |
1065 | } | 1066 | } |
1066 | ip->i_d.di_projid = fa->fsx_projid; | 1067 | ip->i_d.di_projid = fa->fsx_projid; |
@@ -1106,9 +1107,9 @@ xfs_ioctl_setattr( | |||
1106 | /* | 1107 | /* |
1107 | * Release any dquot(s) the inode had kept before chown. | 1108 | * Release any dquot(s) the inode had kept before chown. |
1108 | */ | 1109 | */ |
1109 | XFS_QM_DQRELE(mp, olddquot); | 1110 | xfs_qm_dqrele(olddquot); |
1110 | XFS_QM_DQRELE(mp, udqp); | 1111 | xfs_qm_dqrele(udqp); |
1111 | XFS_QM_DQRELE(mp, gdqp); | 1112 | xfs_qm_dqrele(gdqp); |
1112 | 1113 | ||
1113 | if (code) | 1114 | if (code) |
1114 | return code; | 1115 | return code; |
@@ -1122,8 +1123,8 @@ xfs_ioctl_setattr( | |||
1122 | return 0; | 1123 | return 0; |
1123 | 1124 | ||
1124 | error_return: | 1125 | error_return: |
1125 | XFS_QM_DQRELE(mp, udqp); | 1126 | xfs_qm_dqrele(udqp); |
1126 | XFS_QM_DQRELE(mp, gdqp); | 1127 | xfs_qm_dqrele(gdqp); |
1127 | xfs_trans_cancel(tp, 0); | 1128 | xfs_trans_cancel(tp, 0); |
1128 | if (lock_flags) | 1129 | if (lock_flags) |
1129 | xfs_iunlock(ip, lock_flags); | 1130 | xfs_iunlock(ip, lock_flags); |