NetBSD/sbin/fsck_lfs
perseant b397c875ae Add code to UBCify LFS. This is still behind "#ifdef LFS_UBC" for now
(there are still some details to work out) but expect that to go
away soon.  To support these basic changes (creation of lfs_putpages,
lfs_gop_write, mods to lfs_balloc) several other changes were made, to
wit:

* Create a writer daemon kernel thread whose purpose is to handle page
  writes for the pagedaemon, but which also takes over some of the
  functions of lfs_check().  This thread is started the first time an
  LFS is mounted.

* Add a "flags" parameter to GOP_SIZE.  Current values are
  GOP_SIZE_READ, meaning that the call should return the size of the
  in-core version of the file, and GOP_SIZE_WRITE, meaning that it
  should return the on-disk size.  One of GOP_SIZE_READ or
  GOP_SIZE_WRITE must be specified.

* Instead of using malloc(...M_WAITOK) for everything, reserve enough
  resources to get by and use malloc(...M_NOWAIT), using the reserves if
  necessary.  Use the pool subsystem for structures small enough that
  this is feasible.  This also obsoletes LFS_THROTTLE.

And a few that are not strictly necessary:

* Moves the LFS inode extensions off onto a separately allocated
  structure; getting closer to LFS as an LKM.  "Welcome to 1.6O."

* Unified GOP_ALLOC between FFS and LFS.

* Update LFS copyright headers to correct values.

* Actually cast to unsigned in lfs_shellsort, like the comment says.

* Keep track of which segments were empty before the previous
  checkpoint; any segments that pass two checkpoints both dirty and
  empty can be summarily cleaned.  Do this.  Right now lfs_segclean
  still works, but this should be turned into an effectless
  compatibility syscall.
2003-02-17 23:48:08 +00:00
..
Makefile Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path 2002-08-19 10:16:51 +00:00
dir.c Re-checksum the superblock whenever it is marked dirty. 2002-05-23 04:05:11 +00:00
extern.h
fsck.h Bump daddr_t to 64 bits. Replace it with int32_t in all places where 2003-01-24 21:55:02 +00:00
fsck_lfs.8 Use An, Aq for author markup. 2002-10-01 14:23:38 +00:00
fsck_vars.h Bump daddr_t to 64 bits. Replace it with int32_t in all places where 2003-01-24 21:55:02 +00:00
inode.c Add code to UBCify LFS. This is still behind "#ifdef LFS_UBC" for now 2003-02-17 23:48:08 +00:00
main.c make this build on alpha after daddr_t->64bit 2003-01-28 05:17:12 +00:00
pass0.c Add code to UBCify LFS. This is still behind "#ifdef LFS_UBC" for now 2003-02-17 23:48:08 +00:00
pass1.c Bump daddr_t to 64 bits. Replace it with int32_t in all places where 2003-01-24 21:55:02 +00:00
pass2.c
pass3.c
pass4.c
pass5.c Re-checksum the superblock whenever it is marked dirty. 2002-05-23 04:05:11 +00:00
setup.c Bump daddr_t to 64 bits. Replace it with int32_t in all places where 2003-01-24 21:55:02 +00:00
utilities.c Bump daddr_t to 64 bits. Replace it with int32_t in all places where 2003-01-24 21:55:02 +00:00
vars.c Bump daddr_t to 64 bits. Replace it with int32_t in all places where 2003-01-24 21:55:02 +00:00