From: Jeff Layton <jlayton@redhat.com> Another update to the patchset that I sent last week. This fixes a bug that I found in testing in the last patchset and adds a manpage for the rados_grace_tool program that allows manipulating the database. It also adds new command-line options to that tool for changing the default pool and grace DB oid. I think this is getting quite close to being mergeable. At this point, I mainly want to get feedback on the first 9 or so patches, which extend the recovery_backend operations interface. Do those changes look acceptable? All of the new ones should basically be no-ops for any singleton backends, and are only used for the clustered one. Jeff Layton (13): HASHTABLE: add a hashtable_for_each function reaper: add a way to wake up the reaper immediately main: initialize recovery backend earlier SAL: make some rados_kv symbols public SAL: add new try_lift_grace recovery operation SAL: add recovery operation to maybe start a grace period SAL: add new set_enforcing operation SAL: add a way to check for grace period being enforced cluster-wide main: add way to stall server until grace is being enforced support: add a rados_grace support library tools: add new rados_grace manipulation tool SAL: add new clustered RADOS recovery backend FSAL_CEPH: kill off old session before the mount src/CMakeLists.txt | 1 + src/FSAL/FSAL_CEPH/main.c | 39 ++ src/MainNFSD/nfs_init.c | 8 - src/MainNFSD/nfs_lib.c | 13 + src/MainNFSD/nfs_main.c | 12 + src/MainNFSD/nfs_reaper_thread.c | 11 + src/SAL/CMakeLists.txt | 3 +- src/SAL/nfs4_recovery.c | 90 ++- src/SAL/recovery/recovery_rados.h | 6 + src/SAL/recovery/recovery_rados_cluster.c | 406 +++++++++++++ src/SAL/recovery/recovery_rados_kv.c | 12 +- src/cmake/modules/FindCEPHFS.cmake | 8 + src/doc/man/CMakeLists.txt | 5 + src/doc/man/ganesha-core-config.rst | 1 + src/doc/man/rados_grace_tool.rst | 108 ++++ src/hashtable/hashtable.c | 17 + src/include/config-h.in.cmake | 1 + src/include/hashtable.h | 3 + src/include/nfs_core.h | 1 + src/include/rados_grace.h | 85 +++ src/include/sal_functions.h | 11 +- src/nfs-ganesha.spec-in.cmake | 3 + src/support/CMakeLists.txt | 4 + src/support/rados_grace.c | 675 ++++++++++++++++++++++ src/tools/CMakeLists.txt | 4 + src/tools/rados_grace_tool.c | 203 +++++++ 26 files changed, 1708 insertions(+), 22 deletions(-) create mode 100644 src/SAL/recovery/recovery_rados_cluster.c create mode 100644 src/doc/man/rados_grace_tool.rst create mode 100644 src/include/rados_grace.h create mode 100644 src/support/rados_grace.c create mode 100644 src/tools/rados_grace_tool.c -- 2.17.0