display project quota as user

Andre Noll
2012-03-14T13:09:01Z

[-- Attachment #1.1: Type: text/plain, Size: 1341 bytes --]

Simple question: Can non-privileged users display XFS project quotas?

Currently the command

xfs_quota -c 'quota -p 42'

fails when executed as a non-root user due to quotactl(Q_XGETQUOTA,...)
returning EPERM. The problem seems to be that fs/quota/quota.c has no
knowledge of project quotas at all.

The proof-of-concept patch below makes quotactl(Q_XGETQUOTA,...)
succeed for any user when called with type == XQM_PRJQUOTA. However,
relaxing the permission checks like this might not please everybody,
changes semantics of an existing API and adds the XFS specific constant
XQM_PRJQUOTA to fs/quota.c. So I'm not even asking to apply something
like that.

Is there a better way to allow users to display project quotas?

Thanks
Andre
---

diff --git a/fs/quota/quota.c b/fs/quota/quota.c
index fc2c438..010763d 100644
--- a/fs/quota/quota.c
+++ b/fs/quota/quota.c
@@ -33,7 +33,8 @@ static int check_quotactl_permission(struct super_block *sb, int type, int cmd,
case Q_GETQUOTA:
case Q_XGETQUOTA:
if ((type == USRQUOTA && current_euid() == id) ||
- (type == GRPQUOTA && in_egroup_p(id)))
+ (type == GRPQUOTA && in_egroup_p(id)) ||
+ (type == XQM_PRJQUOTA))
break;
/*FALLTHROUGH*/
default:
--
The only person who always got his work done by Friday was Robinson Crusoe

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 121 bytes --]