From: bobijam Date: Thu, 6 Aug 2009 01:40:48 +0000 (+0000) Subject: Branch HEAD X-Git-Tag: v1_9_240~22 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=5abbee6224c62a03d5a22296fea3cb5ec8340f9f;p=fs%2Flustre-release.git Branch HEAD b=19854 o=johann i=oleg.drokin (green) i=robert.read o=oleg.drokin(green) i=johann i=zhenyu.xu (bobijam) Description: enable client interface failover Details : When a child reconnects from another NID, properly update export nid hash position and ldlm reverse import. --- diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 8a803eb..c285689c 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -13,6 +13,12 @@ tbd Sun Microsystems, Inc. removed cwd "./" (refer to Bugzilla 14399). * File join has been disabled in this release, refer to Bugzilla 16929. +Severity : normal +Bugzilla : 19854 +Description: enable client interface failover +Details : When a child reconnects from another NID, properly update export + nid hash position and ldlm reverse import. + Severity : enhancement Bugzilla : 18539 Description: Communicate OST degraded/readonly state via statfs to MDS @@ -23,13 +29,13 @@ Details : Flags in the statfs returned from OSTs indicate whether the Severity : normal Bugzilla : 20122 Frequency : rare -Description: don't panic if EPROTO was hit when reading symlink +Description: don't panic if EPROTO was hit when reading symlink Details : correctly handling request reference in error cases. Severity : enhancement Bugzilla : 19856 Description: Add LustreNetLink, a kernel-userspace communcation path. - + Severity : enhancement Bugzilla : 19847 Description: Update kernel to SLES10 SP2 2.6.16.60-0.39.3. @@ -69,12 +75,12 @@ Bugzilla : 19507 Description: Temporarily disable grant shrink. Details : Disable the feature for debugging. -Severity : normal +Severity : normal Frequency : only when formatting test filesystems -Bugzilla : 18624 +Bugzilla : 18624 Description: Unable to run several mkfs.lustre on loop devices at the same time Details : mkfs.lustre returns error 256 on the concurrent loop devices - formatting. The solution is to proper handle the error. + formatting. The solution is to proper handle the error. Severity : enhancement Bugzilla : 19024 diff --git a/lustre/ldlm/ldlm_lib.c b/lustre/ldlm/ldlm_lib.c index bb6e297..23ef86e 100644 --- a/lustre/ldlm/ldlm_lib.c +++ b/lustre/ldlm/ldlm_lib.c @@ -760,7 +760,9 @@ int target_handle_connect(struct ptlrpc_request *req) export = NULL; rc = 0; } else if (export->exp_connection != NULL && - req->rq_peer.nid != export->exp_connection->c_peer.nid) { + req->rq_peer.nid != export->exp_connection->c_peer.nid && + (lustre_msg_get_op_flags(req->rq_reqmsg) & + MSG_CONNECT_INITIAL)) { /* in mds failover we have static uuid but nid can be * changed*/ CWARN("%s: cookie %s seen on new NID %s when " @@ -930,8 +932,17 @@ dont_check_exports: spin_unlock(&export->exp_lock); } - if (export->exp_connection != NULL) + if (export->exp_connection != NULL) { + /* Check to see if connection came from another NID */ + if ((export->exp_connection->c_peer.nid != req->rq_peer.nid) && + !hlist_unhashed(&export->exp_nid_hash)) + lustre_hash_del(export->exp_obd->obd_nid_hash, + &export->exp_connection->c_peer.nid, + &export->exp_nid_hash); + ptlrpc_connection_put(export->exp_connection); + } + export->exp_connection = ptlrpc_connection_get(req->rq_peer, req->rq_self, &remote_uuid);