On Sun, May 24, 2020 at 5:05 PM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > On Sun, May 24, 2020 at 04:39:39PM -0700, Sargun Dhillon wrote: > > Bad refcounting rules. *IF* we go with anything of that sort (and I'm not > convinced that the entire series makes sense), it's better to have more > uniform rules re reference consumption/disposal. > > Make the destructor of addfd *ALWAYS* drop its reference. And have this > function go Are you suggesting the in both the error, and non-error cases the ioctl invoker side is responsible for fput'ing the final reference in both the success and non-success cases? Would we take an extra reference prior to fd_install? > > if (addfd->fd >= 0) { > ret = replace_fd(addfd->fd, addfd->file, addfd->flags); > } else { > ret = get_unused_fd_flags(addfd->flags); > if (ret >= 0) > fd_install(ret, get_file(addfd->file)); > } > Wouldn't this result in consumption of reference in one case (fd_install), and the fd still having a reference in the replace_fd case? _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/containers