Revision 346266326530 () - Diff

Link to this snippet: https://friendpaste.com/pRwJkgsFXv6HglftK1BqH
Embed:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 4129de5..f2071e82 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -1960,6 +1960,7 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
return ret;
inode_lock(inode);
+ inode_dio_wait(inode);
atomic_inc(&root->log_batch);
full_sync = test_bit(BTRFS_INODE_NEEDS_FULL_SYNC,
&BTRFS_I(inode)->runtime_flags);
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index 7f3a080..c1c04b7 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -4149,7 +4149,7 @@ static int btrfs_log_changed_extents(struct btrfs_trans_handle *trans,
INIT_LIST_HEAD(&extents);
- down_write(&BTRFS_I(inode)->dio_sem);
+ /* down_write(&BTRFS_I(inode)->dio_sem); */
write_lock(&tree->lock);
test_gen = root->fs_info->last_trans_committed;
@@ -4218,7 +4218,7 @@ process:
}
WARN_ON(!list_empty(&extents));
write_unlock(&tree->lock);
- up_write(&BTRFS_I(inode)->dio_sem);
+ /* up_write(&BTRFS_I(inode)->dio_sem); */
btrfs_release_path(path);
return ret;