diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-04-26 00:38:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-04-26 00:38:44 -0400 |
commit | 2300fd67b4f29eec19addb15a8571837228f63fc (patch) | |
tree | 5f2cfcc87f81ff9fa607ab45c1f0a9adf644cc76 /net | |
parent | 86ec090e58fca1025676e775093a87ab699f7f4d (diff) | |
parent | 7bf97bc27308cfdc7a8dadd40ae50f7c4cb09b01 (diff) |
Merge tag 'nfs-for-3.4-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
Pull NFS client bugfixes from Trond Myklebust:
- Fix NFSv4 infinite loops on open(O_TRUNC)
- Fix an Oops and an infinite loop in the NFSv4 flock code
- Don't register the PipeFS filesystem until it has been set up
- Fix an Oops in nfs_try_to_update_request
- Don't reuse NFSv4 open owners: fixes a bad sequence id storm.
* tag 'nfs-for-3.4-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
NFSv4: Keep dropped state owners on the LRU list for a while
NFSv4: Ensure that we don't drop a state owner more than once
NFSv4: Ensure we do not reuse open owner names
nfs: Enclose hostname in brackets when needed in nfs_do_root_mount
NFS: put open context on error in nfs_flush_multi
NFS: put open context on error in nfs_pagein_multi
NFSv4: Fix open(O_TRUNC) and ftruncate() error handling
NFSv4: Ensure that we check lock exclusive/shared type against open modes
NFSv4: Ensure that the LOCK code sets exception->inode
NFS: check for req==NULL in nfs_try_to_update_request cleanup
SUNRPC: register PipeFS file system after pernet sybsystem
Diffstat (limited to 'net')
-rw-r--r-- | net/sunrpc/sunrpc_syms.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/net/sunrpc/sunrpc_syms.c b/net/sunrpc/sunrpc_syms.c index 8adfc88e793a..3d6498af9adc 100644 --- a/net/sunrpc/sunrpc_syms.c +++ b/net/sunrpc/sunrpc_syms.c | |||
@@ -75,20 +75,21 @@ static struct pernet_operations sunrpc_net_ops = { | |||
75 | static int __init | 75 | static int __init |
76 | init_sunrpc(void) | 76 | init_sunrpc(void) |
77 | { | 77 | { |
78 | int err = register_rpc_pipefs(); | 78 | int err = rpc_init_mempool(); |
79 | if (err) | 79 | if (err) |
80 | goto out; | 80 | goto out; |
81 | err = rpc_init_mempool(); | ||
82 | if (err) | ||
83 | goto out2; | ||
84 | err = rpcauth_init_module(); | 81 | err = rpcauth_init_module(); |
85 | if (err) | 82 | if (err) |
86 | goto out3; | 83 | goto out2; |
87 | 84 | ||
88 | cache_initialize(); | 85 | cache_initialize(); |
89 | 86 | ||
90 | err = register_pernet_subsys(&sunrpc_net_ops); | 87 | err = register_pernet_subsys(&sunrpc_net_ops); |
91 | if (err) | 88 | if (err) |
89 | goto out3; | ||
90 | |||
91 | err = register_rpc_pipefs(); | ||
92 | if (err) | ||
92 | goto out4; | 93 | goto out4; |
93 | #ifdef RPC_DEBUG | 94 | #ifdef RPC_DEBUG |
94 | rpc_register_sysctl(); | 95 | rpc_register_sysctl(); |
@@ -98,11 +99,11 @@ init_sunrpc(void) | |||
98 | return 0; | 99 | return 0; |
99 | 100 | ||
100 | out4: | 101 | out4: |
101 | rpcauth_remove_module(); | 102 | unregister_pernet_subsys(&sunrpc_net_ops); |
102 | out3: | 103 | out3: |
103 | rpc_destroy_mempool(); | 104 | rpcauth_remove_module(); |
104 | out2: | 105 | out2: |
105 | unregister_rpc_pipefs(); | 106 | rpc_destroy_mempool(); |
106 | out: | 107 | out: |
107 | return err; | 108 | return err; |
108 | } | 109 | } |