All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brian Foster <bfoster@redhat.com>
To: Eric Sandeen <sandeen@redhat.com>
Cc: xfs <linux-xfs@vger.kernel.org>
Subject: Re: [PATCH] xfsprogs: cosmetic changes to libxfs_inode_alloc
Date: Wed, 6 Jan 2021 09:57:01 -0500	[thread overview]
Message-ID: <20210106145701.GC361175@bfoster> (raw)
In-Reply-To: <a06e071c-be56-2e7d-cceb-82030f55e1f3@redhat.com>

On Tue, Jan 05, 2021 at 04:02:18PM -0600, Eric Sandeen wrote:
> This pre-patch helps make the next libxfs-sync for 5.11 a bit
> more clear.
> 
> In reality, the libxfs_inode_alloc function matches the kernel's
> xfs_dir_ialloc so rename it for clarity before the rest of the
> sync, and change several variable names for the same reason.
> 
> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
> ---
> 
...
> diff --git a/libxfs/util.c b/libxfs/util.c
> index 252cf91e..62eadaea 100644
> --- a/libxfs/util.c
> +++ b/libxfs/util.c
...
> @@ -559,25 +561,25 @@ libxfs_inode_alloc(
>  
>  	if (ialloc_context) {
>  
> -		xfs_trans_bhold(*tp, ialloc_context);
> +		xfs_trans_bhold(tp, ialloc_context);
>  
> -		error = xfs_trans_roll(tp);
> -		if (error) {
> +		code = xfs_trans_roll(tpp);

The subsequent uses of tp no longer refer to the right transaction after
this roll. FWIW, there is a subtle difference with the kernel code where
this call passes &tp and then updates tpp on return, but we could also
just update tp here if that's still good enough to facilitate the libxfs
sync.

Brian

> +		if (code) {
>  			fprintf(stderr, _("%s: cannot duplicate transaction: %s\n"),
> -				progname, strerror(error));
> +				progname, strerror(code));
>  			exit(1);
>  		}
> -		xfs_trans_bjoin(*tp, ialloc_context);
> -		error = libxfs_ialloc(*tp, pip, mode, nlink, rdev, cr,
> +		xfs_trans_bjoin(tp, ialloc_context);
> +		code = libxfs_ialloc(tp, dp, mode, nlink, rdev, cr,
>  				   fsx, &ialloc_context, &ip);
>  		if (!ip)
> -			error = -ENOSPC;
> -		if (error)
> -			return error;
> +			code = -ENOSPC;
> +		if (code)
> +			return code;
>  	}
>  
>  	*ipp = ip;
> -	return error;
> +	return code;
>  }
>  
>  void
> diff --git a/mkfs/proto.c b/mkfs/proto.c
> index 0fa6ffb0..8439efc4 100644
> --- a/mkfs/proto.c
> +++ b/mkfs/proto.c
> @@ -453,7 +453,7 @@ parseproto(
>  	case IF_REGULAR:
>  		buf = newregfile(pp, &len);
>  		tp = getres(mp, XFS_B_TO_FSB(mp, len));
> -		error = -libxfs_inode_alloc(&tp, pip, mode|S_IFREG, 1, 0,
> +		error = -libxfs_dir_ialloc(&tp, pip, mode|S_IFREG, 1, 0,
>  					   &creds, fsxp, &ip);
>  		if (error)
>  			fail(_("Inode allocation failed"), error);
> @@ -477,7 +477,7 @@ parseproto(
>  		}
>  		tp = getres(mp, XFS_B_TO_FSB(mp, llen));
>  
> -		error = -libxfs_inode_alloc(&tp, pip, mode|S_IFREG, 1, 0,
> +		error = -libxfs_dir_ialloc(&tp, pip, mode|S_IFREG, 1, 0,
>  					  &creds, fsxp, &ip);
>  		if (error)
>  			fail(_("Inode pre-allocation failed"), error);
> @@ -498,7 +498,7 @@ parseproto(
>  		tp = getres(mp, 0);
>  		majdev = getnum(getstr(pp), 0, 0, false);
>  		mindev = getnum(getstr(pp), 0, 0, false);
> -		error = -libxfs_inode_alloc(&tp, pip, mode|S_IFBLK, 1,
> +		error = -libxfs_dir_ialloc(&tp, pip, mode|S_IFBLK, 1,
>  				IRIX_MKDEV(majdev, mindev), &creds, fsxp, &ip);
>  		if (error) {
>  			fail(_("Inode allocation failed"), error);
> @@ -513,7 +513,7 @@ parseproto(
>  		tp = getres(mp, 0);
>  		majdev = getnum(getstr(pp), 0, 0, false);
>  		mindev = getnum(getstr(pp), 0, 0, false);
> -		error = -libxfs_inode_alloc(&tp, pip, mode|S_IFCHR, 1,
> +		error = -libxfs_dir_ialloc(&tp, pip, mode|S_IFCHR, 1,
>  				IRIX_MKDEV(majdev, mindev), &creds, fsxp, &ip);
>  		if (error)
>  			fail(_("Inode allocation failed"), error);
> @@ -525,7 +525,7 @@ parseproto(
>  
>  	case IF_FIFO:
>  		tp = getres(mp, 0);
> -		error = -libxfs_inode_alloc(&tp, pip, mode|S_IFIFO, 1, 0,
> +		error = -libxfs_dir_ialloc(&tp, pip, mode|S_IFIFO, 1, 0,
>  				&creds, fsxp, &ip);
>  		if (error)
>  			fail(_("Inode allocation failed"), error);
> @@ -537,7 +537,7 @@ parseproto(
>  		buf = getstr(pp);
>  		len = (int)strlen(buf);
>  		tp = getres(mp, XFS_B_TO_FSB(mp, len));
> -		error = -libxfs_inode_alloc(&tp, pip, mode|S_IFLNK, 1, 0,
> +		error = -libxfs_dir_ialloc(&tp, pip, mode|S_IFLNK, 1, 0,
>  				&creds, fsxp, &ip);
>  		if (error)
>  			fail(_("Inode allocation failed"), error);
> @@ -548,7 +548,7 @@ parseproto(
>  		break;
>  	case IF_DIRECTORY:
>  		tp = getres(mp, 0);
> -		error = -libxfs_inode_alloc(&tp, pip, mode|S_IFDIR, 1, 0,
> +		error = -libxfs_dir_ialloc(&tp, pip, mode|S_IFDIR, 1, 0,
>  				&creds, fsxp, &ip);
>  		if (error)
>  			fail(_("Inode allocation failed"), error);
> @@ -640,7 +640,7 @@ rtinit(
>  
>  	memset(&creds, 0, sizeof(creds));
>  	memset(&fsxattrs, 0, sizeof(fsxattrs));
> -	error = -libxfs_inode_alloc(&tp, NULL, S_IFREG, 1, 0,
> +	error = -libxfs_dir_ialloc(&tp, NULL, S_IFREG, 1, 0,
>  					&creds, &fsxattrs, &rbmip);
>  	if (error) {
>  		fail(_("Realtime bitmap inode allocation failed"), error);
> @@ -657,7 +657,7 @@ rtinit(
>  	libxfs_trans_log_inode(tp, rbmip, XFS_ILOG_CORE);
>  	libxfs_log_sb(tp);
>  	mp->m_rbmip = rbmip;
> -	error = -libxfs_inode_alloc(&tp, NULL, S_IFREG, 1, 0,
> +	error = -libxfs_dir_ialloc(&tp, NULL, S_IFREG, 1, 0,
>  					&creds, &fsxattrs, &rsumip);
>  	if (error) {
>  		fail(_("Realtime summary inode allocation failed"), error);
> diff --git a/repair/phase6.c b/repair/phase6.c
> index 682356f0..f69afac9 100644
> --- a/repair/phase6.c
> +++ b/repair/phase6.c
> @@ -919,7 +919,7 @@ mk_orphanage(xfs_mount_t *mp)
>  		do_error(_("%d - couldn't iget root inode to make %s\n"),
>  			i, ORPHANAGE);*/
>  
> -	error = -libxfs_inode_alloc(&tp, pip, mode|S_IFDIR,
> +	error = -libxfs_dir_ialloc(&tp, pip, mode|S_IFDIR,
>  					1, 0, &zerocr, &zerofsx, &ip);
>  	if (error) {
>  		do_error(_("%s inode allocation failed %d\n"),
> 


  reply	other threads:[~2021-01-06 14:58 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-05 22:02 [PATCH] xfsprogs: cosmetic changes to libxfs_inode_alloc Eric Sandeen
2021-01-06 14:57 ` Brian Foster [this message]
2021-01-06 16:38   ` Eric Sandeen

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=20210106145701.GC361175@bfoster \
    --to=bfoster@redhat.com \
    --cc=linux-xfs@vger.kernel.org \
    --cc=sandeen@redhat.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.