a | b | |
---|
| 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; |
---|
... | |
---|