|
@@ -767,11 +767,22 @@ void kill_fasync(struct fasync_struct **fp, int sig, int band)
|
|
|
}
|
|
|
EXPORT_SYMBOL(kill_fasync);
|
|
|
|
|
|
-static int __init fasync_init(void)
|
|
|
+static int __init fcntl_init(void)
|
|
|
{
|
|
|
+ /* please add new bits here to ensure allocation uniqueness */
|
|
|
+ BUILD_BUG_ON(19 - 1 /* for O_RDONLY being 0 */ != HWEIGHT32(
|
|
|
+ O_RDONLY | O_WRONLY | O_RDWR |
|
|
|
+ O_CREAT | O_EXCL | O_NOCTTY |
|
|
|
+ O_TRUNC | O_APPEND | O_NONBLOCK |
|
|
|
+ __O_SYNC | O_DSYNC | FASYNC |
|
|
|
+ O_DIRECT | O_LARGEFILE | O_DIRECTORY |
|
|
|
+ O_NOFOLLOW | O_NOATIME | O_CLOEXEC |
|
|
|
+ FMODE_EXEC
|
|
|
+ ));
|
|
|
+
|
|
|
fasync_cache = kmem_cache_create("fasync_cache",
|
|
|
sizeof(struct fasync_struct), 0, SLAB_PANIC, NULL);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-module_init(fasync_init)
|
|
|
+module_init(fcntl_init)
|