Re: [PATCH 08/22] SQUASHME: allow cb_sequence changes to compile without v4.1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2010-11-12 10:48, Fred Isaman wrote:
> Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxx>
> ---
>  fs/nfs/callback.h      |   26 ++++++++++++++++++++++++++
>  fs/nfs/callback_proc.c |    6 ------
>  fs/nfs/callback_xdr.c  |    3 +--
>  fs/nfs/internal.h      |    4 ++++
>  4 files changed, 31 insertions(+), 8 deletions(-)
> 
> diff --git a/fs/nfs/callback.h b/fs/nfs/callback.h
> index 89fee05..0b1f3c4 100644
> --- a/fs/nfs/callback.h
> +++ b/fs/nfs/callback.h
> @@ -8,6 +8,8 @@
>  #ifndef __LINUX_FS_NFS_CALLBACK_H
>  #define __LINUX_FS_NFS_CALLBACK_H
>  
> +#include "internal.h"
> +
>  #define NFS4_CALLBACK 0x40000000
>  #define NFS4_CALLBACK_XDRSIZE 2048
>  #define NFS4_CALLBACK_BUFSIZE (1024 + NFS4_CALLBACK_XDRSIZE)
> @@ -158,6 +160,30 @@ extern unsigned nfs4_callback_layoutrecall(
>  	struct cb_layoutrecallargs *args,
>  	void *dummy, struct cb_process_state *cps);
>  
> +static inline void put_session_client(struct nfs4_session *session)
> +{
> +	if (session)  /* matched by cb_sequence find_client_with_session */

nit: comment out of scope.  belongs to the call site, not here...

> +		nfs_put_client(session->clp);
> +}
> +
> +static inline struct nfs_client *
> +find_client_from_cps(struct cb_process_state *cps, struct sockaddr *addr)
> +{
> +	return cps->session ? cps->session->clp : nfs_find_client(addr, 4);
> +}
> +
> +#else

nit: /* CONFIG_NFS_V4_1 */ comment missing

(I'll fix both in my tree)

Benny

> +
> +static inline struct nfs_client *
> +find_client_from_cps(struct cb_process_state *cps, struct sockaddr *addr)
> +{
> +	return nfs_find_client(addr, 4);
> +}
> +
> +static inline void put_session_client(struct nfs4_session *session)
> +{
> +}
> +
>  #endif /* CONFIG_NFS_V4_1 */
>  
>  extern __be32 nfs4_callback_getattr(struct cb_getattrargs *args,
> diff --git a/fs/nfs/callback_proc.c b/fs/nfs/callback_proc.c
> index 2e62155..d02997a 100644
> --- a/fs/nfs/callback_proc.c
> +++ b/fs/nfs/callback_proc.c
> @@ -21,12 +21,6 @@
>  #define NFSDBG_FACILITY NFSDBG_CALLBACK
>  #endif
>  
> -static struct nfs_client *
> -find_client_from_cps(struct cb_process_state *cps, struct sockaddr *addr)
> -{
> -	return cps->session ? cps->session->clp : nfs_find_client(addr, 4);
> -}
> -
>  __be32 nfs4_callback_getattr(struct cb_getattrargs *args,
>  			     struct cb_getattrres *res,
>  			     struct cb_process_state *cps)
> diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
> index 1650ab0..01688ce 100644
> --- a/fs/nfs/callback_xdr.c
> +++ b/fs/nfs/callback_xdr.c
> @@ -770,8 +770,7 @@ static __be32 nfs4_callback_compound(struct svc_rqst *rqstp, void *argp, void *r
>  
>  	*hdr_res.status = status;
>  	*hdr_res.nops = htonl(nops);
> -	if (cps.session) /* matched by cb_sequence find_client_with_session */
> -		nfs_put_client(cps.session->clp);
> +	put_session_client(cps.session);
>  	dprintk("%s: done, status = %u\n", __func__, ntohl(status));
>  	return rpc_success;
>  }
> diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h
> index 755e555..6f14089 100644
> --- a/fs/nfs/internal.h
> +++ b/fs/nfs/internal.h
> @@ -2,6 +2,8 @@
>   * NFS internal definitions
>   */
>  
> +#ifndef __LINUX_FS_NFS_INTERNAL_H
> +#define __LINUX_FS_NFS_INTERNAL_H
>  #include "nfs4_fs.h"
>  #include <linux/mount.h>
>  #include <linux/security.h>
> @@ -415,3 +417,5 @@ static inline int nfs_restart_rpc(struct rpc_task *task, const struct nfs_client
>  		return rpc_restart_call_prepare(task);
>  	return rpc_restart_call(task);
>  }
> +
> +#endif /* __LINUX_FS_NFS_INTERNAL_H */
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux