sunrpc: properly type pc_release callbacks
[linux-2.6-block.git] / include / linux / sunrpc / svc.h
index e770abeed32d7117c4f2d363f9d7370a60d2c55f..1381e13436406bd4df9caadb74644bed26a1eb84 100644 (file)
@@ -336,8 +336,7 @@ xdr_argsize_check(struct svc_rqst *rqstp, __be32 *p)
 {
        char *cp = (char *)p;
        struct kvec *vec = &rqstp->rq_arg.head[0];
-       return cp >= (char*)vec->iov_base
-               && cp <= (char*)vec->iov_base + vec->iov_len;
+       return cp == (char *)vec->iov_base + vec->iov_len;
 }
 
 static inline int
@@ -419,12 +418,13 @@ struct svc_version {
 /*
  * RPC procedure info
  */
-typedef __be32 (*svc_procfunc)(struct svc_rqst *, void *argp, void *resp);
 struct svc_procedure {
-       svc_procfunc            pc_func;        /* process the request */
+       /* process the request: */
+       __be32                  (*pc_func)(struct svc_rqst *);
        kxdrproc_t              pc_decode;      /* XDR decode args */
        kxdrproc_t              pc_encode;      /* XDR encode result */
-       kxdrproc_t              pc_release;     /* XDR free result */
+       /* XDR free result: */
+       void                    (*pc_release)(struct svc_rqst *);
        unsigned int            pc_argsize;     /* argument struct size */
        unsigned int            pc_ressize;     /* result struct size */
        unsigned int            pc_count;       /* call count */
@@ -474,6 +474,7 @@ void                   svc_pool_map_put(void);
 struct svc_serv *  svc_create_pooled(struct svc_program *, unsigned int,
                        struct svc_serv_ops *);
 int               svc_set_num_threads(struct svc_serv *, struct svc_pool *, int);
+int               svc_set_num_threads_sync(struct svc_serv *, struct svc_pool *, int);
 int               svc_pool_stats_open(struct svc_serv *serv, struct file *file);
 void              svc_destroy(struct svc_serv *);
 void              svc_shutdown_net(struct svc_serv *, struct net *);