Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
nfsd: don't return an unhashed lock stateid after taking mutex
nfsd4_lock will take the st_mutex before working with the stateid it gets, but between the time when we drop the cl_lock and take the mutex, the stateid could become unhashed (a'la FREE_STATEID). If that happens the lock stateid returned to the client will be forgotten. Fix this by first moving the st_mutex acquisition into lookup_or_create_lock_state. Then, have it check to see if the lock stateid is still hashed after taking the mutex. If it's not, then put the stateid and try the find/create again. Signed-off-by: Jeff Layton <[email protected]> Tested-by: Alexey Kodanev <[email protected]> Cc: [email protected] # feb9dad nfsd: Always lock state exclusively. Cc: [email protected] Signed-off-by: J. Bruce Fields <[email protected]>
- Loading branch information