/* SHARE: create a DOS share or alter existing share.  */
static __be32 nlm4svc_proc_share(struct svc_rqst *rqstp, struct nlm_args *argp, struct nlm_res *resp)
/* SHARE: create a DOS share or alter existing share.  */
static __be32 nlm4svc_proc_share(struct svc_rqst *rqstp, struct nlm_args *argp, struct nlm_res *resp)
{
	struct nlm_host	*host;
	struct nlm_file	*file;
	dprintk("lockd: SHARE         called\n");
	resp->cookie = argp->cookie;
	if (locks_in_grace() && !argp->reclaim) {
		resp->status = nlm_lck_denied_grace_period;
		return rpc_success;
	}
	if ((resp->status = nlm4svc_retrieve_args(rqstp, argp, &host, &file)))
		return resp->status == nlm_drop_reply ? rpc_drop_reply :rpc_success;
	resp->status = nlmsvc_share_file(host, file, argp);
	dprintk("lockd: SHARE         status %d\n", ntohl(resp->status));
	nlm_release_host(host);
	nlm_release_file(file);
	return rpc_success;
}