]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - fs/nfs/write.c
nfs: close NFSv4 COMMIT vs. CLOSE race
[mv-sheeva.git] / fs / nfs / write.c
index 10d648ea128bf6345df70da0e15ee8ce443ab8e6..42b92d7a9cc4ed7569c6115997a455816f3f09ac 100644 (file)
@@ -932,7 +932,7 @@ out_bad:
        while (!list_empty(&list)) {
                data = list_entry(list.next, struct nfs_write_data, pages);
                list_del(&data->pages);
-               nfs_writedata_release(data);
+               nfs_writedata_free(data);
        }
        nfs_redirty_request(req);
        return -ENOMEM;
@@ -1292,6 +1292,8 @@ static int nfs_commit_rpcsetup(struct list_head *head,
        task = rpc_run_task(&task_setup_data);
        if (IS_ERR(task))
                return PTR_ERR(task);
+       if (how & FLUSH_SYNC)
+               rpc_wait_for_completion_task(task);
        rpc_put_task(task);
        return 0;
 }