From vangyzen@stat.duke.edu  Tue Jan 28 14:06:05 2003
Return-Path: <vangyzen@stat.duke.edu>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 3F99937B401
	for <FreeBSD-gnats-submit@freebsd.org>; Tue, 28 Jan 2003 14:06:05 -0800 (PST)
Received: from davinci.isds.duke.edu (davinci.isds.duke.edu [152.3.22.1])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 75CDC43E4A
	for <FreeBSD-gnats-submit@freebsd.org>; Tue, 28 Jan 2003 14:06:04 -0800 (PST)
	(envelope-from vangyzen@stat.duke.edu)
Received: from floyd.isds.duke.edu (floyd.isds.duke.edu [152.3.22.120])
	by davinci.isds.duke.edu (8.11.6/8.11.6) with ESMTP id h0SM5wD28212
	for <FreeBSD-gnats-submit@freebsd.org>; Tue, 28 Jan 2003 17:05:58 -0500 (EST)
Received: (from vangyzen@localhost)
	by floyd.isds.duke.edu (8.12.6/8.12.5/Submit) id h0SM5wGg013035;
	Tue, 28 Jan 2003 17:05:58 -0500 (EST)
	(envelope-from vangyzen)
Message-Id: <200301282205.h0SM5wGg013035@floyd.isds.duke.edu>
Date: Tue, 28 Jan 2003 17:05:58 -0500 (EST)
From: Eric van Gyzen <vangyzen@stat.duke.edu>
Reply-To: Eric van Gyzen <vangyzen@stat.duke.edu>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: quota(1) misreports nfs quotas >= 4 GB
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         47607
>Category:       bin
>Synopsis:       quota(1) misreports nfs quotas >= 4 GB
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jan 28 14:10:01 PST 2003
>Closed-Date:    Mon Aug 04 23:50:37 PDT 2003
>Last-Modified:  Mon Aug 04 23:50:37 PDT 2003
>Originator:     Eric van Gyzen
>Release:        FreeBSD 4.7-STABLE i386
>Organization:
ISDS, Duke University
>Environment:
System: FreeBSD floyd.isds.duke.edu 4.7-STABLE FreeBSD 4.7-STABLE #1: Fri Jan 17 15:44:11 EST 2003 vangyzen@floyd.isds.duke.edu:/build/obj/build/src/sys/FLOYD i386

>Description:
The quota(1) utility incorrectly reports quotas >= 4 GB (8388608 blocks)
on NFS-mounted filesystems.  When the getnfsquota() function adjusts the
quota values (limits, usage) based on the remote and local block sizes,
it removes the nine high-order bits of those values.

>How-To-Repeat:
nfs-server% quota
Disk quotas for user johndoe (uid 1000): 
     Filesystem   usage   quota   limit   grace   files   quota   limit   grace
          /home  226255 4194303 4194304            6382       0       0        

nfs-client% quota
Disk quotas for user johndoe (uid 1000): 
     Filesystem   usage   quota   limit   grace   files   quota   limit   grace
          /home  226255 4194303       0            6382       0       0        

>Fix:
--- usr.bin/quota/quota.c.orig	Tue Jan 21 13:40:10 2003
+++ usr.bin/quota/quota.c	Tue Jan 28 16:44:22 2003
@@ -632,13 +632,13 @@
 			/* blocks*/
 		dqp->dqb_bhardlimit =
 		    gq_rslt.getquota_rslt_u.gqr_rquota.rq_bhardlimit *
-		    gq_rslt.getquota_rslt_u.gqr_rquota.rq_bsize / DEV_BSIZE;
+		    (gq_rslt.getquota_rslt_u.gqr_rquota.rq_bsize / DEV_BSIZE);
 		dqp->dqb_bsoftlimit =
 		    gq_rslt.getquota_rslt_u.gqr_rquota.rq_bsoftlimit *
-		    gq_rslt.getquota_rslt_u.gqr_rquota.rq_bsize / DEV_BSIZE;
+		    (gq_rslt.getquota_rslt_u.gqr_rquota.rq_bsize / DEV_BSIZE);
 		dqp->dqb_curblocks =
 		    gq_rslt.getquota_rslt_u.gqr_rquota.rq_curblocks *
-		    gq_rslt.getquota_rslt_u.gqr_rquota.rq_bsize / DEV_BSIZE;
+		    (gq_rslt.getquota_rslt_u.gqr_rquota.rq_bsize / DEV_BSIZE);
 			/* inodes */
 		dqp->dqb_ihardlimit =
 			gq_rslt.getquota_rslt_u.gqr_rquota.rq_fhardlimit;

>Release-Note:
>Audit-Trail:

From: Eric van Gyzen <vangyzen@stat.duke.edu>
To: freebsd-gnats-submit@FreeBSD.org, vangyzen@stat.duke.edu
Cc:  
Subject: Re: bin/47607: quota(1) misreports nfs quotas >= 4 GB
Date: Tue, 28 Jan 2003 17:18:06 -0500

 > it removes the nine high-order bits of those values.
 
 That is, it removes the log2(bsize) high-order bits.  You get the idea.
 
 Eric
State-Changed-From-To: open->closed 
State-Changed-By: das 
State-Changed-When: Mon Aug 4 23:50:15 PDT 2003 
State-Changed-Why:  
Committed, thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=47607 
>Unformatted:
