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/nfs4client.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/nfs4client.c')
-rw-r--r-- | fs/nfs/nfs4client.c | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c index 1c3f13c8e472..cbcdfaf32505 100644 --- a/fs/nfs/nfs4client.c +++ b/fs/nfs/nfs4client.c | |||
@@ -18,11 +18,6 @@ | |||
18 | #define NFSDBG_FACILITY NFSDBG_CLIENT | 18 | #define NFSDBG_FACILITY NFSDBG_CLIENT |
19 | 19 | ||
20 | /* | 20 | /* |
21 | * Turn off NFSv4 uid/gid mapping when using AUTH_SYS | ||
22 | */ | ||
23 | static bool nfs4_disable_idmapping = true; | ||
24 | |||
25 | /* | ||
26 | * Get a unique NFSv4.0 callback identifier which will be used | 21 | * Get a unique NFSv4.0 callback identifier which will be used |
27 | * by the V4.0 callback service to lookup the nfs_client struct | 22 | * by the V4.0 callback service to lookup the nfs_client struct |
28 | */ | 23 | */ |
@@ -357,7 +352,7 @@ static int nfs4_set_client(struct nfs_server *server, | |||
357 | .hostname = hostname, | 352 | .hostname = hostname, |
358 | .addr = addr, | 353 | .addr = addr, |
359 | .addrlen = addrlen, | 354 | .addrlen = addrlen, |
360 | .rpc_ops = &nfs_v4_clientops, | 355 | .nfs_mod = &nfs_v4, |
361 | .proto = proto, | 356 | .proto = proto, |
362 | .minorversion = minorversion, | 357 | .minorversion = minorversion, |
363 | .net = net, | 358 | .net = net, |
@@ -411,7 +406,7 @@ struct nfs_client *nfs4_set_ds_client(struct nfs_client* mds_clp, | |||
411 | struct nfs_client_initdata cl_init = { | 406 | struct nfs_client_initdata cl_init = { |
412 | .addr = ds_addr, | 407 | .addr = ds_addr, |
413 | .addrlen = ds_addrlen, | 408 | .addrlen = ds_addrlen, |
414 | .rpc_ops = &nfs_v4_clientops, | 409 | .nfs_mod = &nfs_v4, |
415 | .proto = ds_proto, | 410 | .proto = ds_proto, |
416 | .minorversion = mds_clp->cl_minorversion, | 411 | .minorversion = mds_clp->cl_minorversion, |
417 | .net = mds_clp->cl_net, | 412 | .net = mds_clp->cl_net, |
@@ -574,8 +569,10 @@ error: | |||
574 | * Create a version 4 volume record | 569 | * Create a version 4 volume record |
575 | * - keyed on server and FSID | 570 | * - keyed on server and FSID |
576 | */ | 571 | */ |
577 | struct nfs_server *nfs4_create_server(const struct nfs_parsed_mount_data *data, | 572 | /*struct nfs_server *nfs4_create_server(const struct nfs_parsed_mount_data *data, |
578 | struct nfs_fh *mntfh) | 573 | struct nfs_fh *mntfh)*/ |
574 | struct nfs_server *nfs4_create_server(struct nfs_mount_info *mount_info, | ||
575 | struct nfs_subversion *nfs_mod) | ||
579 | { | 576 | { |
580 | struct nfs_server *server; | 577 | struct nfs_server *server; |
581 | int error; | 578 | int error; |
@@ -587,11 +584,11 @@ struct nfs_server *nfs4_create_server(const struct nfs_parsed_mount_data *data, | |||
587 | return ERR_PTR(-ENOMEM); | 584 | return ERR_PTR(-ENOMEM); |
588 | 585 | ||
589 | /* set up the general RPC client */ | 586 | /* set up the general RPC client */ |
590 | error = nfs4_init_server(server, data); | 587 | error = nfs4_init_server(server, mount_info->parsed); |
591 | if (error < 0) | 588 | if (error < 0) |
592 | goto error; | 589 | goto error; |
593 | 590 | ||
594 | error = nfs4_server_common_setup(server, mntfh); | 591 | error = nfs4_server_common_setup(server, mount_info->mntfh); |
595 | if (error < 0) | 592 | if (error < 0) |
596 | goto error; | 593 | goto error; |
597 | 594 | ||
@@ -657,7 +654,3 @@ error: | |||
657 | dprintk("<-- nfs4_create_referral_server() = error %d\n", error); | 654 | dprintk("<-- nfs4_create_referral_server() = error %d\n", error); |
658 | return ERR_PTR(error); | 655 | return ERR_PTR(error); |
659 | } | 656 | } |
660 | |||
661 | module_param(nfs4_disable_idmapping, bool, 0644); | ||
662 | MODULE_PARM_DESC(nfs4_disable_idmapping, | ||
663 | "Turn off NFSv4 idmapping when using 'sec=sys'"); | ||