Re: [RFC v3 2/3] file: allow callers to free the old file descriptor after dup2

From: Matthew Wilcox
Date: Fri Mar 24 2023 - 01:29:49 EST


On Fri, Mar 24, 2023 at 05:15:25AM +0000, aloktiagi wrote:
> @@ -1119,8 +1119,12 @@ __releases(&files->file_lock)
> __clear_close_on_exec(fd, fdt);
> spin_unlock(&files->file_lock);
>
> - if (tofree)
> - filp_close(tofree, files);
> + if (fdfile) {
> + *fdfile = tofree;
> + } else {
> + if (tofree)
> + filp_close(tofree, files);
> + }

Why not:

if (fdfile)
*fdfile = tofree;
else if (tofree)
filp_close(tofree, files);

Shorter and makes the parallel structure more obvious.