[PATCH] fsnotify: inotify: pass mark connector to fsnotify_recalc_mask()

Sun Jian posted 1 patch 1 month, 2 weeks ago
fs/notify/inotify/inotify_user.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] fsnotify: inotify: pass mark connector to fsnotify_recalc_mask()
Posted by Sun Jian 1 month, 2 weeks ago
fsnotify_recalc_mask() expects a plain struct fsnotify_mark_connector *,
but inode->i_fsnotify_marks is an __rcu pointer.  Use fsn_mark->connector
instead to avoid sparse "different address spaces" warnings.

Signed-off-by: Sun Jian <sun.jian.kdev@gmail.com>
---
 fs/notify/inotify/inotify_user.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c
index b372fb2c56bd..9a5f2af94659 100644
--- a/fs/notify/inotify/inotify_user.c
+++ b/fs/notify/inotify/inotify_user.c
@@ -573,7 +573,7 @@ static int inotify_update_existing_watch(struct fsnotify_group *group,
 
 		/* update the inode with this new fsn_mark */
 		if (dropped || do_inode)
-			fsnotify_recalc_mask(inode->i_fsnotify_marks);
+			fsnotify_recalc_mask(fsn_mark->connector);
 
 	}
 
-- 
2.43.0
Re: [PATCH] fsnotify: inotify: pass mark connector to fsnotify_recalc_mask()
Posted by Jan Kara 1 month, 2 weeks ago
On Sat 14-02-26 13:12:17, Sun Jian wrote:
> fsnotify_recalc_mask() expects a plain struct fsnotify_mark_connector *,
> but inode->i_fsnotify_marks is an __rcu pointer.  Use fsn_mark->connector
> instead to avoid sparse "different address spaces" warnings.
> 
> Signed-off-by: Sun Jian <sun.jian.kdev@gmail.com>

Thanks. The patch looks good to me. I'll queue it in my tree once the merge
window closes.

								Honza

> ---
>  fs/notify/inotify/inotify_user.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c
> index b372fb2c56bd..9a5f2af94659 100644
> --- a/fs/notify/inotify/inotify_user.c
> +++ b/fs/notify/inotify/inotify_user.c
> @@ -573,7 +573,7 @@ static int inotify_update_existing_watch(struct fsnotify_group *group,
>  
>  		/* update the inode with this new fsn_mark */
>  		if (dropped || do_inode)
> -			fsnotify_recalc_mask(inode->i_fsnotify_marks);
> +			fsnotify_recalc_mask(fsn_mark->connector);
>  
>  	}
>  
> -- 
> 2.43.0
> 
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR