2009-12-18 02:24:27 +00:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2008 Red Hat, Inc., Eric Paris <eparis@redhat.com>
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; either version 2, or (at your option)
|
|
|
|
* any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; see the file COPYING. If not, write to
|
|
|
|
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <linux/fs.h>
|
|
|
|
#include <linux/init.h>
|
|
|
|
#include <linux/kernel.h>
|
|
|
|
#include <linux/module.h>
|
|
|
|
#include <linux/mount.h>
|
|
|
|
#include <linux/mutex.h>
|
|
|
|
#include <linux/spinlock.h>
|
|
|
|
|
2011-07-26 23:09:06 +00:00
|
|
|
#include <linux/atomic.h>
|
2009-12-18 02:24:27 +00:00
|
|
|
|
|
|
|
#include <linux/fsnotify_backend.h>
|
|
|
|
#include "fsnotify.h"
|
|
|
|
|
2009-12-18 02:24:34 +00:00
|
|
|
void fsnotify_clear_vfsmount_marks_by_group(struct fsnotify_group *group)
|
|
|
|
{
|
2017-03-14 13:29:35 +00:00
|
|
|
fsnotify_clear_marks_by_group_flags(group, FSNOTIFY_OBJ_TYPE_VFSMOUNT);
|
2009-12-18 02:24:34 +00:00
|
|
|
}
|
|
|
|
|
2009-12-18 02:24:27 +00:00
|
|
|
void fsnotify_recalc_vfsmount_mask(struct vfsmount *mnt)
|
|
|
|
{
|
2017-03-15 08:16:27 +00:00
|
|
|
fsnotify_recalc_mask(real_mount(mnt)->mnt_fsnotify_marks);
|
2009-12-18 02:24:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* given a group and vfsmount, find the mark associated with that combination.
|
|
|
|
* if found take a reference to that mark and return it, else return NULL
|
|
|
|
*/
|
|
|
|
struct fsnotify_mark *fsnotify_find_vfsmount_mark(struct fsnotify_group *group,
|
|
|
|
struct vfsmount *mnt)
|
|
|
|
{
|
2014-12-13 00:58:36 +00:00
|
|
|
struct mount *m = real_mount(mnt);
|
2009-12-18 02:24:27 +00:00
|
|
|
|
2017-03-15 08:33:58 +00:00
|
|
|
return fsnotify_find_mark(m->mnt_fsnotify_marks, group);
|
2009-12-18 02:24:27 +00:00
|
|
|
}
|