NFS: Enabling v4.2 should not recompile nfsd and lockd
When CONFIG_NFS_V4_2 is toggled nfsd and lockd will be recompiled, instead of only the nfs client. This patch moves a small amount of code into the client directory to avoid unnecessary recompiles. Signed-off-by: Anna Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
		
					parent
					
						
							
								8c2fabc654
							
						
					
				
			
			
				commit
				
					
						694e096fd7
					
				
			
		
					 6 changed files with 26 additions and 28 deletions
				
			
		| 
						 | 
				
			
			@ -36,6 +36,7 @@
 | 
			
		|||
#include <linux/nfs_fs.h>
 | 
			
		||||
#include <linux/sunrpc/rpc_pipe_fs.h>
 | 
			
		||||
 | 
			
		||||
#include "../nfs4_fs.h"
 | 
			
		||||
#include "../pnfs.h"
 | 
			
		||||
#include "../netns.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,7 +46,9 @@ ssize_t nfs_dns_resolve_name(struct net *net, char *name, size_t namelen,
 | 
			
		|||
#include <linux/sunrpc/cache.h>
 | 
			
		||||
#include <linux/sunrpc/svcauth.h>
 | 
			
		||||
#include <linux/sunrpc/rpc_pipe_fs.h>
 | 
			
		||||
#include <linux/nfs_fs.h>
 | 
			
		||||
 | 
			
		||||
#include "nfs4_fs.h"
 | 
			
		||||
#include "dns_resolve.h"
 | 
			
		||||
#include "cache_lib.h"
 | 
			
		||||
#include "netns.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -269,6 +269,21 @@ extern const u32 nfs41_maxgetdevinfo_overhead;
 | 
			
		|||
extern struct rpc_procinfo nfs4_procedures[];
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_NFS_V4_SECURITY_LABEL
 | 
			
		||||
extern struct nfs4_label *nfs4_label_alloc(struct nfs_server *server, gfp_t flags);
 | 
			
		||||
static inline void nfs4_label_free(struct nfs4_label *label)
 | 
			
		||||
{
 | 
			
		||||
	if (label) {
 | 
			
		||||
		kfree(label->label);
 | 
			
		||||
		kfree(label);
 | 
			
		||||
	}
 | 
			
		||||
	return;
 | 
			
		||||
}
 | 
			
		||||
#else
 | 
			
		||||
static inline struct nfs4_label *nfs4_label_alloc(struct nfs_server *server, gfp_t flags) { return NULL; }
 | 
			
		||||
static inline void nfs4_label_free(void *label) {}
 | 
			
		||||
#endif /* CONFIG_NFS_V4_SECURITY_LABEL */
 | 
			
		||||
 | 
			
		||||
/* proc.c */
 | 
			
		||||
void nfs_close_context(struct nfs_open_context *ctx, int is_sync);
 | 
			
		||||
extern struct nfs_client *nfs_init_client(struct nfs_client *clp,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,6 +9,14 @@
 | 
			
		|||
#ifndef __LINUX_FS_NFS_NFS4_FS_H
 | 
			
		||||
#define __LINUX_FS_NFS_NFS4_FS_H
 | 
			
		||||
 | 
			
		||||
#if defined(CONFIG_NFS_V4_2)
 | 
			
		||||
#define NFS4_MAX_MINOR_VERSION 2
 | 
			
		||||
#elif defined(CONFIG_NFS_V4_1)
 | 
			
		||||
#define NFS4_MAX_MINOR_VERSION 1
 | 
			
		||||
#else
 | 
			
		||||
#define NFS4_MAX_MINOR_VERSION 0
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if IS_ENABLED(CONFIG_NFS_V4)
 | 
			
		||||
 | 
			
		||||
#define NFS4_MAX_LOOP_ON_RECOVER (10)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -410,16 +410,6 @@ enum lock_type4 {
 | 
			
		|||
#define NFS4_VERSION 4
 | 
			
		||||
#define NFS4_MINOR_VERSION 0
 | 
			
		||||
 | 
			
		||||
#if defined(CONFIG_NFS_V4_2)
 | 
			
		||||
#define NFS4_MAX_MINOR_VERSION 2
 | 
			
		||||
#else
 | 
			
		||||
#if defined(CONFIG_NFS_V4_1)
 | 
			
		||||
#define NFS4_MAX_MINOR_VERSION 1
 | 
			
		||||
#else
 | 
			
		||||
#define NFS4_MAX_MINOR_VERSION 0
 | 
			
		||||
#endif /* CONFIG_NFS_V4_1 */
 | 
			
		||||
#endif /* CONFIG_NFS_V4_2 */
 | 
			
		||||
 | 
			
		||||
#define NFS4_DEBUG 1
 | 
			
		||||
 | 
			
		||||
/* Index of predefined Linux client operations */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -506,24 +506,6 @@ extern const struct inode_operations nfs_referral_inode_operations;
 | 
			
		|||
extern int nfs_mountpoint_expiry_timeout;
 | 
			
		||||
extern void nfs_release_automount_timer(void);
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * linux/fs/nfs/nfs4proc.c
 | 
			
		||||
 */
 | 
			
		||||
#ifdef CONFIG_NFS_V4_SECURITY_LABEL
 | 
			
		||||
extern struct nfs4_label *nfs4_label_alloc(struct nfs_server *server, gfp_t flags);
 | 
			
		||||
static inline void nfs4_label_free(struct nfs4_label *label)
 | 
			
		||||
{
 | 
			
		||||
	if (label) {
 | 
			
		||||
		kfree(label->label);
 | 
			
		||||
		kfree(label);
 | 
			
		||||
	}
 | 
			
		||||
	return;
 | 
			
		||||
}
 | 
			
		||||
#else
 | 
			
		||||
static inline struct nfs4_label *nfs4_label_alloc(struct nfs_server *server, gfp_t flags) { return NULL; }
 | 
			
		||||
static inline void nfs4_label_free(void *label) {}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * linux/fs/nfs/unlink.c
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue