Re: [PATCH] nfs-utils: Support binding to source address.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Jun 8, 2011, at 1:39 PM, greearb@xxxxxxxxxxxxxxx wrote:

> From: Ben Greear <greearb@xxxxxxxxxxxxxxx>
> 
> This lets one specify the source IP address for
> sockets, allowing users to leverage routing rules
> on multi-homed systems.

  [ ... snipped ... ]

> diff --git a/support/include/sockaddr.h b/support/include/sockaddr.h
> index 9af2543..3822b4b 100644
> --- a/support/include/sockaddr.h
> +++ b/support/include/sockaddr.h
> @@ -46,6 +46,12 @@ union nfs_sockaddr {
> 	struct sockaddr_in6	s6;
> };
> 
> +struct local_bind_info {
> +	struct sockaddr_storage addr;

For storing socket addresses, nfs_utils has "union nfs_sockaddr" which safely allows the equivalent of type-casting.  You should use that here.

> +	int addrlen;

socklen_t or size_t is preferred for sockaddr lengths.

> +	int is_set;

This should probably be _Bool or bool.

But why is this structure needed?  Why can't you pass a bind address via a struct sockaddr * just as bind(2) does?

When you specify a source address for mountd and statd, wouldn't they need to register that address with rpcbind? That won't work for non-TI-RPC builds, and neither would it work for the kernel, which, according to Trond, will never support listening on specific addresses (he NACKed a patch to the kernel's rpcbind client to support this). Are you sure you need server-side changes too?

You can't pass a bind address to the mount command using a command line option, since command line options aren't stored in /etc/fstab or /etc/mtab.  How would umount.nfs learn of the bind address if it can't find it in /etc/mtab?

It should not read from an environment variable either... how would that work during system boot?  How would such a variable be set during system shutdown?  If we were to do this, it really should use a new mount option.

If you repost, I would do mountd, statd, and mount's getport implementation all in separate patches.

-- 
Chuck Lever
chuck[dot]lever[at]oracle[dot]com




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


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux