kernel - SWAP CACHE part 19/many - distinguish bulk data in HAMMER block dev
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 12 Feb 2010 04:54:05 +0000 (20:54 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 12 Feb 2010 05:00:33 +0000 (21:00 -0800)
commitb8a41159211b865cc8ea882ac52601f4230dc766
treeb01d7cd33b0a629af7091ef36b67c0435e450c9e
parent72917cc31c2becc4268b0dd03c06acb182ebd185
kernel - SWAP CACHE part 19/many - distinguish bulk data in HAMMER block dev

* Add buf->flags/B_NOTMETA, vm_page->flags/PG_NOTMETA.  If set the pages
  underlying the buffer will not be considered meta-data from the
  point of view of the swapcache.

* HAMMER must sometimes access bulk data via the block device instead of
  via a file vnode.  For example, the reblocking and mirroring code.
  We do not want this data to be misinterpreted as meta-data when
  the meta-data-only swapcache is turned on, otherwise it will blow
  out the actual meta-data in the swapcache.

  HAMMER_RECTYPE_DATA and HAMMER_RECTYPE_DB are considered normal data.
  All other record types (e.g. direntry, inode, etc) are meta-data.
sys/kern/vfs_bio.c
sys/sys/buf.h
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_btree.c
sys/vfs/hammer/hammer_io.c
sys/vfs/hammer/hammer_reblock.c
sys/vm/vm_page.h
sys/vm/vm_swapcache.c