Skip to content

Commit 99d4f12

Browse files
committed
file: convert replace_fd() to FD_PREPARE()
Link: https://patch.msgid.link/20251123-work-fd-prepare-v4-44-b6efa1706cfd@kernel.org Signed-off-by: Christian Brauner <brauner@kernel.org>
1 parent 5f3ea1c commit 99d4f12

1 file changed

Lines changed: 8 additions & 11 deletions

File tree

fs/file.c

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1357,28 +1357,25 @@ int replace_fd(unsigned fd, struct file *file, unsigned flags)
13571357
*/
13581358
int receive_fd(struct file *file, int __user *ufd, unsigned int o_flags)
13591359
{
1360-
int new_fd;
13611360
int error;
13621361

13631362
error = security_file_receive(file);
13641363
if (error)
13651364
return error;
13661365

1367-
new_fd = get_unused_fd_flags(o_flags);
1368-
if (new_fd < 0)
1369-
return new_fd;
1366+
FD_PREPARE(fdf, o_flags, file);
1367+
if (fdf.err)
1368+
return fdf.err;
1369+
get_file(file);
13701370

13711371
if (ufd) {
1372-
error = put_user(new_fd, ufd);
1373-
if (error) {
1374-
put_unused_fd(new_fd);
1372+
error = put_user(fd_prepare_fd(fdf), ufd);
1373+
if (error)
13751374
return error;
1376-
}
13771375
}
13781376

1379-
fd_install(new_fd, get_file(file));
1380-
__receive_sock(file);
1381-
return new_fd;
1377+
__receive_sock(fd_prepare_file(fdf));
1378+
return fd_publish(fdf);
13821379
}
13831380
EXPORT_SYMBOL_GPL(receive_fd);
13841381

0 commit comments

Comments
 (0)