Re: [PATCH 2/7] lockd: Use sockaddr_storage for h_saddr field

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

 



On Wed, Sep 03, 2008 at 02:35:46PM -0400, Chuck Lever wrote:
> @@ -294,7 +294,7 @@ nlm_bind_host(struct nlm_host *host)
>  			.protocol	= host->h_proto,
>  			.address	= nlm_addr(host),
>  			.addrsize	= host->h_addrlen,
> -			.saddress	= (struct sockaddr *)&host->h_saddr,
> +			.saddress	= nlm_srcaddr(host),

Just out of curiosity--in the patch 1 and 3, you also add a length
field.  Here you don't.  Why the difference?  None of the new length
fields seem to be used yet.

--b.

>  			.timeout	= &timeparms,
>  			.servername	= host->h_name,
>  			.program	= &nlm_program,
> diff --git a/fs/lockd/svcsubs.c b/fs/lockd/svcsubs.c
> index 198b4e5..d3d1330 100644
> --- a/fs/lockd/svcsubs.c
> +++ b/fs/lockd/svcsubs.c
> @@ -418,7 +418,7 @@ EXPORT_SYMBOL_GPL(nlmsvc_unlock_all_by_sb);
>  static int
>  nlmsvc_match_ip(void *datap, struct nlm_host *host)
>  {
> -	return nlm_cmp_addr(&host->h_saddr, datap);
> +	return nlm_cmp_addr(nlm_srcaddr_in(host), datap);
>  }
>  
>  /**
> diff --git a/include/linux/lockd/lockd.h b/include/linux/lockd/lockd.h
> index 41d7a8e..964e6c9 100644
> --- a/include/linux/lockd/lockd.h
> +++ b/include/linux/lockd/lockd.h
> @@ -40,7 +40,7 @@ struct nlm_host {
>  	struct hlist_node	h_hash;		/* doubly linked list */
>  	struct sockaddr_storage	h_addr;		/* peer address */
>  	size_t			h_addrlen;
> -	struct sockaddr_in	h_saddr;	/* our address (optional) */
> +	struct sockaddr_storage	h_srcaddr;	/* our address (optional) */
>  	struct rpc_clnt	*	h_rpcclnt;	/* RPC client to talk to peer */
>  	char *			h_name;		/* remote hostname */
>  	u32			h_version;	/* interface version */
> @@ -64,7 +64,7 @@ struct nlm_host {
>  	struct nsm_handle *	h_nsmhandle;	/* NSM status handle */
>  
>  	char			h_addrbuf[48],	/* address eyecatchers */
> -				h_saddrbuf[48];
> +				h_srcaddrbuf[48];
>  };
>  
>  struct nsm_handle {
> @@ -90,6 +90,16 @@ static inline struct sockaddr *nlm_addr(const struct nlm_host *host)
>  	return (struct sockaddr *)&host->h_addr;
>  }
>  
> +static inline struct sockaddr_in *nlm_srcaddr_in(const struct nlm_host *host)
> +{
> +	return (struct sockaddr_in *)&host->h_srcaddr;
> +}
> +
> +static inline struct sockaddr *nlm_srcaddr(const struct nlm_host *host)
> +{
> +	return (struct sockaddr *)&host->h_srcaddr;
> +}
> +
>  /*
>   * Map an fl_owner_t into a unique 32-bit "pid"
>   */
> 
--
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