You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It looks like in old systems, the EOF attribute of INDEXF.SYS wasn't properly updated (yet the map area properly described all extents).
As a result, file IDs beyond the (stale) EOF block would be flagged as "Not in index file" by access.c (built with -DDEBUG):
15,1,0, 0 Not in index file
Accessfile fail status 00000910
That would result in
FILE.EXT;1 %SYSTEM-W-NOSUCHFILE, no such file
showing in the directory listing (instead of e.g. size and/or date).
Removing the offending condition, like so:
if (vcbdev->idxfcb->head != NULL) {
#if 0
if (idxblk >=
F11SWAP(vcbdev->idxfcb->head->fh2$w_recattr.fat$l_efblk)) {
#if DEBUG
printf("%u,%u,%u, %u Not in index file\n",
fid->fid$w_num, fid->fid$w_seq, fid->fid$b_rvn, fid->fid$b_nmx);
#endif
return SS$_NOSUCHFILE;
}
#endif
}
allowed to process all files successfully.
The ODS-2 documentation says that all file header blocks in INDEXF.SYS should be considered depending on their contents, and no other conditions. If a block passes the validity checks (well-known fields, including the checksum) it is a valid file header (even regardless of the INDEXF.SYS-own header bitmap). EOF is an RMS attribute, which is the next level up in the file structure.
The text was updated successfully, but these errors were encountered:
It looks like in old systems, the EOF attribute of
INDEXF.SYS
wasn't properly updated (yet the map area properly described all extents).As a result, file IDs beyond the (stale) EOF block would be flagged as "Not in index file" by
access.c
(built with-DDEBUG
):That would result in
showing in the directory listing (instead of e.g. size and/or date).
Removing the offending condition, like so:
allowed to process all files successfully.
The ODS-2 documentation says that all file header blocks in
INDEXF.SYS
should be considered depending on their contents, and no other conditions. If a block passes the validity checks (well-known fields, including the checksum) it is a valid file header (even regardless of theINDEXF.SYS
-own header bitmap). EOF is an RMS attribute, which is the next level up in the file structure.The text was updated successfully, but these errors were encountered: