]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit - include/linux/fsnotify_backend.h
fsnotify: Lock object list with connector lock
authorJan Kara <jack@suse.cz>
Wed, 1 Feb 2017 07:19:43 +0000 (08:19 +0100)
committerJan Kara <jack@suse.cz>
Mon, 10 Apr 2017 15:37:35 +0000 (17:37 +0200)
commit04662cab59fc3e8421fd7a0539d304d51d2750a4
treebde9d5a97ffbe63ea7366a4aab6be9e2402a2827
parent2629718dd26f89e064dcdec6c8e5b9713502e1f8
fsnotify: Lock object list with connector lock

So far list of marks attached to an object (inode / vfsmount) was
protected by i_lock or mnt_root->d_lock. This dictates that the list
must be empty before the object can be destroyed although the list is
now anchored in the fsnotify_mark_connector structure. Protect the list
by a spinlock in the fsnotify_mark_connector structure to decouple
lifetime of a list of marks from a lifetime of the object. This also
simplifies the code quite a bit since we don't have to differentiate
between inode and vfsmount lists in quite a few places anymore.

Reviewed-by: Miklos Szeredi <mszeredi@redhat.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
fs/notify/mark.c
include/linux/fsnotify_backend.h