Skip to topic | Skip to bottom
Home
You are here: TWiki > AFSLore Web > CodeArchitectureVInitVolumePackage r2 - 11 Jun 2007 - 17:01 - StevenJenkins


Start of topic | Skip to actions
-- StevenJenkins - 11 Jun 2007 VInitVolumePackage? is the main setup program for the fileserver, salvageserver, and volserver (and some utilities). It initializes the data structures need by each to do their operations. Synchronization is done via vol_glock_mutex, vol_trans_mutex, vol_put_volume_cond, and vol_sleep_cond.

  • Called by:
  1. fileserver
  2. salvageserver
  3. volserver
  4. vol-dump utility
  5. salvager
  6. vol-bless utility (unsupported)

  • Does: (among other operations)
  1. VInitPartitionPackage?
  2. VInitVolumeHash?
  3. VInitVnodes? (for small & large vnodes)
  4. VAttachVolumesByPartition?

VInitPartitionPackage? simply allocates memory for use by the caller (for DAFs -- for non-DAFS, it's a no-op)

VInitVolumeHash? allocates memory and sets up VolumeHashTable?.Table; also does queue_Init for reach entry in the Table.

VInitVnodes? allocates memory for the Vnode hash, and initializes all values in the entries (to 0 or NULL), or the nextpointer.

VInitVolumesByPartition? reads the disk and calls VAttachVolumeByName? (VPreAttachVolumeByName? for DAFS) for each volume on the disk.

Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r2 < r1 | More topic actions
This site is powered by the TWiki collaboration platformCopyright © 1999-2008 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback