public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: xfs@oss.sgi.com
Cc: nathans@aconex.com
Subject: [PATCH] xfs_quota: remove calls to XFS_QSYNC
Date: Mon, 30 Jan 2012 06:50:24 -0500	[thread overview]
Message-ID: <20120130115024.GA884@infradead.org> (raw)

In 2005 commit master-melb:xfs-cmds:23840a from Nathan added calls to
XFS_QSYNC/Q_XQUOTASYNC to xfs_quota, with the following rather sparse
description:

 "Issue a quote sync before reporting quota, resolving issue with delayed
  allocation."

I can't really see a reason for this - we do quota accounting by the time
we reserve space for the delayed allocation, and while converting the
reservations might change the quota accounting minimally due to the amount
of btree blocks used for the bmap btree on large files in generally this
makes little sense, and on today's large system has a large performance
impact.  Also only xfs_quota ever did these calls, the generic quota tool
never did any kind of sync, and of course removing it does not cause
any regressions in xfstests.

Nathan, I've cced you in case you still remember anything about this,
although it's fairly unlikely after 6.5 years.  Also if anyone at SGI
can find anything about the above commits in BugWorks additional feedback
would be welcome.

Signed-off-by: Christoph Hellwig <hch@lst.de>

Index: xfsprogs-dev/quota/free.c
===================================================================
--- xfsprogs-dev.orig/quota/free.c	2012-01-27 11:10:34.000000000 +0000
+++ xfsprogs-dev/quota/free.c	2012-01-27 11:10:42.000000000 +0000
@@ -167,7 +167,6 @@ projects_free_space_data(
 		return 0;
 	}
 
-	xfsquotactl(XFS_QSYNC, dev, type, fsx.fsx_projid, NULL);
 	if (xfsquotactl(XFS_GETQUOTA, dev, type, fsx.fsx_projid, &d) < 0) {
 		perror("XFS_GETQUOTA");
 		close(fd);
Index: xfsprogs-dev/quota/irix.c
===================================================================
--- xfsprogs-dev.orig/quota/irix.c	2012-01-27 11:10:52.000000000 +0000
+++ xfsprogs-dev/quota/irix.c	2012-01-27 11:10:59.000000000 +0000
@@ -45,8 +45,6 @@ xcommand_to_qcommand(
 		return Q_XGETQSTAT;
 	case XFS_QUOTARM:
 		return Q_XQUOTARM;
-	case XFS_QSYNC:
-		return Q_SYNC;
 	}
 	return 0;
 }
Index: xfsprogs-dev/quota/linux.c
===================================================================
--- xfsprogs-dev.orig/quota/linux.c	2012-01-27 11:11:02.000000000 +0000
+++ xfsprogs-dev/quota/linux.c	2012-01-27 11:11:05.000000000 +0000
@@ -55,8 +55,6 @@ xcommand_to_qcommand(
 		return Q_XGETQSTAT;
 	case XFS_QUOTARM:
 		return Q_XQUOTARM;
-	case XFS_QSYNC:
-		return Q_XQUOTASYNC;
 	}
 	return 0;
 }
Index: xfsprogs-dev/quota/quota.c
===================================================================
--- xfsprogs-dev.orig/quota/quota.c	2012-01-27 11:10:24.000000000 +0000
+++ xfsprogs-dev/quota/quota.c	2012-01-27 11:10:29.000000000 +0000
@@ -64,7 +64,6 @@ quota_mount(
 	uint		qflags;
 	int		count;
 
-	xfsquotactl(XFS_QSYNC, dev, type, 0, NULL);
 	if (xfsquotactl(XFS_GETQUOTA, dev, type, id, (void *)&d) < 0)
 		return 0;
 
Index: xfsprogs-dev/quota/quota.h
===================================================================
--- xfsprogs-dev.orig/quota/quota.h	2012-01-27 11:11:10.000000000 +0000
+++ xfsprogs-dev/quota/quota.h	2012-01-27 11:11:20.000000000 +0000
@@ -41,7 +41,6 @@ enum {
 	XFS_SETQLIM,	/* set disk limits */
 	XFS_GETQSTAT,	/* get quota subsystem status */
 	XFS_QUOTARM,	/* free disk space used by dquots */
-	XFS_QSYNC,	/* flush delayed allocate space */
 };
 
 /*
Index: xfsprogs-dev/quota/report.c
===================================================================
--- xfsprogs-dev.orig/quota/report.c	2012-01-27 11:09:41.000000000 +0000
+++ xfsprogs-dev/quota/report.c	2012-01-27 11:10:19.000000000 +0000
@@ -520,10 +520,6 @@ report_any_type(
 	if (type & XFS_USER_QUOTA) {
 		fs_cursor_initialise(dir, FS_MOUNT_POINT, &cursor);
 		while ((mount = fs_cursor_next_entry(&cursor))) {
-			if (xfsquotactl(XFS_QSYNC, mount->fs_name,
-						XFS_USER_QUOTA, 0, NULL) < 0
-					&& errno != ENOENT && errno != ENOSYS)
-				perror("XFS_QSYNC user quota");
 			report_user_mount(fp, form, mount,
 						lower, upper, flags);
 		}
@@ -531,10 +527,6 @@ report_any_type(
 	if (type & XFS_GROUP_QUOTA) {
 		fs_cursor_initialise(dir, FS_MOUNT_POINT, &cursor);
 		while ((mount = fs_cursor_next_entry(&cursor))) {
-			if (xfsquotactl(XFS_QSYNC, mount->fs_name,
-						XFS_GROUP_QUOTA, 0, NULL) < 0
-					&& errno != ENOENT && errno != ENOSYS)
-				perror("XFS_QSYNC group quota");
 			report_group_mount(fp, form, mount,
 						lower, upper, flags);
 		}
@@ -542,10 +534,6 @@ report_any_type(
 	if (type & XFS_PROJ_QUOTA) {
 		fs_cursor_initialise(dir, FS_MOUNT_POINT, &cursor);
 		while ((mount = fs_cursor_next_entry(&cursor))) {
-			if (xfsquotactl(XFS_QSYNC, mount->fs_name,
-						XFS_PROJ_QUOTA, 0, NULL) < 0
-					&& errno != ENOENT && errno != ENOSYS)
-				perror("XFS_QSYNC proj quota");
 			report_project_mount(fp, form, mount,
 						lower, upper, flags);
 		}

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

             reply	other threads:[~2012-01-30 11:50 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-30 11:50 Christoph Hellwig [this message]
2012-01-30 19:57 ` [PATCH] xfs_quota: remove calls to XFS_QSYNC Nathan Scott
2012-01-31 16:26   ` Ben Myers
2012-01-31 21:01     ` Dave Chinner
2012-02-01 10:24       ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120130115024.GA884@infradead.org \
    --to=hch@infradead.org \
    --cc=nathans@aconex.com \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox