Whamcloud - gitweb
LU-1644 mgs: swab nidtbl entries for 2.2 clients
authorJinshan Xiong <jinshan.xiong@intel.com>
Mon, 6 Aug 2012 23:30:24 +0000 (16:30 -0700)
committerOleg Drokin <green@whamcloud.com>
Tue, 21 Aug 2012 03:27:25 +0000 (23:27 -0400)
commitbf8dff47e1d1bf29d10572f84f888cad8a193a43
tree07ad70248fa563b5a1ddff30ce227d02c6bd015f
parentbaaf62826468c07287afeb865b1f6e9d4a10cc4a
LU-1644 mgs: swab nidtbl entries for 2.2 clients

LU-1252 is missed in 2.2 release so it caused a problem that 2.2
clients always swab nidtbl entries even if the server and client
are using the same endian.  Conversely, 2.3 clients would not
swab the nidtbl entries but the 2.2 server would always swab.

To make it work, 2.3 adds a temporary OBD_CONNECT_MNE_SWAB flag,
which will cause the server to swab the nidtbl entries for 2.2
clients, and 2.3 clients will undo the swab done by 2.2 servers
if the MNE_SWAB flag is not set.  This avoids problems with only
checking the client/server version, in case the LU-1252 fix is
ever applied to a 2.2 client or server build.

This workaround is set to auto-expire for 2.5.50+ clients and
servers, which is a reasonable upper limit for interoperability
with old unpatched 2.2 clients in a mixed-endian environment.
This is enough for 2.2.0 clients/servers to work with the 2.5.x
feature releases, after which the OBD_CONNECT flag can be reused.

Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: Id316f7e1c7ee2b2c1d1077e8c5dd916edca04d84
Reviewed-on: http://review.whamcloud.com/3548
Tested-by: Hudson
Reviewed-by: Jinshan Xiong <jinshan.xiong@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/include/lustre/lustre_idl.h
lustre/include/lustre_export.h
lustre/include/lustre_import.h
lustre/ldlm/ldlm_lib.c
lustre/liblustre/llite_lib.c
lustre/mgc/mgc_request.c
lustre/mgs/mgs_nids.c
lustre/obdclass/obd_mount.c
lustre/ptlrpc/import.c