Date: Thu, 6 Feb 2014 10:57:13 +0000
From: "Juergen Hannken-Illjes" <[email protected]>
Move fstrans_start()/fstrans_done() into genfs_insane_rename() to protect
the complete rename operation like we do for all other vnode operations.
I've always been a little fuzzy on the rules for using fstrans. When
I wrote genfs_rename, I was under the (probably incorrect) impression
that it was there to block writers gracefully so that the file system
could be put into a consistent state for a snapshot.
Could you explain what the rules for using fstrans_{start,done} are,
and how they relate to vnode locks, lock order, and I/O operations?
The fstrans(9) man page is a little terse.