recovery: operations take stateid_arg instead of stateid4

operations that require a stateid now take stateid_arg for recovery information.  these operations include close, setattr, lock/unlock, layoutget, and read/write (including pnfs)

nfs41_open_stateid_arg() locks nfs41_open_state and copies its stateid into a stateid_arg
nfs41_lock_stateid_arg() locks nfs41_open_state.last_lock and copies its stateid into a stateid_arg; if there is no lock state, it falls back to nfs41_open_stateid_arg()

pnfs_read/write() now take nfs41_open_state so they can generate stateid_args

Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
This commit is contained in:
Casey Bodley 2010-11-15 14:59:49 -05:00 committed by unknown
parent d59d17c3b4
commit 3ecd38e414
12 changed files with 205 additions and 227 deletions

View file

@ -194,8 +194,7 @@ typedef struct __pnfs_layout_recall {
typedef struct __pnfs_io_pattern {
struct __pnfs_io_thread *threads;
struct __nfs41_root *root;
nfs41_path_fh *meta_file;
stateid4 stateid;
struct __nfs41_open_state *state;
pnfs_file_layout *layout;
unsigned char *buffer;
uint64_t offset_start;
@ -330,8 +329,7 @@ __inline uint32_t data_server_index(
enum pnfs_status pnfs_read(
IN struct __nfs41_root *root,
IN struct __nfs41_session *session,
IN nfs41_path_fh *file,
IN stateid4 *stateid,
IN struct __nfs41_open_state *state,
IN pnfs_file_layout *layout,
IN uint64_t offset,
IN uint64_t length,
@ -341,8 +339,7 @@ enum pnfs_status pnfs_read(
enum pnfs_status pnfs_write(
IN struct __nfs41_root *root,
IN struct __nfs41_session *session,
IN nfs41_path_fh *file,
IN stateid4 *stateid,
IN struct __nfs41_open_state *state,
IN pnfs_file_layout *layout,
IN uint64_t offset,
IN uint64_t length,