On Sat, Jun 09, 2007 at 09:49:07PM +0100, Al Viro wrote: > On Sat, Jun 09, 2007 at 01:21:24PM -0700, Linus Torvalds wrote: > > Which is why you'd like to do the *initial* operation with a flag that > > says "please set the FD_CLOEXEC flag on the file descriptor", so that you > > *atomically* install the file file descriptor and set the FD_CLOEXEC bit. > > > > It's trivial to do for open(), but there are about a million ways to get a > > file descriptor, and open() is just about the *only* one of those that > > actually takes a "flags" field that can be used to tell the kernel. > > Eww... Idea of pipe(2) taking flags as argument... > > BTW, you also need that for recvmsg() (SCM_RIGHTS) and fsckloads of > syscalls we've got duplicating open() for no good reason (and no, "BSD > folks did it for sockets, so we'll do it for tons of new subsystems" doesn't > really qualify ;-/). > > I don't know if your indirect is a good idea in that respect, actually. > AFAICS, you are suggesting per-syscall meanings of the flags, so it really > smells like YAMultiplexor, free for abuse.
Well, of course it sucks. The question is does it suck less than adding dozens of new syscalls to patch up problems with POSIX? I don't think we can get this right in one iteration, so I actually prefer Linus's approach as less likely to leave numerous vestiges of incremental improvements around. On the other hand, we don't want to end up in a future where the bulk of our calls are through sys_indirect! Given the number of important APIs that have gotten slight semantic bumps, that's a real possibility. -- Mathematics is the supreme nostalgia of our time. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/