bin/128427: commit references a PR

dfilter service dfilter at FreeBSD.ORG
Tue Sep 13 20:20:11 UTC 2011


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

From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at 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-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