On Mon, Jul 13, 2020 at 04:45:12PM +0800, Hillf Danton wrote: > Bridge the gap between slab free and the fput in task work wrt > file's private data. No. This > @@ -2048,6 +2055,7 @@ SYSCALL_DEFINE1(userfaultfd, int, flags) > > fd = get_unused_fd_flags(O_RDONLY | O_CLOEXEC); > if (fd < 0) { > + file->private_data = NULL; > fput(file); > goto out; > } > is fundamentally wrong; you really shouldn't take over the cleanups if you ever do fput().