Subject: CVS commit: src/sys/fs/efs
To: None <source-changes@NetBSD.org>
From: Stephen M. Rumble <rumble@netbsd.org>
List: source-changes
Date: 07/04/2007 19:24:09
Module Name:	src
Committed By:	rumble
Date:		Wed Jul  4 19:24:09 UTC 2007

Modified Files:
	src/sys/fs/efs: efs_extent.h efs_subr.c efs_subr.h efs_vfsops.c
	    efs_vnops.c

Log Message:
Additional fixes/enhancements:
    1) Comply with the way buffercache(9) is intended to be used. Now we
       read in single blocks of EFS_BB_SIZE, never taking in variable
       length extents with a single bread() call.

    2) Handle symlinks with more than one extent. There's no reason for
       this to ever happen, but it's handled now.

    3) Finally, add a hint to our iteration initialiser so we can start
       from the desired offset, rather than naively looping through from
       the beginning each time. Since we can binary search the correct
       location quickly, this improves large sequential reads by about
       40% with 128MB files. Improvement should increase with file size.


To generate a diff of this commit:
cvs rdiff -r1.2 -r1.3 src/sys/fs/efs/efs_extent.h src/sys/fs/efs/efs_vfsops.c \
    src/sys/fs/efs/efs_vnops.c
cvs rdiff -r1.1 -r1.2 src/sys/fs/efs/efs_subr.c src/sys/fs/efs/efs_subr.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.