February 14th, 2011

I was oversimplifying.

The NFS mount syscall winds up in nfs_get_sb() which calls nfs_validate_mount_data() which calls nfs_try_mount() which calls nfs_mount() which calls rpc_create() which calls xprt_create_transport which walks xprt_list to find xs_setup_udp() which calls xs_setup_xprt() which calls xprt_alloc() which does the get_net() that pins the network namespace I supplied to it.

It then loses track of that namespace later on, sending the packet twice (once out of each namespace) and then delivering the return packet to who knows where. (I repeat: this is just to make the unnecessary lookup for mountd to work, so it can find nfsd. It's attempting to locate the correct server to talk to. I haven't asked it to do a DNS lookup yet.)

I have a large pile of energy drinks and attempting to FIX THIS TONIGHT. We'll see...
  • Current Mood
    nauseated nauseated
  • Tags