]> Pileus Git - ~andy/linux/blobdiff - fs/nfs/nfs4proc.c
NFSv4.1: Don't trust attributes if a pNFS LAYOUTCOMMIT is outstanding
[~andy/linux] / fs / nfs / nfs4proc.c
index 15052b81df4245e4f797adb0d0b2e523338b23cc..f4908eb40a21e4f82af27f481ba3bea701a88ec3 100644 (file)
@@ -7780,10 +7780,7 @@ nfs4_layoutcommit_done(struct rpc_task *task, void *calldata)
        case -NFS4ERR_BADLAYOUT:     /* no layout */
        case -NFS4ERR_GRACE:        /* loca_recalim always false */
                task->tk_status = 0;
-               break;
        case 0:
-               nfs_post_op_update_inode_force_wcc(data->args.inode,
-                                                  data->res.fattr);
                break;
        default:
                if (nfs4_async_handle_error(task, server, NULL) == -EAGAIN) {
@@ -7798,6 +7795,8 @@ static void nfs4_layoutcommit_release(void *calldata)
        struct nfs4_layoutcommit_data *data = calldata;
 
        pnfs_cleanup_layoutcommit(data);
+       nfs_post_op_update_inode_force_wcc(data->args.inode,
+                                          data->res.fattr);
        put_rpccred(data->cred);
        kfree(data);
 }