update() still writes out all inodes, because of parenthesis error
Liudvikas Bukys
bukys at rochester.UUCP
Thu Mar 14 22:43:58 AEST 1985
Description:
Certain souped-up versions of 4.2 include an extra test in
update() which will cause only modified inodes to be written
out by sync. The test is parenthesized wrong, though, so is
effectively missing; behaviour will be the same as before (all
inodes get written).
Repeat-By:
Lint the kernel. Notice the message
"../sys/ufs_subr.c(72): warning: constant in conditional context".
Look at Kernighan&Ritchie: '==' has higher precedence than '&'.
if ((ip->i_flag & ILOCKED) != 0 || ip->i_count == 0 ||
(ip->i_flag & (IACC|IUPD|ICHG) == 0))
continue;
Fix:
Put parentheses around the '&' expression.
--> I'll leave that to someone else to test. <--
Brought-to-you-by:
Liudvikas Bukys
rochester!bukys (uucp) via allegra, decvax, seismo
bukys at rochester (arpa)
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list