diff options
Diffstat (limited to 'fs/nfs/callback_proc.c')
| -rw-r--r-- | fs/nfs/callback_proc.c | 17 | 
1 files changed, 5 insertions, 12 deletions
diff --git a/fs/nfs/callback_proc.c b/fs/nfs/callback_proc.c index 76b4a7a3e55..c89b26bc975 100644 --- a/fs/nfs/callback_proc.c +++ b/fs/nfs/callback_proc.c @@ -14,6 +14,7 @@  #include "delegation.h"  #include "internal.h"  #include "pnfs.h" +#include "nfs4session.h"  #ifdef NFS_DEBUG  #define NFSDBG_FACILITY NFSDBG_CALLBACK @@ -216,7 +217,6 @@ static u32 initiate_bulk_draining(struct nfs_client *clp,  			}  			pnfs_get_layout_hdr(lo);  			spin_unlock(&ino->i_lock); -			BUG_ON(!list_empty(&lo->plh_bulk_recall));  			list_add(&lo->plh_bulk_recall, &recall_list);  		}  	} @@ -562,23 +562,16 @@ __be32 nfs4_callback_recallslot(struct cb_recallslotargs *args, void *dummy,  	if (!cps->clp) /* set in cb_sequence */  		goto out; -	dprintk_rcu("NFS: CB_RECALL_SLOT request from %s target max slots %d\n", +	dprintk_rcu("NFS: CB_RECALL_SLOT request from %s target highest slotid %d\n",  		rpc_peeraddr2str(cps->clp->cl_rpcclient, RPC_DISPLAY_ADDR), -		args->crsa_target_max_slots); +		args->crsa_target_highest_slotid);  	fc_tbl = &cps->clp->cl_session->fc_slot_table; -	status = htonl(NFS4ERR_BAD_HIGH_SLOT); -	if (args->crsa_target_max_slots > fc_tbl->max_slots || -	    args->crsa_target_max_slots < 1) -		goto out; -  	status = htonl(NFS4_OK); -	if (args->crsa_target_max_slots == fc_tbl->max_slots) -		goto out; -	fc_tbl->target_max_slots = args->crsa_target_max_slots; -	nfs41_handle_recall_slot(cps->clp); +	nfs41_set_target_slotid(fc_tbl, args->crsa_target_highest_slotid); +	nfs41_server_notify_target_slotid_update(cps->clp);  out:  	dprintk("%s: exit with status = %d\n", __func__, ntohl(status));  	return status;  |