[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] [[!tag open_issue_gnumach open_issue_hurd]] Also filed as [[!GNU_Savannah_bug 29292]]. \#hurd, 2010, end of May / beginning of June [runnign sync, but sill unclean filesystem at next boot] guillem: when libpager syncs an object, it sends an m_o_lock_request and waits (if the synchronous argument was specified) for a m_o_lock_completed. But m_o_lock_completed only means that dirty pages have been sent to the translator, and this one still needs to write them to the backing storage guillem: there's no problem if sync() returns before actually writting the changes to disk, but this also happens when shutting down the translator guillem: in theory, locking mechanisms in libpager should prevent this from happening by keeping track of write operations, but this seems to fail in some situations It helps a lot to run [[`syncfs --synchronous /`|hurd/syncfs]] before issuing the `halt` or `reboot` command. This will prevent most of the uncleanliness. Of course, [[hurd/translator/ext2fs]] is meant to be doing this to-disk synchronization internally upon translator shutdown, but evidently it doesn't in all cases. Apparently diskfs simply does not set filesystems as read-only: . A patch was applied, and the sync issue does not seem to happen any more.