diff --git a/src/kernel-core/vms_lock.c b/src/kernel-core/vms_lock.c index 66dd1d1ca..98f19a2d5 100644 --- a/src/kernel-core/vms_lock.c +++ b/src/kernel-core/vms_lock.c @@ -137,8 +137,8 @@ exec_list_head_t vms_dlm_origin_list; exec_lock_t vms_dlm_origin_lock; static int vms_lock_dlm_origin_getlki(uint32_t lkid, uint32_t *granted_mode, - uint32_t *requested_mode, char *resnam, - size_t resnam_len, uint8_t *valblk); + uint32_t *requested_mode, uint32_t *master_lkid, + char *resnam, size_t resnam_len, uint8_t *valblk); /* ================================================================ * Cluster membership crosses into the executive (rd vms-551, @@ -1447,6 +1447,41 @@ uint32_t vms_lock_acp_vol_release(struct vms_proc *proc, uint32_t lkid) return d.status; } +/* + * vms_lock_acp_vol_standing - take the STANDING per-volume lock a faithful MOUNT + * holds for the WHOLE mount life (vms-25e). Unlike vms_lock_acp_vol_ex (the + * transient EX synchronization lock a single on-disk-structure write takes and + * immediately drops), this is a NULL-mode (NL) lock held from $MOUNT to + * $DISMOUNT. Its purpose is cluster registration, not serialization: it names the + * volume in the DLM so the connection manager can register "this node has this + * volume mounted" to the coordinator during a directory rebuild -- the standing + * F11B$v