On 10/24/25 21:13, Yongpeng Yang wrote:
> From: Yongpeng Yang <[email protected]>
>
> Change the type of the unlock parameter of f2fs_put_page to bool.
> All callers should consistently pass true or false. No logical change.
>
> Signed-off-by: Yongpeng Yang <[email protected]>
> ---
> fs/f2fs/compress.c | 8 ++++----
> fs/f2fs/data.c | 12 ++++--------
> fs/f2fs/f2fs.h | 2 +-
> fs/f2fs/gc.c | 6 +++---
> fs/f2fs/inline.c | 4 ++--
> fs/f2fs/namei.c | 4 ++--
> 6 files changed, 16 insertions(+), 20 deletions(-)
>
> diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c
> index 811bfe38e5c0..716004ba44dc 100644
> --- a/fs/f2fs/compress.c
> +++ b/fs/f2fs/compress.c
> @@ -120,7 +120,7 @@ static void f2fs_unlock_rpages(struct compress_ctx *cc,
> int len)
> }
>
> static void f2fs_put_rpages_wbc(struct compress_ctx *cc,
> - struct writeback_control *wbc, bool redirty, int unlock)
> + struct writeback_control *wbc, bool redirty, bool unlock)
> {
> unsigned int i;
>
> @@ -1202,7 +1202,7 @@ bool f2fs_compress_write_end(struct inode *inode, void
> *fsdata,
> if (copied)
> set_cluster_dirty(&cc);
>
> - f2fs_put_rpages_wbc(&cc, NULL, false, 1);
> + f2fs_put_rpages_wbc(&cc, NULL, false, true);
> f2fs_destroy_compress_ctx(&cc, false);
>
> return first_index;
> @@ -1605,7 +1605,7 @@ int f2fs_write_multi_pages(struct compress_ctx *cc,
> add_compr_block_stat(cc->inode, cc->cluster_size);
> goto write;
> } else if (err) {
> - f2fs_put_rpages_wbc(cc, wbc, true, 1);
> + f2fs_put_rpages_wbc(cc, wbc, true, true);
> goto destroy_out;
> }
>
> @@ -1619,7 +1619,7 @@ int f2fs_write_multi_pages(struct compress_ctx *cc,
> f2fs_bug_on(F2FS_I_SB(cc->inode), *submitted);
>
> err = f2fs_write_raw_pages(cc, submitted, wbc, io_type);
> - f2fs_put_rpages_wbc(cc, wbc, false, 0);
> + f2fs_put_rpages_wbc(cc, wbc, false, false);
> destroy_out:
> f2fs_destroy_compress_ctx(cc, false);
> return err;
> diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
> index 1f090c018f1b..daca2a42b20c 100644
> --- a/fs/f2fs/data.c
> +++ b/fs/f2fs/data.c
> @@ -3621,8 +3621,7 @@ static int f2fs_write_begin(const struct kiocb *iocb,
> folio_lock(folio);
> if (folio->mapping != mapping) {
> /* The folio got truncated from under us */
> - folio_unlock(folio);
> - folio_put(folio);
> + f2fs_folio_put(folio, true);
Yongpeng,
I prefer to not use f2fs_folio_put() here, to avoid potential null-ptr
dereference
on folio->mapping via f2fs_folio_put() -> F2FS_F_SB(), as folio->mapping could
be
NULL due to race w/ truncation.
> goto repeat;
> }
> }
> @@ -3653,8 +3652,7 @@ static int f2fs_write_begin(const struct kiocb *iocb,
>
> folio_lock(folio);
> if (unlikely(folio->mapping != mapping)) {
> - folio_unlock(folio);
> - folio_put(folio);
> + f2fs_folio_put(folio, true);
Ditto,
Thanks,
> goto repeat;
> }
> if (unlikely(!folio_test_uptodate(folio))) {
> @@ -3665,8 +3663,7 @@ static int f2fs_write_begin(const struct kiocb *iocb,
> return 0;
>
> put_folio:
> - folio_unlock(folio);
> - folio_put(folio);
> + f2fs_folio_put(folio, true);
> fail:
> f2fs_write_failed(inode, pos + len);
> return err;
> @@ -3722,8 +3719,7 @@ static int f2fs_write_end(const struct kiocb *iocb,
> pos + copied);
> }
> unlock_out:
> - folio_unlock(folio);
> - folio_put(folio);
> + f2fs_folio_put(folio, true);
> f2fs_update_time(F2FS_I_SB(inode), REQ_TIME);
> return copied;
> }
> diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
> index 94eb9a2d3a73..32fb2e7338b7 100644
> --- a/fs/f2fs/f2fs.h
> +++ b/fs/f2fs/f2fs.h
> @@ -2979,7 +2979,7 @@ static inline void f2fs_folio_put(struct folio *folio,
> bool unlock)
> folio_put(folio);
> }
>
> -static inline void f2fs_put_page(struct page *page, int unlock)
> +static inline void f2fs_put_page(struct page *page, bool unlock)
> {
> if (!page)
> return;
> diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
> index 22fe6e2c6d5c..fd8bb0424bf3 100644
> --- a/fs/f2fs/gc.c
> +++ b/fs/f2fs/gc.c
> @@ -1278,7 +1278,7 @@ static int ra_data_block(struct inode *inode, pgoff_t
> index)
> err = f2fs_submit_page_bio(&fio);
> if (err)
> goto put_encrypted_page;
> - f2fs_put_page(fio.encrypted_page, 0);
> + f2fs_put_page(fio.encrypted_page, false);
> f2fs_folio_put(folio, true);
>
> f2fs_update_iostat(sbi, inode, FS_DATA_READ_IO, F2FS_BLKSIZE);
> @@ -1286,7 +1286,7 @@ static int ra_data_block(struct inode *inode, pgoff_t
> index)
>
> return 0;
> put_encrypted_page:
> - f2fs_put_page(fio.encrypted_page, 1);
> + f2fs_put_page(fio.encrypted_page, true);
> put_folio:
> f2fs_folio_put(folio, true);
> return err;
> @@ -1442,7 +1442,7 @@ static int move_data_block(struct inode *inode, block_t
> bidx,
> f2fs_update_data_blkaddr(&dn, newaddr);
> set_inode_flag(inode, FI_APPEND_WRITE);
>
> - f2fs_put_page(fio.encrypted_page, 1);
> + f2fs_put_page(fio.encrypted_page, true);
> recover_block:
> if (err)
> f2fs_do_replace_block(fio.sbi, &sum, newaddr, fio.old_blkaddr,
> diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c
> index 58ac831ef704..e5c6a08b7e4f 100644
> --- a/fs/f2fs/inline.c
> +++ b/fs/f2fs/inline.c
> @@ -287,7 +287,7 @@ int f2fs_write_inline_data(struct inode *inode, struct
> folio *folio)
> set_inode_flag(inode, FI_DATA_EXIST);
>
> folio_clear_f2fs_inline(ifolio);
> - f2fs_folio_put(ifolio, 1);
> + f2fs_folio_put(ifolio, true);
> return 0;
> }
>
> @@ -577,7 +577,7 @@ static int f2fs_move_rehashed_dirents(struct inode *dir,
> struct folio *ifolio,
> f2fs_i_depth_write(dir, 0);
> f2fs_i_size_write(dir, MAX_INLINE_DATA(dir));
> folio_mark_dirty(ifolio);
> - f2fs_folio_put(ifolio, 1);
> + f2fs_folio_put(ifolio, true);
>
> kfree(backup_dentry);
> return err;
> diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
> index 68b33e8089b0..07ceed173ffe 100644
> --- a/fs/f2fs/namei.c
> +++ b/fs/f2fs/namei.c
> @@ -1259,11 +1259,11 @@ static int f2fs_cross_rename(struct inode *old_dir,
> struct dentry *old_dentry,
> return 0;
> out_new_dir:
> if (new_dir_entry) {
> - f2fs_folio_put(new_dir_folio, 0);
> + f2fs_folio_put(new_dir_folio, false);
> }
> out_old_dir:
> if (old_dir_entry) {
> - f2fs_folio_put(old_dir_folio, 0);
> + f2fs_folio_put(old_dir_folio, false);
> }
> out_new:
> f2fs_folio_put(new_folio, false);
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel