+ * Read-write spinlocks, allowing multiple readers but only one writer.
+ * The spinlock is held by the writer, preventing any readers or other
+ * writers from grabbing the rwlock. Readers use the lock to serialise their
+ * access to the counter (which records how many readers currently hold the
+ * lock). Linux rwlocks are unfair to writers; they can be starved for
+ * an indefinite time by readers. They can also be taken in interrupt context,
+ * so we have to disable interrupts when acquiring the spin lock to be sure
+ * that an interrupting reader doesn't get an inconsistent view of the lock.