From b61702ce8c2de83f9131b6732d356cebee5b059a Mon Sep 17 00:00:00 2001 From: Alasdair Kergon Date: Tue, 18 May 2004 21:57:24 +0000 Subject: [PATCH] Add reset_fn to external_locking. --- WHATS_NEW | 1 + lib/locking/external_locking.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/WHATS_NEW b/WHATS_NEW index e3b32e74e..07c822aea 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.00.16 - ============================= + Add reset_fn to external_locking. Ensure presence of virtual targets before attempting activating. Attempt to fix resizing of snapshot origins. Restructure lvresize, bringing it closer to lvcreate. diff --git a/lib/locking/external_locking.c b/lib/locking/external_locking.c index ac442e815..c6d974115 100644 --- a/lib/locking/external_locking.c +++ b/lib/locking/external_locking.c @@ -19,6 +19,7 @@ #include "sharedlib.h" static void *_locking_lib = NULL; +static void (*_reset_fn) (void) = NULL; static void (*_end_fn) (void) = NULL; static int (*_lock_fn) (struct cmd_context * cmd, const char *resource, int flags) = NULL; @@ -45,6 +46,13 @@ static void _fin_external_locking(void) _init_fn = NULL; _end_fn = NULL; _lock_fn = NULL; + _reset_fn = NULL; +} + +static void _reset_external_locking(void) +{ + if (_reset_fn) + _reset_fn(); } int init_external_locking(struct locking_type *locking, struct config_tree *cft) @@ -58,6 +66,7 @@ int init_external_locking(struct locking_type *locking, struct config_tree *cft) locking->lock_resource = _lock_resource; locking->fin_locking = _fin_external_locking; + locking->reset_locking = _reset_external_locking; locking->flags = 0; libname = find_config_str(cft->root, "global/locking_library", @@ -71,6 +80,7 @@ int init_external_locking(struct locking_type *locking, struct config_tree *cft) /* Get the functions we need */ if (!(_init_fn = dlsym(_locking_lib, "locking_init")) || !(_lock_fn = dlsym(_locking_lib, "lock_resource")) || + !(_reset_fn = dlsym(_locking_lib, "reset_locking")) || !(_end_fn = dlsym(_locking_lib, "locking_end"))) { log_error("Shared library %s does not contain locking " "functions", libname); -- 2.43.5