All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brian Foster <bfoster@redhat.com>
To: "Darrick J. Wong" <darrick.wong@oracle.com>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH 04/25] xfs: remove firstblock param from xfs dir ops
Date: Tue, 3 Jul 2018 14:15:21 -0400	[thread overview]
Message-ID: <20180703181521.GG22789@bfoster> (raw)
In-Reply-To: <20180703180611.GA32415@magnolia>

On Tue, Jul 03, 2018 at 11:06:11AM -0700, Darrick J. Wong wrote:
> On Tue, Jul 03, 2018 at 01:22:58PM -0400, Brian Foster wrote:
> > All callers of the xfs_dir_*() functions pass ->t_firstblock as the
> > firstblock parameter. Drop the parameter and access ->t_firstblock
> > directly.
> > 
> > Signed-off-by: Brian Foster <bfoster@redhat.com>
> > ---
> >  fs/xfs/libxfs/xfs_dir2.c | 12 ++++--------
> >  fs/xfs/libxfs/xfs_dir2.h |  6 +++---
> >  fs/xfs/xfs_inode.c       | 32 ++++++++++++--------------------
> >  fs/xfs/xfs_symlink.c     |  3 +--
> >  4 files changed, 20 insertions(+), 33 deletions(-)
> > 
> > diff --git a/fs/xfs/libxfs/xfs_dir2.c b/fs/xfs/libxfs/xfs_dir2.c
> > index 26918c5bd819..8a55990ca3a5 100644
> > --- a/fs/xfs/libxfs/xfs_dir2.c
> > +++ b/fs/xfs/libxfs/xfs_dir2.c
> > @@ -243,7 +243,6 @@ xfs_dir_createname(
> >  	struct xfs_inode	*dp,
> >  	struct xfs_name		*name,
> >  	xfs_ino_t		inum,		/* new entry inode number */
> > -	xfs_fsblock_t		*first,		/* bmap's firstblock */
> >  	xfs_extlen_t		total)		/* bmap's total block count */
> >  {
> >  	struct xfs_da_args	*args;
> > @@ -272,8 +271,7 @@ xfs_dir_createname(
> >  	args->total = total;
> >  	args->whichfork = XFS_DATA_FORK;
> >  	args->trans = tp;
> > -	ASSERT(tp->t_dfops || !first);
> 
> Hmm, didn't this move elsewhere in this function in the v2 patches of
> the t_dfops series?
> 

Yeah, I realized I forgot to rebase onto v2 right after I sent this. :/
I think that was the only conflict, but either way I have it fixed up
locally. I'll post a v2 inline or as a full series depending on
feedback.

Brian

> --D
> 
> > -	args->firstblock = first;
> > +	args->firstblock = &tp->t_firstblock;
> >  	args->op_flags = XFS_DA_OP_ADDNAME | XFS_DA_OP_OKNOENT;
> >  	if (!inum)
> >  		args->op_flags |= XFS_DA_OP_JUSTCHECK;
> > @@ -419,7 +417,6 @@ xfs_dir_removename(
> >  	struct xfs_inode	*dp,
> >  	struct xfs_name		*name,
> >  	xfs_ino_t		ino,
> > -	xfs_fsblock_t		*first,		/* bmap's firstblock */
> >  	xfs_extlen_t		total)		/* bmap's total block count */
> >  {
> >  	struct xfs_da_args	*args;
> > @@ -440,7 +437,7 @@ xfs_dir_removename(
> >  	args->hashval = dp->i_mount->m_dirnameops->hashname(name);
> >  	args->inumber = ino;
> >  	args->dp = dp;
> > -	args->firstblock = first;
> > +	args->firstblock = &tp->t_firstblock;
> >  	args->total = total;
> >  	args->whichfork = XFS_DATA_FORK;
> >  	args->trans = tp;
> > @@ -480,7 +477,6 @@ xfs_dir_replace(
> >  	struct xfs_inode	*dp,
> >  	struct xfs_name		*name,		/* name of entry to replace */
> >  	xfs_ino_t		inum,		/* new inode number */
> > -	xfs_fsblock_t		*first,		/* bmap's firstblock */
> >  	xfs_extlen_t		total)		/* bmap's total block count */
> >  {
> >  	struct xfs_da_args	*args;
> > @@ -504,7 +500,7 @@ xfs_dir_replace(
> >  	args->hashval = dp->i_mount->m_dirnameops->hashname(name);
> >  	args->inumber = inum;
> >  	args->dp = dp;
> > -	args->firstblock = first;
> > +	args->firstblock = &tp->t_firstblock;
> >  	args->total = total;
> >  	args->whichfork = XFS_DATA_FORK;
> >  	args->trans = tp;
> > @@ -544,7 +540,7 @@ xfs_dir_canenter(
> >  	xfs_inode_t	*dp,
> >  	struct xfs_name	*name)		/* name of entry to add */
> >  {
> > -	return xfs_dir_createname(tp, dp, name, 0, NULL, 0);
> > +	return xfs_dir_createname(tp, dp, name, 0, 0);
> >  }
> >  
> >  /*
> > diff --git a/fs/xfs/libxfs/xfs_dir2.h b/fs/xfs/libxfs/xfs_dir2.h
> > index f203aebc07ed..ba5acd03de94 100644
> > --- a/fs/xfs/libxfs/xfs_dir2.h
> > +++ b/fs/xfs/libxfs/xfs_dir2.h
> > @@ -118,16 +118,16 @@ extern int xfs_dir_init(struct xfs_trans *tp, struct xfs_inode *dp,
> >  				struct xfs_inode *pdp);
> >  extern int xfs_dir_createname(struct xfs_trans *tp, struct xfs_inode *dp,
> >  				struct xfs_name *name, xfs_ino_t inum,
> > -				xfs_fsblock_t *first, xfs_extlen_t tot);
> > +				xfs_extlen_t tot);
> >  extern int xfs_dir_lookup(struct xfs_trans *tp, struct xfs_inode *dp,
> >  				struct xfs_name *name, xfs_ino_t *inum,
> >  				struct xfs_name *ci_name);
> >  extern int xfs_dir_removename(struct xfs_trans *tp, struct xfs_inode *dp,
> >  				struct xfs_name *name, xfs_ino_t ino,
> > -				xfs_fsblock_t *first, xfs_extlen_t tot);
> > +				xfs_extlen_t tot);
> >  extern int xfs_dir_replace(struct xfs_trans *tp, struct xfs_inode *dp,
> >  				struct xfs_name *name, xfs_ino_t inum,
> > -				xfs_fsblock_t *first, xfs_extlen_t tot);
> > +				xfs_extlen_t tot);
> >  extern int xfs_dir_canenter(struct xfs_trans *tp, struct xfs_inode *dp,
> >  				struct xfs_name *name);
> >  
> > diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
> > index 6a3fe2d3df6c..ab1fd696500c 100644
> > --- a/fs/xfs/xfs_inode.c
> > +++ b/fs/xfs/xfs_inode.c
> > @@ -1223,7 +1223,7 @@ xfs_create(
> >  	xfs_trans_ijoin(tp, dp, XFS_ILOCK_EXCL);
> >  	unlock_dp_on_error = false;
> >  
> > -	error = xfs_dir_createname(tp, dp, name, ip->i_ino, &tp->t_firstblock,
> > +	error = xfs_dir_createname(tp, dp, name, ip->i_ino,
> >  				   resblks ?
> >  					resblks - XFS_IALLOC_SPACE_RES(mp) : 0);
> >  	if (error) {
> > @@ -1460,7 +1460,7 @@ xfs_link(
> >  	}
> >  
> >  	error = xfs_dir_createname(tp, tdp, target_name, sip->i_ino,
> > -				   &tp->t_firstblock, resblks);
> > +				   resblks);
> >  	if (error)
> >  		goto error_return;
> >  	xfs_trans_ichgtime(tp, tdp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG);
> > @@ -2655,8 +2655,7 @@ xfs_remove(
> >  		goto out_trans_cancel;
> >  
> >  	xfs_defer_init(tp, &dfops, &tp->t_firstblock);
> > -	error = xfs_dir_removename(tp, dp, name, ip->i_ino, &tp->t_firstblock,
> > -				   resblks);
> > +	error = xfs_dir_removename(tp, dp, name, ip->i_ino, resblks);
> >  	if (error) {
> >  		ASSERT(error != -ENOENT);
> >  		goto out_bmap_cancel;
> > @@ -2788,14 +2787,12 @@ xfs_cross_rename(
> >  	int		dp2_flags = 0;
> >  
> >  	/* Swap inode number for dirent in first parent */
> > -	error = xfs_dir_replace(tp, dp1, name1, ip2->i_ino, &tp->t_firstblock,
> > -				spaceres);
> > +	error = xfs_dir_replace(tp, dp1, name1, ip2->i_ino, spaceres);
> >  	if (error)
> >  		goto out_trans_abort;
> >  
> >  	/* Swap inode number for dirent in second parent */
> > -	error = xfs_dir_replace(tp, dp2, name2, ip1->i_ino, &tp->t_firstblock,
> > -				spaceres);
> > +	error = xfs_dir_replace(tp, dp2, name2, ip1->i_ino, spaceres);
> >  	if (error)
> >  		goto out_trans_abort;
> >  
> > @@ -2809,8 +2806,7 @@ xfs_cross_rename(
> >  
> >  		if (S_ISDIR(VFS_I(ip2)->i_mode)) {
> >  			error = xfs_dir_replace(tp, ip2, &xfs_name_dotdot,
> > -						dp1->i_ino, &tp->t_firstblock,
> > -						spaceres);
> > +						dp1->i_ino, spaceres);
> >  			if (error)
> >  				goto out_trans_abort;
> >  
> > @@ -2836,8 +2832,7 @@ xfs_cross_rename(
> >  
> >  		if (S_ISDIR(VFS_I(ip1)->i_mode)) {
> >  			error = xfs_dir_replace(tp, ip1, &xfs_name_dotdot,
> > -						dp2->i_ino, &tp->t_firstblock,
> > -						spaceres);
> > +						dp2->i_ino, spaceres);
> >  			if (error)
> >  				goto out_trans_abort;
> >  
> > @@ -3043,8 +3038,7 @@ xfs_rename(
> >  		 * to account for the ".." reference from the new entry.
> >  		 */
> >  		error = xfs_dir_createname(tp, target_dp, target_name,
> > -					   src_ip->i_ino, &tp->t_firstblock,
> > -					   spaceres);
> > +					   src_ip->i_ino, spaceres);
> >  		if (error)
> >  			goto out_bmap_cancel;
> >  
> > @@ -3083,8 +3077,7 @@ xfs_rename(
> >  		 * name at the destination directory, remove it first.
> >  		 */
> >  		error = xfs_dir_replace(tp, target_dp, target_name,
> > -					src_ip->i_ino, &tp->t_firstblock,
> > -					spaceres);
> > +					src_ip->i_ino, spaceres);
> >  		if (error)
> >  			goto out_bmap_cancel;
> >  
> > @@ -3118,8 +3111,7 @@ xfs_rename(
> >  		 * directory.
> >  		 */
> >  		error = xfs_dir_replace(tp, src_ip, &xfs_name_dotdot,
> > -					target_dp->i_ino, &tp->t_firstblock,
> > -					spaceres);
> > +					target_dp->i_ino, spaceres);
> >  		ASSERT(error != -EEXIST);
> >  		if (error)
> >  			goto out_bmap_cancel;
> > @@ -3158,10 +3150,10 @@ xfs_rename(
> >  	 */
> >  	if (wip) {
> >  		error = xfs_dir_replace(tp, src_dp, src_name, wip->i_ino,
> > -					&tp->t_firstblock, spaceres);
> > +					spaceres);
> >  	} else
> >  		error = xfs_dir_removename(tp, src_dp, src_name, src_ip->i_ino,
> > -					   &tp->t_firstblock, spaceres);
> > +					   spaceres);
> >  	if (error)
> >  		goto out_bmap_cancel;
> >  
> > diff --git a/fs/xfs/xfs_symlink.c b/fs/xfs/xfs_symlink.c
> > index 8ddc7f1147dc..583ca83353f7 100644
> > --- a/fs/xfs/xfs_symlink.c
> > +++ b/fs/xfs/xfs_symlink.c
> > @@ -336,8 +336,7 @@ xfs_symlink(
> >  	/*
> >  	 * Create the directory entry for the symlink.
> >  	 */
> > -	error = xfs_dir_createname(tp, dp, link_name, ip->i_ino,
> > -				   &tp->t_firstblock, resblks);
> > +	error = xfs_dir_createname(tp, dp, link_name, ip->i_ino, resblks);
> >  	if (error)
> >  		goto out_bmap_cancel;
> >  	xfs_trans_ichgtime(tp, dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG);
> > -- 
> > 2.17.1
> > 
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2018-07-03 18:15 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-03 17:22 [PATCH 00/25] xfs: embed firstblock in xfs_trans Brian Foster
2018-07-03 17:22 ` [PATCH 01/25] xfs: allow null firstblock in xfs_bmapi_write() when tp is null Brian Foster
2018-07-04  0:24   ` Darrick J. Wong
2018-07-08 15:26   ` Christoph Hellwig
2018-07-03 17:22 ` [PATCH 02/25] xfs: add firstblock field to xfs_trans Brian Foster
2018-07-04  0:41   ` Darrick J. Wong
2018-07-08 15:26   ` Christoph Hellwig
2018-07-03 17:22 ` [PATCH 03/25] xfs: use ->t_firstblock in dir ops Brian Foster
2018-07-04  0:42   ` Darrick J. Wong
2018-07-03 17:22 ` [PATCH 04/25] xfs: remove firstblock param from xfs " Brian Foster
2018-07-03 18:06   ` Darrick J. Wong
2018-07-03 18:15     ` Brian Foster [this message]
2018-07-03 17:22 ` [PATCH 05/25] xfs: use ->t_firstblock in attrfork add Brian Foster
2018-07-04  0:43   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 06/25] xfs: use ->t_firstblock in xattr ops Brian Foster
2018-07-04  0:45   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 07/25] xfs: use ->t_firstblock for all xfs_bmapi_write() callers Brian Foster
2018-07-04  0:47   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 08/25] xfs: use ->t_firstblock for all xfs_bunmapi() callers Brian Foster
2018-07-04  0:47   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 09/25] xfs: use ->t_firstblock in xfs_bmapi_remap() Brian Foster
2018-07-04  0:47   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 10/25] xfs: use ->t_firstblock in insert/collapse range Brian Foster
2018-07-04  0:48   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 11/25] xfs: remove xfs_bmapi_write() firstblock param Brian Foster
2018-07-04  0:50   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 12/25] xfs: remove xfs_bunmapi() " Brian Foster
2018-07-04  0:51   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 13/25] xfs: remove bmap insert/collapse " Brian Foster
2018-07-04  0:51   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 14/25] xfs: use ->t_firstblock in bmap extent split Brian Foster
2018-07-04  0:51   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 15/25] xfs: remove xfs_bmalloca firstblock field Brian Foster
2018-07-04  0:52   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 16/25] xfs: remove bmap extent add helper firstblock params Brian Foster
2018-07-04  0:52   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 17/25] xfs: remove bmap format helpers " Brian Foster
2018-07-04  0:53   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 18/25] xfs: remove xfs_btree_cur private firstblock field Brian Foster
2018-07-04  0:54   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 19/25] xfs: remove xfs_alloc_arg " Brian Foster
2018-07-04  0:54   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 20/25] xfs: use ->t_firstblock in dq alloc Brian Foster
2018-07-04  0:54   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 21/25] xfs: replace no-op firstblock init with ->t_firstblock Brian Foster
2018-07-04  0:54   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 22/25] xfs: use ->t_firstblock in reflink cow block cancel Brian Foster
2018-07-04  0:55   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 23/25] xfs: use ->t_firstblock in extent swap Brian Foster
2018-07-04  0:55   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 24/25] xfs: use ->t_firstblock in inode inactivate Brian Foster
2018-07-04  0:55   ` Darrick J. Wong
2018-07-03 17:23 ` [PATCH 25/25] xfs: remove xfs_defer_init() firstblock param Brian Foster
2018-07-04  1:27   ` Darrick J. Wong
2018-07-08 15:37     ` Christoph Hellwig
2018-07-08 16:34       ` Darrick J. Wong
2018-07-10  1:07       ` Brian Foster
2018-07-10  7:11 ` [PATCH 00/25] xfs: embed firstblock in xfs_trans 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=20180703181521.GG22789@bfoster \
    --to=bfoster@redhat.com \
    --cc=darrick.wong@oracle.com \
    --cc=linux-xfs@vger.kernel.org \
    /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.