[Cluster-devel] cluster gfs-kernel/src/gfs/ops_fstype.c gfs-ke ...
adas at sourceware.org
adas at sourceware.org
Fri Sep 15 21:42:06 UTC 2006
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL4
Changes by: adas at sourceware.org 2006-09-15 21:42:05
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=RHEL4&r1=1.13.2.2&r2=1.13.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/mount.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.8.2.1&r2=1.8.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/incore.h.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.17.2.5&r2=1.17.2.6
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/ops_super.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.12.2.4&r2=1.12.2.5
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs/man/gfs_mount.8.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.3.2.1&r2=1.3.2.2
--- 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:42:05 1.13.2.3
@@ -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:42:05 1.8.2.2
@@ -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:42:05 1.17.2.6
@@ -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:42:05 1.12.2.5
@@ -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:42:05 1.3.2.2
@@ -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