Re: Can you specify a local IP or Interface to be used on a per NFSmount basis?

From: Peter Staubach
Date: Fri Jan 20 2006 - 08:51:34 EST


Ben Greear wrote:

Trond Myklebust wrote:

On Wed, 2006-01-18 at 19:28 -0800, Ben Greear wrote:


As David said, the place to fix it is in xs_bindresvport(), but there is
no support for passing this sort of information through the current NFS
binary mount structure. You would have to hack that up yourself.


I can think of some horrible hacks to grab info out of a text file based
on the mount point or some other available info...but if I actually
attempted to do it right..would you consider the patch for kernel
inclusion? Is it OK to modify the binary mount structure?



It is possible, yes: the binary structure carries a version number that
allows the kernel to distinguish the various revisions that the userland
mount program supports.

That said, the concensus at the moment appears to be that we should move
towards a text-based mount structure for NFS (like most of the other
filesystems have, and like NFSroot has) so I'd be reluctant to take
patches that define new binary structures.


Ok. This patch does extend the binary struct, and to do it really right,
we should probably pass in some sort of in_addr struct instead of the
single 'u32' for the IP address.

So, please just consider this a proof of concept. That said, with a
patched 'mount' binary (diff available if anyone cares), this does
do exactly what I want: allows binding an nfs client to a particular
local IP address.

If/when you get the text based interface working, I will try to cook
up an official patch worthy of inclusion if you have not already
done so.


These changes are very IPv4 specific. Perhaps they could be constructed in a
bit more IP version agnostic fashion? IPv6 is coming as well as other transport
choices, not all of whose addresses will fit into 32 bits.

Thanx...

ps
-
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/