NetBSD/sys/ufs/ffs
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 Rework the way kernel include files are installed. In the new method, 1998-06-12 23:22:30 +00:00
ffs_alloc.c More printf format cleanup to reduce casts. 2003-01-26 06:42:31 +00:00
ffs_appleufs.c use be32toh instead of ntohl, etc. 2002-11-02 19:31:09 +00:00
ffs_balloc.c Bump daddr_t to 64 bits. Replace it with int32_t in all places where 2003-01-24 21:55:02 +00:00
ffs_bswap.c These sources are pulled into makefs(8), so we need config.h and protection 2002-01-31 19:19:22 +00:00
ffs_extern.h Add code to UBCify LFS. This is still behind "#ifdef LFS_UBC" for now 2003-02-17 23:48:08 +00:00
ffs_inode.c The oldblks and newblks arrays are used to store direct copies of 2003-01-25 16:40:28 +00:00
ffs_softdep.c Make the buffer cache code MP-safe. 2003-02-05 21:38:38 +00:00
ffs_softdep.stub.c Bump daddr_t to 64 bits. Replace it with int32_t in all places where 2003-01-24 21:55:02 +00:00
ffs_subr.c Use PRId64 instead of hard coding "%lld" to fix build problems under 2003-01-25 18:12:31 +00:00
ffs_tables.c These sources are pulled into makefs(8), so we need config.h and protection 2002-01-31 19:19:22 +00:00
ffs_vfsops.c Add code to UBCify LFS. This is still behind "#ifdef LFS_UBC" for now 2003-02-17 23:48:08 +00:00
ffs_vnops.c Add code to UBCify LFS. This is still behind "#ifdef LFS_UBC" for now 2003-02-17 23:48:08 +00:00
fs.h Bump daddr_t to 64 bits. Replace it with int32_t in all places where 2003-01-24 21:55:02 +00:00
softdep.h Bump daddr_t to 64 bits. Replace it with int32_t in all places where 2003-01-24 21:55:02 +00:00