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

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



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


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