Agreed. It just looks that way at first, and I guess it was getting+/*
+ * There are a few special cases in which this function returns while still
+ * holding locks. Those are noted inline.
+ */
This is not true, I think? It always releases all the locks.