]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - fs/nfsd/nfs4proc.c
nfsd4: remove nfsd4op_rsize
[karo-tx-linux.git] / fs / nfsd / nfs4proc.c
index c453a1998e003d3e900407b266f1a15de5d5d94b..c1e31edf922d32f59852350416d21665ec97594a 100644 (file)
@@ -1510,7 +1510,7 @@ out:
  * NULL call.
  */
 static __be32
-nfsd4_proc_null(struct svc_rqst *rqstp, void *argp, void *resp)
+nfsd4_proc_null(struct svc_rqst *rqstp)
 {
        return nfs_ok;
 }
@@ -1523,9 +1523,6 @@ static inline void nfsd4_increment_op_stats(u32 opnum)
 
 typedef __be32(*nfsd4op_func)(struct svc_rqst *, struct nfsd4_compound_state *,
                              void *);
-typedef u32(*nfsd4op_rsize)(struct svc_rqst *, struct nfsd4_op *op);
-typedef void(*stateid_setter)(struct nfsd4_compound_state *, void *);
-typedef void(*stateid_getter)(struct nfsd4_compound_state *, void *);
 
 enum nfsd4_op_flags {
        ALLOWED_WITHOUT_FH = 1 << 0,    /* No current filehandle required */
@@ -1562,9 +1559,11 @@ struct nfsd4_operation {
        u32 op_flags;
        char *op_name;
        /* Try to get response size before operation */
-       nfsd4op_rsize op_rsize_bop;
-       stateid_getter op_get_currentstateid;
-       stateid_setter op_set_currentstateid;
+       u32 (*op_rsize_bop)(struct svc_rqst *, struct nfsd4_op *);
+       void (*op_get_currentstateid)(struct nfsd4_compound_state *,
+                       union nfsd4_op_u *);
+       void (*op_set_currentstateid)(struct nfsd4_compound_state *,
+                       union nfsd4_op_u *);
 };
 
 static struct nfsd4_operation nfsd4_ops[];
@@ -1673,10 +1672,10 @@ static void svcxdr_init_encode(struct svc_rqst *rqstp,
  * COMPOUND call.
  */
 static __be32
-nfsd4_proc_compound(struct svc_rqst *rqstp,
-                   struct nfsd4_compoundargs *args,
-                   struct nfsd4_compoundres *resp)
+nfsd4_proc_compound(struct svc_rqst *rqstp)
 {
+       struct nfsd4_compoundargs *args = rqstp->rq_argp;
+       struct nfsd4_compoundres *resp = rqstp->rq_resp;
        struct nfsd4_op *op;
        struct nfsd4_operation *opdesc;
        struct nfsd4_compound_state *cstate = &resp->cstate;
@@ -1769,6 +1768,12 @@ nfsd4_proc_compound(struct svc_rqst *rqstp,
                        opdesc->op_get_currentstateid(cstate, &op->u);
                op->status = opdesc->op_func(rqstp, cstate, &op->u);
 
+               /* Only from SEQUENCE */
+               if (cstate->status == nfserr_replay_cache) {
+                       dprintk("%s NFS4.1 replay from cache\n", __func__);
+                       status = op->status;
+                       goto out;
+               }
                if (!op->status) {
                        if (opdesc->op_set_currentstateid)
                                opdesc->op_set_currentstateid(cstate, &op->u);
@@ -1779,14 +1784,7 @@ nfsd4_proc_compound(struct svc_rqst *rqstp,
                        if (need_wrongsec_check(rqstp))
                                op->status = check_nfsd_access(current_fh->fh_export, rqstp);
                }
-
 encode_op:
-               /* Only from SEQUENCE */
-               if (cstate->status == nfserr_replay_cache) {
-                       dprintk("%s NFS4.1 replay from cache\n", __func__);
-                       status = op->status;
-                       goto out;
-               }
                if (op->status == nfserr_replay_me) {
                        op->replay = &cstate->replay_owner->so_replay;
                        nfsd4_encode_replay(&resp->xdr, op);
@@ -2096,34 +2094,34 @@ static struct nfsd4_operation nfsd4_ops[] = {
        [OP_ACCESS] = {
                .op_func = (nfsd4op_func)nfsd4_access,
                .op_name = "OP_ACCESS",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_access_rsize,
+               .op_rsize_bop = nfsd4_access_rsize,
        },
        [OP_CLOSE] = {
                .op_func = (nfsd4op_func)nfsd4_close,
                .op_flags = OP_MODIFIES_SOMETHING,
                .op_name = "OP_CLOSE",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_status_stateid_rsize,
-               .op_get_currentstateid = (stateid_getter)nfsd4_get_closestateid,
-               .op_set_currentstateid = (stateid_setter)nfsd4_set_closestateid,
+               .op_rsize_bop = nfsd4_status_stateid_rsize,
+               .op_get_currentstateid = nfsd4_get_closestateid,
+               .op_set_currentstateid = nfsd4_set_closestateid,
        },
        [OP_COMMIT] = {
                .op_func = (nfsd4op_func)nfsd4_commit,
                .op_flags = OP_MODIFIES_SOMETHING,
                .op_name = "OP_COMMIT",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_commit_rsize,
+               .op_rsize_bop = nfsd4_commit_rsize,
        },
        [OP_CREATE] = {
                .op_func = (nfsd4op_func)nfsd4_create,
                .op_flags = OP_MODIFIES_SOMETHING | OP_CACHEME | OP_CLEAR_STATEID,
                .op_name = "OP_CREATE",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_create_rsize,
+               .op_rsize_bop = nfsd4_create_rsize,
        },
        [OP_DELEGRETURN] = {
                .op_func = (nfsd4op_func)nfsd4_delegreturn,
                .op_flags = OP_MODIFIES_SOMETHING,
                .op_name = "OP_DELEGRETURN",
                .op_rsize_bop = nfsd4_only_status_rsize,
-               .op_get_currentstateid = (stateid_getter)nfsd4_get_delegreturnstateid,
+               .op_get_currentstateid = nfsd4_get_delegreturnstateid,
        },
        [OP_GETATTR] = {
                .op_func = (nfsd4op_func)nfsd4_getattr,
@@ -2134,127 +2132,127 @@ static struct nfsd4_operation nfsd4_ops[] = {
        [OP_GETFH] = {
                .op_func = (nfsd4op_func)nfsd4_getfh,
                .op_name = "OP_GETFH",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_getfh_rsize,
+               .op_rsize_bop = nfsd4_getfh_rsize,
        },
        [OP_LINK] = {
                .op_func = (nfsd4op_func)nfsd4_link,
                .op_flags = ALLOWED_ON_ABSENT_FS | OP_MODIFIES_SOMETHING
                                | OP_CACHEME,
                .op_name = "OP_LINK",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_link_rsize,
+               .op_rsize_bop = nfsd4_link_rsize,
        },
        [OP_LOCK] = {
                .op_func = (nfsd4op_func)nfsd4_lock,
                .op_flags = OP_MODIFIES_SOMETHING,
                .op_name = "OP_LOCK",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_lock_rsize,
-               .op_set_currentstateid = (stateid_setter)nfsd4_set_lockstateid,
+               .op_rsize_bop = nfsd4_lock_rsize,
+               .op_set_currentstateid = nfsd4_set_lockstateid,
        },
        [OP_LOCKT] = {
                .op_func = (nfsd4op_func)nfsd4_lockt,
                .op_name = "OP_LOCKT",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_lock_rsize,
+               .op_rsize_bop = nfsd4_lock_rsize,
        },
        [OP_LOCKU] = {
                .op_func = (nfsd4op_func)nfsd4_locku,
                .op_flags = OP_MODIFIES_SOMETHING,
                .op_name = "OP_LOCKU",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_status_stateid_rsize,
-               .op_get_currentstateid = (stateid_getter)nfsd4_get_lockustateid,
+               .op_rsize_bop = nfsd4_status_stateid_rsize,
+               .op_get_currentstateid = nfsd4_get_lockustateid,
        },
        [OP_LOOKUP] = {
                .op_func = (nfsd4op_func)nfsd4_lookup,
                .op_flags = OP_HANDLES_WRONGSEC | OP_CLEAR_STATEID,
                .op_name = "OP_LOOKUP",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_LOOKUPP] = {
                .op_func = (nfsd4op_func)nfsd4_lookupp,
                .op_flags = OP_HANDLES_WRONGSEC | OP_CLEAR_STATEID,
                .op_name = "OP_LOOKUPP",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_NVERIFY] = {
                .op_func = (nfsd4op_func)nfsd4_nverify,
                .op_name = "OP_NVERIFY",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_OPEN] = {
                .op_func = (nfsd4op_func)nfsd4_open,
                .op_flags = OP_HANDLES_WRONGSEC | OP_MODIFIES_SOMETHING,
                .op_name = "OP_OPEN",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_open_rsize,
-               .op_set_currentstateid = (stateid_setter)nfsd4_set_openstateid,
+               .op_rsize_bop = nfsd4_open_rsize,
+               .op_set_currentstateid = nfsd4_set_openstateid,
        },
        [OP_OPEN_CONFIRM] = {
                .op_func = (nfsd4op_func)nfsd4_open_confirm,
                .op_flags = OP_MODIFIES_SOMETHING,
                .op_name = "OP_OPEN_CONFIRM",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_status_stateid_rsize,
+               .op_rsize_bop = nfsd4_status_stateid_rsize,
        },
        [OP_OPEN_DOWNGRADE] = {
                .op_func = (nfsd4op_func)nfsd4_open_downgrade,
                .op_flags = OP_MODIFIES_SOMETHING,
                .op_name = "OP_OPEN_DOWNGRADE",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_status_stateid_rsize,
-               .op_get_currentstateid = (stateid_getter)nfsd4_get_opendowngradestateid,
-               .op_set_currentstateid = (stateid_setter)nfsd4_set_opendowngradestateid,
+               .op_rsize_bop = nfsd4_status_stateid_rsize,
+               .op_get_currentstateid = nfsd4_get_opendowngradestateid,
+               .op_set_currentstateid = nfsd4_set_opendowngradestateid,
        },
        [OP_PUTFH] = {
                .op_func = (nfsd4op_func)nfsd4_putfh,
                .op_flags = ALLOWED_WITHOUT_FH | ALLOWED_ON_ABSENT_FS
                                | OP_IS_PUTFH_LIKE | OP_CLEAR_STATEID,
                .op_name = "OP_PUTFH",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_PUTPUBFH] = {
                .op_func = (nfsd4op_func)nfsd4_putrootfh,
                .op_flags = ALLOWED_WITHOUT_FH | ALLOWED_ON_ABSENT_FS
                                | OP_IS_PUTFH_LIKE | OP_CLEAR_STATEID,
                .op_name = "OP_PUTPUBFH",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_PUTROOTFH] = {
                .op_func = (nfsd4op_func)nfsd4_putrootfh,
                .op_flags = ALLOWED_WITHOUT_FH | ALLOWED_ON_ABSENT_FS
                                | OP_IS_PUTFH_LIKE | OP_CLEAR_STATEID,
                .op_name = "OP_PUTROOTFH",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_READ] = {
                .op_func = (nfsd4op_func)nfsd4_read,
                .op_name = "OP_READ",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_read_rsize,
-               .op_get_currentstateid = (stateid_getter)nfsd4_get_readstateid,
+               .op_rsize_bop = nfsd4_read_rsize,
+               .op_get_currentstateid = nfsd4_get_readstateid,
        },
        [OP_READDIR] = {
                .op_func = (nfsd4op_func)nfsd4_readdir,
                .op_name = "OP_READDIR",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_readdir_rsize,
+               .op_rsize_bop = nfsd4_readdir_rsize,
        },
        [OP_READLINK] = {
                .op_func = (nfsd4op_func)nfsd4_readlink,
                .op_name = "OP_READLINK",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_readlink_rsize,
+               .op_rsize_bop = nfsd4_readlink_rsize,
        },
        [OP_REMOVE] = {
                .op_func = (nfsd4op_func)nfsd4_remove,
                .op_flags = OP_MODIFIES_SOMETHING | OP_CACHEME,
                .op_name = "OP_REMOVE",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_remove_rsize,
+               .op_rsize_bop = nfsd4_remove_rsize,
        },
        [OP_RENAME] = {
                .op_func = (nfsd4op_func)nfsd4_rename,
                .op_flags = OP_MODIFIES_SOMETHING | OP_CACHEME,
                .op_name = "OP_RENAME",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_rename_rsize,
+               .op_rsize_bop = nfsd4_rename_rsize,
        },
        [OP_RENEW] = {
                .op_func = (nfsd4op_func)nfsd4_renew,
                .op_flags = ALLOWED_WITHOUT_FH | ALLOWED_ON_ABSENT_FS
                                | OP_MODIFIES_SOMETHING,
                .op_name = "OP_RENEW",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
 
        },
        [OP_RESTOREFH] = {
@@ -2262,59 +2260,59 @@ static struct nfsd4_operation nfsd4_ops[] = {
                .op_flags = ALLOWED_WITHOUT_FH | ALLOWED_ON_ABSENT_FS
                                | OP_IS_PUTFH_LIKE | OP_MODIFIES_SOMETHING,
                .op_name = "OP_RESTOREFH",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_SAVEFH] = {
                .op_func = (nfsd4op_func)nfsd4_savefh,
                .op_flags = OP_HANDLES_WRONGSEC | OP_MODIFIES_SOMETHING,
                .op_name = "OP_SAVEFH",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_SECINFO] = {
                .op_func = (nfsd4op_func)nfsd4_secinfo,
                .op_flags = OP_HANDLES_WRONGSEC,
                .op_name = "OP_SECINFO",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_secinfo_rsize,
+               .op_rsize_bop = nfsd4_secinfo_rsize,
        },
        [OP_SETATTR] = {
                .op_func = (nfsd4op_func)nfsd4_setattr,
                .op_name = "OP_SETATTR",
                .op_flags = OP_MODIFIES_SOMETHING | OP_CACHEME,
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_setattr_rsize,
-               .op_get_currentstateid = (stateid_getter)nfsd4_get_setattrstateid,
+               .op_rsize_bop = nfsd4_setattr_rsize,
+               .op_get_currentstateid = nfsd4_get_setattrstateid,
        },
        [OP_SETCLIENTID] = {
                .op_func = (nfsd4op_func)nfsd4_setclientid,
                .op_flags = ALLOWED_WITHOUT_FH | ALLOWED_ON_ABSENT_FS
                                | OP_MODIFIES_SOMETHING | OP_CACHEME,
                .op_name = "OP_SETCLIENTID",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_setclientid_rsize,
+               .op_rsize_bop = nfsd4_setclientid_rsize,
        },
        [OP_SETCLIENTID_CONFIRM] = {
                .op_func = (nfsd4op_func)nfsd4_setclientid_confirm,
                .op_flags = ALLOWED_WITHOUT_FH | ALLOWED_ON_ABSENT_FS
                                | OP_MODIFIES_SOMETHING | OP_CACHEME,
                .op_name = "OP_SETCLIENTID_CONFIRM",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_VERIFY] = {
                .op_func = (nfsd4op_func)nfsd4_verify,
                .op_name = "OP_VERIFY",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_WRITE] = {
                .op_func = (nfsd4op_func)nfsd4_write,
                .op_flags = OP_MODIFIES_SOMETHING | OP_CACHEME,
                .op_name = "OP_WRITE",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_write_rsize,
-               .op_get_currentstateid = (stateid_getter)nfsd4_get_writestateid,
+               .op_rsize_bop = nfsd4_write_rsize,
+               .op_get_currentstateid = nfsd4_get_writestateid,
        },
        [OP_RELEASE_LOCKOWNER] = {
                .op_func = (nfsd4op_func)nfsd4_release_lockowner,
                .op_flags = ALLOWED_WITHOUT_FH | ALLOWED_ON_ABSENT_FS
                                | OP_MODIFIES_SOMETHING,
                .op_name = "OP_RELEASE_LOCKOWNER",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
 
        /* NFSv4.1 operations */
@@ -2323,97 +2321,97 @@ static struct nfsd4_operation nfsd4_ops[] = {
                .op_flags = ALLOWED_WITHOUT_FH | ALLOWED_AS_FIRST_OP
                                | OP_MODIFIES_SOMETHING,
                .op_name = "OP_EXCHANGE_ID",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_exchange_id_rsize,
+               .op_rsize_bop = nfsd4_exchange_id_rsize,
        },
        [OP_BACKCHANNEL_CTL] = {
                .op_func = (nfsd4op_func)nfsd4_backchannel_ctl,
                .op_flags = ALLOWED_WITHOUT_FH | OP_MODIFIES_SOMETHING,
                .op_name = "OP_BACKCHANNEL_CTL",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_BIND_CONN_TO_SESSION] = {
                .op_func = (nfsd4op_func)nfsd4_bind_conn_to_session,
                .op_flags = ALLOWED_WITHOUT_FH | ALLOWED_AS_FIRST_OP
                                | OP_MODIFIES_SOMETHING,
                .op_name = "OP_BIND_CONN_TO_SESSION",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_bind_conn_to_session_rsize,
+               .op_rsize_bop = nfsd4_bind_conn_to_session_rsize,
        },
        [OP_CREATE_SESSION] = {
                .op_func = (nfsd4op_func)nfsd4_create_session,
                .op_flags = ALLOWED_WITHOUT_FH | ALLOWED_AS_FIRST_OP
                                | OP_MODIFIES_SOMETHING,
                .op_name = "OP_CREATE_SESSION",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_create_session_rsize,
+               .op_rsize_bop = nfsd4_create_session_rsize,
        },
        [OP_DESTROY_SESSION] = {
                .op_func = (nfsd4op_func)nfsd4_destroy_session,
                .op_flags = ALLOWED_WITHOUT_FH | ALLOWED_AS_FIRST_OP
                                | OP_MODIFIES_SOMETHING,
                .op_name = "OP_DESTROY_SESSION",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_SEQUENCE] = {
                .op_func = (nfsd4op_func)nfsd4_sequence,
                .op_flags = ALLOWED_WITHOUT_FH | ALLOWED_AS_FIRST_OP,
                .op_name = "OP_SEQUENCE",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_sequence_rsize,
+               .op_rsize_bop = nfsd4_sequence_rsize,
        },
        [OP_DESTROY_CLIENTID] = {
                .op_func = (nfsd4op_func)nfsd4_destroy_clientid,
                .op_flags = ALLOWED_WITHOUT_FH | ALLOWED_AS_FIRST_OP
                                | OP_MODIFIES_SOMETHING,
                .op_name = "OP_DESTROY_CLIENTID",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_RECLAIM_COMPLETE] = {
                .op_func = (nfsd4op_func)nfsd4_reclaim_complete,
                .op_flags = ALLOWED_WITHOUT_FH | OP_MODIFIES_SOMETHING,
                .op_name = "OP_RECLAIM_COMPLETE",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_SECINFO_NO_NAME] = {
                .op_func = (nfsd4op_func)nfsd4_secinfo_no_name,
                .op_flags = OP_HANDLES_WRONGSEC,
                .op_name = "OP_SECINFO_NO_NAME",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_secinfo_rsize,
+               .op_rsize_bop = nfsd4_secinfo_rsize,
        },
        [OP_TEST_STATEID] = {
                .op_func = (nfsd4op_func)nfsd4_test_stateid,
                .op_flags = ALLOWED_WITHOUT_FH,
                .op_name = "OP_TEST_STATEID",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_test_stateid_rsize,
+               .op_rsize_bop = nfsd4_test_stateid_rsize,
        },
        [OP_FREE_STATEID] = {
                .op_func = (nfsd4op_func)nfsd4_free_stateid,
                .op_flags = ALLOWED_WITHOUT_FH | OP_MODIFIES_SOMETHING,
                .op_name = "OP_FREE_STATEID",
-               .op_get_currentstateid = (stateid_getter)nfsd4_get_freestateid,
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_get_currentstateid = nfsd4_get_freestateid,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
 #ifdef CONFIG_NFSD_PNFS
        [OP_GETDEVICEINFO] = {
                .op_func = (nfsd4op_func)nfsd4_getdeviceinfo,
                .op_flags = ALLOWED_WITHOUT_FH,
                .op_name = "OP_GETDEVICEINFO",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_getdeviceinfo_rsize,
+               .op_rsize_bop = nfsd4_getdeviceinfo_rsize,
        },
        [OP_LAYOUTGET] = {
                .op_func = (nfsd4op_func)nfsd4_layoutget,
                .op_flags = OP_MODIFIES_SOMETHING,
                .op_name = "OP_LAYOUTGET",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_layoutget_rsize,
+               .op_rsize_bop = nfsd4_layoutget_rsize,
        },
        [OP_LAYOUTCOMMIT] = {
                .op_func = (nfsd4op_func)nfsd4_layoutcommit,
                .op_flags = OP_MODIFIES_SOMETHING,
                .op_name = "OP_LAYOUTCOMMIT",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_layoutcommit_rsize,
+               .op_rsize_bop = nfsd4_layoutcommit_rsize,
        },
        [OP_LAYOUTRETURN] = {
                .op_func = (nfsd4op_func)nfsd4_layoutreturn,
                .op_flags = OP_MODIFIES_SOMETHING,
                .op_name = "OP_LAYOUTRETURN",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_layoutreturn_rsize,
+               .op_rsize_bop = nfsd4_layoutreturn_rsize,
        },
 #endif /* CONFIG_NFSD_PNFS */
 
@@ -2422,30 +2420,30 @@ static struct nfsd4_operation nfsd4_ops[] = {
                .op_func = (nfsd4op_func)nfsd4_allocate,
                .op_flags = OP_MODIFIES_SOMETHING | OP_CACHEME,
                .op_name = "OP_ALLOCATE",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_DEALLOCATE] = {
                .op_func = (nfsd4op_func)nfsd4_deallocate,
                .op_flags = OP_MODIFIES_SOMETHING | OP_CACHEME,
                .op_name = "OP_DEALLOCATE",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_CLONE] = {
                .op_func = (nfsd4op_func)nfsd4_clone,
                .op_flags = OP_MODIFIES_SOMETHING | OP_CACHEME,
                .op_name = "OP_CLONE",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_only_status_rsize,
+               .op_rsize_bop = nfsd4_only_status_rsize,
        },
        [OP_COPY] = {
                .op_func = (nfsd4op_func)nfsd4_copy,
                .op_flags = OP_MODIFIES_SOMETHING | OP_CACHEME,
                .op_name = "OP_COPY",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_copy_rsize,
+               .op_rsize_bop = nfsd4_copy_rsize,
        },
        [OP_SEEK] = {
                .op_func = (nfsd4op_func)nfsd4_seek,
                .op_name = "OP_SEEK",
-               .op_rsize_bop = (nfsd4op_rsize)nfsd4_seek_rsize,
+               .op_rsize_bop = nfsd4_seek_rsize,
        },
 };
 
@@ -2518,17 +2516,17 @@ struct nfsd4_voidargs { int dummy; };
 
 static struct svc_procedure            nfsd_procedures4[2] = {
        [NFSPROC4_NULL] = {
-               .pc_func = (svc_procfunc) nfsd4_proc_null,
-               .pc_encode = (kxdrproc_t) nfs4svc_encode_voidres,
+               .pc_func = nfsd4_proc_null,
+               .pc_encode = nfs4svc_encode_voidres,
                .pc_argsize = sizeof(struct nfsd4_voidargs),
                .pc_ressize = sizeof(struct nfsd4_voidres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = 1,
        },
        [NFSPROC4_COMPOUND] = {
-               .pc_func = (svc_procfunc) nfsd4_proc_compound,
-               .pc_decode = (kxdrproc_t) nfs4svc_decode_compoundargs,
-               .pc_encode = (kxdrproc_t) nfs4svc_encode_compoundres,
+               .pc_func = nfsd4_proc_compound,
+               .pc_decode = nfs4svc_decode_compoundargs,
+               .pc_encode = nfs4svc_encode_compoundres,
                .pc_argsize = sizeof(struct nfsd4_compoundargs),
                .pc_ressize = sizeof(struct nfsd4_compoundres),
                .pc_release = nfsd4_release_compoundargs,