Journaling patches
Matthew Dillon
dillon at apollo.backplane.com
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.
-Matt
Matthew Dillon
<dillon at backplane.com>
More information about the Submit
mailing list