diff --git a/fs/afs/callback.c b/fs/afs/callback.c index 4ad701250299..97283b04fa6f 100644 --- a/fs/afs/callback.c +++ b/fs/afs/callback.c @@ -221,14 +221,8 @@ void afs_break_callback(struct afs_vnode *vnode) vnode->cb_break++; afs_clear_permits(vnode); - spin_lock(&vnode->lock); - - _debug("break callback"); - - if (list_empty(&vnode->granted_locks) && - !list_empty(&vnode->pending_locks)) + if (vnode->lock_state == AFS_VNODE_LOCK_WAITING_FOR_CB) afs_lock_may_be_available(vnode); - spin_unlock(&vnode->lock); } write_sequnlock(&vnode->cb_lock); diff --git a/fs/afs/flock.c b/fs/afs/flock.c index aea7224ba198..fbf4986b1224 100644 --- a/fs/afs/flock.c +++ b/fs/afs/flock.c @@ -39,9 +39,6 @@ void afs_lock_may_be_available(struct afs_vnode *vnode) { _enter("{%x:%u}", vnode->fid.vid, vnode->fid.vnode); - if (vnode->lock_state != AFS_VNODE_LOCK_WAITING_FOR_CB) - return; - spin_lock(&vnode->lock); if (vnode->lock_state == AFS_VNODE_LOCK_WAITING_FOR_CB) afs_next_locker(vnode, 0);