All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhang Yi <yi.zhang@huaweicloud.com>
To: "Darrick J. Wong" <djwong@kernel.org>, hch@infradead.org
Cc: linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-kernel@vger.kernel.org, brauner@kernel.org,
	david@fromorbit.com, tytso@mit.edu, jack@suse.cz,
	yi.zhang@huawei.com, chengzhihao1@huawei.com, yukuai3@huawei.com
Subject: Re: [PATCH v3 3/9] xfs: make xfs_bmapi_convert_delalloc() to allocate the target offset
Date: Wed, 20 Mar 2024 09:51:26 +0800	[thread overview]
Message-ID: <054ac072-4ccf-b83c-cc9c-cbb5d6f5dbdb@huaweicloud.com> (raw)
In-Reply-To: <20240319204552.GG1927156@frogsfrogsfrogs>

On 2024/3/20 4:45, Darrick J. Wong wrote:
> On Tue, Mar 19, 2024 at 09:10:56AM +0800, Zhang Yi wrote:
>> From: Zhang Yi <yi.zhang@huawei.com>
>>
>> Since xfs_bmapi_convert_delalloc() only attempts to allocate the entire
>> delalloc extent and require multiple invocations to allocate the target
>> offset. So xfs_convert_blocks() add a loop to do this job and we call it
>> in the write back path, but xfs_convert_blocks() isn't a common helper.
>> Let's do it in xfs_bmapi_convert_delalloc() and drop
>> xfs_convert_blocks(), preparing for the post EOF delalloc blocks
>> converting in the buffered write begin path.
>>
>> Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
>> Reviewed-by: Christoph Hellwig <hch@lst.de>
>> ---
>>  fs/xfs/libxfs/xfs_bmap.c | 34 +++++++++++++++++++++++--
>>  fs/xfs/xfs_aops.c        | 54 +++++++++++-----------------------------
>>  2 files changed, 46 insertions(+), 42 deletions(-)
>>
>> diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
>> index 07dc35de8ce5..042e8d3ab0ba 100644
>> --- a/fs/xfs/libxfs/xfs_bmap.c
>> +++ b/fs/xfs/libxfs/xfs_bmap.c
>> @@ -4516,8 +4516,8 @@ xfs_bmapi_write(
>>   * invocations to allocate the target offset if a large enough physical extent
>>   * is not available.
>>   */
>> -int
>> -xfs_bmapi_convert_delalloc(
>> +static int
> 
> static inline?
> 

I'd suggest to leave that to the compiler too.

>> +__xfs_bmapi_convert_delalloc(
> 
> Double underscore prefixes read to me like "do this without grabbing
> a lock or a resource", not just one step in a loop.
> 
> Would you mind changing it to xfs_bmapi_convert_one_delalloc() ?
> Then the callsite looks like:
> 
> xfs_bmapi_convert_delalloc(...)
> {
> 	...
> 	do {
> 		error = xfs_bmapi_convert_one_delalloc(ip, whichfork, offset,
> 					iomap, seq);
> 		if (error)
> 			return error;
> 	} while (iomap->offset + iomap->length <= offset);
> }
> 

Thanks for your suggestions, all subsequent improvements in this series are
also looks fine by me, I will revise them in my next iteration. Christoph,
I will keep your review tag, please let me know if you have different
opinion.

Thanks,
Yi.


  parent reply	other threads:[~2024-03-20  1:51 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-19  1:10 [PATCH v3 0/9] xfs/iomap: fix non-atomic clone operation and don't update size when zeroing range post eof Zhang Yi
2024-03-19  1:10 ` [PATCH v3 1/9] xfs: match lock mode in xfs_buffered_write_iomap_begin() Zhang Yi
2024-03-19  1:10 ` [PATCH v3 2/9] xfs: make the seq argument to xfs_bmapi_convert_delalloc() optional Zhang Yi
2024-03-19 21:01   ` Darrick J. Wong
2024-03-19  1:10 ` [PATCH v3 3/9] xfs: make xfs_bmapi_convert_delalloc() to allocate the target offset Zhang Yi
2024-03-19 20:45   ` Darrick J. Wong
2024-03-19 22:54     ` Christoph Hellwig
2024-03-20  1:51     ` Zhang Yi [this message]
2024-03-20  1:57       ` Christoph Hellwig
2024-03-19  1:10 ` [PATCH v3 4/9] xfs: convert delayed extents to unwritten when zeroing post eof blocks Zhang Yi
2024-03-19 21:00   ` Darrick J. Wong
2024-03-19  1:10 ` [PATCH v3 5/9] iomap: drop the write failure handles when unsharing and zeroing Zhang Yi
2024-03-19 21:03   ` Darrick J. Wong
2024-03-19  1:10 ` [PATCH v3 6/9] iomap: don't increase i_size if it's not a write operation Zhang Yi
2024-03-19 21:04   ` Darrick J. Wong
2024-03-19  1:11 ` [PATCH v3 7/9] iomap: use a new variable to handle the written bytes in iomap_write_iter() Zhang Yi
2024-03-19 21:05   ` Darrick J. Wong
2024-03-19  1:11 ` [PATCH v3 8/9] iomap: make iomap_write_end() return a boolean Zhang Yi
2024-03-19 21:08   ` Darrick J. Wong
2024-03-19  1:11 ` [PATCH v3 9/9] iomap: do some small logical cleanup in buffered write Zhang Yi
2024-03-19 21:08   ` Darrick J. Wong

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=054ac072-4ccf-b83c-cc9c-cbb5d6f5dbdb@huaweicloud.com \
    --to=yi.zhang@huaweicloud.com \
    --cc=brauner@kernel.org \
    --cc=chengzhihao1@huawei.com \
    --cc=david@fromorbit.com \
    --cc=djwong@kernel.org \
    --cc=hch@infradead.org \
    --cc=jack@suse.cz \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=tytso@mit.edu \
    --cc=yi.zhang@huawei.com \
    --cc=yukuai3@huawei.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.