Re: [patch 7/8] fdmap v2 - implement sys_socket2



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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages