Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-1904

deprecate unused OBD_CONNECT flags

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Fixed
    • Minor
    • Lustre 2.16.0
    • Lustre 2.4.0
    • None
    • 10320

    Description

      Some of the OBD_CONNECT flags were added to signal the presence of a new feature, but the feature is now available in all of the supported Lustre versions. That means there is no longer a need for the connect flag to be checked, and it could be deprecated and recycled at some point in the future, to avoid having an ever-expanding list of ubiquitous features being checked for each time.

      This first batch of flags could likely immediately stop being checked for by clients/servers, since they are always available. They still need to be sent/accepted by peers, for interoperability with older Lustre versions. At some later time when no checking for a given flag is universal, the flag can be removed entirely. The quota flags could also be dropped entirely for 2.4, and potentially be used to detect servers using the old quota protocol.

      #define OBD_CONNECT_VERSION              0x20ULL /*Lustre versions in ocd */
      #define OBD_CONNECT_REQPORTAL            0x40ULL /*Separate non-IO req portal */
      #define OBD_CONNECT_TRUNCLOCK           0x400ULL /*locks on server for punch */
      #define OBD_CONNECT_IBITS              0x1000ULL /*support for inodebits locks*/
      #define OBD_CONNECT_JOIN               0x2000ULL /*files can be concatenated. */
      #define OBD_CONNECT_NODEVOH            0x8000ULL /*No open hndl on specl nodes*/
      #define OBD_CONNECT_BRW_SIZE          0x40000ULL /*Max bytes per rpc */
      #define OBD_CONNECT_QUOTA64           0x80000ULL /*64bit qunit_data.qd_count */
      #define OBD_CONNECT_CANCELSET        0x400000ULL /*Early batched cancels. */
      #define OBD_CONNECT_AT              0x1000000ULL /*client uses AT */
      #define OBD_CONNECT_CHANGE_QS      0x10000000ULL /*shrink/enlarge qunit */
      #define OBD_CONNECT_CKSUM          0x20000000ULL /*support several cksum algos*/
      #define OBD_CONNECT_VBR            0x80000000ULL /*version based recovery */
      #define OBD_CONNECT_LOV_V3        0x100000000ULL /*client supports LOV v3 EA */
      #define OBD_CONNECT_SKIP_ORPHAN   0x400000000ULL /* don't reuse orphan objids */
      

      The next set of flags could stop being checked beginning in Lustre 2.5 since it will no longer interoperate with Lustre 1.8.x, and these flags have only been introduced since Lustre 2.0.

      #define OBD_CONNECT_FID            0x40000000ULL /*FID is supported by server */
      #define OBD_CONNECT_FULL20       0x1000000000ULL /* it is 2.0 client */
      

      Note OBD_CONNECT_FID could only be ignored on the MDS initially, since it is just introduced for FID-on-OST connections for DNE in 2.4.

      Attachments

        Issue Links

          Activity

            People

              adilger Andreas Dilger
              adilger Andreas Dilger
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: