bin/156258: commit references a PR

dfilter service dfilter at FreeBSD.ORG
Mon Jun 13 05:30:15 UTC 2011


The following reply was made to PR bin/156258; it has been noted by GNATS.

From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at FreeBSD.org
Cc:  
Subject: Re: bin/156258: commit references a PR
Date: Mon, 13 Jun 2011 05:22:21 +0000 (UTC)

 Author: avatar
 Date: Mon Jun 13 05:22:07 2011
 New Revision: 223035
 URL: http://svn.freebsd.org/changeset/base/223035
 
 Log:
   Using statfs.f_fstypename rather than statfs.f_type whilst performing fstype
   comparsion as nullfs will copy f_type from underlayer FS.
   
   PR:		bin/156258
   Submitted by:	Marcin Wisnicki <mwisnicki+freebsd at gmail.com>
   MFC after:	1 month
 
 Modified:
   head/usr.bin/find/function.c
 
 Modified: head/usr.bin/find/function.c
 ==============================================================================
 --- head/usr.bin/find/function.c	Mon Jun 13 04:55:29 2011	(r223034)
 +++ head/usr.bin/find/function.c	Mon Jun 13 05:22:07 2011	(r223035)
 @@ -846,7 +846,8 @@ f_fstype(PLAN *plan, FTSENT *entry)
  	static dev_t curdev;	/* need a guaranteed illegal dev value */
  	static int first = 1;
  	struct statfs sb;
 -	static int val_type, val_flags;
 +	static int val_flags;
 +	static char fstype[sizeof(sb.f_fstypename)];
  	char *p, save[2] = {0,0};
  
  	if ((plan->flags & F_MTMASK) == F_MTUNKNOWN)
 @@ -888,13 +889,13 @@ f_fstype(PLAN *plan, FTSENT *entry)
  		 * always copy both of them.
  		 */
  		val_flags = sb.f_flags;
 -		val_type = sb.f_type;
 +		strlcpy(fstype, sb.f_fstypename, sizeof(fstype));
  	}
  	switch (plan->flags & F_MTMASK) {
  	case F_MTFLAG:
  		return val_flags & plan->mt_data;
  	case F_MTTYPE:
 -		return val_type == plan->mt_data;
 +		return (strncmp(fstype, plan->c_data, sizeof(fstype)) == 0);
  	default:
  		abort();
  	}
 @@ -905,22 +906,11 @@ c_fstype(OPTION *option, char ***argvp)
  {
  	char *fsname;
  	PLAN *new;
 -	struct xvfsconf vfc;
  
  	fsname = nextarg(option, argvp);
  	ftsoptions &= ~FTS_NOSTAT;
  
  	new = palloc(option);
 -
 -	/*
 -	 * Check first for a filesystem name.
 -	 */
 -	if (getvfsbyname(fsname, &vfc) == 0) {
 -		new->flags |= F_MTTYPE;
 -		new->mt_data = vfc.vfc_typenum;
 -		return new;
 -	}
 -
  	switch (*fsname) {
  	case 'l':
  		if (!strcmp(fsname, "local")) {
 @@ -938,12 +928,8 @@ c_fstype(OPTION *option, char ***argvp)
  		break;
  	}
  
 -	/*
 -	 * We need to make filesystem checks for filesystems
 -	 * that exists but aren't in the kernel work.
 -	 */
 -	fprintf(stderr, "Warning: Unknown filesystem type %s\n", fsname);
 -	new->flags |= F_MTUNKNOWN;
 +	new->flags |= F_MTTYPE;
 +	new->c_data = fsname;
  	return new;
  }
  
 _______________________________________________
 svn-src-all at freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
 


More information about the freebsd-bugs mailing list