Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a51c84ed authored by Stanislav Kinsbursky's avatar Stanislav Kinsbursky Committed by J. Bruce Fields
Browse files

NFSd: make grace end flag per network namespace

parent 5630f7fa
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -36,6 +36,7 @@ struct nfsd_net {
	struct cache_detail *nametoid_cache;
	struct cache_detail *nametoid_cache;


	struct lock_manager nfsd4_manager;
	struct lock_manager nfsd4_manager;
	bool grace_ended;
};
};


extern int nfsd_net_id;
extern int nfsd_net_id;
+3 −5
Original line number Original line Diff line number Diff line
@@ -3119,19 +3119,17 @@ nfsd4_renew(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
	return status;
	return status;
}
}


static bool grace_ended;

static void
static void
nfsd4_end_grace(struct net *net)
nfsd4_end_grace(struct net *net)
{
{
	struct nfsd_net *nn = net_generic(net, nfsd_net_id);
	struct nfsd_net *nn = net_generic(net, nfsd_net_id);


	/* do nothing if grace period already ended */
	/* do nothing if grace period already ended */
	if (grace_ended)
	if (nn->grace_ended)
		return;
		return;


	dprintk("NFSD: end of grace period\n");
	dprintk("NFSD: end of grace period\n");
	grace_ended = true;
	nn->grace_ended = true;
	nfsd4_record_grace_done(net, boot_time);
	nfsd4_record_grace_done(net, boot_time);
	locks_end_grace(&nn->nfsd4_manager);
	locks_end_grace(&nn->nfsd4_manager);
	/*
	/*
@@ -4705,7 +4703,7 @@ nfs4_state_start(void)
	nfsd4_client_tracking_init(net);
	nfsd4_client_tracking_init(net);
	boot_time = get_seconds();
	boot_time = get_seconds();
	locks_start_grace(net, &nn->nfsd4_manager);
	locks_start_grace(net, &nn->nfsd4_manager);
	grace_ended = false;
	nn->grace_ended = false;
	printk(KERN_INFO "NFSD: starting %ld-second grace period\n",
	printk(KERN_INFO "NFSD: starting %ld-second grace period\n",
	       nfsd4_grace);
	       nfsd4_grace);
	ret = set_callback_cred();
	ret = set_callback_cred();