diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c index b9cd3864335b299670896b5ff9a129184256476e..c454532b6f03f276df0aa37821fe10a72349a4aa 100644 --- a/fs/nfs/delegation.c +++ b/fs/nfs/delegation.c @@ -508,6 +508,7 @@ int nfs_client_return_marked_delegations(struct nfs_client *clp) err = nfs_end_delegation_return(inode, delegation, 0); iput(inode); nfs_sb_deactive(server->super); + cond_resched(); if (!err) goto restart; set_bit(NFS4CLNT_DELEGRETURN, &clp->cl_state); @@ -904,6 +905,7 @@ void nfs_delegation_reap_unclaimed(struct nfs_client *clp) } iput(inode); nfs_sb_deactive(server->super); + cond_resched(); goto restart; } } @@ -1020,6 +1022,7 @@ void nfs_reap_expired_delegations(struct nfs_client *clp) } iput(inode); nfs_sb_deactive(server->super); + cond_resched(); goto restart; } }