NFSv4.2: Add client support for the generic 'layouterror' RPC call
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
@@ -538,6 +538,7 @@ enum {
|
||||
NFSPROC4_CLNT_OFFLOAD_CANCEL,
|
||||
|
||||
NFSPROC4_CLNT_LOOKUPP,
|
||||
NFSPROC4_CLNT_LAYOUTERROR,
|
||||
};
|
||||
|
||||
/* nfs41 types */
|
||||
|
@@ -261,5 +261,6 @@ struct nfs_server {
|
||||
#define NFS_CAP_CLONE (1U << 23)
|
||||
#define NFS_CAP_COPY (1U << 24)
|
||||
#define NFS_CAP_OFFLOAD_CANCEL (1U << 25)
|
||||
#define NFS_CAP_LAYOUTERROR (1U << 26)
|
||||
|
||||
#endif
|
||||
|
@@ -383,6 +383,41 @@ struct nfs42_layoutstat_data {
|
||||
struct nfs42_layoutstat_res res;
|
||||
};
|
||||
|
||||
struct nfs42_device_error {
|
||||
struct nfs4_deviceid dev_id;
|
||||
int status;
|
||||
enum nfs_opnum4 opnum;
|
||||
};
|
||||
|
||||
struct nfs42_layout_error {
|
||||
__u64 offset;
|
||||
__u64 length;
|
||||
nfs4_stateid stateid;
|
||||
struct nfs42_device_error errors[1];
|
||||
};
|
||||
|
||||
#define NFS42_LAYOUTERROR_MAX 5
|
||||
|
||||
struct nfs42_layouterror_args {
|
||||
struct nfs4_sequence_args seq_args;
|
||||
struct inode *inode;
|
||||
unsigned int num_errors;
|
||||
struct nfs42_layout_error errors[NFS42_LAYOUTERROR_MAX];
|
||||
};
|
||||
|
||||
struct nfs42_layouterror_res {
|
||||
struct nfs4_sequence_res seq_res;
|
||||
unsigned int num_errors;
|
||||
int rpc_status;
|
||||
};
|
||||
|
||||
struct nfs42_layouterror_data {
|
||||
struct nfs42_layouterror_args args;
|
||||
struct nfs42_layouterror_res res;
|
||||
struct inode *inode;
|
||||
struct pnfs_layout_segment *lseg;
|
||||
};
|
||||
|
||||
struct nfs42_clone_args {
|
||||
struct nfs4_sequence_args seq_args;
|
||||
struct nfs_fh *src_fh;
|
||||
|
Reference in New Issue
Block a user