FIX: to kernel/sys/sys/sys4.c
utzoo!decvax!ucbvax!dist2
utzoo!decvax!ucbvax!dist2
Sun Dec 6 03:27:45 AEST 1981
The utime() routine is a mess. In particular, if UCB_FSFIX
is undefined and an error occurs, the inode remains locked. The
necessary changes are:
diff kernel/sys/sys/sys4.c.old kernel/sys/sys/sys4.c
454d453
< #ifdef UCB_FSFIX
456a456
> #ifdef UCB_FSFIX
458d457
< }
460,462c459
< return;
< }
< iupdat(ip, &tv[0], &tv[1]);
---
> iupdat(ip, &tv[0], &tv[1]);
463a461
> }
This is possibly the most obscure set of diffs we've yet published, so
here are the lines involved, in context:
kernel/sys/sys/sys4.c.old:
if (copyin((caddr_t)uap->tptr, (caddr_t)tv, sizeof(tv))) {
u.u_error = EFAULT;
#ifdef UCB_FSFIX
} else {
ip->i_flag |= IACC|IUPD|ICHG;
iupdat(ip, &tv[0], &tv[1], 0);
}
#else
return;
}
iupdat(ip, &tv[0], &tv[1]);
#endif
iput(ip);
kernel/sys/sys/sys4.c:
if (copyin((caddr_t)uap->tptr, (caddr_t)tv, sizeof(tv))) {
u.u_error = EFAULT;
} else {
ip->i_flag |= IACC|IUPD|ICHG;
#ifdef UCB_FSFIX
iupdat(ip, &tv[0], &tv[1], 0);
#else
iupdat(ip, &tv[0], &tv[1]);
#endif
}
iput(ip);
These changes should be made to all tapes written before 12/5/81.
Carl
More information about the Comp.bugs.2bsd
mailing list