Commit eef46ab7 authored by Bob Peterson's avatar Bob Peterson Committed by Andreas Gruenbacher
Browse files

gfs2: Introduce new quota=quiet mount option



This patch adds a new mount option quota=quiet which is the same as
quota=on but it suppresses gfs2 quota error messages.

Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
parent 267d1a01
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -537,6 +537,7 @@ struct gfs2_statfs_change_host {
#define GFS2_QUOTA_OFF		0
#define GFS2_QUOTA_ACCOUNT	1
#define GFS2_QUOTA_ON		2
#define GFS2_QUOTA_QUIET	3 /* on but not complaining */

#define GFS2_DATA_DEFAULT	GFS2_DATA_ORDERED
#define GFS2_DATA_WRITEBACK	1
+1 −0
Original line number Diff line number Diff line
@@ -1396,6 +1396,7 @@ static const struct constant_table gfs2_param_quota[] = {
	{"off",        GFS2_QUOTA_OFF},
	{"account",    GFS2_QUOTA_ACCOUNT},
	{"on",         GFS2_QUOTA_ON},
	{"quiet",      GFS2_QUOTA_QUIET},
	{}
};

+11 −6
Original line number Diff line number Diff line
@@ -1083,7 +1083,8 @@ int gfs2_quota_lock(struct gfs2_inode *ip, kuid_t uid, kgid_t gid)
	u32 x;
	int error = 0;

	if (sdp->sd_args.ar_quota != GFS2_QUOTA_ON)
	if (sdp->sd_args.ar_quota != GFS2_QUOTA_ON &&
	    sdp->sd_args.ar_quota != GFS2_QUOTA_QUIET)
		return 0;

	error = gfs2_quota_hold(ip, uid, gid);
@@ -1202,6 +1203,7 @@ static int print_message(struct gfs2_quota_data *qd, char *type)
{
	struct gfs2_sbd *sdp = qd->qd_sbd;

	if (sdp->sd_args.ar_quota != GFS2_QUOTA_QUIET)
		fs_info(sdp, "quota %s for %s %u\n",
			type,
			(qd->qd_id.type == USRQUOTA) ? "user" : "group",
@@ -1291,7 +1293,8 @@ void gfs2_quota_change(struct gfs2_inode *ip, s64 change,
	u32 x;
	struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode);

	if (sdp->sd_args.ar_quota != GFS2_QUOTA_ON ||
	if ((sdp->sd_args.ar_quota != GFS2_QUOTA_ON &&
	    sdp->sd_args.ar_quota != GFS2_QUOTA_QUIET) ||
	    gfs2_assert_warn(sdp, change))
		return;
	if (ip->i_diskflags & GFS2_DIF_SYSTEM)
@@ -1601,6 +1604,8 @@ static int gfs2_quota_get_state(struct super_block *sb, struct qc_state *state)
	memset(state, 0, sizeof(*state));

	switch (sdp->sd_args.ar_quota) {
	case GFS2_QUOTA_QUIET:
		fallthrough;
	case GFS2_QUOTA_ON:
		state->s_state[USRQUOTA].flags |= QCI_LIMITS_ENFORCED;
		state->s_state[GRPQUOTA].flags |= QCI_LIMITS_ENFORCED;
+3 −0
Original line number Diff line number Diff line
@@ -1119,6 +1119,9 @@ static int gfs2_show_options(struct seq_file *s, struct dentry *root)
		case GFS2_QUOTA_ON:
			state = "on";
			break;
		case GFS2_QUOTA_QUIET:
			state = "quiet";
			break;
		default:
			state = "unknown";
			break;