Date: Thu, 30 May 1996 20:11:19 +1000 From: Bruce Evans <bde@zeta.org.au> To: rashid@rk.ios.com, terry@lambert.org Cc: davidg@Root.COM, hackers@freebsd.org, jgreco@solaria.sol.net Subject: Re: Breaking ffs - speed enhancement? Message-ID: <199605301011.UAA14948@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>There is a school of thought that says "shall be updated" in POSIX is >not the same as "shall be committed to stable storage" (the traditional >BSD implementation). When was this traditional? >This would let access times be updated in core, but only scheduled to >be written at a later time (not forced out immediately). 4.4BSD and I think Net/2 always only scheduled them to be written at a later time. At the end of every read (incorrectly including unsuccessful ones), access times are marked for update: ip->i_flag |= IN_ACCESS; /* see ufs_readwrite.c */ At certain checkpoints, the access times are updated. E.g., in ufs_close() if (inuse && !locked) ITIMES(ip, &time, &time); If IN_ACCESS is set, this sets the access time in-core, sets IN_MODIFIED, and clears IN_ACCESS. It doesn't write the inode. Setting IN_MODIFIED schedules the inode to be written on the next sync, or when it is reused. ffs_sync() calls VOP_UPDATE() with the sync-update flag clear and ffs_update() schedules a delayed write. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199605301011.UAA14948>