All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: John Garry <john.g.garry@oracle.com>
Cc: brauner@kernel.org, cem@kernel.org, dchinner@redhat.com,
	hch@lst.de, ritesh.list@gmail.com, linux-xfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	martin.petersen@oracle.com
Subject: Re: [PATCH v3 7/7] xfs: Update xfs_get_atomic_write_attr() for large atomic writes
Date: Tue, 7 Jan 2025 16:56:27 -0800	[thread overview]
Message-ID: <20250108005627.GD1306365@frogsfrogsfrogs> (raw)
In-Reply-To: <20250102140411.14617-8-john.g.garry@oracle.com>

On Thu, Jan 02, 2025 at 02:04:11PM +0000, John Garry wrote:
> Update xfs_get_atomic_write_attr() to take into account that rtvol can
> support atomic writes spanning multiple FS blocks.
> 
> For non-rtvol, we are still limited in min and max by the blocksize.
> 
> Signed-off-by: John Garry <john.g.garry@oracle.com>

Pretty straightforward to me.
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>

--D

> ---
>  fs/xfs/xfs_iops.c | 19 ++++++++++++++++++-
>  1 file changed, 18 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c
> index 883ec45ae708..02b3f697936b 100644
> --- a/fs/xfs/xfs_iops.c
> +++ b/fs/xfs/xfs_iops.c
> @@ -572,18 +572,35 @@ xfs_stat_blksize(
>  	return max_t(uint32_t, PAGE_SIZE, mp->m_sb.sb_blocksize);
>  }
>  
> +/* Returns max atomic write unit for a file, in bytes. */
> +static unsigned int
> +xfs_inode_atomicwrite_max(
> +	struct xfs_inode	*ip)
> +{
> +	struct xfs_mount	*mp = ip->i_mount;
> +
> +	if (XFS_IS_REALTIME_INODE(ip))
> +		return XFS_FSB_TO_B(mp, mp->m_rt_awu_max);
> +
> +	return mp->m_sb.sb_blocksize;
> +}
> +
>  void
>  xfs_get_atomic_write_attr(
>  	struct xfs_inode	*ip,
>  	unsigned int		*unit_min,
>  	unsigned int		*unit_max)
>  {
> +	struct xfs_buftarg	*target = xfs_inode_buftarg(ip);
> +	unsigned int		awu_max = xfs_inode_atomicwrite_max(ip);
> +
>  	if (!xfs_inode_can_atomicwrite(ip)) {
>  		*unit_min = *unit_max = 0;
>  		return;
>  	}
>  
> -	*unit_min = *unit_max = ip->i_mount->m_sb.sb_blocksize;
> +	*unit_min = ip->i_mount->m_sb.sb_blocksize;
> +	*unit_max =  min(target->bt_bdev_awu_max, awu_max);
>  }
>  
>  STATIC int
> -- 
> 2.31.1
> 
> 

      reply	other threads:[~2025-01-08  0:56 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-02 14:04 [PATCH v3 0/7] large atomic writes for xfs John Garry
2025-01-02 14:04 ` [PATCH v3 1/7] iomap: Increase iomap_dio_zero() size limit John Garry
2025-01-02 14:04 ` [PATCH v3 2/7] iomap: Add zero unwritten mappings dio support John Garry
2025-01-02 14:04 ` [PATCH v3 3/7] iomap: Lift blocksize restriction on atomic writes John Garry
2025-01-08  0:41   ` Darrick J. Wong
2025-01-02 14:04 ` [PATCH v3 4/7] xfs: Add extent zeroing support for " John Garry
2025-01-02 14:04 ` [PATCH v3 5/7] xfs: Switch atomic write size check in xfs_file_write_iter() John Garry
2025-01-08  0:50   ` Darrick J. Wong
2025-01-02 14:04 ` [PATCH v3 6/7] xfs: Add RT atomic write unit max to xfs_mount John Garry
2025-01-08  0:55   ` Darrick J. Wong
2025-01-02 14:04 ` [PATCH v3 7/7] xfs: Update xfs_get_atomic_write_attr() for large atomic writes John Garry
2025-01-08  0:56   ` Darrick J. Wong [this message]

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=20250108005627.GD1306365@frogsfrogsfrogs \
    --to=djwong@kernel.org \
    --cc=brauner@kernel.org \
    --cc=cem@kernel.org \
    --cc=dchinner@redhat.com \
    --cc=hch@lst.de \
    --cc=john.g.garry@oracle.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=ritesh.list@gmail.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.