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 /fs/nfs/internal.h | |
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 'fs/nfs/internal.h')
-rw-r--r-- | fs/nfs/internal.h | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h index cfafd13b6fe9..8865538b26b6 100644 --- a/fs/nfs/internal.h +++ b/fs/nfs/internal.h | |||
@@ -90,7 +90,7 @@ struct nfs_client_initdata { | |||
90 | const char *hostname; | 90 | const char *hostname; |
91 | const struct sockaddr *addr; | 91 | const struct sockaddr *addr; |
92 | size_t addrlen; | 92 | size_t addrlen; |
93 | const struct nfs_rpc_ops *rpc_ops; | 93 | struct nfs_subversion *nfs_mod; |
94 | int proto; | 94 | int proto; |
95 | u32 minorversion; | 95 | u32 minorversion; |
96 | struct net *net; | 96 | struct net *net; |
@@ -187,12 +187,11 @@ extern struct nfs_client *nfs4_find_client_ident(struct net *, int); | |||
187 | extern struct nfs_client * | 187 | extern struct nfs_client * |
188 | nfs4_find_client_sessionid(struct net *, const struct sockaddr *, | 188 | nfs4_find_client_sessionid(struct net *, const struct sockaddr *, |
189 | struct nfs4_sessionid *); | 189 | struct nfs4_sessionid *); |
190 | extern struct nfs_server *nfs_create_server( | 190 | extern struct nfs_server *nfs_create_server(struct nfs_mount_info *, |
191 | const struct nfs_parsed_mount_data *, | 191 | struct nfs_subversion *); |
192 | struct nfs_fh *); | ||
193 | extern struct nfs_server *nfs4_create_server( | 192 | extern struct nfs_server *nfs4_create_server( |
194 | const struct nfs_parsed_mount_data *, | 193 | struct nfs_mount_info *, |
195 | struct nfs_fh *); | 194 | struct nfs_subversion *); |
196 | extern struct nfs_server *nfs4_create_referral_server(struct nfs_clone_mount *, | 195 | extern struct nfs_server *nfs4_create_referral_server(struct nfs_clone_mount *, |
197 | struct nfs_fh *); | 196 | struct nfs_fh *); |
198 | extern void nfs_free_server(struct nfs_server *server); | 197 | extern void nfs_free_server(struct nfs_server *server); |
@@ -224,6 +223,13 @@ static inline void nfs_fs_proc_exit(void) | |||
224 | int nfs_sockaddr_match_ipaddr(const struct sockaddr *, const struct sockaddr *); | 223 | int nfs_sockaddr_match_ipaddr(const struct sockaddr *, const struct sockaddr *); |
225 | #endif | 224 | #endif |
226 | 225 | ||
226 | /* nfs3client.c */ | ||
227 | #if IS_ENABLED(CONFIG_NFS_V3) | ||
228 | struct nfs_server *nfs3_create_server(struct nfs_mount_info *, struct nfs_subversion *); | ||
229 | struct nfs_server *nfs3_clone_server(struct nfs_server *, struct nfs_fh *, | ||
230 | struct nfs_fattr *, rpc_authflavor_t); | ||
231 | #endif | ||
232 | |||
227 | /* callback_xdr.c */ | 233 | /* callback_xdr.c */ |
228 | extern struct svc_version nfs4_callback_version1; | 234 | extern struct svc_version nfs4_callback_version1; |
229 | extern struct svc_version nfs4_callback_version4; | 235 | extern struct svc_version nfs4_callback_version4; |
@@ -256,7 +262,7 @@ extern int nfs3_decode_dirent(struct xdr_stream *, | |||
256 | struct nfs_entry *, int); | 262 | struct nfs_entry *, int); |
257 | 263 | ||
258 | /* nfs4xdr.c */ | 264 | /* nfs4xdr.c */ |
259 | #ifdef CONFIG_NFS_V4 | 265 | #if IS_ENABLED(CONFIG_NFS_V4) |
260 | extern int nfs4_decode_dirent(struct xdr_stream *, | 266 | extern int nfs4_decode_dirent(struct xdr_stream *, |
261 | struct nfs_entry *, int); | 267 | struct nfs_entry *, int); |
262 | #endif | 268 | #endif |
@@ -266,7 +272,7 @@ extern const u32 nfs41_maxwrite_overhead; | |||
266 | #endif | 272 | #endif |
267 | 273 | ||
268 | /* nfs4proc.c */ | 274 | /* nfs4proc.c */ |
269 | #ifdef CONFIG_NFS_V4 | 275 | #if IS_ENABLED(CONFIG_NFS_V4) |
270 | extern struct rpc_procinfo nfs4_procedures[]; | 276 | extern struct rpc_procinfo nfs4_procedures[]; |
271 | #endif | 277 | #endif |
272 | 278 | ||
@@ -313,24 +319,26 @@ extern struct workqueue_struct *nfsiod_workqueue; | |||
313 | extern struct inode *nfs_alloc_inode(struct super_block *sb); | 319 | extern struct inode *nfs_alloc_inode(struct super_block *sb); |
314 | extern void nfs_destroy_inode(struct inode *); | 320 | extern void nfs_destroy_inode(struct inode *); |
315 | extern int nfs_write_inode(struct inode *, struct writeback_control *); | 321 | extern int nfs_write_inode(struct inode *, struct writeback_control *); |
322 | extern void nfs_clear_inode(struct inode *); | ||
316 | extern void nfs_evict_inode(struct inode *); | 323 | extern void nfs_evict_inode(struct inode *); |
317 | #ifdef CONFIG_NFS_V4 | ||
318 | extern void nfs4_evict_inode(struct inode *); | ||
319 | #endif | ||
320 | void nfs_zap_acl_cache(struct inode *inode); | 324 | void nfs_zap_acl_cache(struct inode *inode); |
321 | extern int nfs_wait_bit_killable(void *word); | 325 | extern int nfs_wait_bit_killable(void *word); |
322 | 326 | ||
323 | /* super.c */ | 327 | /* super.c */ |
328 | extern const struct super_operations nfs_sops; | ||
329 | extern struct file_system_type nfs_fs_type; | ||
324 | extern struct file_system_type nfs_xdev_fs_type; | 330 | extern struct file_system_type nfs_xdev_fs_type; |
325 | #ifdef CONFIG_NFS_V4 | 331 | #if IS_ENABLED(CONFIG_NFS_V4) |
326 | extern struct file_system_type nfs4_xdev_fs_type; | 332 | extern struct file_system_type nfs4_xdev_fs_type; |
327 | extern struct file_system_type nfs4_referral_fs_type; | 333 | extern struct file_system_type nfs4_referral_fs_type; |
328 | #endif | 334 | #endif |
335 | struct dentry *nfs_try_mount(int, const char *, struct nfs_mount_info *, | ||
336 | struct nfs_subversion *); | ||
329 | void nfs_initialise_sb(struct super_block *); | 337 | void nfs_initialise_sb(struct super_block *); |
330 | int nfs_set_sb_security(struct super_block *, struct dentry *, struct nfs_mount_info *); | 338 | int nfs_set_sb_security(struct super_block *, struct dentry *, struct nfs_mount_info *); |
331 | int nfs_clone_sb_security(struct super_block *, struct dentry *, struct nfs_mount_info *); | 339 | int nfs_clone_sb_security(struct super_block *, struct dentry *, struct nfs_mount_info *); |
332 | struct dentry *nfs_fs_mount_common(struct file_system_type *, struct nfs_server *, | 340 | struct dentry *nfs_fs_mount_common(struct nfs_server *, int, const char *, |
333 | int, const char *, struct nfs_mount_info *); | 341 | struct nfs_mount_info *, struct nfs_subversion *); |
334 | struct dentry *nfs_fs_mount(struct file_system_type *, int, const char *, void *); | 342 | struct dentry *nfs_fs_mount(struct file_system_type *, int, const char *, void *); |
335 | struct dentry * nfs_xdev_mount_common(struct file_system_type *, int, | 343 | struct dentry * nfs_xdev_mount_common(struct file_system_type *, int, |
336 | const char *, struct nfs_mount_info *); | 344 | const char *, struct nfs_mount_info *); |
@@ -356,7 +364,7 @@ struct vfsmount *nfs_do_submount(struct dentry *, struct nfs_fh *, | |||
356 | /* getroot.c */ | 364 | /* getroot.c */ |
357 | extern struct dentry *nfs_get_root(struct super_block *, struct nfs_fh *, | 365 | extern struct dentry *nfs_get_root(struct super_block *, struct nfs_fh *, |
358 | const char *); | 366 | const char *); |
359 | #ifdef CONFIG_NFS_V4 | 367 | #if IS_ENABLED(CONFIG_NFS_V4) |
360 | extern struct dentry *nfs4_get_root(struct super_block *, struct nfs_fh *, | 368 | extern struct dentry *nfs4_get_root(struct super_block *, struct nfs_fh *, |
361 | const char *); | 369 | const char *); |
362 | 370 | ||