Messages in this thread | | | From | David Howells <> | Subject | Re: [PATCH] NFS: Fix RCU warnings in nfs_inode_return_delegation_noreclaim() [ver #2] | Date | Thu, 01 Apr 2010 12:45:14 +0100 |
| |
Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
> > I think it is incorrectly used. Given that the rcu_dereference() in: > > > > if (rcu_dereference(nfsi->delegation) != NULL) { > > spin_lock(&clp->cl_lock); > > delegation = nfs_detach_delegation_locked(nfsi, NULL); > > spin_unlock(&clp->cl_lock); > > if (delegation != NULL) > > nfs_do_return_delegation(inode, delegation, 0); > > } > > And nfs_detach_delegation_locked() rechecks nfsi->delegation() under > the lock, so this is a legitimate use. > > The pointer is not held constant, but any changes will be accounted > for and handled correctly. So I would argue that the pointer value is > in fact protected by the recheck-under-lock algorithm used here.
A legitimate use of what?
David
| |