Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Jul 2000 04:00:05 -0700 (PDT)
From:      Robert Drehmel <robd@gmx.net>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: bin/19772: df output wrong for union-mounts
Message-ID:  <200007091100.EAA24409@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/19772; it has been noted by GNATS.

From: Robert Drehmel <robd@gmx.net>
To: freebsd-gnats-submit@FreeBSD.org
Cc: bdluevel@heitec.net
Subject: Re: bin/19772: df output wrong for union-mounts
Date: Sun, 09 Jul 2000 12:54:32 +0200

 This is a multi-part message in MIME format.
 --------------F4ADB7FBFEE0C8F7415DC772
 Content-Type: text/plain; charset=iso-8859-1
 Content-Transfer-Encoding: 8bit
 
 > 'df -t nonfs' lists, if two partitions are mounted
 > to the same mountpoint with 'union', one of them
 > twice and omits the other. 'df' by itself lists both,
 > as expected.
 > This also affects the "daily" report to root,
 > /etc/periodic/daily/400.status-disks
 
 Use df -n or take this patch.
 
 I'm not quite sure for what the statfs(2) call down in regetmntinfo()
 is. statfs(2) takes the path and a ``struct statfs´´ buffer as
 arguments; it can not distinguish between two identical paths (who
 can? :-), so the information about the last filesystem mounted on that
 path is written into the buffer.
 
 Or am I wrong ? Anyway, the patch works for me...
 
 -- 
 Robert S. F. Drehmel <robd@gmx.net>
 
 linux.de: "Forget Ctrl-Alt-Del, use Linux"
 Right, their productivity seems to be the same.
 --------------F4ADB7FBFEE0C8F7415DC772
 Content-Type: text/plain; charset=us-ascii; name="df.diff"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline; filename="df.diff"
 
 *** ../df.c	Sun Jul  9 12:11:07 2000
 --- df.c	Sun Jul  9 12:09:23 2000
 ***************
 *** 296,304 ****
   	for (j = 0, i = 0; i < mntsize; i++) {
   		if (checkvfsname(mntbuf[i].f_fstypename, vfslist))
   			continue;
 ! 		if (!nflag)
 ! 			(void)statfs(mntbuf[i].f_mntonname,&mntbuf[j]);
 ! 		else if (i != j)
   			mntbuf[j] = mntbuf[i];
   		j++;
   	}
 --- 296,302 ----
   	for (j = 0, i = 0; i < mntsize; i++) {
   		if (checkvfsname(mntbuf[i].f_fstypename, vfslist))
   			continue;
 ! 		if (i != j)
   			mntbuf[j] = mntbuf[i];
   		j++;
   	}
 
 --------------F4ADB7FBFEE0C8F7415DC772--
 
 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200007091100.EAA24409>