Journaling patches

Matthew Dillon dillon at
Thu Jan 25 10:25:54 PST 2007

:	Hi,
:	The first attached patch (jscan_patches) makes the -D option of
:jscan work. It includes tests that the directory actually exists. Apply
:within /usr/src/sbin/jscan

    Ok, this one needs a little work.  You are calling chdir() on every
    single journaling record rather then just once at the beginning
    (e.g. up in jscan.c before the loops that call dump_mirror()).

    The bit in jscan.c should use !S_ISDIR(sb.st_mode) instead of
    (sb.st_mode & S_IFDIR).

    I am branching the tree now but if you submit a tested follow up
    I will put it into both branches.

:	The second attached patch (vfs_journal.c.patch) removes the
:leading / from paths in the journal that has crept in due to changes in
:namecache behaviour (it makes the path generation ignore namecache entries
:with 0 length names). Apply within /usr/src/sys/kern.

    This looks ok.  I will commit this bit right now.

:	With these two patches applied I have been happily hammering a
:journal mirror in a vkernel with no ill effects (but it has made me realise
:that I really should think of a way to limit the number of old journal
:files that are kept before I start to use this in anger).
:	Having the journal appears to reduce the filesystem performance to
:about one third of it's unjournaled level however some of that is probably
:due to the journal being on the same disc as the filesystem.

    Write performance will suffer a lot with this sort of journaling,
    though it is buffered fairly well within the kernel.

					Matthew Dillon 
					<dillon at>

More information about the Submit mailing list