Subject: Re: kern/36284
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: Kurt Schreiner <ks@ub.uni-mainz.de>
List: netbsd-bugs
Date: 05/21/2007 07:50:02
The following reply was made to PR kern/36284; it has been noted by GNATS.
From: Kurt Schreiner <ks@ub.uni-mainz.de>
To: Geoff Wing <gcw@pobox.com>
Cc: gnats-bugs@NetBSD.org, David Laight <dsl@NetBSD.org>
Subject: Re: kern/36284
Date: Mon, 21 May 2007 09:49:22 +0200
On Mon, May 21, 2007 at 03:37:54AM +0200, Geoff Wing wrote:
> On Saturday 2007-05-19 14:25 +0000, Kurt Schreiner output:
> :From: Kurt Schreiner <ks@ub.uni-mainz.de>
> :To: gnats-bugs@NetBSD.org
> :Cc: David Laight <dsl@NetBSD.org>
> :Subject: Re: kern/36284
> :Date: Sat, 19 May 2007 16:23:57 +0200
> :
> : this was introduced between 29.04.2007_23:59 and 30.04.2007_23:59.
> : Below's a diff of ident <kernel_from_29...> and ident <kernel_from_30...>.
> : Maybe some of the changes to vfs_syscalls causes the "shining through"
> : of files from the lower layer?
> : < $NetBSD: vfs_syscalls.c,v 1.310 2007/04/22 08:30:01 dsl Exp $
> : ---
> : > $NetBSD: vfs_syscalls.c,v 1.311 2007/04/30 08:32:14 dsl Exp $
>
> Good pick. There was a logic inversion introduced here in sys_fstatvfs1().
>
> - if ((error = dostatvfs(mp, sb, l, SCARG(uap, flags), 1)) != 0)
> - goto out;
> - error = copyout(sb, SCARG(uap, buf), sizeof(*sb));
> - out:
> - FILE_UNUSE(fp, l);
> + error = do_sys_fstatvfs(l, SCARG(uap, fd), SCARG(uap, flags), sb);
> + if (error != 0)
> + error = copyout(sb, SCARG(uap, buf), sizeof(*sb));
>
> Regards,
> Geoff
>
> --- sys/kern/vfs_syscalls.c.org 2007-05-21 11:22:13.000000000 +1000
> +++ sys/kern/vfs_syscalls.c 2007-05-21 11:25:34.000000000 +1000
> @@ -881,7 +881,7 @@
>
> sb = STATVFSBUF_GET();
> error = do_sys_fstatvfs(l, SCARG(uap, fd), SCARG(uap, flags), sb);
> - if (error != 0)
> + if (error == 0)
> error = copyout(sb, SCARG(uap, buf), sizeof(*sb));
> STATVFSBUF_PUT(sb);
> return error;
Yep! Applied your patch and no more "shining" doublicates ;-)
Kurt