Currently we have: - vfs_busy(mp, NULL) to take a reference on the mount and enter a critical section against unmounting.
- vfs_unbusy(mp, keepref, NULL) to leave the critical section and release the reference if "keepref == false". - atomic_inc_uint(&mp->mnt_refcnt) to take a reference on the mount. - vfs_destroy(mp) to release a reference on the mount. Plan is to restructure this as follows: - vfs_busy(mp) takes a reference and enters a critical section. The second "NULL" argument gets removed. - vfs_unbusy(mp) leaves the critical section and releases the reference. The second and the third "NULL" argument gets removed. Calls with "keepref == true" get preceeded by vfs_ref(mp); - vfs_ref(mp) takes a reference. Atomic increments get replaced by vfs_ref(mp). - vfs_rele(mp) releases a reference. Vfs_destroy(mp) gets renamed to vfs_rele(mp). Operation vfs_trybusy(mp) gets added when needed. Comments or objections? -- J. Hannken-Illjes - hann...@eis.cs.tu-bs.de - TU Braunschweig (Germany)