Whamcloud - gitweb
LU-10885 llite: enable flock mount option by default 87/34987/2
authorAndreas Dilger <adilger@whamcloud.com>
Tue, 2 Oct 2018 21:52:28 +0000 (15:52 -0600)
committerOleg Drokin <green@whamcloud.com>
Wed, 3 Jul 2019 03:25:16 +0000 (03:25 +0000)
The "flock" mount option has been optional for many years, initially
because of potential stability issues, and also to provide a choice
for administrators to select between "flock" and "localflock" options.

However, from the large number of problems that users report when
trying to use applications that depend on this feature (typically
databases and other cloud stacks) that disabling flock by default
causes more problems than it solves.

Enable the "flock" (distributed coherent userspace locking) feature
by default.  If applications do not need this functionality, then it
will not affect them.  If applications *do* need this functionality,
they will get it.  If administrators really know what they are doing,
then they can use the "localflock" feature to enable client-local
flock functionality, possibly only on select nodes that need this.

Users wanting to disable this functionality should mount with the
existing "-o noflock" mount option, or build the client with the
"configure --disable-flock" option.

If clients are already using "-o {flock|localflock|noflock}" then
their existing options will be handled appropriately.

Lustre-change: https://review.whamcloud.com/32091
Lustre-commit: 3613af3e15cbc6091e3a16c8caeb1307be2d91f6

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: I182637604fa22573b1da6b6b86d8915e3c3ebbe5
Reviewed-by: Patrick Farrell <paf@cray.com>
Reviewed-by: Ben Evans <bevans@cray.com>
Reviewed-on: https://review.whamcloud.com/34987
Tested-by: Jenkins
Reviewed-by: Li Xi <lixi@ddn.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/autoconf/lustre-core.m4
lustre/llite/llite_lib.c

index 07ee23c..9f736fb 100644 (file)
@@ -123,6 +123,22 @@ AS_IF([test "x$enable_checksum" != xno],
 ]) # LC_CONFIG_CHECKSUM
 
 #
+# LC_CONFIG_FLOCK
+#
+# enable distributed flock by default
+#
+AC_DEFUN([LC_CONFIG_FLOCK], [
+AC_MSG_CHECKING([whether to enable flock by default])
+AC_ARG_ENABLE([flock],
+       AC_HELP_STRING([--disable-flock],
+               [disable flock by default]),
+       [], [enable_flock="yes"])
+AC_MSG_RESULT([$enable_flock])
+AS_IF([test "x$enable_flock" != xno],
+       [AC_DEFINE(ENABLE_FLOCK, 1, [enable flock by default])])
+]) # LC_CONFIG_FLOCK
+
+#
 # LC_CONFIG_HEALTH_CHECK_WRITE
 #
 # Turn off the actual write to the disk
@@ -3029,6 +3045,7 @@ AC_DEFUN([LC_PROG_LINUX], [
 
        LC_CONFIG_PINGER
        LC_CONFIG_CHECKSUM
+       LC_CONFIG_FLOCK
        LC_CONFIG_HEALTH_CHECK_WRITE
        LC_CONFIG_LRU_RESIZE
 
index 265f17c..feb53c9 100644 (file)
@@ -109,6 +109,9 @@ static struct ll_sb_info *ll_init_sbi(void)
 #ifdef ENABLE_CHECKSUM
         sbi->ll_flags |= LL_SBI_CHECKSUM;
 #endif
+#ifdef ENABLE_FLOCK
+       sbi->ll_flags |= LL_SBI_FLOCK;
+#endif
 
 #ifdef HAVE_LRU_RESIZE_SUPPORT
         sbi->ll_flags |= LL_SBI_LRU_RESIZE;