i'm amused by the rarity of the RW semaphore routine "downgrade_write()": $ grep -rw downgrade_write . ./drivers/infiniband/core/user_mad.c: downgrade_write(&file->port->mutex); ./drivers/infiniband/core/user_mad.c: downgrade_write(&port->mutex); ./kernel/rwsem.c:void downgrade_write(struct rw_semaphore *sem) ./kernel/rwsem.c:EXPORT_SYMBOL(downgrade_write); ./arch/powerpc/platforms/cell/spufs/context.c: downgrade_write(&ctx->state_sema); ./arch/powerpc/platforms/cell/spufs/context.c: downgrade_write(&ctx->state_sema); ./include/linux/rwsem.h:extern void downgrade_write(struct rw_semaphore *sem); ./fs/xfs/linux-2.6/mrlock.h: downgrade_write(&mrp->mr_lock); $ that's not a lot of actual invocations. essentially, two source files and a header file. just an observation. rday -- ======================================================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry Waterloo, Ontario, CANADA http://www.fsdev.dreamhosters.com/wiki/index.php?title=Main_Page ======================================================================== -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/