Re: [PATCH 6/7] nilfs2: remove wbc->for_reclaim handling

Ryusuke Konishi
2025-05-08T16:16:58Z

On Thu, May 8, 2025 at 2:50 PM Christoph Hellwig wrote:
>
> Since commit 013a07052a1a ("nilfs2: convert metadata aops from writepage
> to writepages"), nilfs_mdt_write_folio can't be called from reclaim
> context any more. Remove the code keyed of the wbc->for_rename flag,
> which is now only set for writing out swap or shmem pages inside the
> swap code, but never passed to file systems.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>

Yes, the parts removed in this patch look like dead code now.

So far, no issues have been detected with the previous conversion, but
even if it turns out that something has changed in that conversion and
needs to be fixed, I have no objection to this cleanup. Feel free to
add:

Acked-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>

Thanks,
Ryusuke Konishi

> ---
> fs/nilfs2/mdt.c | 2 --
> fs/nilfs2/segment.c | 16 ----------------
> fs/nilfs2/segment.h | 1 -
> 3 files changed, 19 deletions(-)
>
> diff --git a/fs/nilfs2/mdt.c b/fs/nilfs2/mdt.c
> index 2f850a18d6e7..946b0d3534a5 100644
> --- a/fs/nilfs2/mdt.c
> +++ b/fs/nilfs2/mdt.c
> @@ -422,8 +422,6 @@ static int nilfs_mdt_write_folio(struct folio *folio,
>
> if (wbc->sync_mode == WB_SYNC_ALL)
> err = nilfs_construct_segment(sb);
> - else if (wbc->for_reclaim)
> - nilfs_flush_segment(sb, inode->i_ino);
>
> return err;
> }
> diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
> index 83970d97840b..61a4141f8d6b 100644
> --- a/fs/nilfs2/segment.c
> +++ b/fs/nilfs2/segment.c
> @@ -2221,22 +2221,6 @@ static void nilfs_segctor_do_flush(struct nilfs_sc_info *sci, int bn)
> spin_unlock(&sci->sc_state_lock);
> }
>
> -/**
> - * nilfs_flush_segment - trigger a segment construction for resource control
> - * @sb: super block
> - * @ino: inode number of the file to be flushed out.
> - */
> -void nilfs_flush_segment(struct super_block *sb, ino_t ino)
> -{
> - struct the_nilfs *nilfs = sb->s_fs_info;
> - struct nilfs_sc_info *sci = nilfs->ns_writer;
> -
> - if (!sci || nilfs_doing_construction())
> - return;
> - nilfs_segctor_do_flush(sci, NILFS_MDT_INODE(sb, ino) ? ino : 0);
> - /* assign bit 0 to data files */
> -}
> -
> struct nilfs_segctor_wait_request {
> wait_queue_entry_t wq;
> __u32 seq;
> diff --git a/fs/nilfs2/segment.h b/fs/nilfs2/segment.h
> index f723f47ddc4e..4b39ed43ae72 100644
> --- a/fs/nilfs2/segment.h
> +++ b/fs/nilfs2/segment.h
> @@ -226,7 +226,6 @@ extern void nilfs_relax_pressure_in_lock(struct super_block *);
> extern int nilfs_construct_segment(struct super_block *);
> extern int nilfs_construct_dsync_segment(struct super_block *, struct inode *,
> loff_t, loff_t);
> -extern void nilfs_flush_segment(struct super_block *, ino_t);
> extern int nilfs_clean_segments(struct super_block *, struct nilfs_argv *,
> void **);
>
> --
> 2.47.2
>