Whamcloud - gitweb
LUDOC-270 doc: describe more connect flags 91/15191/5
authorMikhail Pershin <mike.pershin@intel.com>
Wed, 10 Jun 2015 07:08:37 +0000 (10:08 +0300)
committerAndrew Uselton <andrew.c.uselton@intel.com>
Thu, 11 Jun 2015 23:21:21 +0000 (23:21 +0000)
[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 <mike.pershin@intel.com>
Change-Id: Ib8369ac6fe009366ad2f4cc16137ebec4874c6ef
Reviewed-on: http://review.whamcloud.com/15191
Tested-by: Jenkins
Reviewed-by: Andrew Uselton <andrew.c.uselton@intel.com>
connection.txt

index e0e5f4c..267c67e 100644 (file)
@@ -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
 ^^^^^^