If we get an ESTALE error in response to an RPC call operating on the
file on the MDS, we should immediately cancel the layout for that file.
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
        switch (task->tk_status) {
        case 0:
                break;
+       case -NFS4ERR_BADHANDLE:
+       case -ESTALE:
+               pnfs_destroy_layout(NFS_I(inode));
+               break;
        case -NFS4ERR_EXPIRED:
        case -NFS4ERR_ADMIN_REVOKED:
        case -NFS4ERR_DELEG_REVOKED:
 
        switch(errorcode) {
                case 0:
                        return 0;
+               case -NFS4ERR_BADHANDLE:
+               case -ESTALE:
+                       if (inode != NULL && S_ISREG(inode->i_mode))
+                               pnfs_destroy_layout(NFS_I(inode));
+                       break;
                case -NFS4ERR_DELEG_REVOKED:
                case -NFS4ERR_ADMIN_REVOKED:
                case -NFS4ERR_EXPIRED: