From mboxrd@z Thu Jan 1 00:00:00 1970 From: adas@sourceware.org Date: 15 Sep 2006 21:44:37 -0000 Subject: [Cluster-devel] cluster gfs-kernel/src/gfs/ops_fstype.c gfs-ke ... Message-ID: <20060915214437.4118.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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_spin); + gt->gt_quota_enforce = 0; + gt->gt_quota_account = 0; + spin_unlock(>->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_spin); + gt->gt_quota_enforce = 1; + gt->gt_quota_account = 1; + spin_unlock(>->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 quota_account 0\fP. In +order to enable quotas in the future the quota file must be initialized using +\fBgfs_quota init -f \fP. See \fBgfs_quota\fP(8) .SH LINKS .TP 30