Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| andriygapon:avfzfsfreebsdport [2012/10/16 15:15] – AndriyGapon | andriygapon:avfzfsfreebsdport [2018/03/31 08:28] (current) – add to CategoryZfs. MarkLinimon | ||
|---|---|---|---|
| Line 27: | Line 27: | ||
| zfs_zget increments the reference count and checks VI_DOOMED. The reference is dropped and znode lookup is retried if VI_DOOMED is set. | zfs_zget increments the reference count and checks VI_DOOMED. The reference is dropped and znode lookup is retried if VI_DOOMED is set. | ||
| Because of this lockstep the graceful reclaim and zfs_zget can not race. | Because of this lockstep the graceful reclaim and zfs_zget can not race. | ||
| + | The znode is under protection of the object hold mutex in both cases. | ||
| ==== Locking ==== | ==== Locking ==== | ||
| Line 121: | Line 122: | ||
| * acquire exclusive z_teardown_lock in vop_reclaim iff v_usecount > 0 has been seen | * acquire exclusive z_teardown_lock in vop_reclaim iff v_usecount > 0 has been seen | ||
| * make and use a variant of vflush that does not call vfs_root — the root node is provided as parameter | * make and use a variant of vflush that does not call vfs_root — the root node is provided as parameter | ||
| + | |||
| + | ---- | ||
| + | |||
| + | {{tag> | ||