Re: [PATCH v7 01/14] fs: move wait_on_inode() from writeback.h to fs.h

Jan Kara
2025-10-10T13:47:33Z

On Thu 09-10-25 09:59:15, Mateusz Guzik wrote:
> The only consumer outside of fs/inode.c is gfs2 and it already includes
> fs.h in the relevant file.
>
> Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>

Fair. Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

Honza

> ---
> include/linux/fs.h | 10 ++++++++++
> include/linux/writeback.h | 11 -----------
> 2 files changed, 10 insertions(+), 11 deletions(-)
>
> diff --git a/include/linux/fs.h b/include/linux/fs.h
> index ac62b9d10b00..b35014ba681b 100644
> --- a/include/linux/fs.h
> +++ b/include/linux/fs.h
> @@ -949,6 +949,16 @@ static inline void inode_fake_hash(struct inode *inode)
> hlist_add_fake(&inode->i_hash);
> }
>
> +static inline void wait_on_inode(struct inode *inode)
> +{
> + wait_var_event(inode_state_wait_address(inode, __I_NEW),
> + !(READ_ONCE(inode->i_state) & I_NEW));
> + /*
> + * Pairs with routines clearing I_NEW.
> + */
> + smp_rmb();
> +}
> +
> /*
> * inode->i_rwsem nesting subclasses for the lock validator:
> *
> diff --git a/include/linux/writeback.h b/include/linux/writeback.h
> index e1e1231a6830..06195c2a535b 100644
> --- a/include/linux/writeback.h
> +++ b/include/linux/writeback.h
> @@ -189,17 +189,6 @@ void wakeup_flusher_threads_bdi(struct backing_dev_info *bdi,
> void inode_wait_for_writeback(struct inode *inode);
> void inode_io_list_del(struct inode *inode);
>
> -/* writeback.h requires fs.h; it, too, is not included from here. */
> -static inline void wait_on_inode(struct inode *inode)
> -{
> - wait_var_event(inode_state_wait_address(inode, __I_NEW),
> - !(READ_ONCE(inode->i_state) & I_NEW));
> - /*
> - * Pairs with routines clearing I_NEW.
> - */
> - smp_rmb();
> -}
> -
> #ifdef CONFIG_CGROUP_WRITEBACK
>
> #include <linux/cgroup.h>
> --
> 2.34.1
>
--
Jan Kara <jack@suse.com>
SUSE Labs, CR