fs: move cleanup from init_file() into its callers
authorAmir Goldstein <amir73il@gmail.com>
Sat, 1 Jul 2023 17:11:34 +0000 (20:11 +0300)
committerChristian Brauner <brauner@kernel.org>
Sun, 2 Jul 2023 11:15:49 +0000 (13:15 +0200)
commitdff745c1221a402b4921d54f292288373cff500c
treee2245a005ed20bc43bce3d6c621fa710cb902758
parent995b406c7e972fab181a4bb57f3b95e59b8e5bf3
fs: move cleanup from init_file() into its callers

The use of file_free_rcu() in init_file() to free the struct that was
allocated by the caller was hacky and we got what we deserved.

Let init_file() and its callers take care of cleaning up each after
their own allocated resources on error.

Fixes: 62d53c4a1dfe ("fs: use backing_file container for internal files with "fake" f_path") # mainline only
Reported-and-tested-by: syzbot+ada42aab05cf51b00e98@syzkaller.appspotmail.com
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Message-Id: <20230701171134.239409-1-amir73il@gmail.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/file_table.c