> @@ -326,6 +326,9 @@ nfs_file_fsync(struct file *file, int datasync) > ret = xchg(&ctx->error, 0); > if (!ret && status < 0) > ret = status; > + if (!ret && !datasync) > + /* application has asked for meta-data sync */ > + ret = pnfs_layoutcommit_inode(inode, 1); I don't think that is correct. AFAIK the layoutcommit is needed to get back to the data after a crash - basically the only thing a !datasync fsync can skip is dirty timestamps. > int nfs_write_inode(struct inode *inode, struct writeback_control *wbc) > { > - return nfs_commit_unstable_pages(inode, wbc); > + int ret; > + > + ret = nfs_commit_unstable_pages(inode, wbc); > + if (ret >= 0 && test_bit(NFS_INO_LAYOUTCOMMIT, &NFS_I(inode)->flags)) { > + int status, sync = wbc->sync_mode; > + > + if (wbc->nonblocking || wbc->for_background) > + sync = 0; incorrect indentation. -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html