On Thu, Apr 12, 2012 at 2:11 PM, Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> wrote: > On Thu, 12 Apr 2012 13:54:25 +0300 > Alexey Dobriyan <adobriyan@xxxxxxxxx> wrote: > >> On Sat, Apr 7, 2012 at 12:02 AM, H. Peter Anvin <hpa@xxxxxxxxx> wrote: >> > On 04/06/2012 01:16 PM, Alexey Dobriyan wrote: >> >> >> >> closefrom(3) written via nextfd(2) loop is reliable and doesn't fail. >> >> closefrom(3) written via /proc/self/fd is reliable and can fail (including ENOMEM). >> >> closefrom(3) written via close(fd++) is unreliable. >> >> >> > >> > I call shenanigans on this. There is no reason to ENOMEM on the second >> > written using the fdwalk() implementation I already posted, for example. >> >> open("/proc/self/fd") can fail with ENOMEM. > > Any syscall can fail with a process kill due to a stack extend on out of > memory in most configurations. That includes your nextfd stuff > > This whole thing is getting stupid. "Perfection is the enemy of > success". > > Your code will also fail when the cat pees on the computer, when the > power fails and when disk dies. I suspect that other than the cat these > are all more likely real world cases than your ENOMEM. You can't see I'm talking about difference only, can you? Have you read what hpa wrote exactly and what exactly I was answering to? -- 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