- 18 Oct, 2011 1 commit
-
-
Peng Tao authored
For pnfs pagelist read failure, we need to pg_recoalesce and resend IO to mds. Signed-off-by:
Peng Tao <peng_tao@emc.com> Signed-off-by:
Jim Rees <rees@umich.edu> Cc: stable@kernel.org [3.0] Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
- 20 Jul, 2011 1 commit
-
-
Al Viro authored
just dentry, please... Signed-off-by:
Al Viro <viro@zeniv.linux.org.uk>
-
- 15 Jul, 2011 6 commits
-
-
Trond Myklebust authored
Use nfs_pageio_reset_read_mds and nfs_pageio_reset_write_mds instead of completely reinitialising the struct nfs_pageio_descriptor. Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Trond Myklebust authored
...and ensure that we recoalese to take into account differences in block sizes when falling back to read through the MDS. Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Trond Myklebust authored
Instead of looking up the rsize and wsize, the routines that generate the RPC requests should really be using the pg_bsize, since that is what we use when deciding whether or not to coalesce write requests... Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Trond Myklebust authored
Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Trond Myklebust authored
...and do the same for nfs_flush_multi/one. Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Peng Tao authored
Signed-off-by:
Peng Tao <peng_tao@emc.com> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
- 12 Jul, 2011 5 commits
-
-
Trond Myklebust authored
Split them up into two parts: one which sets up the struct nfs_read/write_data, the other which sets up the actual RPC call or pNFS call. Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Andy Adamson authored
Ask for whole file layouts. Until support for layout segments is fully supported in the file layout code, discard non-whole file layouts. Signed-off-by:
Andy Adamson <andros@netapp.com> Signed-off-by:
Fred Isaman <iisaman@netapp.com> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Trond Myklebust authored
Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Trond Myklebust authored
Ensure that we always get a layout before setting up the i/o request. Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Trond Myklebust authored
We need to ensure that the layouts are set up before we can decide to coalesce requests. To do so, we want to further split up the struct nfs_pageio_descriptor operations into an initialisation callback, a coalescing test callback, and a 'do i/o' callback. This patch cleans up the existing callback methods before adding the 'initialisation' callback. Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
- 29 May, 2011 2 commits
-
-
Benny Halevy authored
Use common code for pnfs_pageio_init_{read,write} and use a common generic pg_test function. Note that this function always assumes the the layout driver's pg_test method is implemented. [Fix BUG] Signed-off-by:
Boaz Harrosh <bharrosh@panasas.com> Signed-off-by:
Benny Halevy <bhalevy@panasas.com>
-
Benny Halevy authored
Add offset and count parameters to pnfs_update_layout and use them to get the layout in the pageio path. Order cache layout segments in the following order: * offset (ascending) * length (descending) * iomode (RW before READ) Test byte range against the layout segment in use in pnfs_{read,write}_pg_test so not to coalesce pages not using the same layout segment. [fix lseg ordering] [clean up pnfs_find_lseg lseg arg] [remove unnecessary FIXME] [fix ordering in pnfs_insert_layout] [clean up pnfs_insert_layout] Signed-off-by:
Benny Halevy <bhalevy@panasas.com>
-
- 12 May, 2011 1 commit
-
-
Trond Myklebust authored
Currently, writebacks may end up recursing back into the filesystem due to GFP_KERNEL direct reclaims in the pnfs subsystem. Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
- 15 Mar, 2011 1 commit
-
-
Stephen Rothwell authored
Signed-off-by:
Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
- 11 Mar, 2011 7 commits
-
-
Fred Isaman authored
Now that we have access to the pointer, clear it immediately after the put, instead of in caller. Signed-off-by:
Fred Isaman <iisaman@netapp.com> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Fred Isaman authored
This will make it possible to clear the lseg pointer in the same function as it is put, instead of in the caller nfs_pageio_doio(). Signed-off-by:
Fred Isaman <iisaman@netapp.com> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Andy Adamson authored
Use our own async error handler. Mark the layout as failed and retry i/o through the MDS on specified errors. Update the mds_offset in nfs_readpage_retry so that a failed short-read retry to a DS gets correctly resent through the MDS. Signed-off-by:
Andy Adamson <andros@netapp.com> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Andy Adamson authored
Attempt a pNFS file layout read by setting up the nfs_read_data struct and calling nfs_initiate_read with the data server rpc client and the filelayout rpc call ops. Error handling is implemented in a subsequent patch. Signed-off-by:
Andy Adamson <andros@citi.umich.edu> Signed-off-by:
Dean Hildebrand <dhildeb@us.ibm.com> Signed-off-by:
Fred Isaman <iisaman@citi.umich.edu> Signed-off-by:
Fred Isaman <iisaman@netapp.com> Signed-off-by:
Mingyang Guo <guomingyang@nrchpc.ac.cn> Signed-off-by:
Oleg Drokin <green@linuxhacker.ru> Signed-off-by:
Ricardo Labiaga <Ricardo.Labiaga@netapp.com> Tested-by:
Guo Mingyang <guomingyang@nrchpc.ac.cn> Signed-off-by:
Andy Adamson <andros@netapp.com> Signed-off-by:
Benny Halevy <bhalevy@panasas.com> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Andy Adamson authored
Separate the rpc run portion of nfs_read_rpcsetup into a new function nfs_initiate_read that is called for normal NFS I/O. Add a pNFS read_pagelist function that is called instead of nfs_intitate_read for pNFS reads. Signed-off-by:
Andy Adamson <andros@citi.umich.edu> Signed-off-by:
Boaz Harrosh <bharrosh@panasas.com> Signed-off-by:
Dean Hildebrand <dhildeb@us.ibm.com> Signed-off-by:
Fred Isaman <iisaman@citi.umich.edu> Signed-off-by:
Fred Isaman <iisaman@netapp.com> Signed-off-by:
Mike Sager <sager@netapp.com> Signed-off-by:
Mingyang Guo <guomingyang@nrchpc.ac.cn> Signed-off-by:
Ricardo Labiaga <Ricardo.Labiaga@netapp.com> Signed-off-by:
Tao Guo <guotao@nrchpc.ac.cn> Signed-off-by:
Andy Adamson <andros@netapp.com> Signed-off-by:
Benny Halevy <bhalevy@panasas.com> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Fred Isaman authored
Move the pnfs_update_layout call location to nfs_pageio_do_add_request(). Grab the lseg sent in the doio function to nfs_read_rpcsetup and attach it to each nfs_read_data so it can be sent to the layout driver. Signed-off-by:
Andy Adamson <andros@netapp.com> Signed-off-by:
Andy Adamson <andros@citi.umich.edu> Signed-off-by:
Dean Hildebrand <dhildeb@us.ibm.com> Signed-off-by:
Fred Isaman <iisaman@citi.umich.edu> Signed-off-by:
Fred Isaman <iisaman@netapp.com> Signed-off-by:
Benny Halevy <bhalevy@panasas.com> Signed-off-by:
Boaz Harrosh <bharrosh@panasas.com> Signed-off-by:
Oleg Drokin <green@linuxhacker.ru> Signed-off-by:
Tao Guo <guotao@nrchpc.ac.cn> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Fred Isaman authored
Add a pg_test layout driver hook which is used to avoid coelescing I/O across layout stripes. Signed-off-by:
Andy Adamson <andros@netapp.com> Signed-off-by:
Andy Adamson <andros@citi.umich.edu> Signed-off-by:
Dean Hildebrand <dhildeb@us.ibm.com> Signed-off-by:
Fred Isaman <iisaman@citi.umich.edu> Signed-off-by:
Fred Isaman <iisaman@netapp.com> Signed-off-by:
Benny Halevy <bhalevy@panasas.com> Signed-off-by:
Boaz Harrosh <bharrosh@panasas.com> Signed-off-by:
Oleg Drokin <green@linuxhacker.ru> Signed-off-by:
Tao Guo <guotao@nrchpc.ac.cn> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
- 08 Dec, 2010 1 commit
-
-
Trond Myklebust authored
When a nfs_page is freed, nfs_free_request is called which also calls nfs_clear_request to clean out the lock and open contexts and free the pagecache page. However, a couple of places in the nfs code call nfs_clear_request themselves. What happens here if the refcount on the request is still high? We'll be releasing contexts and freeing pointers while the request is possibly still in use. Remove those bare calls to nfs_clear_context. That should only be done when the request is being freed. Note that when doing this, we need to watch out for tests of req->wb_page. Previously, nfs_set_page_tag_locked() and nfs_clear_page_tag_locked() would check the value of req->wb_page to figure out if the page is mapped into the nfsi->nfs_page_tree. We now indicate the page is mapped using the new bit PG_MAPPED in req->wb_flags . Reported-by:
Jeff Layton <jlayton@redhat.com> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
- 24 Oct, 2010 1 commit
-
-
Benny Halevy authored
At the start of the io paths, try to grab the relevant layout information. This will initiate the inode's layout cache, but stubs ensure the cache stays empty. Signed-off-by:
Benny Halevy <bhalevy@panasas.com> Signed-off-by:
Dean Hildebrand <dhildebz@umich.edu> Signed-off-by:
Marc Eshel <eshel@almaden.ibm.com> Signed-off-by:
Tao Guo <guotao@nrchpc.ac.cn> Signed-off-by:
Ricardo Labiaga <ricardo.labiaga@netapp.com> Signed-off-by:
Boaz Harrosh <bharrosh@panasas.com> Signed-off-by:
Andy Adamson <andros@netapp.com> Signed-off-by:
Fred Isaman <iisaman@netapp.com> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
- 24 Sep, 2010 1 commit
-
-
Benny Halevy authored
Having to explicitly initialize sr_slotid to NFS4_MAX_SLOT_TABLE resulted in numerous bugs. Keeping the current slot as a pointer to the slot table is more straight forward and robust as it's implicitly set up to NULL wherever the seq_res member is initialized to zeroes. Signed-off-by:
Benny Halevy <bhalevy@panasas.com> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
- 30 Jul, 2010 1 commit
-
-
Trond Myklebust authored
This patch fixes bugzilla entry 14501: https://bugzilla.kernel.org/show_bug.cgi?id=14501 Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
- 22 Jun, 2010 1 commit
-
-
Trond Myklebust authored
In anticipation of the day when we have per-filesystem sessions, and also in order to allow the session to change in the event of a filesystem migration event. Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
- 14 May, 2010 1 commit
-
-
Trond Myklebust authored
There is no danger of deadlock should the allocation trigger page writeback. Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
- 07 Dec, 2009 1 commit
-
-
Trond Myklebust authored
Also rename it: it is used in generic code, and so should not have a 'nfs4' prefix. Reported-by:
Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
- 06 Dec, 2009 1 commit
-
-
Trond Myklebust authored
We no longer need to maintain a distinction between nfs41_sequence_done and nfs41_sequence_free_slot. This fixes a number of slot table leakages in the NFSv4.1 code. Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
- 04 Dec, 2009 1 commit
-
-
Andy Adamson authored
nfs41_sequence_free_slot can be called multiple times on SEQUENCE operation errors. No reason to inline nfs4_restart_rpc Reported-by:
Trond Myklebust <trond.myklebust@netapp.com> nfs_writeback_done and nfs_readpage_retry call nfs4_restart_rpc outside the error handler, and the slot is not freed prior to restarting in the rpc_prepare state during session reset. Fix this by moving the call to nfs41_sequence_free_slot from the error path of nfs41_sequence_done into nfs4_restart_rpc, and by removing the test for NFS4CLNT_SESSION_SETUP. Always free slot and goto the rpc prepare state on async errors. Signed-off-by:
Andy Adamson <andros@netapp.com> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
- 12 Aug, 2009 1 commit
-
-
Trond Myklebust authored
We can't call nfs_readdata_release()/nfs_writedata_release() without first initialising and referencing args.context. Doing so inside nfs_direct_read_schedule_segment()/nfs_direct_write_schedule_segment() causes an Oops. We should rather be calling nfs_readdata_free()/nfs_writedata_free() in those cases. Looking at the O_DIRECT code, the "struct nfs_direct_req" is already referencing the nfs_open_context for us. Since the readdata and writedata structures carry a reference to that, we can simplify things by getting rid of the extra nfs_open_context references, so that we can replace all instances of nfs_readdata_release()/nfs_writedata_release(). Reported-by:
Catalin Marinas <catalin.marinas@arm.com> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com> Tested-by:
Catalin Marinas <catalin.marinas@arm.com> Cc: stable@kernel.org Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- 12 Jul, 2009 1 commit
-
-
Alexey Dobriyan authored
* Remove smp_lock.h from files which don't need it (including some headers!) * Add smp_lock.h to files which do need it * Make smp_lock.h include conditional in hardirq.h It's needed only for one kernel_locked() usage which is under CONFIG_PREEMPT This will make hardirq.h inclusion cheaper for every PREEMPT=n config (which includes allmodconfig/allyesconfig, BTW) Signed-off-by:
Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- 17 Jun, 2009 3 commits
-
-
Andy Adamson authored
[nfs41: change nfs4_restart_rpc argument] [nfs41: check for session not minorversion] [nfs41: trigger the state manager for session reset] Signed-off-by:
Andy Adamson <andros@netapp.com> Signed-off-by:
Benny Halevy <bhalevy@panasas.com> [always define nfs4_restart_rpc] Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Andy Adamson authored
Implement the read rpc_call_prepare method for asynchronuos nfs rpcs, call nfs41_setup_sequence from respective rpc_call_validate_args methods. Call nfs4_sequence_done from respective rpc_call_done methods. Note that we need to pass a pointer to the nfs_server in calls data for passing on to nfs4_sequence_done. Signed-off-by:
Andy Adamson <andros@netapp.com> Signed-off-by:
Benny Halevy <bhalevy@panasas.com> [pnfs: client data server write validate and release] Signed-off-by:
Andy Adamson <andros@umich.edu> Signed-off-by:
Benny Halevy <bhalevy@panasas.com> [move the nfs4_sequence_free_slot call in nfs_readpage_retry from] [nfs41: separate free slot from sequence done] [remove nfs_readargs.nfs_server, use calldata->inode instead] Signed-off-by:
Andy Adamson <andros@umich.edu> Signed-off-by:
Benny Halevy <bhalevy@panasas.com> [nfs41: Support sessions with O_DIRECT] Signed-off-by:
Dean Hildebrand <dhildeb@us.ibm.com> Signed-off-by:
Benny Halevy <bhalevy@panasas.com> [nfs41: nfs4_sequence_free_slot use nfs_client for data server] Signed-off-by:
Andy Adamson <andros@netapp.com> Signed-off-by:
Benny Halevy <bhalevy@panasas.com> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
Andy Adamson authored
Initialize nfs4_sequence_res sr_slotid to NFS4_MAX_SLOT_TABLE. [was nfs41: sequence res use slotid] Signed-off-by:
Andy Adamson <andros@netapp.com> [pulled definition of struct nfs4_sequence_res.sr_slotid to here] Signed-off-by:
Benny Halevy <bhalevy@panasas.com> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
-
- 03 Apr, 2009 2 commits
-
-
David Howells authored
Store pages from an NFS inode into the cache data storage object associated with that inode. Signed-off-by:
David Howells <dhowells@redhat.com> Acked-by:
Steve Dickson <steved@redhat.com> Acked-by:
Trond Myklebust <Trond.Myklebust@netapp.com> Acked-by:
Al Viro <viro@zeniv.linux.org.uk> Tested-by:
Daire Byrne <Daire.Byrne@framestore.com>
-
David Howells authored
Read pages from an FS-Cache data storage object representing an inode into an NFS inode. Signed-off-by:
David Howells <dhowells@redhat.com> Acked-by:
Steve Dickson <steved@redhat.com> Acked-by:
Trond Myklebust <Trond.Myklebust@netapp.com> Acked-by:
Al Viro <viro@zeniv.linux.org.uk> Tested-by:
Daire Byrne <Daire.Byrne@framestore.com>
-