[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20221208152811.ftcepqs5x54nqtzo@riteshh-domain>
Date: Thu, 8 Dec 2022 20:58:11 +0530
From: "Ritesh Harjani (IBM)" <ritesh.list@...il.com>
To: Jan Kara <jack@...e.cz>
Cc: Ted Tso <tytso@....edu>, linux-ext4@...r.kernel.org,
Christoph Hellwig <hch@...radead.org>
Subject: Re: [PATCH v4 09/13] jbd2: Switch jbd2_submit_inode_data() to use
fs-provided hook for data writeout
On 22/12/07 12:27PM, Jan Kara wrote:
> jbd2_submit_inode_data() hardcoded use of
> jbd2_journal_submit_inode_data_buffers() for submission of data pages.
> Make it use j_submit_inode_data_buffers hook instead. This effectively
> switches ext4 fastcommits to use ext4_writepages() for data writeout
> instead of generic_writepages().
Very neat!! I agree, that jbd2_submit_inode_data() should have always used
journal->j_submit_inode_data_buffers().
Looks good to me. Please feel free to add:
Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@...il.com>
>
> Signed-off-by: Jan Kara <jack@...e.cz>
> ---
> fs/ext4/fast_commit.c | 2 +-
> fs/jbd2/commit.c | 5 ++---
> include/linux/jbd2.h | 2 +-
> 3 files changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/fs/ext4/fast_commit.c b/fs/ext4/fast_commit.c
> index 0f6d0a80467d..7c6694593497 100644
> --- a/fs/ext4/fast_commit.c
> +++ b/fs/ext4/fast_commit.c
> @@ -986,7 +986,7 @@ static int ext4_fc_submit_inode_data_all(journal_t *journal)
> finish_wait(&ei->i_fc_wait, &wait);
> }
> spin_unlock(&sbi->s_fc_lock);
> - ret = jbd2_submit_inode_data(ei->jinode);
> + ret = jbd2_submit_inode_data(journal, ei->jinode);
> if (ret)
> return ret;
> spin_lock(&sbi->s_fc_lock);
> diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c
> index 885a7a6cc53e..4810438b7856 100644
> --- a/fs/jbd2/commit.c
> +++ b/fs/jbd2/commit.c
> @@ -207,14 +207,13 @@ int jbd2_journal_submit_inode_data_buffers(struct jbd2_inode *jinode)
> }
>
> /* Send all the data buffers related to an inode */
> -int jbd2_submit_inode_data(struct jbd2_inode *jinode)
> +int jbd2_submit_inode_data(journal_t *journal, struct jbd2_inode *jinode)
> {
> -
> if (!jinode || !(jinode->i_flags & JI_WRITE_DATA))
> return 0;
>
> trace_jbd2_submit_inode_data(jinode->i_vfs_inode);
> - return jbd2_journal_submit_inode_data_buffers(jinode);
> + return journal->j_submit_inode_data_buffers(jinode);
>
> }
> EXPORT_SYMBOL(jbd2_submit_inode_data);
> diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h
> index 0b7242370b56..2170e0cc279d 100644
> --- a/include/linux/jbd2.h
> +++ b/include/linux/jbd2.h
> @@ -1662,7 +1662,7 @@ int jbd2_fc_begin_commit(journal_t *journal, tid_t tid);
> int jbd2_fc_end_commit(journal_t *journal);
> int jbd2_fc_end_commit_fallback(journal_t *journal);
> int jbd2_fc_get_buf(journal_t *journal, struct buffer_head **bh_out);
> -int jbd2_submit_inode_data(struct jbd2_inode *jinode);
> +int jbd2_submit_inode_data(journal_t *journal, struct jbd2_inode *jinode);
> int jbd2_wait_inode_data(journal_t *journal, struct jbd2_inode *jinode);
> int jbd2_fc_wait_bufs(journal_t *journal, int num_blks);
> int jbd2_fc_release_bufs(journal_t *journal);
> --
> 2.35.3
>
Powered by blists - more mailing lists