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

From: [email protected] (dfilter service)
To: [email protected]
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 <[email protected]>
   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;
  }
  
 _______________________________________________
 [email protected] mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "[email protected]"
 
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "[email protected]"

Reply via email to