On Mon, Jun 25, 2012 at 04:33:32PM -0400, bfields wrote: > On Wed, Jun 20, 2012 at 11:18:35AM -0700, Greg KH wrote: > > On Wed, Jun 20, 2012 at 02:09:29PM -0400, J. Bruce Fields wrote: > > > On Wed, Jun 20, 2012 at 09:34:27AM -0700, Greg KH wrote: > > > > On Mon, Jun 18, 2012 at 04:07:27PM -0400, J. Bruce Fields wrote: > > > > > From: Stanislav Kinsbursky <skinsbursky@xxxxxxxxxxxxx> > > > > > > > > > > commit cd96891d48a945ca2011fbeceda73813d6286195 upstream. > > > > > > > > Um, no, that's not what this commit id is at all. > > > > > > Whoops, sorry! Should have been 9793f7c88. Upstream commits on #2 and > > > #3 are correct. > > > > > > > Where did you get that from? I kind of don't trust this series now, > > > > care to fix these up with the correct git commit ids and resend them? > > > > > > Sure, I'll resend once I get the "4/3" patch sorted out. > > > > > > (That got a form rejection--I assume it was the missing upstream commit > > > ID? That's because there isn't one--3.4 requires a different fix. But > > > I can point to where the bug got fixed upstream even if it isn't the > > > same.) > > > > You need to be really specific when sending a patch that is not > > upstream, detailing why it isn't, and what different fix went in > > upstream, if possible. > > OK, looking at it closer I notice we can actually just take a different > fix directly from upstream, and then there's no problem. But it took me > a few days to get around to setting up a test-case to make sure that > still did the job.... (Oh, and my reproducer in case anyone wonders: build the following, run ./namespace-exec /bin/bash and mount -tproc proc /proc ps ax just to verify you're in a new pid/mount namespace, then mount -tnfs yourserver:/somepath /mnt then ^D out of the shell, and it should crash.) --b. #define _GNU_SOURCE #include <unistd.h> #include <signal.h> #include <sched.h> #include <sys/syscall.h> #include <err.h> int main(int argc, char *argv[]) { int pid; int flags = SIGCHLD; if (argc < 2) errx(1, "usage: %s command arg1 arg2 ...", argv[0]); flags |= CLONE_NEWNS|CLONE_NEWPID; pid = syscall(__NR_clone, flags, NULL); if (pid < 0) err(1, "clone failed"); if (pid == 0) { /* child */ int ret; ret = execv(argv[1], argv+1); if (ret) err(1,"failed to exec %s", argv[1]); } wait(); } -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html