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

From: dfil...@freebsd.org (dfilter service)
To: bug-follo...@freebsd.org
Cc:  
Subject: Re: bin/128427: commit references a PR
Date: Tue, 13 Sep 2011 20:16:21 +0000 (UTC)

 Author: kib
 Date: Tue Sep 13 20:16:11 2011
 New Revision: 225534
 URL: http://svn.freebsd.org/changeset/base/225534
 
 Log:
   Do not try to change the mode or ownership of the root of the mountpoint
   when newly established mdmfs mount is readonly.
   
   PR:  bin/128427
   Tested and reviewed by:      jchandra
   MFC after:   1 week
   Approved by: re (bz)
 
 Modified:
   head/sbin/mdmfs/mdmfs.c
 
 Modified: head/sbin/mdmfs/mdmfs.c
 ==============================================================================
 --- head/sbin/mdmfs/mdmfs.c    Tue Sep 13 15:57:29 2011        (r225533)
 +++ head/sbin/mdmfs/mdmfs.c    Tue Sep 13 20:16:11 2011        (r225534)
 @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$");
  
  #include <sys/param.h>
  #include <sys/mdioctl.h>
 +#include <sys/mount.h>
  #include <sys/stat.h>
  #include <sys/wait.h>
  
 @@ -60,6 +61,7 @@ struct mtpt_info {
        bool             mi_have_gid;
        mode_t           mi_mode;
        bool             mi_have_mode;
 +      bool             mi_forced_pw;
  };
  
  static        bool debug;             /* Emit debugging information? */
 @@ -204,6 +206,7 @@ main(int argc, char **argv)
                                usage();
                        mi.mi_mode = getmode(set, S_IRWXU | S_IRWXG | S_IRWXO);
                        mi.mi_have_mode = true;
 +                      mi.mi_forced_pw = true;
                        free(set);
                        break;
                case 'S':
 @@ -223,6 +226,7 @@ main(int argc, char **argv)
                        break;
                case 'w':
                        extract_ugid(optarg, &mi);
 +                      mi.mi_forced_pw = true;
                        break;
                case 'X':
                        debug = true;
 @@ -443,6 +447,29 @@ do_mount(const char *args, const char *m
  static void
  do_mtptsetup(const char *mtpoint, struct mtpt_info *mip)
  {
 +      struct statfs sfs;
 +
 +      if (!mip->mi_have_mode && !mip->mi_have_uid && !mip->mi_have_gid)
 +              return;
 +
 +      if (!norun) {
 +              if (statfs(mtpoint, &sfs) == -1) {
 +                      warn("statfs: %s", mtpoint);
 +                      return;
 +              }
 +              if ((sfs.f_flags & MNT_RDONLY) != 0) {
 +                      if (mip->mi_forced_pw) {
 +                              warnx(
 +      "Not changing mode/owner of %s since it is read-only",
 +                                  mtpoint);
 +                      } else {
 +                              debugprintf(
 +      "Not changing mode/owner of %s since it is read-only",
 +                                  mtpoint);
 +                      }
 +                      return;
 +              }
 +      }
  
        if (mip->mi_have_mode) {
                debugprintf("changing mode of %s to %o.", mtpoint,
 _______________________________________________
 svn-src-...@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
 
_______________________________________________
freebsd-bugs@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to