NFSv4.1/pnfs: Separate out metadata and data consistency for pNFS

The LAYOUTCOMMIT operation means different things to different layout types.
For blocks and objects, it is both a data and metadata consistency operation.
For files and flexfiles, it is only a metadata consistency operation.

This patch separates out the 2 cases, allowing the files/flexfiles layout
drivers to optimise away the data consistency calls to layoutcommit.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
Trond Myklebust
2015-03-25 14:14:42 -04:00
parent 7140171ea9
commit 5bb89b4702
9 changed files with 47 additions and 8 deletions

View File

@ -1840,17 +1840,16 @@ EXPORT_SYMBOL_GPL(nfs_write_inode);
*/
int nfs_wb_all(struct inode *inode)
{
struct writeback_control wbc = {
.sync_mode = WB_SYNC_ALL,
.nr_to_write = LONG_MAX,
.range_start = 0,
.range_end = LLONG_MAX,
};
int ret;
trace_nfs_writeback_inode_enter(inode);
ret = sync_inode(inode, &wbc);
ret = filemap_write_and_wait(inode->i_mapping);
if (!ret) {
ret = nfs_commit_inode(inode, FLUSH_SYNC);
if (!ret)
pnfs_sync_inode(inode, true);
}
trace_nfs_writeback_inode_exit(inode, ret);
return ret;