diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-21 17:12:58 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-21 17:12:58 -0400 |
| commit | ccc5ff94c66e628d3c501b26ace5d4339667715d (patch) | |
| tree | 41ca2f1552864cc86bd5735c1b05d0de2898bb05 /fs/btrfs/file.c | |
| parent | c19c6c32dcccfc89216bd579c0cb12d2dd45098f (diff) | |
| parent | 546888da82082555a56528730a83f0afd12f33bf (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable
* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
Btrfs: fix btrfs fallocate oops and deadlock
Btrfs: use the right node in reada_for_balance
Btrfs: fix oops on page->mapping->host during writepage
Btrfs: add a priority queue to the async thread helpers
Btrfs: use WRITE_SYNC for synchronous writes
Diffstat (limited to 'fs/btrfs/file.c')
| -rw-r--r-- | fs/btrfs/file.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 9c9fb46ccd0..482f8db2cfd 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c | |||
| @@ -830,7 +830,7 @@ again: | |||
| 830 | 830 | ||
| 831 | ret = btrfs_del_items(trans, root, path, del_slot, del_nr); | 831 | ret = btrfs_del_items(trans, root, path, del_slot, del_nr); |
| 832 | BUG_ON(ret); | 832 | BUG_ON(ret); |
| 833 | goto done; | 833 | goto release; |
| 834 | } else if (split == start) { | 834 | } else if (split == start) { |
| 835 | if (locked_end < extent_end) { | 835 | if (locked_end < extent_end) { |
| 836 | ret = try_lock_extent(&BTRFS_I(inode)->io_tree, | 836 | ret = try_lock_extent(&BTRFS_I(inode)->io_tree, |
| @@ -926,6 +926,8 @@ again: | |||
| 926 | } | 926 | } |
| 927 | done: | 927 | done: |
| 928 | btrfs_mark_buffer_dirty(leaf); | 928 | btrfs_mark_buffer_dirty(leaf); |
| 929 | |||
| 930 | release: | ||
| 929 | btrfs_release_path(root, path); | 931 | btrfs_release_path(root, path); |
| 930 | if (split_end && split == start) { | 932 | if (split_end && split == start) { |
| 931 | split = end; | 933 | split = end; |
| @@ -1131,7 +1133,7 @@ static ssize_t btrfs_file_write(struct file *file, const char __user *buf, | |||
| 1131 | if (will_write) { | 1133 | if (will_write) { |
| 1132 | btrfs_fdatawrite_range(inode->i_mapping, pos, | 1134 | btrfs_fdatawrite_range(inode->i_mapping, pos, |
| 1133 | pos + write_bytes - 1, | 1135 | pos + write_bytes - 1, |
| 1134 | WB_SYNC_NONE); | 1136 | WB_SYNC_ALL); |
| 1135 | } else { | 1137 | } else { |
| 1136 | balance_dirty_pages_ratelimited_nr(inode->i_mapping, | 1138 | balance_dirty_pages_ratelimited_nr(inode->i_mapping, |
| 1137 | num_pages); | 1139 | num_pages); |
