nfsd4: remove lockowner when removing lock stateid
authorJ. Bruce Fields <bfields@redhat.com>
Tue, 20 May 2014 19:55:21 +0000 (15:55 -0400)
committerJiri Slaby <jslaby@suse.cz>
Mon, 9 Jun 2014 13:53:34 +0000 (15:53 +0200)
commit94b7b52bd91e0bb9ed304d7f5de3711defdc42c6
treeed68843322f01535f0c70ba19128e25e36a12bcf
parenta55dfea8623fadef4f0985be3f84a54a92718192
nfsd4: remove lockowner when removing lock stateid

commit a1b8ff4c97b4375d21b6d6c45d75877303f61b3b upstream.

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.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
fs/nfsd/nfs4state.c