From: Mikhail Pershin Date: Wed, 10 Jun 2015 07:08:37 +0000 (+0300) Subject: LUDOC-270 doc: describe more connect flags X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=6dd994a279ba773b290b4efac52b5d91b8252248;p=doc%2Fprotocol.git LUDOC-270 doc: describe more connect flags [2015-06-10, PM] Clarify OBD_CONNECT_TRUNCLOCK under Mike's guidance. [2015-06-10] Andrew did a little editing of Mike's update. OBD_CONNECT_TRUNCLOCK may still want a some attention. [201-06-9] Update document with more details about connection flags Signed-off-by: Mikhail Pershin Change-Id: Ib8369ac6fe009366ad2f4cc16137ebec4874c6ef Reviewed-on: http://review.whamcloud.com/15191 Tested-by: Jenkins Reviewed-by: Andrew Uselton --- diff --git a/connection.txt b/connection.txt index e0e5f4c..267c67e 100644 --- a/connection.txt +++ b/connection.txt @@ -246,7 +246,67 @@ value. The additional space in the 'obd_connect_data' structure is unused and reserved for future use. -fixme: Discuss the meaning of the rest of the OBD_CONNECT_* flags. +Other OBD_CONNECT_* flags have no corresponding field in +obd_connect_data but still control client-server supported features. + +If the OBD_CONNECT_RDONLY flag is set then the client is mounted in +read-only mode and the server honors that by denying any modification +from this client. + +If the OBD_CONNECT_SRVLOCK flag is set then the client and server +support lockless IO. The server will take locks for client IO requests +with the OBD_BRW_SRVLOCK flag in the 'niobuf_remote' structure +flags. This is used for Direct IO. The client takes no LDLM lock and +delegates locking to the server. + +If the OBD_CONNECT_ACL flag is set then the server supports the ACL +mount option for its filesystem. The client supports this mount option +as well, in that case. + +If the OBD_CONNECT_XATTR flag is set then the server supports user +extended attributes. This is defined by the mount options of the +servers of the backend file systems and is reflected on the client +side by the same mount option but for the Lustre file system itself. + +If the OBD_CONNECT_TRUNCLOCK flag is set then the client and the +server support lockless truncate. This is realized in an OST_PUNCH RPC +by setting the 'obdo' sturcture's 'o_flag' field to include the +OBD_FL_SRVLOCK. In that circumstance the client takes no lock, and the +server must take a lock on the resource. + +If the OBD_CONNECT_ATTRFID flag is set then the server supports +getattr requests by FID of file instead of name. This reduces +unnecessary RPCs for DNE. + +If the OBD_CONNECT_NODEVOH flag is set then the server provides no +open handle for special inodes. + +fixme: finish with the rest of flags + +The remaining flags are obsoleted and not used nowadays. + +The OBD_CONNECT_REQPORTAL was used to specify that client may use +OST_REQUEST_PORTAL for requests to don't interfere with IO portal, +e.g. for MDS-OST interaction. Now it is default request portal for OSC +and this flag does nothing though it is still set on client side +during connection process. + +The OBD_CONNECT_CROW flag was used for create-on-write functionality +on OST, when data objects were created upon first write from the +client. This wasn't implemented because of complex recovery problems. + +The OBD_CONNECT_SOM flag was used to signal that MDS is capable to +store file size in file attributes, so client may get it directly from +MDS avoiding glimpse request to OSTs. This feature was implemented as +demo feature and wasn't enabled by default. Finally it was disabled in +Lustre 2.7 because it causes quite complex recovery cases to handle +with relatevely small benefits. + +The OBD_CONNECT_JOIN flag was used for the 'join files' feature, which +allowed files to be concatenated. Lustre no longer supports that +feature. + +fixme: finish with rest of unused flags Import ^^^^^^