</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term>
+ none
+ </term>
+ <listitem>
+ <para>
+ No cluster-aware handling of NFSv3 statd state is
+ done. NFSv3 lock reclaim will not occur and
+ applications that use locking over NFSv3 are
+ likely to lose or corrupt data.
+ </para>
+ <para>
+ This should be used with care and only in the case
+ where no applications are using POSIX locks in
+ NFSv3 mounts. It should probably be considered an
+ option to test the latency of
+ <filename>statd_callout</filename>, without
+ including any storage costs.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
</listitem>
</varlistentry>
*
* persistent_db
* shared_dir
+ * none
*
- * In these modes, the file contains 2 subsequent lines of text:
+ * In persistent_db and shared_dir modes, the file contains 2
+ * subsequent lines of text:
*
* path: directory where files should be created
* ips_file: file containing node's currently assigned public IP addresses
+ *
+ * In none mode, there are no subsequent lines.
*/
#define CONFIG_FILE CTDB_VARDIR "/scripts/statd_callout.conf"
enum {
CTDB_SC_MODE_PERSISTENT_DB,
CTDB_SC_MODE_SHARED_DIR,
+ CTDB_SC_MODE_NONE,
} mode;
union {
struct {
config.path = NULL;
free(config.ips_file);
config.ips_file = NULL;
+ break;
+ case CTDB_SC_MODE_NONE:
+ break;
}
}
config.mode = CTDB_SC_MODE_PERSISTENT_DB;
} else if (strcmp(mode, "shared_dir") == 0) {
config.mode = CTDB_SC_MODE_SHARED_DIR;
+ } else if (strcmp(mode, "none") == 0) {
+ config.mode = CTDB_SC_MODE_NONE;
} else {
fprintf(stderr,
"%s: unknown mode=%s in %s\n",
goto parse_error;
}
+ break;
+ case CTDB_SC_MODE_NONE:
break;
}
case CTDB_SC_MODE_SHARED_DIR:
add_client_shared_dir(mon_name);
break;
+ case CTDB_SC_MODE_NONE:
+ break;
}
} else if (strcmp(event, "del-client") == 0) {
mon_name = argv[2];
case CTDB_SC_MODE_SHARED_DIR:
del_client_shared_dir(mon_name);
break;
+ case CTDB_SC_MODE_NONE:
+ break;
}
} else {
usage();
esac
check_shared_dir_statd_state "$@"
;;
+ none)
+ :
+ ;;
esac
}
check_statd_callout_smnotify()
{
+ case "$statd_callout_mode" in
+ none)
+ return
+ ;;
+ esac
+
# The state here doesn't really matter because the date stub
# generates a fixed value (as per above setup() function,
# which happens to set it to an even value). In reality,
--- /dev/null
+#!/bin/sh
+
+CTDB_STATD_CALLOUT_SHARED_STORAGE="none"
+
+_dir=$(dirname "$0")
+. "${_dir}/statd-callout.001.sh"
--- /dev/null
+#!/bin/sh
+
+CTDB_STATD_CALLOUT_SHARED_STORAGE="none"
+
+_dir=$(dirname "$0")
+. "${_dir}/statd-callout.002.sh"
--- /dev/null
+#!/bin/sh
+
+CTDB_STATD_CALLOUT_SHARED_STORAGE="none"
+
+_dir=$(dirname "$0")
+. "${_dir}/statd-callout.003.sh"
--- /dev/null
+#!/bin/sh
+
+CTDB_STATD_CALLOUT_SHARED_STORAGE="none"
+
+_dir=$(dirname "$0")
+. "${_dir}/statd-callout.004.sh"
--- /dev/null
+#!/bin/sh
+
+CTDB_STATD_CALLOUT_SHARED_STORAGE="none"
+
+_dir=$(dirname "$0")
+. "${_dir}/statd-callout.005.sh"
--- /dev/null
+#!/bin/sh
+
+CTDB_STATD_CALLOUT_SHARED_STORAGE="none"
+
+_dir=$(dirname "$0")
+. "${_dir}/statd-callout.006.sh"
--- /dev/null
+#!/bin/sh
+
+CTDB_STATD_CALLOUT_SHARED_STORAGE="none"
+
+_dir=$(dirname "$0")
+. "${_dir}/statd-callout.007.sh"
statd_callout_shared_dir="$t"
fi
;;
+none)
+ :
+ ;;
*)
mode="$statd_callout_mode"
die "error: unknown CTDB_STATD_CALLOUT_SHARED_STORAGE mode ${mode}"
############################################################
+# No-op implementation
+
+startup_none()
+{
+ _config_file="$1"
+
+ cat >"$_config_file" <<EOF
+none
+EOF
+}
+
+update_none()
+{
+ :
+}
+
+list_records_none()
+{
+ :
+}
+
+delete_records_none()
+{
+ :
+}
+
+cleanup_none()
+{
+ :
+}
+
+############################################################
+
# Per-mode initialisation
startup()
{