summaryrefslogtreecommitdiffstats
path: root/fs/notify/inode_mark.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2017-03-15 09:48:11 +0100
committerJan Kara <jack@suse.cz>2017-04-10 17:37:35 +0200
commit8212a6097a720896b4cdbe516487ad47f4296599 (patch)
treec598677214226244c7db2b90be6f2715cfbf38eb /fs/notify/inode_mark.c
parentfsnotify: Determine lock in fsnotify_destroy_marks() (diff)
downloadlinux-8212a6097a720896b4cdbe516487ad47f4296599.tar.xz
linux-8212a6097a720896b4cdbe516487ad47f4296599.zip
fsnotify: Remove indirection from fsnotify_detach_mark()
fsnotify_detach_mark() calls fsnotify_destroy_inode_mark() or fsnotify_destroy_vfsmount_mark() to remove mark from object list. These two functions are however very similar and differ only in the lock they use to protect the object list of marks. Simplify the code by removing the indirection and removing mark from the object list in a common function. Reviewed-by: Miklos Szeredi <mszeredi@redhat.com> Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/notify/inode_mark.c')
-rw-r--r--fs/notify/inode_mark.c21
1 files changed, 0 insertions, 21 deletions
diff --git a/fs/notify/inode_mark.c b/fs/notify/inode_mark.c
index f05fc49b8242..080b6d8b9973 100644
--- a/fs/notify/inode_mark.c
+++ b/fs/notify/inode_mark.c
@@ -35,27 +35,6 @@ void fsnotify_recalc_inode_mask(struct inode *inode)
fsnotify_recalc_mask(inode->i_fsnotify_marks);
}
-struct inode *fsnotify_destroy_inode_mark(struct fsnotify_mark *mark)
-{
- struct inode *inode = mark->connector->inode;
- bool empty;
-
- BUG_ON(!mutex_is_locked(&mark->group->mark_mutex));
- assert_spin_locked(&mark->lock);
-
- spin_lock(&inode->i_lock);
-
- hlist_del_init_rcu(&mark->obj_list);
- empty = hlist_empty(&mark->connector->list);
- mark->connector = NULL;
-
- spin_unlock(&inode->i_lock);
-
- fsnotify_recalc_mask(inode->i_fsnotify_marks);
-
- return empty ? inode : NULL;
-}
-
/*
* Given a group clear all of the inode marks associated with that group.
*/