Module Name:    src
Committed By:   dholland
Date:           Sun Jan 29 06:55:45 UTC 2012

Modified Files:
        src/sys/kern: vfs_quotactl.c
        src/sys/sys: quotactl.h
        src/sys/ufs/ufs: ufs_quota.c ufs_quota.h ufs_quota2.c

Log Message:
Package up the args of QUOTACTL_DELETE as a struct quotakey.


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/sys/kern/vfs_quotactl.c
cvs rdiff -u -r1.17 -r1.18 src/sys/sys/quotactl.h
cvs rdiff -u -r1.91 -r1.92 src/sys/ufs/ufs/ufs_quota.c
cvs rdiff -u -r1.13 -r1.14 src/sys/ufs/ufs/ufs_quota.h
cvs rdiff -u -r1.14 -r1.15 src/sys/ufs/ufs/ufs_quota2.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/vfs_quotactl.c
diff -u src/sys/kern/vfs_quotactl.c:1.19 src/sys/kern/vfs_quotactl.c:1.20
--- src/sys/kern/vfs_quotactl.c:1.19	Sun Jan 29 06:54:34 2012
+++ src/sys/kern/vfs_quotactl.c	Sun Jan 29 06:55:44 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_quotactl.c,v 1.19 2012/01/29 06:54:34 dholland Exp $	*/
+/*	$NetBSD: vfs_quotactl.c,v 1.20 2012/01/29 06:55:44 dholland Exp $	*/
 
 /*
  * Copyright (c) 1991, 1993, 1994
@@ -80,7 +80,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_quotactl.c,v 1.19 2012/01/29 06:54:34 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_quotactl.c,v 1.20 2012/01/29 06:55:44 dholland Exp $");
 
 #include <sys/mount.h>
 #include <sys/quota.h>
@@ -462,6 +462,7 @@ vfs_quotactl_clear(struct mount *mp,
 	uint32_t id;
 	int defaultq;
 	const char *idstr;
+	struct quotakey qk;
 	struct vfs_quotactl_args args;
 	int error;
 
@@ -491,21 +492,23 @@ vfs_quotactl_clear(struct mount *mp,
 			defaultq = 0;
 		}
 
+		qk.qk_idtype = q2type;
+		qk.qk_id = defaultq ? QUOTA_DEFAULTID : id;
+		qk.qk_objtype = QUOTA_OBJTYPE_BLOCKS;
+
 		args.qc_type = QCT_DELETE;
-		args.u.delete.qc_idtype = q2type;
-		args.u.delete.qc_id = id;
-		args.u.delete.qc_defaultq = defaultq;
-		args.u.delete.qc_objtype = QUOTA_OBJTYPE_BLOCKS;
+		args.u.delete.qc_key = &qk;
 		error = VFS_QUOTACTL(mp, QUOTACTL_DELETE, &args);
 		if (error) {
 			goto err;
 		}
 
+		qk.qk_idtype = q2type;
+		qk.qk_id = defaultq ? QUOTA_DEFAULTID : id;
+		qk.qk_objtype = QUOTA_OBJTYPE_FILES;
+
 		args.qc_type = QCT_DELETE;
-		args.u.delete.qc_idtype = q2type;
-		args.u.delete.qc_id = id;
-		args.u.delete.qc_defaultq = defaultq;
-		args.u.delete.qc_objtype = QUOTA_OBJTYPE_FILES;
+		args.u.delete.qc_key = &qk;
 		error = VFS_QUOTACTL(mp, QUOTACTL_DELETE, &args);
 		if (error) {
 			goto err;

Index: src/sys/sys/quotactl.h
diff -u src/sys/sys/quotactl.h:1.17 src/sys/sys/quotactl.h:1.18
--- src/sys/sys/quotactl.h:1.17	Sun Jan 29 06:54:34 2012
+++ src/sys/sys/quotactl.h	Sun Jan 29 06:55:44 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: quotactl.h,v 1.17 2012/01/29 06:54:34 dholland Exp $	*/
+/*	$NetBSD: quotactl.h,v 1.18 2012/01/29 06:55:44 dholland Exp $	*/
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -74,10 +74,7 @@ struct vfs_quotactl_args {
 			const struct quotaval *qc_val;
 		} put;
 		struct {
-			int qc_idtype;
-			id_t qc_id;
-			int qc_defaultq;
-			int qc_objtype;
+			const struct quotakey *qc_key;
 		} delete;
 	} u;
 };

