Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site rochester.UUCP Path: utzoo!watmath!clyde!cbosgd!ihnp4!mhuxn!mhuxr!ulysses!allegra!mit-eddie!genrad!panda!talcott!harvard!seismo!rochester!bukys From: bukys@rochester.UUCP (Liudvikas Bukys) Newsgroups: net.bugs.4bsd Subject: update() still writes out all inodes, because of parenthesis error Message-ID: <7281@rochester.UUCP> Date: Thu, 14-Mar-85 07:43:58 EST Article-I.D.: rocheste.7281 Posted: Thu Mar 14 07:43:58 1985 Date-Received: Sat, 16-Mar-85 05:38:34 EST Distribution: net Organization: U. of Rochester, CS Dept. Lines: 24 Keywords: sync, update, "4.3" Index: sys/ufs_subr.c 4.2 Fix To: 4bsd-bugs@berkeley.arpa 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@rochester (arpa)