On Mon, 2015-06-29 at 18:46 +0100, Al Viro wrote: > On Mon, Jun 29, 2015 at 05:10:30PM +0200, Eric Dumazet wrote: > > From: Eric Dumazet <edumazet@xxxxxxxxxx> > > > > __fget() makes sure a file refcount is not zero before > > taking a reference. It should also fetch again file pointer > > in order to respect dup2() atomicity requirements. > > > > It should either read a NULL pointer or a file on which > > a refcount can be taken. > > Hmm... The problem is real, but I wonder if one could trigger a long > spin there... I do not believe we can spin a long time. By the time do_dup2() calls filp_close(tofree, files), we already have a stable fdt->fd[fd], because of spin_unlock(&files->file_lock) was called before filp_close() A loop would require threads doing dup2() calls like crazy on same destination fd. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html