diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-31 21:45:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-31 21:45:44 -0400 |
commit | 6dbb35b0a74b44b2a48a5373d48074c5aa69fdf5 (patch) | |
tree | 4afb5eec521659e19c9d2343c2431054a082eb06 /include | |
parent | fd37ce34bd512f2b1a503f82abf8768da556a955 (diff) | |
parent | ad0fcd4eb68059de02e1766948263c71b8a5b1dc (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.h | 6 | ||||
-rw-r--r-- | include/linux/nfs_fs_sb.h | 7 | ||||
-rw-r--r-- | include/linux/nfs_idmap.h | 2 | ||||
-rw-r--r-- | include/linux/nfs_xdr.h | 9 |
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 | */ |
430 | extern const struct file_operations nfs_file_operations; | 430 | extern const struct file_operations nfs_file_operations; |
431 | #ifdef CONFIG_NFS_V4 | 431 | #if IS_ENABLED(CONFIG_NFS_V4) |
432 | extern const struct file_operations nfs4_file_operations; | 432 | extern const struct file_operations nfs4_file_operations; |
433 | #endif /* CONFIG_NFS_V4 */ | 433 | #endif /* CONFIG_NFS_V4 */ |
434 | extern const struct address_space_operations nfs_file_aops; | 434 | extern const struct address_space_operations nfs_file_aops; |
@@ -538,7 +538,7 @@ extern void nfs_writeback_done(struct rpc_task *, struct nfs_write_data *); | |||
538 | extern int nfs_wb_all(struct inode *inode); | 538 | extern int nfs_wb_all(struct inode *inode); |
539 | extern int nfs_wb_page(struct inode *inode, struct page* page); | 539 | extern int nfs_wb_page(struct inode *inode, struct page* page); |
540 | extern int nfs_wb_page_cancel(struct inode *inode, struct page* page); | 540 | extern 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) |
542 | extern int nfs_commit_inode(struct inode *, int); | 542 | extern int nfs_commit_inode(struct inode *, int); |
543 | extern struct nfs_commit_data *nfs_commitdata_alloc(void); | 543 | extern struct nfs_commit_data *nfs_commitdata_alloc(void); |
544 | extern void nfs_commit_free(struct nfs_commit_data *data); | 544 | extern 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; | |||
69 | struct nfs_fattr; | 69 | struct nfs_fattr; |
70 | struct nfs4_string; | 70 | struct nfs4_string; |
71 | 71 | ||
72 | #ifdef CONFIG_NFS_V4 | 72 | #if IS_ENABLED(CONFIG_NFS_V4) |
73 | int nfs_idmap_init(void); | 73 | int nfs_idmap_init(void); |
74 | void nfs_idmap_quit(void); | 74 | void 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 | ||
829 | typedef u64 clientid4; | 829 | typedef u64 clientid4; |
830 | 830 | ||
@@ -1353,6 +1353,8 @@ struct nfs_renamedata { | |||
1353 | struct nfs_access_entry; | 1353 | struct nfs_access_entry; |
1354 | struct nfs_client; | 1354 | struct nfs_client; |
1355 | struct rpc_timeout; | 1355 | struct rpc_timeout; |
1356 | struct nfs_subversion; | ||
1357 | struct nfs_mount_info; | ||
1356 | struct nfs_client_initdata; | 1358 | struct nfs_client_initdata; |
1357 | struct nfs_pageio_descriptor; | 1359 | struct 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 | /* |