Weston Andros Adamson
35124a0994
Cleanup XDR parsing for LAYOUTGET, GETDEVICEINFO
...
changes LAYOUTGET and GETDEVICEINFO XDR parsing to:
- not use vmap, which doesn't work on incoherent archs
- use xdr_stream parsing for all xdr
Signed-off-by: Weston Andros Adamson <dros@netapp.com >
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com >
2011-03-24 17:01:41 -04:00
Fred Isaman
cccb4d063b
NFSv4.1 remove temp code that prevented ds commits
...
Now that all the infrastructure is in place, we will do the
right thing if we remove this special casing.
Signed-off-by: Fred Isaman <iisaman@netapp.com >
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com >
2011-03-23 15:29:04 -04:00
Andy Adamson
863a3c6c68
NFSv4.1: layoutcommit
...
The filelayout driver sends LAYOUTCOMMIT only when COMMIT goes to
the data server (as opposed to the MDS) and the data server WRITE
is not NFS_FILE_SYNC.
Only whole file layout support means that there is only one IOMODE_RW layout
segment.
Signed-off-by: Andy Adamson <andros@netapp.com >
Signed-off-by: Alexandros Batsakis <batsakis@netapp.com >
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: Mingyang Guo <guomingyang@nrchpc.ac.cn >
Signed-off-by: Tao Guo <guotao@nrchpc.ac.cn >
Signed-off-by: Zhang Jingwang <zhangjingwang@nrchpc.ac.cn >
Tested-by: Boaz Harrosh <bharrosh@panasas.com >
Signed-off-by: Benny Halevy <bhalevy@panasas.com >
Signed-off-by: Fred Isaman <iisaman@netapp.com >
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com >
2011-03-23 15:29:04 -04:00
Fred Isaman
e0c2b38018
NFSv4.1: filelayout driver specific code for COMMIT
...
Implement all the hooks created in the previous patches.
This requires exporting quite a few functions and adding a few
structure fields.
Signed-off-by: Fred Isaman <iisaman@netapp.com >
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com >
2011-03-23 15:29:04 -04:00
Fred Isaman
425eb736cd
NFSv4.1: alloc and free commit_buckets
...
Create a preallocated list header to hold nfs_pages for each
non-MDS COMMIT destination. Note this is not necessarily each DS,
but is basically each <DS, fh> pair.
Signed-off-by: Fred Isaman <iisaman@netapp.com >
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com >
2011-03-23 15:29:03 -04:00
Fred Isaman
c879513e91
NFSv4.1: shift filelayout_free_lseg
...
Move it up to avoid forward declaration in later patch.
Signed-off-by: Fred Isaman <iisaman@netapp.com >
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com >
2011-03-23 15:29:03 -04:00
Benny Halevy
75247affd7
NFSv4.1: reject zero layout with zeroed stripe unit
...
Allowing stripe_unit==0 causes the client to crash later on
when dividing by zero.
Reported-by: Marc Eshel <eshel@almaden.ibm.com >
Signed-off-by: Benny Halevy <bhalevy@panasas.com >
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com >
2011-03-11 15:38:45 -05:00
Fred Isaman
a69aef1496
NFSv4.1: pnfs filelayout driver write
...
Allows the pnfs filelayout driver to write to the data servers.
Note that COMMIT to data servers will be implemented in a future
patch. To avoid improper behavior, for the moment any WRITE to a data
server that would also require a COMMIT to the data server is sent
NFS_FILE_SYNC.
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: Mingyang Guo <guomingyang@nrchpc.ac.cn >
Signed-off-by: Oleg Drokin <green@linuxhacker.ru >
Signed-off-by: Ricardo Labiaga <Ricardo.Labiaga@netapp.com >
Signed-off-by: Andy Adamson <andros@netapp.com >
Signed-off-by: Benny Halevy <bhalevy@panasas.com >
Signed-off-by: Fred Isaman <iisaman@netapp.com >
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com >
2011-03-11 15:38:44 -05:00
Andy Adamson
0382b74409
NFSv4.1: implement generic pnfs layer write switch
...
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: J. Bruce Fields <bfields@fieldses.org >
Signed-off-by: Mike Sager <sager@netapp.com >
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: Fred Isaman <iisaman@netapp.com >
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com >
2011-03-11 15:38:44 -05:00
Andy Adamson
568e8c494d
NFSv4.1: turn off pNFS on ds connection failure
...
If a data server is unavailable, go through MDS.
Mark the deviceid containing the data server as a negative cache entry.
Do not try to connect to any data server on a deviceid marked as a negative
cache entry. Mark any layout that tries to use the marked deviceid as failed.
Inodes with a layout marked as fails will not use the layout for I/O, and will
not perform any more layoutgets.
Inodes without a layout will still do layoutget, but the layout will get
marked immediately.
Signed-off-by: Andy Adamson <andros@netapp.com >
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com >
2011-03-11 15:38:43 -05:00
Christoph Hellwig
ea8eecdd11
NFSv4.1 move deviceid cache to filelayout driver
...
No need for generic cache with only one user.
Keep a simple hash of deviceids in the filelayout driver.
Signed-off-by: Christoph Hellwig <hch@infradead.org >
Acked-by: Andy Adamson <andros@netapp.com >
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com >
2011-03-11 15:38:43 -05:00
Andy Adamson
cbdabc7f8b
NFSv4.1: filelayout async error handler
...
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 >
2011-03-11 15:38:43 -05:00
Andy Adamson
dc70d7b318
NFSv4.1: filelayout read
...
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 >
2011-03-11 15:38:43 -05:00
Fred Isaman
cfe7f4120f
NFSv4.1: filelayout i/o helpers
...
Prepare for filelayout_read_pagelist with helper functions that find the correct
data server, filehandle, and offset.
Signed-off-by: Andy Adamson <andros@citi.umich.edu >
Signed-off-by: Dean Hildebrand <dhildeb@us.ibm.com >
Signed-off-by: Fred Isaman <iisaman@netapp.com >
Signed-off-by: Marc Eshel <eshel@almaden.ibm.com >
Signed-off-by: Mike Sager <sager@netapp.com >
Signed-off-by: Oleg Drokin <green@linuxhacker.ru >
Signed-off-by: Tao Guo <guotao@nrchpc.ac.cn >
Signed-off-by: Tigran Mkrtchyan <tigran@anahit.desy.de >
Signed-off-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de >
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 >
2011-03-11 15:38:42 -05:00
Fred Isaman
94ad1c80e2
NFSv4.1: coelesce across layout stripes
...
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 >
2011-03-11 15:38:42 -05:00
Fred Isaman
b7edfaa198
pnfs: add prefix to struct pnfs_layout_hdr fields
...
Signed-off-by: Fred Isaman <iisaman@netapp.com >
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com >
2011-01-06 14:46:31 -05:00
Fred Isaman
566052c53b
pnfs: add prefix to struct pnfs_layout_segment fields
...
While we are renaming all the fields, change lo->state to lo->plh_flags.
Signed-off-by: Fred Isaman <iisaman@netapp.com >
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com >
2011-01-06 14:46:31 -05:00
Trond Myklebust
1c787096fc
NFSv4.1: Use more sensible names for 'initialize_mountpoint'
...
The initialize_mountpoint/uninitialise_mountpoint functions are really about
setting or clearing the layout driver to be used on this filesystem. Change
the names to the more descriptive 'set_layoutdriver/clear_layoutdriver'.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com >
2010-10-24 18:07:11 -04:00
Andy Adamson
16b374ca43
NFSv4.1: pnfs: filelayout: add driver's LAYOUTGET and GETDEVICEINFO infrastructure
...
Implement the driver's io_ops->alloc_lseg and free_lseg functions,
which integrate into the deviceid cache and calls out to
nfs4_proc_getdeviceinfo when necessary.
Signed-off-by: Andy Adamson <andros@netapp.com >
Signed-off-by: Dean Hildebrand <dhildebz@umich.edu >
Signed-off-by: Marc Eshel <eshel@almaden.ibm.com >
Signed-off-by: Mike Sager <sager@netapp.com >
Signed-off-by: Oleg Drokin <green@linuxhacker.ru >
Signed-off-by: Ricardo Labiaga <ricardo.labiaga@netapp.com >
Signed-off-by: Tao Guo <guotao@nrchpc.ac.cn >
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com >
Signed-off-by: Fred Isaman <iisaman@netapp.com >
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com >
2010-10-24 18:07:11 -04:00
Dean Hildebrand
7ab672ce31
NFSv4.1: pnfs: filelayout: introduce minimal file layout driver
...
This driver just registers itself and supplies trivial mount/umount functions.
Signed-off-by: Dean Hildebrand <dhildebz@umich.edu >
Signed-off-by: Marc Eshel <eshel@almaden.ibm.com >
Signed-off-by: Benny Halevy <bhalevy@panasas.com >
Signed-off-by: Fred Isaman <iisaman@netapp.com >
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com >
2010-10-24 18:07:10 -04:00