pRwJkgsFXv6HglftK1BqH changeset

Changeset346266326530 (b)
ParentNone (a)
ab
0+diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
0+index 4129de5..f2071e82 100644
0+--- a/fs/btrfs/file.c
0++++ b/fs/btrfs/file.c
0+@@ -1960,6 +1960,7 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
0+                return ret;
0+ 
0+        inode_lock(inode);
0++       inode_dio_wait(inode);
0+        atomic_inc(&root->log_batch);
0+        full_sync = test_bit(BTRFS_INODE_NEEDS_FULL_SYNC,
0+                             &BTRFS_I(inode)->runtime_flags);
0+diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
0+index 7f3a080..c1c04b7 100644
0+--- a/fs/btrfs/tree-log.c
0++++ b/fs/btrfs/tree-log.c
0+@@ -4149,7 +4149,7 @@ static int btrfs_log_changed_extents(struct btrfs_trans_handle *trans,
0+ 
0+        INIT_LIST_HEAD(&extents);
0+ 
0+-       down_write(&BTRFS_I(inode)->dio_sem);
0++       /* down_write(&BTRFS_I(inode)->dio_sem); */
0+        write_lock(&tree->lock);
0+        test_gen = root->fs_info->last_trans_committed;
0+ 
0+@@ -4218,7 +4218,7 @@ process:
0+        }
0+        WARN_ON(!list_empty(&extents));
0+        write_unlock(&tree->lock);
0+-       up_write(&BTRFS_I(inode)->dio_sem);
0++       /* up_write(&BTRFS_I(inode)->dio_sem); */
0+ 
0+        btrfs_release_path(path);
0+        return ret;
...
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
35
36
37
--- Revision None
+++ Revision 346266326530
@@ -0,0 +1,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;