[lkml]   [2005]   [May]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH] namespace.c: fix bind mount from foreign namespace
> That's a bit smaller (source and compiled) as:
> if (ns2 < ns1)
> down_write(&ns2->sem);
> down_write(&ns1->sem);
> if (ns2 > ns1)
> down_write(&ns2->sem);
> (And you'll notice that does the right thing if ns2==ns1 too, in case
> that gives you any ideas.)


> Otherwise, the patch looks convincing to me.

There's another problem with it: we don't hold a reference to
old_nd.mnt->mnt_namespace, and the namespace going away could race
with this function.

So first obtain the necessary reference:

ns2 = old_nd.mnt->mnt_namespace;
if (ns2)
Then take the semaphores.

Then recheck old_nd.mnt->mnt_namespace, because it might have been
detached between the spin_unlock() and the down_write(&ns2->sem).

It's starting to get a bit complex, and I'm wondering if it's worth it :)


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-05-17 07:39    [from the cache]
©2003-2014 Jasper Spaans. hosted at Digital Ocean