All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Brian Foster <bfoster@redhat.com>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH v6 07/10] xfs: add inode id filtering to eofblocks scan
Date: Wed, 7 Nov 2012 09:17:54 +1100	[thread overview]
Message-ID: <20121106221754.GG24575@dastard> (raw)
In-Reply-To: <1352213447-59791-8-git-send-email-bfoster@redhat.com>

On Tue, Nov 06, 2012 at 09:50:44AM -0500, Brian Foster wrote:
> Support inode ID filtering in the eofblocks scan. The caller must
> set the associated XFS_EOF_FLAGS_*ID bit and ID field.
> 
> Signed-off-by: Brian Foster <bfoster@redhat.com>
> ---
>  fs/xfs/xfs_fs.h     |   11 +++++++++--
>  fs/xfs/xfs_icache.c |   22 ++++++++++++++++++++++
>  2 files changed, 31 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/xfs/xfs_fs.h b/fs/xfs/xfs_fs.h
> index 26ff43a..88eb1bc 100644
> --- a/fs/xfs/xfs_fs.h
> +++ b/fs/xfs/xfs_fs.h
> @@ -345,13 +345,20 @@ typedef struct xfs_error_injection {
>  struct xfs_eofblocks {
>  	__u32		eof_version;
>  	__u32		eof_flags;
> -	__u64		pad[15];
> +	uid_t		eof_uid;
> +	gid_t		eof_gid;
> +	prid_t		eof_prid;
> +	__u32		pad[27];
>  };

The typical way of doing this to ensure that the structure remains
the same size and people are aware of alignment issues is this:

 -	__u64		pad[15];
 +	uid_t		eof_uid;
 +	gid_t		eof_gid;
 +	prid_t		eof_prid;
 +	__u32		pad32;
 +	__u64		pad64[13];

That way it is clear that we need pad out to 8 byte boundaries even
on 32 bit systems.

>  
>  /* eof_flags values */
>  #define XFS_EOF_FLAGS_SYNC		(1 << 0) /* sync/wait mode scan */
> +#define XFS_EOF_FLAGS_UID		(1 << 1) /* filter by uid */
> +#define XFS_EOF_FLAGS_GID		(1 << 2) /* filter by gid */
> +#define XFS_EOF_FLAGS_PRID		(1 << 3) /* filter by project id */
>  #define XFS_EOF_FLAGS_VALID	\
> -	(XFS_EOF_FLAGS_SYNC)
> +	(XFS_EOF_FLAGS_SYNC|XFS_EOF_FLAGS_UID|XFS_EOF_FLAGS_GID| \
> +	 XFS_EOF_FLAGS_PRID)

A little bit of white space goes a long way:

#define XFS_EOF_FLAGS_VALID \
	(XFS_EOF_FLAGS_SYNC | \
	 XFS_EOF_FLAGS_UID | \
	 XFS_EOF_FLAGS_GID | \
	 XFS_EOF_FLAGS_PRID)

Is much easier to read and extend in future.

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

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

  parent reply	other threads:[~2012-11-06 22:16 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-06 14:50 [PATCH v6 00/10] speculative preallocation inode tracking Brian Foster
2012-11-06 14:50 ` [PATCH v6 01/10] xfs: add EOFBLOCKS inode tagging/untagging Brian Foster
2012-11-06 14:50 ` [PATCH v6 02/10] xfs: support a tag-based inode_ag_iterator Brian Foster
2012-11-06 14:50 ` [PATCH v6 03/10] xfs: create helper to check whether to free eofblocks on inode Brian Foster
2012-11-06 14:50 ` [PATCH v6 04/10] xfs: make xfs_free_eofblocks() non-static, return EAGAIN on trylock failure Brian Foster
2012-11-06 14:50 ` [PATCH v6 05/10] xfs: create function to scan and clear EOFBLOCKS inodes Brian Foster
2012-11-06 14:50 ` [PATCH v6 06/10] xfs: add XFS_IOC_FREE_EOFBLOCKS ioctl Brian Foster
2012-11-06 16:44   ` Mark Tinguely
2012-11-06 22:11   ` Dave Chinner
2012-11-06 14:50 ` [PATCH v6 07/10] xfs: add inode id filtering to eofblocks scan Brian Foster
2012-11-06 16:41   ` Mark Tinguely
2012-11-06 17:57     ` Brian Foster
2012-11-06 22:17   ` Dave Chinner [this message]
2012-11-06 14:50 ` [PATCH v6 08/10] xfs: support multiple inode id filtering in " Brian Foster
2012-11-06 16:48   ` Mark Tinguely
2012-11-06 22:20   ` Dave Chinner
2012-11-06 14:50 ` [PATCH v6 09/10] xfs: add minimum file size filtering to " Brian Foster
2012-11-06 16:57   ` Mark Tinguely
2012-11-06 17:08     ` Roger Willcocks
2012-11-06 18:00       ` Brian Foster
2012-11-06 19:23         ` Mark Tinguely
2012-11-06 22:29           ` Dave Chinner
2012-11-06 22:25   ` Dave Chinner
2012-11-06 14:50 ` [PATCH v6 10/10] xfs: add background scanning to clear eofblocks inodes Brian Foster
2012-11-06 17:04   ` Mark Tinguely
2012-11-06 22:30   ` Dave Chinner
2012-11-07 17:21 ` [PATCH v7 06/10] xfs: add XFS_IOC_FREE_EOFBLOCKS ioctl Brian Foster
2012-11-07 17:21   ` [PATCH v7 07/10] xfs: add inode id filtering to eofblocks scan Brian Foster
2012-11-07 20:33     ` Dave Chinner
2012-11-07 17:21   ` [PATCH v7 09/10] xfs: add minimum file size " Brian Foster
2012-11-07 20:33     ` Dave Chinner
2012-11-08 22:38 ` [PATCH v6 00/10] speculative preallocation inode tracking Ben Myers

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=20121106221754.GG24575@dastard \
    --to=david@fromorbit.com \
    --cc=bfoster@redhat.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 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.