Whamcloud - gitweb
LU-15671 mds: do not send OST_CREATE transno interop
authorAndreas Dilger <adilger@whamcloud.com>
Thu, 18 May 2023 21:41:47 +0000 (15:41 -0600)
committerAndreas Dilger <adilger@whamcloud.com>
Sat, 24 Jun 2023 18:12:46 +0000 (18:12 +0000)
commitb85a12aa730dc3a93b5e35bf46d942b67ea06d4d
treec5b69ed7e7b2d83202956fda9147534cd510214a
parentc05d5990f459c442ddfb49d03a3027654d63995e
LU-15671 mds: do not send OST_CREATE transno interop

Send OST_CREATE RPCs from the MDS with no_resend and no_delay
when communicating with an old OST that does not support the
OBD_CONNECT2_REPLAY_RESEND.  Likewise, the OST should not reply
to the MDS RPC with rq_transno set, or this will trigger:

   osp_precreate_send() ASSERTION(req->rq_transno == 0) failed

This can be avoided if the MDS is upgraded before the OSS, but
will always be hit if OSS is upgraded first.

After 2.20.53 the MDS/OSS assume that this is always true, since
rolling upgrades are unsupported for larger version differences.

Lustre-change: https://review.whamcloud.com/51056
Lustre-commit: 9ee1281060d0a00a9c5d715a9a6d9b99c27123ff

Test-Parameters: testgroup=rolling-upgrade-oss
Fixes: 63e17799a3 ("LU-8367 osp: enable replay for precreation request")
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Sergey Cheremencev <scherementsev@ddn.com>
Change-Id: I1ab601a2f55540dd75cf24838f7cdb7f823ed42c
Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/51425
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
12 files changed:
lustre/include/lustre_export.h
lustre/include/uapi/linux/lustre/lustre_idl.h
lustre/lod/lod_lov.c
lustre/ofd/ofd_dev.c
lustre/ofd/ofd_internal.h
lustre/ofd/ofd_io.c
lustre/ofd/ofd_obd.c
lustre/ofd/ofd_objects.c
lustre/osp/osp_precreate.c
lustre/ptlrpc/wiretest.c
lustre/utils/wirecheck.c
lustre/utils/wiretest.c