cvs commit: src/sbin/fsck Makefile dir.c fsck.h fsutil.c fsutil.h inode.c memzone.c memzone.h pass1.c pass1b.c pass2.c pass3.c pass4.c utilities.c

Matthew Dillon dillon at
Thu Oct 12 02:46:04 PDT 2006

:On Thu, October 12, 2006 12:04 am, Matthew Dillon wrote:
:>   Log:
:>   Greatly reduce memory requirements when fsck'ing filesystems with lots
:>   of directories (23 million directories in my case),
:Was having 23M directories something that happened on purpose?
    It's my backup machine.  I use hardlink-based incremental mirroring
    (ala the cpdup work you saw me commit a while back).  The /backup
    partition is 450GB and it can hold daily incrementals going back to
    around August 1st.

    So, basically, each time a daily incremental is made the directories
    are replicated and the files within the directories are hardlinked to
    the previous day's topology if they hadn't changed, and created
    normally if they had changed.

    fsck's memory useage is based entirely on the number of directories
    in the filesystem.  The base backup has a few hundred thousand 
    directories.  Each day multiplies that.  At the moment I'm sitting
    at 23 million or so directories.  I had to fsck two days ago and, well,
    it didn't work :-)

    The locate.db database stopped working also :-) hahahaha.  I had to tell
    it not to try to scan /backup.

					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>

More information about the Commits mailing list