diff options
-rw-r--r-- | fs/nfsd/nfs4state.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index e87e15df2044..f056b1d3fecd 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c | |||
@@ -298,6 +298,14 @@ remove_blocked_locks(struct nfs4_lockowner *lo) | |||
298 | } | 298 | } |
299 | } | 299 | } |
300 | 300 | ||
301 | static void | ||
302 | nfsd4_cb_notify_lock_prepare(struct nfsd4_callback *cb) | ||
303 | { | ||
304 | struct nfsd4_blocked_lock *nbl = container_of(cb, | ||
305 | struct nfsd4_blocked_lock, nbl_cb); | ||
306 | locks_delete_block(&nbl->nbl_lock); | ||
307 | } | ||
308 | |||
301 | static int | 309 | static int |
302 | nfsd4_cb_notify_lock_done(struct nfsd4_callback *cb, struct rpc_task *task) | 310 | nfsd4_cb_notify_lock_done(struct nfsd4_callback *cb, struct rpc_task *task) |
303 | { | 311 | { |
@@ -325,6 +333,7 @@ nfsd4_cb_notify_lock_release(struct nfsd4_callback *cb) | |||
325 | } | 333 | } |
326 | 334 | ||
327 | static const struct nfsd4_callback_ops nfsd4_cb_notify_lock_ops = { | 335 | static const struct nfsd4_callback_ops nfsd4_cb_notify_lock_ops = { |
336 | .prepare = nfsd4_cb_notify_lock_prepare, | ||
328 | .done = nfsd4_cb_notify_lock_done, | 337 | .done = nfsd4_cb_notify_lock_done, |
329 | .release = nfsd4_cb_notify_lock_release, | 338 | .release = nfsd4_cb_notify_lock_release, |
330 | }; | 339 | }; |