Date: Thu, 6 Feb 2014 10:57:13 +0000 From: "Juergen Hannken-Illjes" <hann...@netbsd.org>
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.