summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2016-08-09 05:09:23 -0800
committerKent Overstreet <kent.overstreet@gmail.com>2016-08-09 05:09:23 -0800
commit628e15ca237f7139c54dd824300206138d391e34 (patch)
tree2420e3aeb232b7a362bdc8e018a6b3b2b5f5a2b5
parent885262cd16cc8a0c312f914e25227954cd964c8d (diff)
bcachefs: fsync on overwriting rename
-rw-r--r--drivers/md/bcache/fs.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/md/bcache/fs.c b/drivers/md/bcache/fs.c
index 432b1581c586..1253c1543d90 100644
--- a/drivers/md/bcache/fs.c
+++ b/drivers/md/bcache/fs.c
@@ -455,6 +455,10 @@ static int bch_rename(struct inode *old_dir, struct dentry *old_dentry,
lockdep_assert_held(&old_dir->i_rwsem);
lockdep_assert_held(&new_dir->i_rwsem);
+ if (new_inode)
+ filemap_write_and_wait_range(old_inode->i_mapping,
+ 0, LLONG_MAX);
+
if (new_inode && S_ISDIR(old_inode->i_mode)) {
lockdep_assert_held(&new_inode->i_rwsem);