watch_queue: Fix missing rcu annotation
commite0339f036eupstream. Since __post_watch_notification() walks wlist->watchers with only the RCU read lock held, we need to use RCU methods to add to the list (we already use RCU methods to remove from the list). Fix add_watch_to_object() to use hlist_add_head_rcu() instead of hlist_add_head() for that list. Fixes:c73be61ced("pipe: Add general notification queue support") Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
b38a8802c5
commit
45a84f04a9
@@ -497,7 +497,7 @@ int add_watch_to_object(struct watch *watch, struct watch_list *wlist)
|
||||
unlock_wqueue(wqueue);
|
||||
}
|
||||
|
||||
hlist_add_head(&watch->list_node, &wlist->watchers);
|
||||
hlist_add_head_rcu(&watch->list_node, &wlist->watchers);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(add_watch_to_object);
|
||||
|
||||
Reference in New Issue
Block a user