diff options
author | Sage Weil <sage@newdream.net> | 2009-02-18 14:20:05 -0800 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2009-02-18 14:20:05 -0800 |
commit | 0f05de942d39b213aa3b7390cf2f2497edfe8c25 (patch) | |
tree | 5549629806643ae3e4dd1499052b532fe836ec12 | |
parent | 94c5031e6d264dce2efc43d264349b9527ea802f (diff) | |
download | ceph-0f05de942d39b213aa3b7390cf2f2497edfe8c25.tar.gz |
kclient: set 'sync' flag for fsync
This will ensure that fsynced data is committed immediately by the
OSDs.
-rw-r--r-- | src/kernel/file.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/kernel/file.c b/src/kernel/file.c index dafe2a49140..41bfff5ddb4 100644 --- a/src/kernel/file.c +++ b/src/kernel/file.c @@ -430,10 +430,13 @@ out: static int ceph_fsync(struct file *file, struct dentry *dentry, int datasync) { struct inode *inode = dentry->d_inode; + struct ceph_inode_info *ci = ceph_inode(inode); int ret; dout(10, "fsync on inode %p\n", inode); + atomic_inc(&ci->i_want_sync_writeout); ret = write_inode_now(inode, 1); + atomic_dec(&ci->i_want_sync_writeout); if (ret < 0) return ret; /* |