]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
fs: move initializing f_mode before file_ref_init()
authorAmir Goldstein <amir73il@gmail.com>
Fri, 9 Jan 2026 21:15:36 +0000 (22:15 +0100)
committerChristian Brauner <brauner@kernel.org>
Wed, 14 Jan 2026 15:50:37 +0000 (16:50 +0100)
The comment above file_ref_init() says:
"We're SLAB_TYPESAFE_BY_RCU so initialize f_ref last."
but file_set_fsnotify_mode() was added after file_ref_init().

Move it right after setting f_mode, where it makes more sense.

Fixes: 711f9b8fbe4f4 ("fsnotify: disable pre-content and permission events by default")
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Link: https://patch.msgid.link/20260109211536.3565697-1-amir73il@gmail.com
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/file_table.c

index cd4a3db4659ac4e9d1ada268b8770ad4067f6192..34244fccf2edf0a67ef2ad6feae8d8ec6b039b7f 100644 (file)
@@ -176,6 +176,11 @@ static int init_file(struct file *f, int flags, const struct cred *cred)
 
        f->f_flags      = flags;
        f->f_mode       = OPEN_FMODE(flags);
+       /*
+        * Disable permission and pre-content events for all files by default.
+        * They may be enabled later by fsnotify_open_perm_and_set_mode().
+        */
+       file_set_fsnotify_mode(f, FMODE_NONOTIFY_PERM);
 
        f->f_op         = NULL;
        f->f_mapping    = NULL;
@@ -197,11 +202,6 @@ static int init_file(struct file *f, int flags, const struct cred *cred)
         * refcount bumps we should reinitialize the reused file first.
         */
        file_ref_init(&f->f_ref, 1);
-       /*
-        * Disable permission and pre-content events for all files by default.
-        * They may be enabled later by fsnotify_open_perm_and_set_mode().
-        */
-       file_set_fsnotify_mode(f, FMODE_NONOTIFY_PERM);
        return 0;
 }