[Cluster-devel] Re: [PATCH 2/3] NLM per-ip grace period - core

Wendy Cheng <[email protected]>
Newsgroups com.redhat.cluster-devel,org.kernel.vger.linux-nfs
Message-ID <[email protected]>
Chuck Lever wrote:
> On Jan 28, 2008, at 9:56 PM, J. Bruce Fields wrote:
>> On Fri, Jan 25, 2008 at 12:17:30AM -0500, Wendy Cheng wrote:
>>
>>> The logic is implemented on top of linux nfsd procfs with core 
>>> functions
>>> residing in lockd kernel module. Entry function is 
>>> nlmsvc_resume_ip() where
>>> it stores the requested ip interface into a linked-list 
>>> nlm_failover_list.
>>> The list entry count is nlm_failover_cnt and access protection is 
>>> done by
>>> nlm_failover_mutex. Entry in nlm_failover_ip_list is a 
>>> "nlm_failover_struct",
>>> defined in: include/linux/lockd/lockd.h.
>>>
>>>
>>> +struct nlm_failover_struct {
>>> + struct list_head g_list; /* linked list */
>>> + unsigned long g_expire; /* grace period expire */
>>> + int g_size; /* g_key type: ipv4 or ipv6 */
>>> + union {
>>> + __be32 ipv4; /* ip v4 address */
>>> + __be32 ipv6[4]; /* ip v6 address */
>>> + } g_key;
>>> +#define g_ip g_key.ipv6
>>> +};
>>
>> Only the second member of that union is every used; could we just get
>> rid of the union?
>>
>> Also, is that the right choice of types? Maybe we should just use
>> struct in6_addr?
>
> I agree with Bruce -- just use in_addr, and leave out the unused IPv6 
> stuff for now.
>
> In some places, we just replace in_addr with in6_addr and simply map 
> IPv4 to IPv6 addresses, rather than setting up a union.
>
> If the address is used as a hash and never displayed, using a mapped 
> IPv4 address is sufficient, and keeps things simple.

ok, I have been yo-yoing about whether doing IPv6 support. This sounds 
like a good plan. Will do.

-- Wendy
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.