[Info-vax] Difficulty mounting new disk
Robert A. Brooks
FIRST.LAST at vmssoftware.com
Thu Jun 6 16:39:19 EDT 2019
On 6/6/2019 4:23 PM, gwilliams at cfa.harvard.edu wrote:
> I've not experienced this problem before. A newly-installed disk in
> an external disk box attached to a XP1000 workstation running V8.3 in
> a small cluster was initialized with no errors.
>
> INIT/
>
> But when I try to mount it clusterwide, I get:
>
> $ mount/sys/cluster/noassist $223$DKB100: RECOVERY
> %MOUNT-F-DEVBUSYVOL, mount or dismount in progress on device, VOL$ lock failure
It's a failure to get a lock on the resource named VOL$RECOVERY
>From [MOUNT96]GETDEV.B32
!
! Build the resource name and acquire the lock. Note that for
! historical reasons the label lock is an exec mode lock.
!
RES_NAME<0, 32> = 'VOL$';
CH$MOVE (.VOLUME_LABEL [.J, DSC$W_LENGTH],
.VOLUME_LABEL [.J, DSC$A_POINTER],
RES_NAME [4]);
RES_DESC [DSC$W_LENGTH] = .VOLUME_LABEL [.J, DSC$W_LENGTH] + 4;
RES_DESC [DSC$A_POINTER] = RES_NAME;
!
! If this lock name is greater than 31 charaters, truncate it and set up to
! take out the secondary VOL$2ND lock with the remainder of the label.
!
RES_DESC_2ND [DSC$W_LENGTH] = 0;
IF (.RES_DESC [DSC$W_LENGTH] GTRU 31)
THEN
BEGIN
RES_DESC [DSC$W_LENGTH] = 31;
CH$MOVE(7, UPLIT BYTE ('VOL$2ND'), RES_NAME_2ND);
CH$MOVE(.VOLUME_LABEL [.J, DSC$W_LENGTH] - 27,
.VOLUME_LABEL [.J, DSC$A_POINTER] + 27,
RES_NAME_2ND [7]);
RES_DESC_2ND [DSC$W_LENGTH] = .VOLUME_LABEL [.J, DSC$W_LENGTH] - 27 + 7;
RES_DESC_2ND [DSC$A_POINTER] = RES_NAME_2ND;
END;
STATUS = $ENQW (LKMODE = LCK$K_EXMODE,
LKSB = LOCK_STATUS,
FLAGS = LCK$M_SYSTEM OR LCK$M_NOQUEUE OR LCK$M_SYNCSTS,
ACMODE = PSL$C_EXEC,
RESNAM = RES_DESC,
EFN = MOUNT_EFN);
!
! Save the lock ID if we got it. Return device busy status if we failed
! to get the lock; bounce back other unexpected errors.
!
IF .STATUS
THEN
BEGIN
%IF %VARIANT EQL 1
%THEN
KERNEL_CALL (TRACE_IT, 3, .LOCK_STATUS[1]);
%FI
LAB_LOCK_ID [.J] = .LOCK_STATUS [1];
STATUS = SS$_NORMAL;
END
ELSE
BEGIN
IF .STATUS EQL SS$_NOTQUEUED
%IF %DECLARED (MOUN$_DEVBUSYVOL)
%THEN
THEN STATUS = MOUN$_DEVBUSYVOL;
%ELSE
THEN STATUS = MOUN$_DEVBUSY;
%FI
END;
--
-- Rob
More information about the Info-vax
mailing list