NFS/flexfiles: Send LAYOUTERROR when failing over mirrored reads
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Mon, 11 Feb 2019 03:38:43 +0000 (22:38 -0500)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Sat, 2 Mar 2019 03:37:37 +0000 (22:37 -0500)
commitf0922a6c0cdb928d21c2599f9671206237e7e505
treeb92dd290a1e68aeb69f07082299260418f194810
parent3eb86093ea400c58f444eac0debcf6c50d617418
NFS/flexfiles: Send LAYOUTERROR when failing over mirrored reads

When a read to the preferred mirror returns an error, the flexfiles
driver records the error in the inode list and currently marks the
layout for return before failing over the attempted read to the next
mirror.
What we actually want to do is fire off a LAYOUTERROR to notify the
MDS that there is an issue with the preferred mirror, then we fail
over. Only once we've failed to read from all mirrors should we
return the layout.

Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/flexfilelayout/flexfilelayout.c
fs/nfs/flexfilelayout/flexfilelayout.h
fs/nfs/flexfilelayout/flexfilelayoutdev.c