Index: src/sys/ufs/ufs/ufs_quota.c
diff -u src/sys/ufs/ufs/ufs_quota.c:1.91 src/sys/ufs/ufs/ufs_quota.c:1.92
--- src/sys/ufs/ufs/ufs_quota.c:1.91	Sun Jan 29 06:54:34 2012
+++ src/sys/ufs/ufs/ufs_quota.c	Sun Jan 29 06:55:44 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: ufs_quota.c,v 1.91 2012/01/29 06:54:34 dholland Exp $	*/
+/*	$NetBSD: ufs_quota.c,v 1.92 2012/01/29 06:55:44 dholland Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1990, 1993, 1995
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ufs_quota.c,v 1.91 2012/01/29 06:54:34 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ufs_quota.c,v 1.92 2012/01/29 06:55:44 dholland Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_quota.h"
@@ -316,17 +316,17 @@ quota_handle_cmd_delete(struct mount *mp
     struct vfs_quotactl_args *args)
 {
 	struct ufsmount *ump = VFSTOUFS(mp);
-	int idtype;
-	id_t id;
-	int defaultq;
-	int objtype;
+	const struct quotakey *qk;
+	id_t kauth_id;
 	int error;
 
 	KASSERT(args->qc_type == QCT_DELETE);
-	idtype = args->u.delete.qc_idtype;
-	id = args->u.delete.qc_id;
-	defaultq = args->u.delete.qc_defaultq;
-	objtype = args->u.delete.qc_objtype;
+	qk = args->u.delete.qc_key;
+
+	kauth_id = qk->qk_id;
+	if (kauth_id == QUOTA_DEFAULTID) {
+		kauth_id = 0;
+	}
 
 	if ((ump->um_flags & UFS_QUOTA2) == 0)
 		return EOPNOTSUPP;
@@ -334,13 +334,13 @@ quota_handle_cmd_delete(struct mount *mp
 	/* avoid whitespace changes */
 	{
 		error = kauth_authorize_system(l->l_cred, KAUTH_SYSTEM_FS_QUOTA,
-		    KAUTH_REQ_SYSTEM_FS_QUOTA_MANAGE, mp, KAUTH_ARG(id), NULL);
+		    KAUTH_REQ_SYSTEM_FS_QUOTA_MANAGE, mp, KAUTH_ARG(kauth_id),
+		    NULL);
 		if (error != 0)
 			goto err;
 #ifdef QUOTA2
 		if (ump->um_flags & UFS_QUOTA2) {
-			error = quota2_handle_cmd_delete(ump, idtype, id,
-			    defaultq, objtype);
+			error = quota2_handle_cmd_delete(ump, qk);
 		} else
 #endif
 			panic("quota_handle_cmd_get: no support ?");

Index: src/sys/ufs/ufs/ufs_quota.h
diff -u src/sys/ufs/ufs/ufs_quota.h:1.13 src/sys/ufs/ufs/ufs_quota.h:1.14
--- src/sys/ufs/ufs/ufs_quota.h:1.13	Sun Jan 29 06:54:34 2012
+++ src/sys/ufs/ufs/ufs_quota.h	Sun Jan 29 06:55:44 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: ufs_quota.h,v 1.13 2012/01/29 06:54:34 dholland Exp $	*/
+/*	$NetBSD: ufs_quota.h,v 1.14 2012/01/29 06:55:44 dholland Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1990, 1993, 1995
@@ -127,7 +127,7 @@ int quota2_handle_cmd_get(struct ufsmoun
     struct quotaval *);
 int quota2_handle_cmd_put(struct ufsmount *, const struct quotakey *,
     const struct quotaval *);
-int quota2_handle_cmd_delete(struct ufsmount *, int, int, int, int);
+int quota2_handle_cmd_delete(struct ufsmount *, const struct quotakey *);
 int quota2_handle_cmd_getall(struct ufsmount *, int, prop_array_t);
 int q2sync(struct mount *);
 int dq2get(struct vnode *, u_long, struct ufsmount *, int, struct dquot *);

Index: src/sys/ufs/ufs/ufs_quota2.c
diff -u src/sys/ufs/ufs/ufs_quota2.c:1.14 src/sys/ufs/ufs/ufs_quota2.c:1.15
--- src/sys/ufs/ufs/ufs_quota2.c:1.14	Sun Jan 29 06:54:34 2012
+++ src/sys/ufs/ufs/ufs_quota2.c	Sun Jan 29 06:55:44 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: ufs_quota2.c,v 1.14 2012/01/29 06:54:34 dholland Exp $ */
+/* $NetBSD: ufs_quota2.c,v 1.15 2012/01/29 06:55:44 dholland Exp $ */
 /*-
   * Copyright (c) 2010 Manuel Bouyer
   * All rights reserved.
@@ -26,7 +26,7 @@
   */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ufs_quota2.c,v 1.14 2012/01/29 06:54:34 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ufs_quota2.c,v 1.15 2012/01/29 06:55:44 dholland Exp $");
 
 #include <sys/buf.h>
 #include <sys/param.h>
@@ -708,9 +708,11 @@ dq2clear_callback(struct ufsmount *ump, 
 	return 0;
 }
 int
-quota2_handle_cmd_delete(struct ufsmount *ump, int idtype, int id,
-    int defaultq, int objtype)
+quota2_handle_cmd_delete(struct ufsmount *ump, const struct quotakey *qk)
 {
+	int idtype;
+	id_t id;
+	int objtype;
 	int error, i, canfree;
 	struct dquot *dq;
 	struct quota2_header *q2h;
@@ -719,9 +721,13 @@ quota2_handle_cmd_delete(struct ufsmount
 	u_long hash_mask;
 	struct dq2clear_callback c;
 
+	idtype = qk->qk_idtype;
+	id = qk->qk_id;
+	objtype = qk->qk_objtype;
+
 	if (ump->um_quotas[idtype] == NULLVP)
 		return ENODEV;
-	if (defaultq)
+	if (id == QUOTA_DEFAULTID)
 		return EOPNOTSUPP;
 
 	/* get the default entry before locking the entry's buffer */

Reply via email to