#
6663ee7f |
| 20-Jun-2012 |
Bryan Schumaker <bjschuma@netapp.com> |
NFS: Create an alloc_client rpc_op
This gives NFS v4 a way to set up callbacks and sessions without v2 or v3 having to do them as well.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-o
NFS: Create an alloc_client rpc_op
This gives NFS v4 a way to set up callbacks and sessions without v2 or v3 having to do them as well.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
#
cdb7eced |
| 20-Jun-2012 |
Bryan Schumaker <bjschuma@netapp.com> |
NFS: Create a free_client rpc_op
NFS v4 needs a way to shut down callbacks and sessions, but v2 and v3 don't.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Tr
NFS: Create a free_client rpc_op
NFS v4 needs a way to shut down callbacks and sessions, but v2 and v3 don't.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
#
57ec14c5 |
| 20-Jun-2012 |
Bryan Schumaker <bjschuma@netapp.com> |
NFS: Create a return_delegation rpc op
Delegations are a v4 feature, so push return_delegation out of the generic client by creating a new rpc_op and renaming the old function to be in the nfs v4 "n
NFS: Create a return_delegation rpc op
Delegations are a v4 feature, so push return_delegation out of the generic client by creating a new rpc_op and renaming the old function to be in the nfs v4 "namespace"
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
#
011e2a7f |
| 20-Jun-2012 |
Bryan Schumaker <bjschuma@netapp.com> |
NFS: Create a have_delegation rpc_op
Delegations are a v4 feature, so push them out of the generic code.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.M
NFS: Create a have_delegation rpc_op
Delegations are a v4 feature, so push them out of the generic code.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
Revision tags: v3.5-rc1 |
|
#
64f9a836 |
| 31-May-2012 |
Sachin Prabhu <sprabhu@redhat.com> |
NFSv2: EOF incorrectly set on short read
In cases where the server returns fewer bytes then those requested, we can incorrectly set the eof flag for the file. Fixing this allows the request to be re
NFSv2: EOF incorrectly set on short read
In cases where the server returns fewer bytes then those requested, we can incorrectly set the eof flag for the file. Fixing this allows the request to be retried with updated offset and count arguments.
Signed-off-by: Sachin Prabhu <sprabhu@redhat.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
Revision tags: v3.4, v3.4-rc7 |
|
#
26fe5750 |
| 10-May-2012 |
Linus Torvalds <torvalds@linux-foundation.org> |
vfs: make it possible to access the dentry hash/len as one 64-bit entry
This allows comparing hash and len in one operation on 64-bit architectures. Right now only __d_lookup_rcu() takes advantage
vfs: make it possible to access the dentry hash/len as one 64-bit entry
This allows comparing hash and len in one operation on 64-bit architectures. Right now only __d_lookup_rcu() takes advantage of this, since that is the case we care most about.
The use of anonymous struct/unions hides the alternate 64-bit approach from most users, the exception being a few cases where we initialize a 'struct qstr' with a static initializer. This makes the problematic cases use a new QSTR_INIT() helper function for that (but initializing just the name pointer with a "{ .name = xyzzy }" initializer remains valid, as does just copying another qstr structure).
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
show more ...
|
Revision tags: v3.4-rc6, v3.4-rc5 |
|
#
80a16b21 |
| 27-Apr-2012 |
Bryan Schumaker <bjschuma@netapp.com> |
NFS: Remove extra rpc_clnt argument to proc_lookup
Now that I'm doing secinfo automatically in the v4 code this extra argument isn't needed.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Sig
NFS: Remove extra rpc_clnt argument to proc_lookup
Now that I'm doing secinfo automatically in the v4 code this extra argument isn't needed.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
#
281cad46 |
| 27-Apr-2012 |
Bryan Schumaker <bjschuma@netapp.com> |
NFS: Create a submount rpc_op
This simplifies the code for v2 and v3 and gives v4 a chance to decide on referrals without needing to modify the generic client.
Signed-off-by: Bryan Schumaker <bjsch
NFS: Create a submount rpc_op
This simplifies the code for v2 and v3 and gives v4 a chance to decide on referrals without needing to modify the generic client.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
Revision tags: v3.4-rc4 |
|
#
cd841605 |
| 20-Apr-2012 |
Fred Isaman <iisaman@netapp.com> |
NFS: create common nfs_pgio_header for both read and write
In order to avoid duplicating all the data in nfs_read_data whenever we split it up into multiple RPC calls (either due to a short read res
NFS: create common nfs_pgio_header for both read and write
In order to avoid duplicating all the data in nfs_read_data whenever we split it up into multiple RPC calls (either due to a short read result or due to rsize < PAGE_SIZE), we split out the bits that are the same per RPC call into a separate "header" structure.
The goal this patch moves towards is to have a single header refcounted by several rpc_data structures. Thus, want to always refer from rpc_data to the header, and not the other way. This patch comes close to that ideal, but the directio code currently needs some special casing, isolated in the nfs_direct_[read_write]hdr_release() functions. This will be dealt with in a future patch.
Signed-off-by: Fred Isaman <iisaman@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
#
0b7c0153 |
| 20-Apr-2012 |
Fred Isaman <iisaman@netapp.com> |
NFS: add a struct nfs_commit_data to replace nfs_write_data in commits
Commits don't need the vectors of pages, etc. that writes do. Split out a separate structure for the commit operation.
Signed-
NFS: add a struct nfs_commit_data to replace nfs_write_data in commits
Commits don't need the vectors of pages, etc. that writes do. Split out a separate structure for the commit operation.
Signed-off-by: Fred Isaman <iisaman@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
Revision tags: v3.4-rc3, v3.4-rc2, v3.4-rc1 |
|
#
c6bfa1a1 |
| 19-Mar-2012 |
Bryan Schumaker <bjschuma@netapp.com> |
NFS: Remove nfs4_setup_sequence from generic rename code
This is an NFS v4 specific operation, so it belongs in the NFS v4 code and not the generic client.
Signed-off-by: Bryan Schumaker <bjschuma@
NFS: Remove nfs4_setup_sequence from generic rename code
This is an NFS v4 specific operation, so it belongs in the NFS v4 code and not the generic client.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
#
34e137cc |
| 19-Mar-2012 |
Bryan Schumaker <bjschuma@netapp.com> |
NFS: Remove nfs4_setup_sequence from generic unlink code
This is an NFS v4 specific operation, so it belongs in the NFS v4 code and not the generic client.
Signed-off-by: Bryan Schumaker <bjschuma@
NFS: Remove nfs4_setup_sequence from generic unlink code
This is an NFS v4 specific operation, so it belongs in the NFS v4 code and not the generic client.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
#
ea7c3303 |
| 19-Mar-2012 |
Bryan Schumaker <bjschuma@netapp.com> |
NFS: Remove nfs4_setup_sequence from generic read code
This is an NFS v4 specific operation, so it belongs in the NFS v4 code and not the generic client.
Signed-off-by: Bryan Schumaker <bjschuma@ne
NFS: Remove nfs4_setup_sequence from generic read code
This is an NFS v4 specific operation, so it belongs in the NFS v4 code and not the generic client.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
#
c6cb80d0 |
| 19-Mar-2012 |
Bryan Schumaker <bjschuma@netapp.com> |
NFS: Remove nfs4_setup_sequence from generic write code
This is an NFS v4 specific operation, so it belongs in the NFS v4 code and not the generic client.
Signed-off-by: Bryan Schumaker <bjschuma@n
NFS: Remove nfs4_setup_sequence from generic write code
This is an NFS v4 specific operation, so it belongs in the NFS v4 code and not the generic client.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
Revision tags: v3.3, v3.3-rc7, v3.3-rc6, v3.3-rc5, v3.3-rc4, v3.3-rc3, v3.3-rc2, v3.3-rc1, v3.2, v3.2-rc7, v3.2-rc6, v3.2-rc5, v3.2-rc4 |
|
#
d310310c |
| 01-Dec-2011 |
Jeff Layton <jlayton@redhat.com> |
Freezer / sunrpc / NFS: don't allow TASK_KILLABLE sleeps to block the freezer
Allow the freezer to skip wait_on_bit_killable sleeps in the sunrpc layer. This should allow suspend and hibernate event
Freezer / sunrpc / NFS: don't allow TASK_KILLABLE sleeps to block the freezer
Allow the freezer to skip wait_on_bit_killable sleeps in the sunrpc layer. This should allow suspend and hibernate events to proceed, even when there are RPC's pending on the wire.
Also, wrap the TASK_KILLABLE sleeps in NFS layer in freezer_do_not_count and freezer_count calls. This allows the freezer to skip tasks that are sleeping while looping on EJUKEBOX or NFS4ERR_DELAY sorts of errors.
Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
show more ...
|
Revision tags: v3.2-rc3, v3.2-rc2, v3.2-rc1 |
|
#
1788ea6e |
| 04-Nov-2011 |
Jeff Layton <jlayton@redhat.com> |
nfs: when attempting to open a directory, fall back on normal lookup (try #5)
commit d953126 changed how nfs_atomic_lookup handles an -EISDIR return from an OPEN call. Prior to that patch, that caus
nfs: when attempting to open a directory, fall back on normal lookup (try #5)
commit d953126 changed how nfs_atomic_lookup handles an -EISDIR return from an OPEN call. Prior to that patch, that caused the client to fall back to doing a normal lookup. When that patch went in, the code began returning that error to userspace. The d_revalidate codepath however never had the corresponding change, so it was still possible to end up with a NULL ctx->state pointer after that.
That patch caused a regression. When we attempt to open a directory that does not have a cached dentry, that open now errors out with EISDIR. If you attempt the same open with a cached dentry, it will succeed.
Fix this by reverting the change in nfs_atomic_lookup and allowing attempts to open directories to fall back to a normal lookup
Also, add a NFSv4-specific f_ops->open routine that just returns -ENOTDIR. This should never be called if things are working properly, but if it ever is, then the dprintk may help in debugging.
To facilitate this, a new file_operations field is also added to the nfs_rpc_ops struct.
Cc: stable@kernel.org Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
Revision tags: v3.1, v3.1-rc10, v3.1-rc9, v3.1-rc8, v3.1-rc7, v3.1-rc6, v3.1-rc5, v3.1-rc4, v3.1-rc3, v3.1-rc2, v3.1-rc1, v3.0, v3.0-rc7, v3.0-rc6, v3.0-rc5, v3.0-rc4, v3.0-rc3, v3.0-rc2, v3.0-rc1, v2.6.39, v2.6.39-rc7, v2.6.39-rc6, v2.6.39-rc5, v2.6.39-rc4, v2.6.39-rc3, v2.6.39-rc2, v2.6.39-rc1 |
|
#
7c513058 |
| 24-Mar-2011 |
Bryan Schumaker <bjschuma@netapp.com> |
NFS: lookup supports alternate client
A later patch will need to perform a lookup using an alternate client with a different security flavor. This patch adds support for doing that on NFS v4.
Signe
NFS: lookup supports alternate client
A later patch will need to perform a lookup using an alternate client with a different security flavor. This patch adds support for doing that on NFS v4.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
Revision tags: v2.6.38, v2.6.38-rc8, v2.6.38-rc7 |
|
#
45a52a02 |
| 28-Feb-2011 |
Andy Adamson <andros@netapp.com> |
NFS move nfs_client initialization into nfs_get_client
Now nfs_get_client returns an nfs_client ready to be used no matter if it was found or created.
Signed-off-by: Andy Adamson <andros@netapp.com
NFS move nfs_client initialization into nfs_get_client
Now nfs_get_client returns an nfs_client ready to be used no matter if it was found or created.
Signed-off-by: Andy Adamson <andros@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
Revision tags: v2.6.38-rc6, v2.6.38-rc5, v2.6.38-rc4, v2.6.38-rc3, v2.6.38-rc2, v2.6.38-rc1, v2.6.37, v2.6.37-rc8 |
|
#
878215fe |
| 24-Dec-2010 |
Jesper Juhl <jj@chaosbits.net> |
NFS: Don't leak in nfs_proc_symlink()
Hi,
In fs/nfs/proc.c::nfs_proc_symlink() we will leak memory if either nfs_alloc_fhandle() or nfs_alloc_fattr() returns NULL but the other one doesn't. This pa
NFS: Don't leak in nfs_proc_symlink()
Hi,
In fs/nfs/proc.c::nfs_proc_symlink() we will leak memory if either nfs_alloc_fhandle() or nfs_alloc_fattr() returns NULL but the other one doesn't. This patch ensures memory allocated by one when the other fails is always released (this is safe since nfs_free_fattr() and nfs_free_fhandle() both call kfree which deals gracefully with NULL pointers).
Signed-off-by: Jesper Juhl <jj@chaosbits.net> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
Revision tags: v2.6.37-rc7, v2.6.37-rc6 |
|
#
f796f8b3 |
| 14-Dec-2010 |
Chuck Lever <chuck.lever@oracle.com> |
NFS: Introduce new-style XDR decoding functions for NFSv2
We'd like to prevent local buffer overflows caused by malicious or broken servers. New xdr_stream style decoders can do that.
For efficien
NFS: Introduce new-style XDR decoding functions for NFSv2
We'd like to prevent local buffer overflows caused by malicious or broken servers. New xdr_stream style decoders can do that.
For efficiency, we also eventually want to be able to pass xdr_streams from call_decode() to all XDR decoding functions, rather than building an xdr_stream in every XDR decoding function in the kernel.
nfs_decode_dirent() is renamed to follow the naming convention of the other two dirent decoders.
Static helper functions are left without the "inline" directive. This allows the compiler to choose automatically how to optimize these for size or speed.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Tested-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
Revision tags: v2.6.37-rc5, v2.6.37-rc4, v2.6.37-rc3, v2.6.37-rc2, v2.6.37-rc1, v2.6.36 |
|
#
56e4ebf8 |
| 20-Oct-2010 |
Bryan Schumaker <bjschuma@netapp.com> |
NFS: readdir with vmapped pages
We can use vmapped pages to read more information from the network at once. This will reduce the number of calls needed to complete a readdir.
Signed-off-by: Bryan S
NFS: readdir with vmapped pages
We can use vmapped pages to read more information from the network at once. This will reduce the number of calls needed to complete a readdir.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> [trondmy: Added #include for linux/vmalloc.h> in fs/nfs/dir.c] Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
Revision tags: v2.6.36-rc8, v2.6.36-rc7, v2.6.36-rc6, v2.6.36-rc5 |
|
#
d3d4152a |
| 17-Sep-2010 |
Jeff Layton <jlayton@redhat.com> |
nfs: make sillyrename an async operation
A synchronous rename can be interrupted by a SIGKILL. If that happens during a sillyrename operation, it's possible for the rename call to be sent to the ser
nfs: make sillyrename an async operation
A synchronous rename can be interrupted by a SIGKILL. If that happens during a sillyrename operation, it's possible for the rename call to be sent to the server, but the task exits before processing the reply. If this happens, the sillyrenamed file won't get cleaned up during nfs_dentry_iput and the server is left with a dangling .nfs* file hanging around.
Fix this problem by turning sillyrename into an asynchronous operation and have the task doing the sillyrename just wait on the reply. If the task is killed before the sillyrename completes, it'll still proceed to completion.
Signed-off-by: Jeff Layton <jlayton@redhat.com> Reviewed-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
#
920769f0 |
| 17-Sep-2010 |
Jeff Layton <jlayton@redhat.com> |
nfs: standardize the rename args container
Each NFS version has its own version of the rename args container. Standardize them on a common one that's identical to the one NFSv4 uses.
Signed-off-by:
nfs: standardize the rename args container
Each NFS version has its own version of the rename args container. Standardize them on a common one that's identical to the one NFSv4 uses.
Signed-off-by: Jeff Layton <jlayton@redhat.com> Reviewed-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
#
c0204fd2 |
| 17-Sep-2010 |
Trond Myklebust <Trond.Myklebust@netapp.com> |
NFS: Clean up nfs4_proc_create()
Remove all remaining references to the struct nameidata from the low level NFS layers. Again pass down a partially initialised struct nfs_open_context when we want t
NFS: Clean up nfs4_proc_create()
Remove all remaining references to the struct nameidata from the low level NFS layers. Again pass down a partially initialised struct nfs_open_context when we want to do atomic open+create.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
show more ...
|
Revision tags: v2.6.36-rc4, v2.6.36-rc3, v2.6.36-rc2, v2.6.36-rc1, v2.6.35, v2.6.35-rc6, v2.6.35-rc5, v2.6.35-rc4, v2.6.35-rc3, v2.6.35-rc2, v2.6.35-rc1, v2.6.34, v2.6.34-rc7, v2.6.34-rc6, v2.6.34-rc5 |
|
#
23a30612 |
| 16-Apr-2010 |
Trond Myklebust <Trond.Myklebust@netapp.com> |
NFS: Reduce the stack footprint of nfs_proc_symlink()
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
|