Re: [patch 7/8] fdmap v2 - implement sys_socket2
[Posted June 11, 2007 by corbet]
From: |
| Alan Cox <alan-AT-lxorguk.ukuu.org.uk> |
To: |
| Davide Libenzi <davidel-AT-xmailserver.org> |
Subject: |
| Re: [patch 7/8] fdmap v2 - implement sys_socket2 |
Date: |
| Wed, 6 Jun 2007 23:59:06 +0100 |
Cc: |
| Linux Kernel Mailing List <linux-kernel-AT-vger.kernel.org>,
Linus Torvalds <torvalds-AT-linux-foundation.org>,
Andrew Morton <akpm-AT-linux-foundation.org>,
Ulrich Drepper <drepper-AT-redhat.com>,
Ingo Molnar <mingo-AT-elte.hu>, Eric Dumazet <dada1-AT-cosmosbay.com> |
> The sys_accept() system call has been modified to return a file
> descriptor inside the non-sequential area, if the listening fd is.
> The sys_socketcall() system call has been also changed to support
> a new SYS_SOCKET2 indentifier.
This still all seems really really ugly. Is there anything wrong with
throwing all these extra cases out and replacing the entire lot with
prctl(PR_SPARSEFD, 1);
to turn on sparse fd allocation for a process ?
Anyone needing to deal with certain special fds will use dup2() anyway so
a task global switch seems to be cleaner and make the behaviour simply to
flip on, with no extra calls (and you need to submit man pages for them
all too), and also more importantly no new glibc stuff should be needed,
and a process can try to set sparsefd, fail and carry on so its more
portable and back portable.
Alan