Module Name:    src
Committed By:   dholland
Date:           Sun Jan 29 06:23:21 UTC 2012

Modified Files:
        src/sys/compat/common: vfs_syscalls_50.c
        src/sys/ufs/ufs: quota1.h quota1_subr.c ufs_quota1.c
        src/usr.sbin/edquota: edquota.c

Log Message:
Change dqblk_to_quotaval() from quota1_subr.c to dqblk_to_quotavals(),
and pass in two single quotaval structs (for blocks and inodes)
instead of an array of (implicitly) QUOTA_NLIMITS quotaval structs
indexed by constants from quotaprop.h.

Note: because this code is used by COMPAT_50 as well as ufs, this
change requires a kernel version bump. (The code is also used by
edquota, but via .PATH so it's not ABI-sensitive there.)


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/sys/compat/common/vfs_syscalls_50.c
cvs rdiff -u -r1.5 -r1.6 src/sys/ufs/ufs/quota1.h
cvs rdiff -u -r1.6 -r1.7 src/sys/ufs/ufs/quota1_subr.c \
    src/sys/ufs/ufs/ufs_quota1.c
cvs rdiff -u -r1.41 -r1.42 src/usr.sbin/edquota/edquota.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/compat/common/vfs_syscalls_50.c
diff -u src/sys/compat/common/vfs_syscalls_50.c:1.10 src/sys/compat/common/vfs_syscalls_50.c:1.11
--- src/sys/compat/common/vfs_syscalls_50.c:1.10	Fri Nov 25 16:55:05 2011
+++ src/sys/compat/common/vfs_syscalls_50.c	Sun Jan 29 06:23:20 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_syscalls_50.c,v 1.10 2011/11/25 16:55:05 dholland Exp $	*/
+/*	$NetBSD: vfs_syscalls_50.c,v 1.11 2012/01/29 06:23:20 dholland Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_50.c,v 1.10 2011/11/25 16:55:05 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_50.c,v 1.11 2012/01/29 06:23:20 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -452,7 +452,9 @@ do_quotaonoff:
 		    ufs_quota_limit_names, QUOTA_NLIMITS);
 		if (error)
 			goto out_dict;
-		quotaval_to_dqblk(qv, &dqblk);
+		quotavals_to_dqblk(&qv[QUOTA_LIMIT_BLOCK],
+				   &qv[QUOTA_LIMIT_FILE],
+				   &dqblk);
 		error = copyout(&dqblk, SCARG(uap, arg), sizeof(dqblk));
 		goto out_dict;
 		
@@ -460,7 +462,8 @@ do_quotaonoff:
 		error = copyin(SCARG(uap, arg), &dqblk, sizeof(dqblk));
 		if (error)
 			goto out_datas;
-		dqblk_to_quotaval(&dqblk, qv);
+		dqblk_to_quotavals(&dqblk, &qv[QUOTA_LIMIT_BLOCK],
+				   &qv[QUOTA_LIMIT_FILE]);
 
 		error = ENOMEM;
 		data = quota64toprop(SCARG(uap, uid), 0, values,

Index: src/sys/ufs/ufs/quota1.h
diff -u src/sys/ufs/ufs/quota1.h:1.5 src/sys/ufs/ufs/quota1.h:1.6
--- src/sys/ufs/ufs/quota1.h:1.5	Fri Nov 25 16:55:05 2011
+++ src/sys/ufs/ufs/quota1.h	Sun Jan 29 06:23:20 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: quota1.h,v 1.5 2011/11/25 16:55:05 dholland Exp $	*/
+/*	$NetBSD: quota1.h,v 1.6 2012/01/29 06:23:20 dholland Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -104,8 +104,9 @@ struct dqblk {
 };
 
 /* quota1_subr.c */
-struct quota2_entry;
-void dqblk_to_quotaval(const struct dqblk *, struct quotaval *);
-void quotaval_to_dqblk(const struct quotaval *, struct dqblk *);
+void dqblk_to_quotavals(const struct dqblk *,
+			struct quotaval *, struct quotaval *);
+void quotavals_to_dqblk(const struct quotaval *, const struct quotaval *,
+			struct dqblk *);
 
 #endif /* !_UFS_UFS_QUOTA1_H_ */

Index: src/sys/ufs/ufs/quota1_subr.c
diff -u src/sys/ufs/ufs/quota1_subr.c:1.6 src/sys/ufs/ufs/quota1_subr.c:1.7
--- src/sys/ufs/ufs/quota1_subr.c:1.6	Fri Nov 25 16:55:05 2011
+++ src/sys/ufs/ufs/quota1_subr.c	Sun Jan 29 06:23:20 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: quota1_subr.c,v 1.6 2011/11/25 16:55:05 dholland Exp $ */
+/* $NetBSD: quota1_subr.c,v 1.7 2012/01/29 06:23:20 dholland Exp $ */
 /*-
   * Copyright (c) 2010 Manuel Bouyer
   * All rights reserved.
@@ -26,13 +26,12 @@
   */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: quota1_subr.c,v 1.6 2011/11/25 16:55:05 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: quota1_subr.c,v 1.7 2012/01/29 06:23:20 dholland Exp $");
 
 #include <sys/types.h>
 #include <machine/limits.h>
 
 #include <sys/quota.h>
-#include <quota/quotaprop.h>
 #include <ufs/ufs/quota1.h>
 
 static uint64_t
@@ -54,42 +53,36 @@ q2e2dqblk_limit(uint64_t lim)
 }
 
 void
-dqblk_to_quotaval(const struct dqblk *dqblk, struct quotaval *qv)
+dqblk_to_quotavals(const struct dqblk *dqblk,
+		   struct quotaval *blocks, struct quotaval *files)
 {
 	/* XXX is qv_grace getting handled correctly? */
 
-	qv[QUOTA_LIMIT_BLOCK].qv_hardlimit =
-	    dqblk2q2e_limit(dqblk->dqb_bhardlimit);
-	qv[QUOTA_LIMIT_BLOCK].qv_softlimit =
-	    dqblk2q2e_limit(dqblk->dqb_bsoftlimit);
-	qv[QUOTA_LIMIT_BLOCK].qv_usage       = dqblk->dqb_curblocks;
-	qv[QUOTA_LIMIT_BLOCK].qv_expiretime      = dqblk->dqb_btime;
-
-	qv[QUOTA_LIMIT_FILE].qv_hardlimit =
-	    dqblk2q2e_limit(dqblk->dqb_ihardlimit);
-	qv[QUOTA_LIMIT_FILE].qv_softlimit =
-	    dqblk2q2e_limit(dqblk->dqb_isoftlimit);
-	qv[QUOTA_LIMIT_FILE].qv_usage       = dqblk->dqb_curinodes;
-	qv[QUOTA_LIMIT_FILE].qv_expiretime      = dqblk->dqb_itime;
+	blocks->qv_hardlimit  = dqblk2q2e_limit(dqblk->dqb_bhardlimit);
+	blocks->qv_softlimit  = dqblk2q2e_limit(dqblk->dqb_bsoftlimit);
+	blocks->qv_usage      = dqblk->dqb_curblocks;
+	blocks->qv_expiretime = dqblk->dqb_btime;
+
+	files->qv_hardlimit  = dqblk2q2e_limit(dqblk->dqb_ihardlimit);
+	files->qv_softlimit  = dqblk2q2e_limit(dqblk->dqb_isoftlimit);
+	files->qv_usage      = dqblk->dqb_curinodes;
+	files->qv_expiretime = dqblk->dqb_itime;
 }
 
 void
-quotaval_to_dqblk(const struct quotaval *qv, struct dqblk *dqblk)
+quotavals_to_dqblk(const struct quotaval *blocks, const struct quotaval *files,
+		   struct dqblk *dqblk)
 {
 	/* XXX is qv_grace getting handled correctly? */
 
-	dqblk->dqb_bhardlimit =
-	    q2e2dqblk_limit(qv[QUOTA_LIMIT_BLOCK].qv_hardlimit);
-	dqblk->dqb_bsoftlimit =
-	    q2e2dqblk_limit(qv[QUOTA_LIMIT_BLOCK].qv_softlimit);
-	dqblk->dqb_curblocks  = qv[QUOTA_LIMIT_BLOCK].qv_usage;
-	dqblk->dqb_btime      = qv[QUOTA_LIMIT_BLOCK].qv_expiretime;
-
-	dqblk->dqb_ihardlimit =
-	    q2e2dqblk_limit(qv[QUOTA_LIMIT_FILE].qv_hardlimit);
-	dqblk->dqb_isoftlimit =
-	    q2e2dqblk_limit(qv[QUOTA_LIMIT_FILE].qv_softlimit);
-	dqblk->dqb_curinodes  = qv[QUOTA_LIMIT_FILE].qv_usage;
-	dqblk->dqb_itime      = qv[QUOTA_LIMIT_FILE].qv_expiretime;
+	dqblk->dqb_bhardlimit = q2e2dqblk_limit(blocks->qv_hardlimit);
+	dqblk->dqb_bsoftlimit = q2e2dqblk_limit(blocks->qv_softlimit);
+	dqblk->dqb_curblocks  = blocks->qv_usage;
+	dqblk->dqb_btime      = blocks->qv_expiretime;
+
+	dqblk->dqb_ihardlimit = q2e2dqblk_limit(files->qv_hardlimit);
+	dqblk->dqb_isoftlimit = q2e2dqblk_limit(files->qv_softlimit);
+	dqblk->dqb_curinodes  = files->qv_usage;
+	dqblk->dqb_itime      = files->qv_expiretime;
 }
 
