Trailing-Edge
-
PDP-10 Archives
-
bb-l014q-bm_tops20_v6_1_atpch17
-
autopatch/mountr.c17
There is 1 other file named mountr.c17 in the archive. Click here to see a list.
REP 7/2 ;17C1
MTRMAN==335 ;Maintenance edit level
WIT
MTRMAN==336 ;Maintenance edit level
INS 470/4 ;17C2
336 5.1247 Oct-13-87
In routine STRFND: when MOUNTR detects a -1 for the address of a SSB in
the DSB, go to STRFN3 to find out why. There are three cases that this might
happen: if two identical structures are put online, if a disk drive switches
paths while the MONITOR is doing HOM block checking on that drive, and if two
structures with identical bad HOM blocks are put online. The first case MOUNTR
will create two structure status blocks for each structure. The second case,
MOUNTR will delete the path (DSB) that is doing the HOM block checking. The
third case will be treated like the first but the DSB will state that the disk
has bad HOM blocks. Since the MONITOR will no longer returns two accessible
paths to a disk drive, MOUNTR will no longer crash.
REP 24/101 ;17C3
JRST [LOAD STR,DSKSSA,(DSK) ;No structure,
JUMPE STR,R ;If no pointer forget about this disk
CALL CHKDSK ;Is it due to disk errors?
RET ;Yes, bad data on disk drive
WIT
;[336]At DDSCHK:+7L change 4 lines JYCW 10/13/87
JRST [CALL CHKDSK ;[336]Is it due to disk errors?
RET ;[336]Yes, bad data on disk drive
LOAD STR,DSKSSA,(DSK) ;[336]No structure,
JUMPE STR,R ;[336]If no pointer forget about this disk
REP 19/107 ;17C4
CALL SSBCRE ;Get a new SSB entry
WIT
STRGS0: CALL SSBCRE ;Get a new SSB entry
REP 32/107 ;17C5
JRST [CAMN T2,DSK ;Yes, is it the same as this one?
JRST STRFN0 ;Yes, still ok.
LOAD T1,DSKSSA,(DSK) ;Get the disk structure address
CAIN T1,-1 ;Have we already been here?
$STOP <Disk Port switch case detected twice>
SETONE DSKSSA,(DSK) ;Set the case
SETOM AGAIN ;Say we should try again
RET]
WIT
IFNSK.
CAMN T2,DSK ;Yes, is it the same as this one?
JRST STRFN0 ;Yes, still ok.
LOAD T1,DSKSSA,(DSK) ;Get the disk structure address
CAIN T1,-1 ;Have we already been here?
;[336]At STRFND:+8L change 1 line JYCW 10/13/87
JRST STRFN3 ;[336]Yes, go do some analyzing
SETONE DSKSSA,(DSK) ;Set the case
SETOM AGAIN ;Say we should try again
RET
ENDIF.
INS 1/108 ;17C6
;[336] STRFN3 - Find out why we have a -1 in DSKSSA.
;Accepts T2/disk status block
; DSK/disk status block with -1 for SSB address.
; STR/SSB
STRFN3: MOVE T1,DSKFLG(DSK) ;[336]Get status flag of coming online disk
TXNE T1,MS%IAC+MS%OFL ;[336]HOM block checking?
IFNSK.
MOVE T2,DSK ;[336]Move DSB into AC T2
JRST STRFN5 ;[336]Delete DSB
ENDIF.
MOVE T3,DSKFLG(T2) ;[336]Get disk status flag of existing disk
TXNE T3,MS%IAC+MS%OFL ;[336][336]HOM block checking?
JRST STRFN5 ;[336]Yes, delete DSB
; Not result from a force offline due to HOM block checking
; Is it due to bad HOM block informaton
TXNN T1,MS%HBB ;[336]Bad HOM block?
IFSKP. ;[336]Yes
SETZM DSKP2(DSK) ;[336]Clear pointer to SSB (zeros DSKSSA)
RET ;[336]Yes, no need to add SSB
ENDIF.
; Not result from bad HOM block
; Must be identical structures coming online
JRST STRGS0 ;[336]Go create a new SSB
;T2/DSB address
STRFN5: SETZM DSKSTN(T2) ;[336]Zero structure name
SETZM DSKSTA(T2) ;[336]Zero structure alias
SETZM DSKNS(T2) ;[336]Zero structure unit information
SETZM DSKP2(T2) ;[336]Clear pointer to SSB (zeros DSKSSA)
RET
REP 11/109 ;17C7
SETONE STR%DE,STRFL1(STR) ;Yes, set the disk error flag
MOVE T1,DSKCKU(DSK) ;Get CKU
MOVE T2,DSKSTN(DSK) ;Get Alias
TMCT <%IDevice error on %1K%_Structure name %2S: cannot be used>
WIT
;[336]At CHKDSK:+2L delete 1 line JYCW 10/13/87
MOVE T1,DSKCKU(DSK) ;Get CKU
;[336]At CHKDSK:+4L replace 2 lines with 1 line JYCW 10/13/87
TMCT <%IDevice error on %1K%_Drive cannot be used.> ;[336]
INS 35/109 ;17C8
;[336]At CHKDSK:+26L Add 3 lines JYCW 10/13/87
LOAD STR,DSKSSA,(DSK) ;[336]No structure,
JUMPE STR,R ;[336]If no pointer forget about this disk
SETONE STR%DE,STRFL1(STR) ;[336]Yes, set the disk error flag
SUM 157096