mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 04:02:20 +00:00
fsnotify: use an enum for group priority constants
And use meaningfull names for the constants. Signed-off-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Jan Kara <jack@suse.cz> Message-Id: <20240317184154.1200192-10-amir73il@gmail.com>
This commit is contained in:
parent
cb5d4f48c1
commit
477cf917dd
@ -1516,13 +1516,13 @@ SYSCALL_DEFINE2(fanotify_init, unsigned int, flags, unsigned int, event_f_flags)
|
||||
INIT_LIST_HEAD(&group->fanotify_data.access_list);
|
||||
switch (class) {
|
||||
case FAN_CLASS_NOTIF:
|
||||
group->priority = FS_PRIO_0;
|
||||
group->priority = FSNOTIFY_PRIO_NORMAL;
|
||||
break;
|
||||
case FAN_CLASS_CONTENT:
|
||||
group->priority = FS_PRIO_1;
|
||||
group->priority = FSNOTIFY_PRIO_CONTENT;
|
||||
break;
|
||||
case FAN_CLASS_PRE_CONTENT:
|
||||
group->priority = FS_PRIO_2;
|
||||
group->priority = FSNOTIFY_PRIO_PRE_CONTENT;
|
||||
break;
|
||||
default:
|
||||
fd = -EINVAL;
|
||||
@ -1774,12 +1774,11 @@ static int do_fanotify_mark(int fanotify_fd, unsigned int flags, __u64 mask,
|
||||
goto fput_and_out;
|
||||
|
||||
/*
|
||||
* group->priority == FS_PRIO_0 == FAN_CLASS_NOTIF. These are not
|
||||
* allowed to set permissions events.
|
||||
* Permission events require minimum priority FAN_CLASS_CONTENT.
|
||||
*/
|
||||
ret = -EINVAL;
|
||||
if (mask & FANOTIFY_PERM_EVENTS &&
|
||||
group->priority == FS_PRIO_0)
|
||||
group->priority < FSNOTIFY_PRIO_CONTENT)
|
||||
goto fput_and_out;
|
||||
|
||||
if (mask & FAN_FS_ERROR &&
|
||||
|
@ -176,6 +176,17 @@ struct fsnotify_event {
|
||||
struct list_head list;
|
||||
};
|
||||
|
||||
/*
|
||||
* fsnotify group priorities.
|
||||
* Events are sent in order from highest priority to lowest priority.
|
||||
*/
|
||||
enum fsnotify_group_prio {
|
||||
FSNOTIFY_PRIO_NORMAL = 0, /* normal notifiers, no permissions */
|
||||
FSNOTIFY_PRIO_CONTENT, /* fanotify permission events */
|
||||
FSNOTIFY_PRIO_PRE_CONTENT, /* fanotify pre-content events */
|
||||
__FSNOTIFY_PRIO_NUM
|
||||
};
|
||||
|
||||
/*
|
||||
* A group is a "thing" that wants to receive notification about filesystem
|
||||
* events. The mask holds the subset of event types this group cares about.
|
||||
@ -201,14 +212,7 @@ struct fsnotify_group {
|
||||
wait_queue_head_t notification_waitq; /* read() on the notification file blocks on this waitq */
|
||||
unsigned int q_len; /* events on the queue */
|
||||
unsigned int max_events; /* maximum events allowed on the list */
|
||||
/*
|
||||
* Valid fsnotify group priorities. Events are send in order from highest
|
||||
* priority to lowest priority. We default to the lowest priority.
|
||||
*/
|
||||
#define FS_PRIO_0 0 /* normal notifiers, no permissions */
|
||||
#define FS_PRIO_1 1 /* fanotify content based access control */
|
||||
#define FS_PRIO_2 2 /* fanotify pre-content access */
|
||||
unsigned int priority;
|
||||
enum fsnotify_group_prio priority; /* priority for sending events */
|
||||
bool shutdown; /* group is being shut down, don't queue more events */
|
||||
|
||||
#define FSNOTIFY_GROUP_USER 0x01 /* user allocated group */
|
||||
|
Loading…
Reference in New Issue
Block a user