Re: [PATCH 03/13] iomap: move the io_folios field out of struct iomap_ioend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Nov 26, 2023 at 01:47:10PM +0100, Christoph Hellwig wrote:
> The io_folios member in struct iomap_ioend counts the number of folios
> added to an ioend.  It is only used at submission time and can thus be
> moved to iomap_writepage_ctx instead.
> 
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>

LGTM
Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx>

--D

> ---
>  fs/iomap/buffered-io.c | 7 ++++---
>  include/linux/iomap.h  | 2 +-
>  2 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
> index b1bcc43baf0caf..b28c57f8603303 100644
> --- a/fs/iomap/buffered-io.c
> +++ b/fs/iomap/buffered-io.c
> @@ -1685,10 +1685,11 @@ iomap_alloc_ioend(struct inode *inode, struct iomap_writepage_ctx *wpc,
>  	ioend->io_flags = wpc->iomap.flags;
>  	ioend->io_inode = inode;
>  	ioend->io_size = 0;
> -	ioend->io_folios = 0;
>  	ioend->io_offset = offset;
>  	ioend->io_bio = bio;
>  	ioend->io_sector = sector;
> +
> +	wpc->nr_folios = 0;
>  	return ioend;
>  }
>  
> @@ -1732,7 +1733,7 @@ iomap_can_add_to_ioend(struct iomap_writepage_ctx *wpc, loff_t offset,
>  	 * also prevents long tight loops ending page writeback on all the
>  	 * folios in the ioend.
>  	 */
> -	if (wpc->ioend->io_folios >= IOEND_BATCH_SIZE)
> +	if (wpc->nr_folios >= IOEND_BATCH_SIZE)
>  		return false;
>  	return true;
>  }
> @@ -1829,7 +1830,7 @@ iomap_writepage_map(struct iomap_writepage_ctx *wpc,
>  		count++;
>  	}
>  	if (count)
> -		wpc->ioend->io_folios++;
> +		wpc->nr_folios++;
>  
>  	WARN_ON_ONCE(!wpc->ioend && !list_empty(&submit_list));
>  	WARN_ON_ONCE(!folio_test_locked(folio));
> diff --git a/include/linux/iomap.h b/include/linux/iomap.h
> index 96dd0acbba44ac..b2a05dff914d0c 100644
> --- a/include/linux/iomap.h
> +++ b/include/linux/iomap.h
> @@ -293,7 +293,6 @@ struct iomap_ioend {
>  	struct list_head	io_list;	/* next ioend in chain */
>  	u16			io_type;
>  	u16			io_flags;	/* IOMAP_F_* */
> -	u32			io_folios;	/* folios added to ioend */
>  	struct inode		*io_inode;	/* file being written to */
>  	size_t			io_size;	/* size of the extent */
>  	loff_t			io_offset;	/* offset in the file */
> @@ -329,6 +328,7 @@ struct iomap_writepage_ctx {
>  	struct iomap		iomap;
>  	struct iomap_ioend	*ioend;
>  	const struct iomap_writeback_ops *ops;
> +	u32			nr_folios;	/* folios added to the ioend */
>  };
>  
>  void iomap_finish_ioends(struct iomap_ioend *ioend, int error);
> -- 
> 2.39.2
> 
> 




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux