Subject: CVS commit: src/sys/ufs/lfs
To: None <source-changes@netbsd.org>
From: Konrad Schroder <perseant@netbsd.org>
List: source-changes
Date: 04/23/2003 07:20:40
Module Name:	src
Committed By:	perseant
Date:		Wed Apr 23 07:20:40 UTC 2003

Modified Files:
	src/sys/ufs/lfs: lfs.h lfs_inode.c lfs_segment.c lfs_subr.c
	    lfs_vfsops.c lfs_vnops.c

Log Message:
Make LFS work better (though still not "well") as an NFS-exported
filesystem (and other things that needed to be fixed before the tests
would complete), to wit:

* Include the fs ident in the filehandle; improve stale filehandle checks.

* Change definition of blksize() to use the on-dinode size instead of
  the inode's i_size, so that fsck_lfs will work properly again.

* Use b_interlock in lfs_vtruncbuf.

* Postpone dirop reclamation until after the seglock has been released,
  so that lfs_truncate is not called with the segment lock held.

* Don't loop in lfs_fsync(), just write everything and wait.

* Be more careful about the interlock/uobjlock in lfs_putpages: when we
  lose this lock, we have to resynchronize dirtiness of pages in each
  block.

* Be sure to always write indirect blocks and update metadata in
  lfs_putpages; fixes a bug that caused blocks to be accounted to the
  wrong segment.


To generate a diff of this commit:
cvs rdiff -r1.63 -r1.64 src/sys/ufs/lfs/lfs.h
cvs rdiff -r1.73 -r1.74 src/sys/ufs/lfs/lfs_inode.c
cvs rdiff -r1.119 -r1.120 src/sys/ufs/lfs/lfs_segment.c
cvs rdiff -r1.39 -r1.40 src/sys/ufs/lfs/lfs_subr.c
cvs rdiff -r1.114 -r1.115 src/sys/ufs/lfs/lfs_vfsops.c
cvs rdiff -r1.102 -r1.103 src/sys/ufs/lfs/lfs_vnops.c

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