Index: src/sys/ufs/ufs/ufs_quota1.c
diff -u src/sys/ufs/ufs/ufs_quota1.c:1.6 src/sys/ufs/ufs/ufs_quota1.c:1.7
--- src/sys/ufs/ufs/ufs_quota1.c:1.6	Fri Nov 25 16:55:05 2011
+++ src/sys/ufs/ufs/ufs_quota1.c	Sun Jan 29 06:23:20 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: ufs_quota1.c,v 1.6 2011/11/25 16:55:05 dholland Exp $	*/
+/*	$NetBSD: ufs_quota1.c,v 1.7 2012/01/29 06:23:20 dholland Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1990, 1993, 1995
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ufs_quota1.c,v 1.6 2011/11/25 16:55:05 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ufs_quota1.c,v 1.7 2012/01/29 06:23:20 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -516,7 +516,8 @@ quota1_handle_cmd_get(struct ufsmount *u
 		if ((error = dqget(NULLVP, id, ump, type, &dq)) != 0)
 			return error;
 	}
-	dqblk_to_quotaval(&dq->dq_un.dq1_dqb, qv);
+	dqblk_to_quotavals(&dq->dq_un.dq1_dqb,
+			   &qv[QUOTA_LIMIT_BLOCK], &qv[QUOTA_LIMIT_FILE]);
 	dqrele(NULLVP, dq);
 	if (defaultq) {
 		if (qv[QUOTA_LIMIT_BLOCK].qv_expiretime > 0)

Index: src/usr.sbin/edquota/edquota.c
diff -u src/usr.sbin/edquota/edquota.c:1.41 src/usr.sbin/edquota/edquota.c:1.42
--- src/usr.sbin/edquota/edquota.c:1.41	Mon Jan  9 15:44:42 2012
+++ src/usr.sbin/edquota/edquota.c	Sun Jan 29 06:23:20 2012
@@ -1,4 +1,4 @@
-/*      $NetBSD: edquota.c,v 1.41 2012/01/09 15:44:42 dholland Exp $ */
+/*      $NetBSD: edquota.c,v 1.42 2012/01/29 06:23:20 dholland Exp $ */
 /*
  * Copyright (c) 1980, 1990, 1993
  *	The Regents of the University of California.  All rights reserved.
@@ -41,7 +41,7 @@ __COPYRIGHT("@(#) Copyright (c) 1980, 19
 #if 0
 static char sccsid[] = "from: @(#)edquota.c	8.3 (Berkeley) 4/27/95";
 #else
-__RCSID("$NetBSD: edquota.c,v 1.41 2012/01/09 15:44:42 dholland Exp $");
+__RCSID("$NetBSD: edquota.c,v 1.42 2012/01/29 06:23:20 dholland Exp $");
 #endif
 #endif /* not lint */
 
@@ -249,7 +249,9 @@ putprivs1(uint32_t id, int idtype, struc
 	struct dqblk dqblk;
 	int fd;
 
-	quotaval_to_dqblk(qup->qv, &dqblk);
+	quotavals_to_dqblk(&qup->qv[QUOTA_LIMIT_BLOCK],
+			   &qup->qv[QUOTA_LIMIT_FILE],
+			   &dqblk);
 	assert((qup->flags & DEFAULT) == 0);
 
 	if ((fd = open(qup->qfname, O_WRONLY)) < 0) {
@@ -327,7 +329,9 @@ getprivs1(long id, int idtype, const cha
 	close(fd);
 	qup->qfname = qfpathname;
 	endfsent();
-	dqblk_to_quotaval(&dqblk, qup->qv);
+	dqblk_to_quotavals(&dqblk,
+			   &qup->qv[QUOTA_LIMIT_BLOCK],
+			   &qup->qv[QUOTA_LIMIT_FILE]);
 	return qup;
 }
 

Reply via email to