On Jan 4, 2012, at 5:03 PM, Trond Myklebust wrote: > On Wed, 2012-01-04 at 16:58 -0500, Chuck Lever wrote: >> On Jan 4, 2012, at 4:56 PM, Chuck Lever wrote: >> >>> >>> On Jan 4, 2012, at 4:52 PM, Trond Myklebust wrote: >>> >>>> The garbage collector needs to remove the entry from the lru list >>>> _and_ the red-black tree atomically in order avoid races in >>>> nfs4_get_state_owner. >>>> >>>> Fix a case in nfs4_get_state_owner in which the garbage-collector >>>> list was being manipulated while not holding the appropriate spin >>>> lock. >>>> >>>> nfs4_drop_state_owner doesn't need to look at sp->so_lru: the caller >>>> must have a reference to the state owner, so it can't be on the >>>> garbage-collection list. >>>> >>>> Run the garbage collector _after_ we've looked up the state owner >>>> for efficiency reasons. >>>> >>>> Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx> >>> >>> Reviewed-by: Chuck Lever <chuck.lever@xxxxxxxxxx> >> >> You might consider squashing this with my patch. The list_del_init() outside the cl_lock is enough to warrant it. > > Sure, as long as you're fine with that. Usually I like to see who did what, but I think this should be one patch for better bisecting behavior and to make it easy for distributors to find and apply this fix. -- Chuck Lever chuck[dot]lever[at]oracle[dot]com -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html