summaryrefslogtreecommitdiffstats
path: root/fs/nfs/pnfs.h
diff options
context:
space:
mode:
authorAndy Adamson <andros@netapp.com>2012-04-27 23:53:46 +0200
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-05-19 23:54:20 +0200
commite7dd79af01e7ca932c5168a708e77750659f7a9e (patch)
treedfacd16bce6df877ecae697cd7dbf5f8e0561872 /fs/nfs/pnfs.h
parentNFSv4.1 data server timeo and retrans module parameters (diff)
downloadlinux-e7dd79af01e7ca932c5168a708e77750659f7a9e.tar.xz
linux-e7dd79af01e7ca932c5168a708e77750659f7a9e.zip
NFSv4.1: mark deviceid invalid on filelayout DS connection errors
This prevents the use of any layout for i/o that references the deviceid. I/O is redirected through the MDS. Redirect the unhandled failed I/O to the MDS without marking either the layout or the deviceid invalid. Signed-off-by: Andy Adamson <andros@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to '')
-rw-r--r--fs/nfs/pnfs.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h
index f20054b592b6..9cf9ede8cc52 100644
--- a/fs/nfs/pnfs.h
+++ b/fs/nfs/pnfs.h
@@ -222,6 +222,10 @@ struct pnfs_layout_segment *pnfs_update_layout(struct inode *ino,
gfp_t gfp_flags);
void nfs4_deviceid_mark_client_invalid(struct nfs_client *clp);
+int pnfs_read_done_resend_to_mds(struct inode *inode, struct list_head *head,
+ const struct nfs_pgio_completion_ops *compl_ops);
+int pnfs_write_done_resend_to_mds(struct inode *inode, struct list_head *head,
+ const struct nfs_pgio_completion_ops *compl_ops);
/* nfs4_deviceid_flags */
enum {