I've been digging into wake_up_bit and wake_up_var recently. There are a lot of places where the required barriers aren't quite right. This patch fixes them up for nfsd. The bugs are mostly minor, though the rp_locked on might be a credible problem on weakly ordered hosts (e.g. power64). NeilBrown [PATCH 1/2] nfsd: use clear_and_wake_up_bit() [PATCH 2/2] nfsd: avoid races with wake_up_var()