aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-07-31 21:45:44 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-07-31 21:45:44 -0400
commit6dbb35b0a74b44b2a48a5373d48074c5aa69fdf5 (patch)
tree4afb5eec521659e19c9d2343c2431054a082eb06 /include
parentfd37ce34bd512f2b1a503f82abf8768da556a955 (diff)
parentad0fcd4eb68059de02e1766948263c71b8a5b1dc (diff)
Merge tag 'nfs-for-3.6-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
Pull second wave of NFS client updates from Trond Myklebust: - Patches from Bryan to allow splitting of the NFSv2/v3/v4 code into separate modules. - Fix Oopses in the NFSv4 idmapper - Fix a deadlock whereby rpciod tries to allocate a new socket and ends up recursing into the NFS code due to memory reclaim. - Increase the number of permitted callback connections. * tag 'nfs-for-3.6-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: nfs: explicitly reject LOCK_MAND flock() requests nfs: increase number of permitted callback connections. SUNRPC: return negative value in case rpcbind client creation error NFS: Convert v4 into a module NFS: Convert v3 into a module NFS: Convert v2 into a module NFS: Keep module parameters in the generic NFS client NFS: Split out remaining NFS v4 inode functions NFS: Pass super operations and xattr handlers in the nfs_subversion NFS: Only initialize the ACL client in the v3 case NFS: Create a try_mount rpc op NFS: Remove the NFS v4 xdev mount function NFS: Add version registering framework NFS: Fix a number of bugs in the idmapper nfs: skip commit in releasepage if we're freeing memory for fs-related reasons sunrpc: clarify comments on rpc_make_runnable pnfsblock: bail out partial page IO
Diffstat (limited to 'include')
-rw-r--r--include/linux/nfs_fs.h6
-rw-r--r--include/linux/nfs_fs_sb.h7
-rw-r--r--include/linux/nfs_idmap.h2
-rw-r--r--include/linux/nfs_xdr.h9
4 files changed, 16 insertions, 8 deletions
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index 4b6043c20f77..2889877318bc 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -191,7 +191,7 @@ struct nfs_inode {
191 struct hlist_head silly_list; 191 struct hlist_head silly_list;
192 wait_queue_head_t waitqueue; 192 wait_queue_head_t waitqueue;
193 193
194#ifdef CONFIG_NFS_V4 194#if IS_ENABLED(CONFIG_NFS_V4)
195 struct nfs4_cached_acl *nfs4_acl; 195 struct nfs4_cached_acl *nfs4_acl;
196 /* NFSv4 state */ 196 /* NFSv4 state */
197 struct list_head open_states; 197 struct list_head open_states;
@@ -428,7 +428,7 @@ extern __be32 root_nfs_parse_addr(char *name); /*__init*/
428 * linux/fs/nfs/file.c 428 * linux/fs/nfs/file.c
429 */ 429 */
430extern const struct file_operations nfs_file_operations; 430extern const struct file_operations nfs_file_operations;
431#ifdef CONFIG_NFS_V4 431#if IS_ENABLED(CONFIG_NFS_V4)
432extern const struct file_operations nfs4_file_operations; 432extern const struct file_operations nfs4_file_operations;
433#endif /* CONFIG_NFS_V4 */ 433#endif /* CONFIG_NFS_V4 */
434extern const struct address_space_operations nfs_file_aops; 434extern const struct address_space_operations nfs_file_aops;
@@ -538,7 +538,7 @@ extern void nfs_writeback_done(struct rpc_task *, struct nfs_write_data *);
538extern int nfs_wb_all(struct inode *inode); 538extern int nfs_wb_all(struct inode *inode);
539extern int nfs_wb_page(struct inode *inode, struct page* page); 539extern int nfs_wb_page(struct inode *inode, struct page* page);
540extern int nfs_wb_page_cancel(struct inode *inode, struct page* page); 540extern int nfs_wb_page_cancel(struct inode *inode, struct page* page);
541#if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4) 541#if IS_ENABLED(CONFIG_NFS_V3) || IS_ENABLED(CONFIG_NFS_V4)
542extern int nfs_commit_inode(struct inode *, int); 542extern int nfs_commit_inode(struct inode *, int);
543extern struct nfs_commit_data *nfs_commitdata_alloc(void); 543extern struct nfs_commit_data *nfs_commitdata_alloc(void);
544extern void nfs_commit_free(struct nfs_commit_data *data); 544extern void nfs_commit_free(struct nfs_commit_data *data);
diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h
index 65327652c61a..310c63c8ab2c 100644
--- a/include/linux/nfs_fs_sb.h
+++ b/include/linux/nfs_fs_sb.h
@@ -48,11 +48,12 @@ struct nfs_client {
48 struct rpc_clnt * cl_rpcclient; 48 struct rpc_clnt * cl_rpcclient;
49 const struct nfs_rpc_ops *rpc_ops; /* NFS protocol vector */ 49 const struct nfs_rpc_ops *rpc_ops; /* NFS protocol vector */
50 int cl_proto; /* Network transport protocol */ 50 int cl_proto; /* Network transport protocol */
51 struct nfs_subversion * cl_nfs_mod; /* pointer to nfs version module */
51 52
52 u32 cl_minorversion;/* NFSv4 minorversion */ 53 u32 cl_minorversion;/* NFSv4 minorversion */
53 struct rpc_cred *cl_machine_cred; 54 struct rpc_cred *cl_machine_cred;
54 55
55#ifdef CONFIG_NFS_V4 56#if IS_ENABLED(CONFIG_NFS_V4)
56 u64 cl_clientid; /* constant */ 57 u64 cl_clientid; /* constant */
57 nfs4_verifier cl_confirm; /* Clientid verifier */ 58 nfs4_verifier cl_confirm; /* Clientid verifier */
58 unsigned long cl_state; 59 unsigned long cl_state;
@@ -137,7 +138,7 @@ struct nfs_server {
137#endif 138#endif
138 139
139 u32 pnfs_blksize; /* layout_blksize attr */ 140 u32 pnfs_blksize; /* layout_blksize attr */
140#ifdef CONFIG_NFS_V4 141#if IS_ENABLED(CONFIG_NFS_V4)
141 u32 attr_bitmask[3];/* V4 bitmask representing the set 142 u32 attr_bitmask[3];/* V4 bitmask representing the set
142 of attributes supported on this 143 of attributes supported on this
143 filesystem */ 144 filesystem */
@@ -200,7 +201,7 @@ struct nfs_server {
200#define NFS4_MAX_SLOT_TABLE (256U) 201#define NFS4_MAX_SLOT_TABLE (256U)
201#define NFS4_NO_SLOT ((u32)-1) 202#define NFS4_NO_SLOT ((u32)-1)
202 203
203#if defined(CONFIG_NFS_V4) 204#if IS_ENABLED(CONFIG_NFS_V4)
204 205
205/* Sessions */ 206/* Sessions */
206#define SLOT_TABLE_SZ DIV_ROUND_UP(NFS4_MAX_SLOT_TABLE, 8*sizeof(long)) 207#define SLOT_TABLE_SZ DIV_ROUND_UP(NFS4_MAX_SLOT_TABLE, 8*sizeof(long))
diff --git a/include/linux/nfs_idmap.h b/include/linux/nfs_idmap.h
index 7eed2012d288..ece91c57ad79 100644
--- a/include/linux/nfs_idmap.h
+++ b/include/linux/nfs_idmap.h
@@ -69,7 +69,7 @@ struct nfs_server;
69struct nfs_fattr; 69struct nfs_fattr;
70struct nfs4_string; 70struct nfs4_string;
71 71
72#ifdef CONFIG_NFS_V4 72#if IS_ENABLED(CONFIG_NFS_V4)
73int nfs_idmap_init(void); 73int nfs_idmap_init(void);
74void nfs_idmap_quit(void); 74void nfs_idmap_quit(void);
75#else 75#else
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
index 0e181c2320b7..00485e084394 100644
--- a/include/linux/nfs_xdr.h
+++ b/include/linux/nfs_xdr.h
@@ -824,7 +824,7 @@ struct nfs3_getaclres {
824 struct posix_acl * acl_default; 824 struct posix_acl * acl_default;
825}; 825};
826 826
827#ifdef CONFIG_NFS_V4 827#if IS_ENABLED(CONFIG_NFS_V4)
828 828
829typedef u64 clientid4; 829typedef u64 clientid4;
830 830
@@ -1353,6 +1353,8 @@ struct nfs_renamedata {
1353struct nfs_access_entry; 1353struct nfs_access_entry;
1354struct nfs_client; 1354struct nfs_client;
1355struct rpc_timeout; 1355struct rpc_timeout;
1356struct nfs_subversion;
1357struct nfs_mount_info;
1356struct nfs_client_initdata; 1358struct nfs_client_initdata;
1357struct nfs_pageio_descriptor; 1359struct nfs_pageio_descriptor;
1358 1360
@@ -1370,6 +1372,8 @@ struct nfs_rpc_ops {
1370 struct nfs_fsinfo *); 1372 struct nfs_fsinfo *);
1371 struct vfsmount *(*submount) (struct nfs_server *, struct dentry *, 1373 struct vfsmount *(*submount) (struct nfs_server *, struct dentry *,
1372 struct nfs_fh *, struct nfs_fattr *); 1374 struct nfs_fh *, struct nfs_fattr *);
1375 struct dentry *(*try_mount) (int, const char *, struct nfs_mount_info *,
1376 struct nfs_subversion *);
1373 int (*getattr) (struct nfs_server *, struct nfs_fh *, 1377 int (*getattr) (struct nfs_server *, struct nfs_fh *,
1374 struct nfs_fattr *); 1378 struct nfs_fattr *);
1375 int (*setattr) (struct dentry *, struct nfs_fattr *, 1379 int (*setattr) (struct dentry *, struct nfs_fattr *,
@@ -1435,6 +1439,9 @@ struct nfs_rpc_ops {
1435 (*init_client) (struct nfs_client *, const struct rpc_timeout *, 1439 (*init_client) (struct nfs_client *, const struct rpc_timeout *,
1436 const char *, rpc_authflavor_t); 1440 const char *, rpc_authflavor_t);
1437 void (*free_client) (struct nfs_client *); 1441 void (*free_client) (struct nfs_client *);
1442 struct nfs_server *(*create_server)(struct nfs_mount_info *, struct nfs_subversion *);
1443 struct nfs_server *(*clone_server)(struct nfs_server *, struct nfs_fh *,
1444 struct nfs_fattr *, rpc_authflavor_t);
1438}; 1445};
1439 1446
1440/* 1447/*