diff options
-rw-r--r-- | include/linux/fsnotify.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/include/linux/fsnotify.h b/include/linux/fsnotify.h index 64efda9aae6..59d0df43ff9 100644 --- a/include/linux/fsnotify.h +++ b/include/linux/fsnotify.h | |||
@@ -39,16 +39,18 @@ static inline int fsnotify_perm(struct file *file, int mask) | |||
39 | { | 39 | { |
40 | struct path *path = &file->f_path; | 40 | struct path *path = &file->f_path; |
41 | struct inode *inode = path->dentry->d_inode; | 41 | struct inode *inode = path->dentry->d_inode; |
42 | __u32 fsnotify_mask; | 42 | __u32 fsnotify_mask = 0; |
43 | 43 | ||
44 | if (file->f_mode & FMODE_NONOTIFY) | 44 | if (file->f_mode & FMODE_NONOTIFY) |
45 | return 0; | 45 | return 0; |
46 | if (!(mask & (MAY_READ | MAY_OPEN))) | 46 | if (!(mask & (MAY_READ | MAY_OPEN))) |
47 | return 0; | 47 | return 0; |
48 | if (mask & MAY_READ) | ||
49 | fsnotify_mask = FS_ACCESS_PERM; | ||
50 | if (mask & MAY_OPEN) | 48 | if (mask & MAY_OPEN) |
51 | fsnotify_mask = FS_OPEN_PERM; | 49 | fsnotify_mask = FS_OPEN_PERM; |
50 | else if (mask & MAY_READ) | ||
51 | fsnotify_mask = FS_ACCESS_PERM; | ||
52 | else | ||
53 | BUG(); | ||
52 | 54 | ||
53 | return fsnotify(inode, fsnotify_mask, path, FSNOTIFY_EVENT_PATH, NULL, 0); | 55 | return fsnotify(inode, fsnotify_mask, path, FSNOTIFY_EVENT_PATH, NULL, 0); |
54 | } | 56 | } |