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
@@ -568,8 +568,10 @@ out_default:
|
||||
|
||||
static void nfs2_xdr_enc_fhandle(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs_fh *fh)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs_fh *fh = data;
|
||||
|
||||
encode_fhandle(xdr, fh);
|
||||
}
|
||||
|
||||
@@ -583,23 +585,29 @@ static void nfs2_xdr_enc_fhandle(struct rpc_rqst *req,
|
||||
*/
|
||||
static void nfs2_xdr_enc_sattrargs(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs_sattrargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs_sattrargs *args = data;
|
||||
|
||||
encode_fhandle(xdr, args->fh);
|
||||
encode_sattr(xdr, args->sattr);
|
||||
}
|
||||
|
||||
static void nfs2_xdr_enc_diropargs(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs_diropargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs_diropargs *args = data;
|
||||
|
||||
encode_diropargs(xdr, args->fh, args->name, args->len);
|
||||
}
|
||||
|
||||
static void nfs2_xdr_enc_readlinkargs(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs_readlinkargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs_readlinkargs *args = data;
|
||||
|
||||
encode_fhandle(xdr, args->fh);
|
||||
prepare_reply_buffer(req, args->pages, args->pgbase,
|
||||
args->pglen, NFS_readlinkres_sz);
|
||||
@@ -632,8 +640,10 @@ static void encode_readargs(struct xdr_stream *xdr,
|
||||
|
||||
static void nfs2_xdr_enc_readargs(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_readargs(xdr, args);
|
||||
prepare_reply_buffer(req, args->pages, args->pgbase,
|
||||
args->count, NFS_readres_sz);
|
||||
@@ -672,8 +682,10 @@ static void encode_writeargs(struct xdr_stream *xdr,
|
||||
|
||||
static void nfs2_xdr_enc_writeargs(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_writeargs(xdr, args);
|
||||
xdr->buf->flags |= XDRBUF_WRITE;
|
||||
}
|
||||
@@ -688,16 +700,20 @@ static void nfs2_xdr_enc_writeargs(struct rpc_rqst *req,
|
||||
*/
|
||||
static void nfs2_xdr_enc_createargs(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs_createargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs_createargs *args = data;
|
||||
|
||||
encode_diropargs(xdr, args->fh, args->name, args->len);
|
||||
encode_sattr(xdr, args->sattr);
|
||||
}
|
||||
|
||||
static void nfs2_xdr_enc_removeargs(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs_removeargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs_removeargs *args = data;
|
||||
|
||||
encode_diropargs(xdr, args->fh, args->name.name, args->name.len);
|
||||
}
|
||||
|
||||
@@ -711,8 +727,9 @@ static void nfs2_xdr_enc_removeargs(struct rpc_rqst *req,
|
||||
*/
|
||||
static void nfs2_xdr_enc_renameargs(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;
|
||||
|
||||
@@ -730,8 +747,10 @@ static void nfs2_xdr_enc_renameargs(struct rpc_rqst *req,
|
||||
*/
|
||||
static void nfs2_xdr_enc_linkargs(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs_linkargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs_linkargs *args = data;
|
||||
|
||||
encode_fhandle(xdr, args->fromfh);
|
||||
encode_diropargs(xdr, args->tofh, args->toname, args->tolen);
|
||||
}
|
||||
@@ -747,8 +766,10 @@ static void nfs2_xdr_enc_linkargs(struct rpc_rqst *req,
|
||||
*/
|
||||
static void nfs2_xdr_enc_symlinkargs(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs_symlinkargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs_symlinkargs *args = data;
|
||||
|
||||
encode_diropargs(xdr, args->fromfh, args->fromname, args->fromlen);
|
||||
encode_path(xdr, args->pages, args->pathlen);
|
||||
encode_sattr(xdr, args->sattr);
|
||||
@@ -777,8 +798,10 @@ static void encode_readdirargs(struct xdr_stream *xdr,
|
||||
|
||||
static void nfs2_xdr_enc_readdirargs(struct rpc_rqst *req,
|
||||
struct xdr_stream *xdr,
|
||||
const struct nfs_readdirargs *args)
|
||||
const void *data)
|
||||
{
|
||||
const struct nfs_readdirargs *args = data;
|
||||
|
||||
encode_readdirargs(xdr, args);
|
||||
prepare_reply_buffer(req, args->pages, 0,
|
||||
args->count, NFS_readdirres_sz);
|
||||
@@ -1118,7 +1141,7 @@ static int nfs_stat_to_errno(enum nfs_stat status)
|
||||
#define PROC(proc, argtype, restype, timer) \
|
||||
[NFSPROC_##proc] = { \
|
||||
.p_proc = NFSPROC_##proc, \
|
||||
.p_encode = (kxdreproc_t)nfs2_xdr_enc_##argtype, \
|
||||
.p_encode = nfs2_xdr_enc_##argtype, \
|
||||
.p_decode = (kxdrdproc_t)nfs2_xdr_dec_##restype, \
|
||||
.p_arglen = NFS_##argtype##_sz, \
|
||||
.p_replen = NFS_##restype##_sz, \
|
||||
|
Reference in New Issue
Block a user