public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: Christoph Hellwig <hch@infradead.org>, xfs@oss.sgi.com
Subject: Re: [PATCH] XFS: remove i_gen from incore inode
Date: Fri, 21 Nov 2008 13:01:10 -0500	[thread overview]
Message-ID: <20081121180110.GA31376@infradead.org> (raw)
In-Reply-To: <20080721120440.GE6761@disturbed>

Any chance we can get this patch in?  It's been out for exactly 4 month
in it's final reviewed form, and I still have patches that I rebased on
top of it waiting..

On Mon, Jul 21, 2008 at 10:04:40PM +1000, Dave Chinner wrote:
> XFS: remove i_gen from incore inode
> 
> i_gen is incremented in directory operations when the
> directory is changed. It is never read or otherwise used
> so it should be removed to help reduce the size of the
> struct xfs_inode.
> 
> The patch also removes a duplicate logging of the directory
> inode core. We only need to do this once per transaction
> so kill the one associated with the i_gen increment.
> 
> Signed-off-by: Dave Chinner <david@fromorbit.com>
> ---
>  fs/xfs/xfs_inode.h    |    1 -
>  fs/xfs/xfs_rename.c   |   12 ++----------
>  fs/xfs/xfs_vnodeops.c |   29 ++---------------------------
>  3 files changed, 4 insertions(+), 38 deletions(-)
> 
> diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h
> index 440b443..316c374 100644
> --- a/fs/xfs/xfs_inode.h
> +++ b/fs/xfs/xfs_inode.h
> @@ -223,7 +223,6 @@ typedef struct xfs_inode {
>  	unsigned short		i_flags;	/* see defined flags below */
>  	unsigned char		i_update_core;	/* timestamps/size is dirty */
>  	unsigned char		i_update_size;	/* di_size field is dirty */
> -	unsigned int		i_gen;		/* generation count */
>  	unsigned int		i_delayed_blks;	/* count of delay alloc blks */
>  
>  	xfs_icdinode_t		i_d;		/* most of ondisk inode */
> diff --git a/fs/xfs/xfs_rename.c b/fs/xfs/xfs_rename.c
> index d700dac..02f0e8f 100644
> --- a/fs/xfs/xfs_rename.c
> +++ b/fs/xfs/xfs_rename.c
> @@ -367,19 +367,11 @@ xfs_rename(
>  					&first_block, &free_list, spaceres);
>  	if (error)
>  		goto abort_return;
> -	xfs_ichgtime(src_dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG);
>  
> -	/*
> -	 * Update the generation counts on all the directory inodes
> -	 * that we're modifying.
> -	 */
> -	src_dp->i_gen++;
> +	xfs_ichgtime(src_dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG);
>  	xfs_trans_log_inode(tp, src_dp, XFS_ILOG_CORE);
> -
> -	if (new_parent) {
> -		target_dp->i_gen++;
> +	if (new_parent)
>  		xfs_trans_log_inode(tp, target_dp, XFS_ILOG_CORE);
> -	}
>  
>  	/*
>  	 * If this is a synchronous mount, make sure that the
> diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
> index 94ec74b..426c574 100644
> --- a/fs/xfs/xfs_vnodeops.c
> +++ b/fs/xfs/xfs_vnodeops.c
> @@ -1798,8 +1798,6 @@ xfs_create(
>  		xfs_trans_set_sync(tp);
>  	}
>  
> -	dp->i_gen++;
> -
>  	/*
>  	 * Attach the dquot(s) to the inodes and modify them incore.
>  	 * These ids of the inode couldn't have changed since the new
> @@ -2229,13 +2227,6 @@ xfs_remove(
>  	}
>  	xfs_ichgtime(dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG);
>  
> -	/*
> -	 * Bump the in memory generation count on the parent
> -	 * directory so that other can know that it has changed.
> -	 */
> -	dp->i_gen++;
> -	xfs_trans_log_inode(tp, dp, XFS_ILOG_CORE);
> -
>  	if (is_dir) {
>  		/*
>  		 * Drop the link from ip's "..".
> @@ -2253,8 +2244,8 @@ xfs_remove(
>  	} else {
>  		/*
>  		 * When removing a non-directory we need to log the parent
> -		 * inode here for the i_gen update.  For a directory this is
> -		 * done implicitly by the xfs_droplink call for the ".." entry.
> +		 * inode here.  For a directory this is done implicitly
> +		 * by the xfs_droplink call for the ".." entry.
>  		 */
>  		xfs_trans_log_inode(tp, dp, XFS_ILOG_CORE);
>  	}
> @@ -2423,7 +2414,6 @@ xfs_link(
>  	if (error)
>  		goto abort_return;
>  	xfs_ichgtime(tdp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG);
> -	tdp->i_gen++;
>  	xfs_trans_log_inode(tp, tdp, XFS_ILOG_CORE);
>  
>  	error = xfs_bumplink(tp, sip);
> @@ -2600,18 +2590,10 @@ xfs_mkdir(
>  	}
>  	xfs_ichgtime(dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG);
>  
> -	/*
> -	 * Bump the in memory version number of the parent directory
> -	 * so that other processes accessing it will recognize that
> -	 * the directory has changed.
> -	 */
> -	dp->i_gen++;
> -
>  	error = xfs_dir_init(tp, cdp, dp);
>  	if (error)
>  		goto error2;
>  
> -	cdp->i_gen = 1;
>  	error = xfs_bumplink(tp, dp);
>  	if (error)
>  		goto error2;
> @@ -2898,13 +2880,6 @@ xfs_symlink(
>  	xfs_trans_log_inode(tp, dp, XFS_ILOG_CORE);
>  
>  	/*
> -	 * Bump the in memory version number of the parent directory
> -	 * so that other processes accessing it will recognize that
> -	 * the directory has changed.
> -	 */
> -	dp->i_gen++;
> -
> -	/*
>  	 * If this is a synchronous mount, make sure that the
>  	 * symlink transaction goes to disk before returning to
>  	 * the user.
> 
> 
---end quoted text---

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

  parent reply	other threads:[~2008-11-21 18:01 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-20 12:46 [PATCH] XFS: remove i_gen from incore inode Dave Chinner
2008-07-21  7:54 ` Christoph Hellwig
2008-07-21 11:08   ` Dave Chinner
2008-07-21 11:52     ` Christoph Hellwig
2008-07-21 12:04       ` Dave Chinner
2008-07-21 12:05         ` Christoph Hellwig
2008-08-11 16:39         ` Christoph Hellwig
2008-11-21 18:01         ` Christoph Hellwig [this message]
  -- strict thread matches above, loose matches on Subject: below --
2008-09-13 13:47 Dave Chinner
2008-09-14 13:16 ` Christoph Hellwig
2008-10-07 22:12 Dave Chinner
2008-10-22  6:20 ` Dave Chinner
2008-10-31  1:27   ` Dave 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=20081121180110.GA31376@infradead.org \
    --to=hch@infradead.org \
    --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