All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Chinner <dgc@sgi.com>
To: Christoph Hellwig <hch@lst.de>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH 11/17] remove dependency of the quota module on behaviors.
Date: Fri, 24 Aug 2007 10:26:12 +1000	[thread overview]
Message-ID: <20070824002612.GC72985246@sgi.com> (raw)
In-Reply-To: <20070823193935.GL8050@lst.de>

On Thu, Aug 23, 2007 at 09:39:35PM +0200, Christoph Hellwig wrote:
> Mount options are now parsed by the main XFS module and rejected if quota
> support is not available, and there are some new quota operation for the
> quotactl syscall and calls to quote in the mount, unmount and sync
> callchains.
....
>  
> -STATIC int
> -xfs_qm_syncall(
> -	struct bhv_desc		*bhv,
> -	int			flags,
> -	cred_t			*credp)
.....
> -	/*
> -	 * Get the Quota Manager to flush the dquots.
> -	 */
> -	if (XFS_IS_QUOTA_ON(mp)) {
> -		if ((error = xfs_qm_sync(mp, flags))) {
> -			/*
> -			 * If we got an IO error, we will be shutting down.
> -			 * So, there's nothing more for us to do here.
> -			 */
> -			ASSERT(error != EIO || XFS_FORCED_SHUTDOWN(mp));
> -			if (XFS_FORCED_SHUTDOWN(mp)) {
> -				return XFS_ERROR(error);
> -			}
> -		}

So we check for quota being enabled here before syncing.

> @@ -941,6 +962,21 @@ xfs_sync(
>  	cred_t		*credp)
>  {
>  	xfs_mount_t	*mp = XFS_BHVTOM(bdp);
> +	int		error;
> +
> +	/*
> +	 * Get the Quota Manager to flush the dquots.
> +	 */
> +	error = XFS_QM_DQSYNC(mp, flags);
> +	if (error) {
> +		/*
> +		 * If we got an IO error, we will be shutting down.
> +		 * So, there's nothing more for us to do here.
> +		 */
> +		ASSERT(error != EIO || XFS_FORCED_SHUTDOWN(mp));
> +		if (XFS_FORCED_SHUTDOWN(mp))
> +			return XFS_ERROR(error);
> +	}

but we don't for the new code. I assume that this is because
of the stub:

> +static struct xfs_qmops xfs_qmcore_stub = {
>  	.xfs_qminit		= (xfs_qminit_t) xfs_noquota_init,
>  	.xfs_qmdone		= (xfs_qmdone_t) fs_noerr,
>  	.xfs_qmmount		= (xfs_qmmount_t) fs_noerr,
> @@ -124,4 +126,38 @@ xfs_qmops_t	xfs_qmcore_stub = {
>  	.xfs_dqvoprename	= (xfs_dqvoprename_t) fs_noerr,
>  	.xfs_dqvopchown		= xfs_dqvopchown_default,
>  	.xfs_dqvopchownresv	= (xfs_dqvopchownresv_t) fs_noerr,
> +	.xfs_dqstatvfs		= (xfs_dqstatvfs_t) fs_noval,
> +	.xfs_dqsync		= (xfs_dqsync_t) fs_noerr,

That returns no error.

This is slightly non-obvious that if quotas are not enabled or loaded
that this quota sync does not actually return an error. Perhaps a small
addition to the comment above XFS_QM_DQSYNC() to explain this would
help prevent future misunderstandings.

Cheers,

Dave.
-- 
Dave Chinner
Principal Engineer
SGI Australian Software Group

  reply	other threads:[~2007-08-24  0:26 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-23 19:39 [PATCH 11/17] remove dependency of the quota module on behaviors Christoph Hellwig
2007-08-24  0:26 ` David Chinner [this message]
2007-08-24  1:27   ` Christoph Hellwig
2007-08-24  7:32 ` David Chinner

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=20070824002612.GC72985246@sgi.com \
    --to=dgc@sgi.com \
    --cc=hch@lst.de \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.