[Cluster-devel] cluster gfs-kernel/src/gfs/ops_fstype.c gfs-ke ...

adas at sourceware.org adas at sourceware.org
Fri Sep 15 21:44:37 UTC 2006


CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL4U4
Changes by:	adas at sourceware.org	2006-09-15 21:44:36

Modified files:
	gfs-kernel/src/gfs: ops_fstype.c mount.c incore.h ops_super.c 
	gfs/man        : gfs_mount.8 

Log message:
	bz 205285 fix. Committing josef's noquota mount option patch. Also added noquota to gfs_mount man page

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/ops_fstype.c.diff?cvsroot=cluster&only_with_tag=RHEL4U4&r1=1.13.2.2&r2=1.13.2.2.6.1
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/mount.c.diff?cvsroot=cluster&only_with_tag=RHEL4U4&r1=1.8.2.1&r2=1.8.2.1.12.1
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/incore.h.diff?cvsroot=cluster&only_with_tag=RHEL4U4&r1=1.17.2.5&r2=1.17.2.5.4.1
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/ops_super.c.diff?cvsroot=cluster&only_with_tag=RHEL4U4&r1=1.12.2.4&r2=1.12.2.4.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs/man/gfs_mount.8.diff?cvsroot=cluster&only_with_tag=RHEL4U4&r1=1.3.2.1&r2=1.3.2.1.12.1

--- cluster/gfs-kernel/src/gfs/ops_fstype.c	2005/04/29 15:07:54	1.13.2.2
+++ cluster/gfs-kernel/src/gfs/ops_fstype.c	2006/09/15 21:44:35	1.13.2.2.6.1
@@ -170,6 +170,14 @@
 	if (sdp->sd_args.ar_posix_acls)
 		sb->s_flags |= MS_POSIXACL;
 
+	/*  Turn off quota stuff if we get the noquota mount option, don't 
+	    need to grab the sd_tune lock here since its before anything 
+	    touches the sd_tune values */
+	if (sdp->sd_args.ar_noquota) {
+		sdp->sd_tune.gt_quota_enforce = 0;
+		sdp->sd_tune.gt_quota_account = 0;
+	}
+
 	/*  Set up the buffer cache and fill in some fake block size values
 	   to allow us to read-in the on-disk superblock.  */
 
--- cluster/gfs-kernel/src/gfs/mount.c	2005/03/22 15:54:09	1.8.2.1
+++ cluster/gfs-kernel/src/gfs/mount.c	2006/09/15 21:44:35	1.8.2.1.12.1
@@ -133,6 +133,9 @@
 		else if (!strcmp(x, "suiddir"))
 			args->ar_suiddir = TRUE;
 
+		else if (!strcmp(x, "noquota"))
+			args->ar_noquota = TRUE;
+
 		/*  Unknown  */
 
 		else {
--- cluster/gfs-kernel/src/gfs/incore.h	2005/10/24 15:53:03	1.17.2.5
+++ cluster/gfs-kernel/src/gfs/incore.h	2006/09/15 21:44:35	1.17.2.5.4.1
@@ -843,6 +843,7 @@
 				       (more daemons => faster cleanup)  */
 	int ar_posix_acls; /* Enable posix acls */
 	int ar_suiddir; /* suiddir support */
+	int ar_noquota; /* Turn off quota support */
 };
 
 struct gfs_tune {
--- cluster/gfs-kernel/src/gfs/ops_super.c	2006/02/15 17:19:22	1.12.2.4
+++ cluster/gfs-kernel/src/gfs/ops_super.c	2006/09/15 21:44:35	1.12.2.4.2.1
@@ -315,6 +315,7 @@
 gfs_remount_fs(struct super_block *sb, int *flags, char *data)
 {
 	struct gfs_sbd *sdp = vfs2sdp(sb);
+	struct gfs_tune *gt = &sdp->sd_tune;
 	int error = 0;
 	struct gfs_args *args;
 
@@ -340,6 +341,25 @@
 		sb->s_flags &= ~MS_POSIXACL;
 	}
 
+	if (args->ar_noquota) {
+		if (sdp->sd_args.ar_noquota == FALSE)
+			printk("GFS: remounting without quota\n");
+		sdp->sd_args.ar_noquota = TRUE;
+		spin_lock(&gt->gt_spin);
+		gt->gt_quota_enforce = 0;
+		gt->gt_quota_account = 0;
+		spin_unlock(&gt->gt_spin);
+	}
+	else {
+		if (sdp->sd_args.ar_noquota == TRUE)
+			printk("GFS: remounting with quota\n");
+		sdp->sd_args.ar_noquota = FALSE;
+		spin_lock(&gt->gt_spin);
+		gt->gt_quota_enforce = 1;
+		gt->gt_quota_account = 1;
+		spin_unlock(&gt->gt_spin);
+	}
+
 	if (*flags & (MS_NOATIME | MS_NODIRATIME))
 		set_bit(SDF_NOATIME, &sdp->sd_flags);
 	else
@@ -433,6 +453,8 @@
 		seq_printf(s, ",num_glockd=%u", args->ar_num_glockd);
 	if (args->ar_posix_acls)
 		seq_printf(s, ",acl");
+	if (args->ar_noquota)
+		seq_printf(s, ",noquota");
 	if (args->ar_suiddir)
 		seq_printf(s, ",suiddir");
 
--- cluster/gfs/man/gfs_mount.8	2005/03/03 22:26:33	1.3.2.1
+++ cluster/gfs/man/gfs_mount.8	2006/09/15 21:44:36	1.3.2.1.12.1
@@ -184,6 +184,13 @@
 Strips all execution bits on a new file, if parent directory owner is different
 from owner of process creating the file.  Set this option only if you know
 why you are setting it.
+.TP
+\fBnoquota\fP
+Disables quota accounting and quota enforcement during mount. The effect of 
+using this mount option is identical to mounting gfs without \fB-o noquota\fP 
+and then invoking \fBgfs_tool settune <mountpoint> quota_account 0\fP. In 
+order to enable quotas in the future the quota file must be initialized using 
+\fBgfs_quota init -f <mountpoint>\fP. See \fBgfs_quota\fP(8)
 
 .SH LINKS
 .TP 30




More information about the Cluster-devel mailing list