[EMAIL PROTECTED] (Thomas Bushnell, BSG) writes: > It must guarantee that the directory is updated to drop the link > *before* the inode refcnt is decremented and the inode possibly > cleared. > > So it synchronously writes the directory, and then lets the inode get > cleared on the next regular sync. > > A better way is to properly order writes with the devices, which would > require having a table of which blocks depend on which, and the pagers > not writing blocks out of order; that's hard work, but would be nice.
>From your description, it sounds like one would be able to get away with something simpler: Put the write operations on the directiory into a (not necessarily well-ordered) queue, and then make sure that "regular sync" performs the operations in that queue before it does anything else. If one implements the "proper" ordering that you mention, which process would do that? The filesystem, or the device, or some store-like process in the middle? In a traditional monolithic kernel, most of this happens in the block cache, I guess. Regards, /Niels _______________________________________________ Bug-hurd mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-hurd