In Linux kernel we have multiple read-write lock methods:
void write_unlock(rwlock_t *lock); void write_unlock_irqrestore(rwlock_t *lock, unsigned long flags)