History

fanotify: deprecate uapi FAN_ALL_* constants

We do not want to add new bits to the FAN_ALL_* uapi constants because they have been exposed to userspace. If there are programs out there using these constants, those programs could break if re-compiled with modified FAN_ALL_* constants and run on an old kernel. We deprecate the uapi constants FAN_ALL_* and define new FANOTIFY_* constants for internal use to replace them. New feature bits will be added only to the new constants.

Amir Goldstein committed 8 years ago

Commit 23c9dee1 parent a72fd225 files · +71 −24Browse files

Showing the changes to include/uapi/linux (1 of 5 files). Show all

Unified · Split

include/uapi/linux/fanotify.h+9−9
@@ -31,6 +31,8 @@ · 30 unmodified lines
31#define FAN_CLASS_NOTIF 0x0000000031#define FAN_CLASS_NOTIF 0x00000000
32#define FAN_CLASS_CONTENT 0x0000000432#define FAN_CLASS_CONTENT 0x00000004
33#define FAN_CLASS_PRE_CONTENT 0x0000000833#define FAN_CLASS_PRE_CONTENT 0x00000008
34
35/* Deprecated - do not use this in programs and do not add new flags here! */
34#define FAN_ALL_CLASS_BITS (FAN_CLASS_NOTIF | FAN_CLASS_CONTENT | \36#define FAN_ALL_CLASS_BITS (FAN_CLASS_NOTIF | FAN_CLASS_CONTENT | \
35 FAN_CLASS_PRE_CONTENT)37 FAN_CLASS_PRE_CONTENT)
36 38
@@ -38,6 +40,7 @@ · 1 unmodified line
38#define FAN_UNLIMITED_MARKS 0x0000002040#define FAN_UNLIMITED_MARKS 0x00000020
39#define FAN_ENABLE_AUDIT 0x0000004041#define FAN_ENABLE_AUDIT 0x00000040
40 42
43/* Deprecated - do not use this in programs and do not add new flags here! */
41#define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | \44#define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | \
42 FAN_ALL_CLASS_BITS | FAN_UNLIMITED_QUEUE |\45 FAN_ALL_CLASS_BITS | FAN_UNLIMITED_QUEUE |\
43 FAN_UNLIMITED_MARKS)46 FAN_UNLIMITED_MARKS)
@@ -57,23 +60,18 @@ · 13 unmodified lines
57#define FAN_MARK_INODE 0x0000000060#define FAN_MARK_INODE 0x00000000
58#define FAN_MARK_MOUNT 0x0000001061#define FAN_MARK_MOUNT 0x00000010
59#define FAN_MARK_FILESYSTEM 0x0000010062#define FAN_MARK_FILESYSTEM 0x00000100
60#define FAN_MARK_TYPE_MASK (FAN_MARK_INODE | FAN_MARK_MOUNT | \
61 FAN_MARK_FILESYSTEM)
62 63
64/* Deprecated - do not use this in programs and do not add new flags here! */
63#define FAN_ALL_MARK_FLAGS (FAN_MARK_ADD |\65#define FAN_ALL_MARK_FLAGS (FAN_MARK_ADD |\
64 FAN_MARK_REMOVE |\66 FAN_MARK_REMOVE |\
65 FAN_MARK_DONT_FOLLOW |\67 FAN_MARK_DONT_FOLLOW |\
66 FAN_MARK_ONLYDIR |\68 FAN_MARK_ONLYDIR |\
69 FAN_MARK_MOUNT |\
67 FAN_MARK_IGNORED_MASK |\70 FAN_MARK_IGNORED_MASK |\
68 FAN_MARK_IGNORED_SURV_MODIFY |\71 FAN_MARK_IGNORED_SURV_MODIFY |\
69 FAN_MARK_FLUSH|\72 FAN_MARK_FLUSH)
70 FAN_MARK_TYPE_MASK)
71 73
72/*74/* Deprecated - do not use this in programs and do not add new flags here! */
73 * All of the events - we build the list by hand so that we can add flags in
74 * the future and not break backward compatibility. Apps will get only the
75 * events that they originally wanted. Be sure to add new events here!
76 */
77#define FAN_ALL_EVENTS (FAN_ACCESS |\75#define FAN_ALL_EVENTS (FAN_ACCESS |\
78 FAN_MODIFY |\76 FAN_MODIFY |\
79 FAN_CLOSE |\77 FAN_CLOSE |\
@@ -82,9 +80,11 @@ · 2 unmodified lines
82/*80/*
83 * All events which require a permission response from userspace81 * All events which require a permission response from userspace
84 */82 */
83/* Deprecated - do not use this in programs and do not add new flags here! */
85#define FAN_ALL_PERM_EVENTS (FAN_OPEN_PERM |\84#define FAN_ALL_PERM_EVENTS (FAN_OPEN_PERM |\
86 FAN_ACCESS_PERM)85 FAN_ACCESS_PERM)
87 86
87/* Deprecated - do not use this in programs and do not add new flags here! */
88#define FAN_ALL_OUTGOING_EVENTS (FAN_ALL_EVENTS |\88#define FAN_ALL_OUTGOING_EVENTS (FAN_ALL_EVENTS |\
89 FAN_ALL_PERM_EVENTS |\89 FAN_ALL_PERM_EVENTS |\
90 FAN_Q_OVERFLOW)90 FAN_Q_OVERFLOW)