hammer2 - Refactor frontend part 11/many
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 25 Jun 2015 22:06:15 +0000 (15:06 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 25 Jun 2015 22:06:15 +0000 (15:06 -0700)
commitc603b86b77206805493fc181d3576ecd1786e056
treecb1733e102ac48a12bc6f36d905718836008f3a6
parentdefaf72d15603f30950f5702212753df1f34277e
hammer2 - Refactor frontend part 11/many

* Add XOPs for nresolve and most inode creation.  The inode creation support
  backs all inode-creation XOPs.

* Remove the on-stack hammer2_trans_t structure and remove the passing
  of &trans to all modifying operations.

  This methodology added significant list-management overhead and isn't
  a good fit with the new frontend/backend mechanics.  The removal also
  simplifies the API for many support functions.

  Replace with a temporary version that embeds a single, simplified
  hammer2_trans_t in each hammer2_pfs_t.  Ultimately we will need
  to fan-out to per-node (per hammer2_mount_t) transaction control
  in a way that doesn't stall-out the frontend.
14 files changed:
sys/vfs/hammer2/TODO
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_bulkscan.c
sys/vfs/hammer2/hammer2_chain.c
sys/vfs/hammer2/hammer2_cluster.c
sys/vfs/hammer2/hammer2_flush.c
sys/vfs/hammer2/hammer2_freemap.c
sys/vfs/hammer2/hammer2_inode.c
sys/vfs/hammer2/hammer2_ioctl.c
sys/vfs/hammer2/hammer2_strategy.c
sys/vfs/hammer2/hammer2_thread.c
sys/vfs/hammer2/hammer2_vfsops.c
sys/vfs/hammer2/hammer2_vnops.c
sys/vfs/hammer2/hammer2_xops.c