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

Mateusz Guzik posted 14 patches 2 months, 1 week ago
[PATCH v7 01/14] fs: move wait_on_inode() from writeback.h to fs.h
Posted by Mateusz Guzik 2 months, 1 week ago
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>
---
 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
Re: [PATCH v7 01/14] fs: move wait_on_inode() from writeback.h to fs.h
Posted by Jan Kara 2 months, 1 week ago
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