Commit 11a6f8e2 authored by Jan Kara's avatar Jan Kara

fsnotify: Clarify connector assignment in fsnotify_add_mark_list()

Add a comment explaining why WRITE_ONCE() is enough when setting
mark->connector which can get dereferenced by RCU protected readers.
Signed-off-by: default avatarJan Kara <jack@suse.cz>
parent b1da6a51
...@@ -619,6 +619,11 @@ static int fsnotify_add_mark_list(struct fsnotify_mark *mark, ...@@ -619,6 +619,11 @@ static int fsnotify_add_mark_list(struct fsnotify_mark *mark,
/* mark should be the last entry. last is the current last entry */ /* mark should be the last entry. last is the current last entry */
hlist_add_behind_rcu(&mark->obj_list, &last->obj_list); hlist_add_behind_rcu(&mark->obj_list, &last->obj_list);
added: added:
/*
* Since connector is attached to object using cmpxchg() we are
* guaranteed that connector initialization is fully visible by anyone
* seeing mark->connector set.
*/
WRITE_ONCE(mark->connector, conn); WRITE_ONCE(mark->connector, conn);
out_err: out_err:
spin_unlock(&conn->lock); spin_unlock(&conn->lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment