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/namespace.c | |
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/namespace.c')
-rw-r--r-- | fs/nfs/namespace.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/fs/nfs/namespace.c b/fs/nfs/namespace.c index 08b9c93675da..655925373b91 100644 --- a/fs/nfs/namespace.c +++ b/fs/nfs/namespace.c | |||
@@ -7,6 +7,7 @@ | |||
7 | * NFS namespace | 7 | * NFS namespace |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/module.h> | ||
10 | #include <linux/dcache.h> | 11 | #include <linux/dcache.h> |
11 | #include <linux/gfp.h> | 12 | #include <linux/gfp.h> |
12 | #include <linux/mount.h> | 13 | #include <linux/mount.h> |
@@ -112,6 +113,7 @@ Elong_unlock: | |||
112 | Elong: | 113 | Elong: |
113 | return ERR_PTR(-ENAMETOOLONG); | 114 | return ERR_PTR(-ENAMETOOLONG); |
114 | } | 115 | } |
116 | EXPORT_SYMBOL_GPL(nfs_path); | ||
115 | 117 | ||
116 | /* | 118 | /* |
117 | * nfs_d_automount - Handle crossing a mountpoint on the server | 119 | * nfs_d_automount - Handle crossing a mountpoint on the server |
@@ -195,20 +197,7 @@ static struct vfsmount *nfs_do_clone_mount(struct nfs_server *server, | |||
195 | const char *devname, | 197 | const char *devname, |
196 | struct nfs_clone_mount *mountdata) | 198 | struct nfs_clone_mount *mountdata) |
197 | { | 199 | { |
198 | #ifdef CONFIG_NFS_V4 | ||
199 | struct vfsmount *mnt = ERR_PTR(-EINVAL); | ||
200 | switch (server->nfs_client->rpc_ops->version) { | ||
201 | case 2: | ||
202 | case 3: | ||
203 | mnt = vfs_kern_mount(&nfs_xdev_fs_type, 0, devname, mountdata); | ||
204 | break; | ||
205 | case 4: | ||
206 | mnt = vfs_kern_mount(&nfs4_xdev_fs_type, 0, devname, mountdata); | ||
207 | } | ||
208 | return mnt; | ||
209 | #else | ||
210 | return vfs_kern_mount(&nfs_xdev_fs_type, 0, devname, mountdata); | 200 | return vfs_kern_mount(&nfs_xdev_fs_type, 0, devname, mountdata); |
211 | #endif | ||
212 | } | 201 | } |
213 | 202 | ||
214 | /** | 203 | /** |
@@ -253,6 +242,7 @@ out: | |||
253 | dprintk("<-- nfs_do_submount() = %p\n", mnt); | 242 | dprintk("<-- nfs_do_submount() = %p\n", mnt); |
254 | return mnt; | 243 | return mnt; |
255 | } | 244 | } |
245 | EXPORT_SYMBOL_GPL(nfs_do_submount); | ||
256 | 246 | ||
257 | struct vfsmount *nfs_submount(struct nfs_server *server, struct dentry *dentry, | 247 | struct vfsmount *nfs_submount(struct nfs_server *server, struct dentry *dentry, |
258 | struct nfs_fh *fh, struct nfs_fattr *fattr) | 248 | struct nfs_fh *fh, struct nfs_fattr *fattr) |
@@ -268,3 +258,4 @@ struct vfsmount *nfs_submount(struct nfs_server *server, struct dentry *dentry, | |||
268 | 258 | ||
269 | return nfs_do_submount(dentry, fh, fattr, server->client->cl_auth->au_flavor); | 259 | return nfs_do_submount(dentry, fh, fattr, server->client->cl_auth->au_flavor); |
270 | } | 260 | } |
261 | EXPORT_SYMBOL_GPL(nfs_submount); | ||