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

Commit 8537488b authored by Christoph Hellwig's avatar Christoph Hellwig
Browse files

sunrpc: properly type pc_release callbacks



Drop the p and resp arguments as they are always NULL or can trivially
be derived from the rqstp argument.  With that all functions now have the
same prototype, and we can remove the unsafe casting to kxdrproc_t.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent a6beb732
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -318,27 +318,27 @@ static int nfsaclsvc_encode_accessres(struct svc_rqst *rqstp, __be32 *p,
/*
 * XDR release functions
 */
static int nfsaclsvc_release_getacl(struct svc_rqst *rqstp, __be32 *p,
		struct nfsd3_getaclres *resp)
static void nfsaclsvc_release_getacl(struct svc_rqst *rqstp)
{
	struct nfsd3_getaclres *resp = rqstp->rq_resp;

	fh_put(&resp->fh);
	posix_acl_release(resp->acl_access);
	posix_acl_release(resp->acl_default);
	return 1;
}

static int nfsaclsvc_release_attrstat(struct svc_rqst *rqstp, __be32 *p,
		struct nfsd_attrstat *resp)
static void nfsaclsvc_release_attrstat(struct svc_rqst *rqstp)
{
	struct nfsd_attrstat *resp = rqstp->rq_resp;

	fh_put(&resp->fh);
	return 1;
}

static int nfsaclsvc_release_access(struct svc_rqst *rqstp, __be32 *p,
               struct nfsd3_accessres *resp)
static void nfsaclsvc_release_access(struct svc_rqst *rqstp)
{
	struct nfsd3_accessres *resp = rqstp->rq_resp;

	fh_put(&resp->fh);
       return 1;
}

#define nfsaclsvc_decode_voidargs	NULL
@@ -353,7 +353,7 @@ struct nfsd3_voidargs { int dummy; };
	.pc_func	= nfsacld_proc_##name,				\
	.pc_decode	= (kxdrproc_t) nfsaclsvc_decode_##argt##args,	\
	.pc_encode	= (kxdrproc_t) nfsaclsvc_encode_##rest##res,	\
	.pc_release	= (kxdrproc_t) nfsaclsvc_release_##relt,	\
	.pc_release	= nfsaclsvc_release_##relt,	\
	.pc_argsize	= sizeof(struct nfsd3_##argt##args),		\
	.pc_ressize	= sizeof(struct nfsd3_##rest##res),		\
	.pc_cachetype	= cache,					\
+4 −4
Original line number Diff line number Diff line
@@ -223,13 +223,13 @@ static int nfs3svc_encode_setaclres(struct svc_rqst *rqstp, __be32 *p,
/*
 * XDR release functions
 */
static int nfs3svc_release_getacl(struct svc_rqst *rqstp, __be32 *p,
		struct nfsd3_getaclres *resp)
static void nfs3svc_release_getacl(struct svc_rqst *rqstp)
{
	struct nfsd3_getaclres *resp = rqstp->rq_resp;

	fh_put(&resp->fh);
	posix_acl_release(resp->acl_access);
	posix_acl_release(resp->acl_default);
	return 1;
}

#define nfs3svc_decode_voidargs		NULL
@@ -243,7 +243,7 @@ struct nfsd3_voidargs { int dummy; };
	.pc_func	= nfsd3_proc_##name,				\
	.pc_decode	= (kxdrproc_t) nfs3svc_decode_##argt##args,	\
	.pc_encode	= (kxdrproc_t) nfs3svc_encode_##rest##res,	\
	.pc_release	= (kxdrproc_t) nfs3svc_release_##relt,		\
	.pc_release	= nfs3svc_release_##relt,			\
	.pc_argsize	= sizeof(struct nfsd3_##argt##args),		\
	.pc_ressize	= sizeof(struct nfsd3_##rest##res),		\
	.pc_cachetype	= cache,					\
+18 −18
Original line number Diff line number Diff line
@@ -687,7 +687,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_getattr,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_fhandleargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_attrstatres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle,
		.pc_release = nfs3svc_release_fhandle,
		.pc_argsize = sizeof(struct nfsd3_fhandleargs),
		.pc_ressize = sizeof(struct nfsd3_attrstatres),
		.pc_cachetype = RC_NOCACHE,
@@ -697,7 +697,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_setattr,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_sattrargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_wccstatres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle,
		.pc_release = nfs3svc_release_fhandle,
		.pc_argsize = sizeof(struct nfsd3_sattrargs),
		.pc_ressize = sizeof(struct nfsd3_wccstatres),
		.pc_cachetype = RC_REPLBUFF,
@@ -707,7 +707,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_lookup,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_diropargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_diropres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle2,
		.pc_release = nfs3svc_release_fhandle2,
		.pc_argsize = sizeof(struct nfsd3_diropargs),
		.pc_ressize = sizeof(struct nfsd3_diropres),
		.pc_cachetype = RC_NOCACHE,
@@ -717,7 +717,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_access,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_accessargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_accessres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle,
		.pc_release = nfs3svc_release_fhandle,
		.pc_argsize = sizeof(struct nfsd3_accessargs),
		.pc_ressize = sizeof(struct nfsd3_accessres),
		.pc_cachetype = RC_NOCACHE,
@@ -727,7 +727,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_readlink,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_readlinkargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_readlinkres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle,
		.pc_release = nfs3svc_release_fhandle,
		.pc_argsize = sizeof(struct nfsd3_readlinkargs),
		.pc_ressize = sizeof(struct nfsd3_readlinkres),
		.pc_cachetype = RC_NOCACHE,
@@ -737,7 +737,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_read,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_readargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_readres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle,
		.pc_release = nfs3svc_release_fhandle,
		.pc_argsize = sizeof(struct nfsd3_readargs),
		.pc_ressize = sizeof(struct nfsd3_readres),
		.pc_cachetype = RC_NOCACHE,
@@ -747,7 +747,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_write,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_writeargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_writeres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle,
		.pc_release = nfs3svc_release_fhandle,
		.pc_argsize = sizeof(struct nfsd3_writeargs),
		.pc_ressize = sizeof(struct nfsd3_writeres),
		.pc_cachetype = RC_REPLBUFF,
@@ -757,7 +757,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_create,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_createargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_createres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle2,
		.pc_release = nfs3svc_release_fhandle2,
		.pc_argsize = sizeof(struct nfsd3_createargs),
		.pc_ressize = sizeof(struct nfsd3_createres),
		.pc_cachetype = RC_REPLBUFF,
@@ -767,7 +767,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_mkdir,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_mkdirargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_createres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle2,
		.pc_release = nfs3svc_release_fhandle2,
		.pc_argsize = sizeof(struct nfsd3_mkdirargs),
		.pc_ressize = sizeof(struct nfsd3_createres),
		.pc_cachetype = RC_REPLBUFF,
@@ -777,7 +777,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_symlink,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_symlinkargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_createres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle2,
		.pc_release = nfs3svc_release_fhandle2,
		.pc_argsize = sizeof(struct nfsd3_symlinkargs),
		.pc_ressize = sizeof(struct nfsd3_createres),
		.pc_cachetype = RC_REPLBUFF,
@@ -787,7 +787,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_mknod,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_mknodargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_createres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle2,
		.pc_release = nfs3svc_release_fhandle2,
		.pc_argsize = sizeof(struct nfsd3_mknodargs),
		.pc_ressize = sizeof(struct nfsd3_createres),
		.pc_cachetype = RC_REPLBUFF,
@@ -797,7 +797,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_remove,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_diropargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_wccstatres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle,
		.pc_release = nfs3svc_release_fhandle,
		.pc_argsize = sizeof(struct nfsd3_diropargs),
		.pc_ressize = sizeof(struct nfsd3_wccstatres),
		.pc_cachetype = RC_REPLBUFF,
@@ -807,7 +807,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_rmdir,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_diropargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_wccstatres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle,
		.pc_release = nfs3svc_release_fhandle,
		.pc_argsize = sizeof(struct nfsd3_diropargs),
		.pc_ressize = sizeof(struct nfsd3_wccstatres),
		.pc_cachetype = RC_REPLBUFF,
@@ -817,7 +817,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_rename,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_renameargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_renameres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle2,
		.pc_release = nfs3svc_release_fhandle2,
		.pc_argsize = sizeof(struct nfsd3_renameargs),
		.pc_ressize = sizeof(struct nfsd3_renameres),
		.pc_cachetype = RC_REPLBUFF,
@@ -827,7 +827,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_link,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_linkargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_linkres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle2,
		.pc_release = nfs3svc_release_fhandle2,
		.pc_argsize = sizeof(struct nfsd3_linkargs),
		.pc_ressize = sizeof(struct nfsd3_linkres),
		.pc_cachetype = RC_REPLBUFF,
@@ -837,7 +837,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_readdir,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_readdirargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_readdirres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle,
		.pc_release = nfs3svc_release_fhandle,
		.pc_argsize = sizeof(struct nfsd3_readdirargs),
		.pc_ressize = sizeof(struct nfsd3_readdirres),
		.pc_cachetype = RC_NOCACHE,
@@ -846,7 +846,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_readdirplus,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_readdirplusargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_readdirres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle,
		.pc_release = nfs3svc_release_fhandle,
		.pc_argsize = sizeof(struct nfsd3_readdirplusargs),
		.pc_ressize = sizeof(struct nfsd3_readdirres),
		.pc_cachetype = RC_NOCACHE,
@@ -882,7 +882,7 @@ static struct svc_procedure nfsd_procedures3[22] = {
		.pc_func = nfsd3_proc_commit,
		.pc_decode = (kxdrproc_t) nfs3svc_decode_commitargs,
		.pc_encode = (kxdrproc_t) nfs3svc_encode_commitres,
		.pc_release = (kxdrproc_t) nfs3svc_release_fhandle,
		.pc_release = nfs3svc_release_fhandle,
		.pc_argsize = sizeof(struct nfsd3_commitargs),
		.pc_ressize = sizeof(struct nfsd3_commitres),
		.pc_cachetype = RC_NOCACHE,
+8 −8
Original line number Diff line number Diff line
@@ -1114,19 +1114,19 @@ nfs3svc_encode_commitres(struct svc_rqst *rqstp, __be32 *p,
/*
 * XDR release functions
 */
int
nfs3svc_release_fhandle(struct svc_rqst *rqstp, __be32 *p,
					struct nfsd3_attrstat *resp)
void
nfs3svc_release_fhandle(struct svc_rqst *rqstp)
{
	struct nfsd3_attrstat *resp = rqstp->rq_resp;

	fh_put(&resp->fh);
	return 1;
}

int
nfs3svc_release_fhandle2(struct svc_rqst *rqstp, __be32 *p,
					struct nfsd3_fhandle_pair *resp)
void
nfs3svc_release_fhandle2(struct svc_rqst *rqstp)
{
	struct nfsd3_fhandle_pair *resp = rqstp->rq_resp;

	fh_put(&resp->fh1);
	fh_put(&resp->fh2);
	return 1;
}
+1 −3
Original line number Diff line number Diff line
@@ -4543,9 +4543,8 @@ nfs4svc_encode_voidres(struct svc_rqst *rqstp, __be32 *p, void *dummy)
        return xdr_ressize_check(rqstp, p);
}

int nfsd4_release_compoundargs(void *rq, __be32 *p, void *resp)
void nfsd4_release_compoundargs(struct svc_rqst *rqstp)
{
	struct svc_rqst *rqstp = rq;
	struct nfsd4_compoundargs *args = rqstp->rq_argp;

	if (args->ops != args->iops) {
@@ -4559,7 +4558,6 @@ int nfsd4_release_compoundargs(void *rq, __be32 *p, void *resp)
		args->to_free = tb->next;
		kfree(tb);
	}
	return 1;
}

int
Loading