svn commit: r313450 - in stable/11: lib/libc/gen lib/libc/sys sys/compat/freebsd32 sys/kern sys/sys

John Baldwin jhb at freebsd.org
Wed Mar 22 17:19:29 UTC 2017


On Wednesday, March 22, 2017 03:40:49 PM Slawa Olhovchenkov wrote:
> On Tue, Mar 21, 2017 at 08:05:31PM -0700, John Baldwin wrote:
> 
> > On Wednesday, March 15, 2017 05:30:53 PM Slawa Olhovchenkov wrote:
> > > On Wed, Feb 08, 2017 at 06:32:35PM +0000, John Baldwin wrote:
> > > 
> > > > Author: jhb
> > > > Date: Wed Feb  8 18:32:35 2017
> > > > New Revision: 313450
> > > > URL: https://svnweb.freebsd.org/changeset/base/313450
> > > > 
> > > > Log:
> > > >   MFC 310638:
> > > >   Rename the 'flags' argument to getfsstat() to 'mode' and validate it.
> > > >   
> > > >   This argument is not a bitmask of flags, but only accepts a single value.
> > > >   Fail with EINVAL if an invalid value is passed to 'flag'.  Rename the
> > > >   'flags' argument to getmntinfo(3) to 'mode' as well to match.
> > > >   
> > > >   This is a followup to r308088.
> > > 
> > > >  kern_getfsstat(struct thread *td, struct statfs **buf, size_t bufsize,
> > > > -    size_t *countp, enum uio_seg bufseg, int flags)
> > > > +    size_t *countp, enum uio_seg bufseg, int mode)
> > > >  {
> > > >  	struct mount *mp, *nmp;
> > > >  	struct statfs *sfsp, *sp, *sptmp, *tofree;
> > > >  	size_t count, maxcount;
> > > >  	int error;
> > > >  
> > > > +	switch (mode) {
> > > > +	case MNT_WAIT:
> > > > +	case MNT_NOWAIT:
> > > > +		break;
> > > > +	default:
> > > > +		return (EINVAL);
> > > > +	}
> > > >  restart:
> > > 
> > > This is break net-snmp UCD-SNMP-MIB::dskTable oid:
> > > 
> > >  82434 snmpd    CALL  getfsstat(0,0,<invalid=0>)
> > >  82434 snmpd    RET   getfsstat -1 errno 22 Invalid argument
> > >  82434 snmpd    CALL  getfsstat(0,0xfffffffffffffe28,MNT_NOWAIT)
> > >  82434 snmpd    RET   getfsstat -1 errno 22 Invalid argument
> > >  82434 snmpd    CALL  write(0x9,0x800f162ea,0x1)
> > 
> void
> netsnmp_fsys_arch_load( void )
> {   
>     int n, i;
>     struct NSFS_STATFS *stats;
>     netsnmp_fsys_info *entry;
> 
>     /*
>      * Retrieve information about the currently mounted filesystems...
>      */
>     n = NSFS_GETFSSTAT( NULL, 0, 0 );
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Ah, thanks.  I've created a bug with a patch to the port (218011).  Would
you be able to verify the patch works correctly?  It changes this call to
use MNT_NOWAIT.

-- 
John Baldwin


More information about the svn-src-all mailing list