hammer2 - hardlink stabilization (3), data and inode count propagation.
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 18 May 2012 01:41:51 +0000 (18:41 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 18 May 2012 01:41:51 +0000 (18:41 -0700)
commit28ee5f14407fca9773ee7e53aa44bac278cac900
tree067274b24219801f54fe5a67de046b9d73d416db
parent21a8f693a69e231a5eecfa274dfff7e51b55e28d
hammer2 - hardlink stabilization (3), data and inode count propagation.

* Files with cached chains have to be flushed before they can be copied
  to the hardlink target, because the original inode will become a
  OBJTYPE_HARDLINK pointer which isn't allowed to have any sub-chains
  under the inode.

* We also need to flush for the upcoming snapshot function to work properly
  or dirty in-memory data will not show up in the snapshot.

* Propagate the inode and byte use count up the chain.  Tie the inode count
  into df's inode count (per-PFS).  The byte count and quota fields are not
  yet tied in.

* Adjust stat[v]fs() to return filesystem space useage using the allocation
  iterator for now, to aid debugging.

* Adjust the allocation iterator to skip reserved areas at the beginning of
  each 2GB storage zone.
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_chain.c
sys/vfs/hammer2/hammer2_freemap.c
sys/vfs/hammer2/hammer2_inode.c
sys/vfs/hammer2/hammer2_vfsops.c
sys/vfs/hammer2/hammer2_vnops.c