nfsd4: remove lockowner when removing lock stateid
authorJ. Bruce Fields <bfields@redhat.com>
Tue, 20 May 2014 19:55:21 +0000 (15:55 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Wed, 21 May 2014 15:11:21 +0000 (11:11 -0400)
commita1b8ff4c97b4375d21b6d6c45d75877303f61b3b
tree55954eb0fab25dbbd5a1fcec4583993b63f365b0
parent5513a510fad73594e29e1e48e760e0a644a8a4f3
nfsd4: remove lockowner when removing lock stateid

The nfsv4 state code has always assumed a one-to-one correspondance
between lock stateid's and lockowners even if it appears not to in some
places.

We may actually change that, but for now when FREE_STATEID releases a
lock stateid it also needs to release the parent lockowner.

Symptoms were a subsequent LOCK crashing in find_lockowner_str when it
calls same_lockowner_ino on a lockowner that unexpectedly has an empty
so_stateids list.

Cc: stable@vger.kernel.org
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs4state.c