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