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:
@ -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;
|
||||
|
Reference in New Issue
Block a user