bin/156258: commit references a PR
dfilter service
dfilter at FreeBSD.ORG
Mon Jul 18 05:00:30 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, 18 Jul 2011 04:54:24 +0000 (UTC)
Author: avatar
Date: Mon Jul 18 04:54:12 2011
New Revision: 224173
URL: http://svn.freebsd.org/changeset/base/224173
Log:
MFC r223035: 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>
Modified:
stable/8/usr.bin/find/function.c
Directory Properties:
stable/8/usr.bin/find/ (props changed)
Modified: stable/8/usr.bin/find/function.c
==============================================================================
--- stable/8/usr.bin/find/function.c Mon Jul 18 03:40:49 2011 (r224172)
+++ stable/8/usr.bin/find/function.c Mon Jul 18 04:54:12 2011 (r224173)
@@ -851,7 +851,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)
@@ -893,13 +894,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();
}
@@ -910,22 +911,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")) {
@@ -943,12 +933,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