nfs: fix encoder callback prototypes
Declare the p_encode callbacks with the proper prototype instead of casting to kxdreproc_t and losing all type safety. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Jeff Layton <jlayton@redhat.com> Acked-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
committed by
Anna Schumaker
parent
d16073389b
commit
fcc85819ee
@@ -846,8 +846,10 @@ static void encode_diropargs3(struct xdr_stream *xdr, const struct nfs_fh *fh,
|
||||
*/
|
||||
static void nfs3_xdr_enc_getattr3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs_fh *fh)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs_fh *fh = data;
|
||||
|
||||
encode_nfs_fh3(xdr, fh);
|
||||
}
|
||||
|
||||
@@ -884,8 +886,9 @@ static void encode_sattrguard3(struct xdr_stream *xdr,
|
||||
|
||||
static void nfs3_xdr_enc_setattr3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs3_sattrargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs3_sattrargs *args = data;
|
||||
encode_nfs_fh3(xdr, args->fh);
|
||||
encode_sattr3(xdr, args->sattr);
|
||||
encode_sattrguard3(xdr, args);
|
||||
@@ -900,8 +903,10 @@ static void nfs3_xdr_enc_setattr3args(struct rpc_rqst *req,
|
||||
*/
|
||||
static void nfs3_xdr_enc_lookup3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs3_diropargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs3_diropargs *args = data;
|
||||
|
||||
encode_diropargs3(xdr, args->fh, args->name, args->len);
|
||||
}
|
||||
|
||||
@@ -922,8 +927,10 @@ static void encode_access3args(struct xdr_stream *xdr,
|
||||
|
||||
static void nfs3_xdr_enc_access3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs3_accessargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs3_accessargs *args = data;
|
||||
|
||||
encode_access3args(xdr, args);
|
||||
}
|
||||
|
||||
@@ -936,8 +943,10 @@ static void nfs3_xdr_enc_access3args(struct rpc_rqst *req,
|
||||
*/
|
||||
static void nfs3_xdr_enc_readlink3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs3_readlinkargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs3_readlinkargs *args = data;
|
||||
|
||||
encode_nfs_fh3(xdr, args->fh);
|
||||
prepare_reply_buffer(req, args->pages, args->pgbase,
|
||||
args->pglen, NFS3_readlinkres_sz);
|
||||
@@ -966,8 +975,10 @@ static void encode_read3args(struct xdr_stream *xdr,
|
||||
|
||||
static void nfs3_xdr_enc_read3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs_pgio_args *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs_pgio_args *args = data;
|
||||
|
||||
encode_read3args(xdr, args);
|
||||
prepare_reply_buffer(req, args->pages, args->pgbase,
|
||||
args->count, NFS3_readres_sz);
|
||||
@@ -1008,8 +1019,10 @@ static void encode_write3args(struct xdr_stream *xdr,
|
||||
|
||||
static void nfs3_xdr_enc_write3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs_pgio_args *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs_pgio_args *args = data;
|
||||
|
||||
encode_write3args(xdr, args);
|
||||
xdr->buf->flags |= XDRBUF_WRITE;
|
||||
}
|
||||
@@ -1055,8 +1068,10 @@ static void encode_createhow3(struct xdr_stream *xdr,
|
||||
|
||||
static void nfs3_xdr_enc_create3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs3_createargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs3_createargs *args = data;
|
||||
|
||||
encode_diropargs3(xdr, args->fh, args->name, args->len);
|
||||
encode_createhow3(xdr, args);
|
||||
}
|
||||
@@ -1071,8 +1086,10 @@ static void nfs3_xdr_enc_create3args(struct rpc_rqst *req,
|
||||
*/
|
||||
static void nfs3_xdr_enc_mkdir3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs3_mkdirargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs3_mkdirargs *args = data;
|
||||
|
||||
encode_diropargs3(xdr, args->fh, args->name, args->len);
|
||||
encode_sattr3(xdr, args->sattr);
|
||||
}
|
||||
@@ -1091,16 +1108,20 @@ static void nfs3_xdr_enc_mkdir3args(struct rpc_rqst *req,
|
||||
* };
|
||||
*/
|
||||
static void encode_symlinkdata3(struct xdr_stream *xdr,
|
||||
const struct nfs3_symlinkargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs3_symlinkargs *args = data;
|
||||
|
||||
encode_sattr3(xdr, args->sattr);
|
||||
encode_nfspath3(xdr, args->pages, args->pathlen);
|
||||
}
|
||||
|
||||
static void nfs3_xdr_enc_symlink3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs3_symlinkargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs3_symlinkargs *args = data;
|
||||
|
||||
encode_diropargs3(xdr, args->fromfh, args->fromname, args->fromlen);
|
||||
encode_symlinkdata3(xdr, args);
|
||||
xdr->buf->flags |= XDRBUF_WRITE;
|
||||
@@ -1160,8 +1181,10 @@ static void encode_mknoddata3(struct xdr_stream *xdr,
|
||||
|
||||
static void nfs3_xdr_enc_mknod3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs3_mknodargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs3_mknodargs *args = data;
|
||||
|
||||
encode_diropargs3(xdr, args->fh, args->name, args->len);
|
||||
encode_mknoddata3(xdr, args);
|
||||
}
|
||||
@@ -1175,8 +1198,10 @@ static void nfs3_xdr_enc_mknod3args(struct rpc_rqst *req,
|
||||
*/
|
||||
static void nfs3_xdr_enc_remove3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs_removeargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs_removeargs *args = data;
|
||||
|
||||
encode_diropargs3(xdr, args->fh, args->name.name, args->name.len);
|
||||
}
|
||||
|
||||
@@ -1190,8 +1215,9 @@ static void nfs3_xdr_enc_remove3args(struct rpc_rqst *req,
|
||||
*/
|
||||
static void nfs3_xdr_enc_rename3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs_renameargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs_renameargs *args = data;
|
||||
const struct qstr *old = args->old_name;
|
||||
const struct qstr *new = args->new_name;
|
||||
|
||||
@@ -1209,8 +1235,10 @@ static void nfs3_xdr_enc_rename3args(struct rpc_rqst *req,
|
||||
*/
|
||||
static void nfs3_xdr_enc_link3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs3_linkargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs3_linkargs *args = data;
|
||||
|
||||
encode_nfs_fh3(xdr, args->fromfh);
|
||||
encode_diropargs3(xdr, args->tofh, args->toname, args->tolen);
|
||||
}
|
||||
@@ -1240,8 +1268,10 @@ static void encode_readdir3args(struct xdr_stream *xdr,
|
||||
|
||||
static void nfs3_xdr_enc_readdir3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs3_readdirargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs3_readdirargs *args = data;
|
||||
|
||||
encode_readdir3args(xdr, args);
|
||||
prepare_reply_buffer(req, args->pages, 0,
|
||||
args->count, NFS3_readdirres_sz);
|
||||
@@ -1280,8 +1310,10 @@ static void encode_readdirplus3args(struct xdr_stream *xdr,
|
||||
|
||||
static void nfs3_xdr_enc_readdirplus3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs3_readdirargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs3_readdirargs *args = data;
|
||||
|
||||
encode_readdirplus3args(xdr, args);
|
||||
prepare_reply_buffer(req, args->pages, 0,
|
||||
args->count, NFS3_readdirres_sz);
|
||||
@@ -1310,8 +1342,10 @@ static void encode_commit3args(struct xdr_stream *xdr,
|
||||
|
||||
static void nfs3_xdr_enc_commit3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs_commitargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs_commitargs *args = data;
|
||||
|
||||
encode_commit3args(xdr, args);
|
||||
}
|
||||
|
||||
@@ -1319,8 +1353,10 @@ static void nfs3_xdr_enc_commit3args(struct rpc_rqst *req,
|
||||
|
||||
static void nfs3_xdr_enc_getacl3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs3_getaclargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs3_getaclargs *args = data;
|
||||
|
||||
encode_nfs_fh3(xdr, args->fh);
|
||||
encode_uint32(xdr, args->mask);
|
||||
if (args->mask & (NFS_ACL | NFS_DFACL))
|
||||
@@ -1331,8 +1367,9 @@ static void nfs3_xdr_enc_getacl3args(struct rpc_rqst *req,
|
||||
|
||||
static void nfs3_xdr_enc_setacl3args(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs3_setaclargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs3_setaclargs *args = data;
|
||||
unsigned int base;
|
||||
int error;
|
||||
|
||||
@@ -2495,7 +2532,7 @@ static int nfs3_stat_to_errno(enum nfs_stat status)
|
||||
#define PROC(proc, argtype, restype, timer) \
|
||||
[NFS3PROC_##proc] = { \
|
||||
.p_proc = NFS3PROC_##proc, \
|
||||
.p_encode = (kxdreproc_t)nfs3_xdr_enc_##argtype##3args, \
|
||||
.p_encode = nfs3_xdr_enc_##argtype##3args, \
|
||||
.p_decode = (kxdrdproc_t)nfs3_xdr_dec_##restype##3res, \
|
||||
.p_arglen = NFS3_##argtype##args_sz, \
|
||||
.p_replen = NFS3_##restype##res_sz, \
|
||||
@@ -2538,7 +2575,7 @@ const struct rpc_version nfs_version3 = {
|
||||
static struct rpc_procinfo nfs3_acl_procedures[] = {
|
||||
[ACLPROC3_GETACL] = {
|
||||
.p_proc = ACLPROC3_GETACL,
|
||||
.p_encode = (kxdreproc_t)nfs3_xdr_enc_getacl3args,
|
||||
.p_encode = nfs3_xdr_enc_getacl3args,
|
||||
.p_decode = (kxdrdproc_t)nfs3_xdr_dec_getacl3res,
|
||||
.p_arglen = ACL3_getaclargs_sz,
|
||||
.p_replen = ACL3_getaclres_sz,
|
||||
@@ -2547,7 +2584,7 @@ static struct rpc_procinfo nfs3_acl_procedures[] = {
|
||||
},
|
||||
[ACLPROC3_SETACL] = {
|
||||
.p_proc = ACLPROC3_SETACL,
|
||||
.p_encode = (kxdreproc_t)nfs3_xdr_enc_setacl3args,
|
||||
.p_encode = nfs3_xdr_enc_setacl3args,
|
||||
.p_decode = (kxdrdproc_t)nfs3_xdr_dec_setacl3res,
|
||||
.p_arglen = ACL3_setaclargs_sz,
|
||||
.p_replen = ACL3_setaclres_sz,
|
||||
|
||||
Reference in New Issue
Block a user