diff options
author | Jeff Mahoney <jeffm@suse.com> | 2016-06-22 18:54:23 -0400 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2016-12-06 10:06:59 -0500 |
commit | 0b246afa62b0cf5b09d078121f543135f28492ad (patch) | |
tree | 200ad296d09f1b2f5329658c8de81bc625007ace /fs/btrfs/ordered-data.c | |
parent | 6202df6921494f29308307e0ae6f567c2ab2ba19 (diff) |
btrfs: root->fs_info cleanup, add fs_info convenience variables
In routines where someptr->fs_info is referenced multiple times, we
introduce a convenience variable. This makes the code considerably
more readable.
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/ordered-data.c')
-rw-r--r-- | fs/btrfs/ordered-data.c | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/fs/btrfs/ordered-data.c b/fs/btrfs/ordered-data.c index 763bdfca4c2b..041c3326d109 100644 --- a/fs/btrfs/ordered-data.c +++ b/fs/btrfs/ordered-data.c | |||
@@ -186,6 +186,7 @@ static int __btrfs_add_ordered_extent(struct inode *inode, u64 file_offset, | |||
186 | u64 start, u64 len, u64 disk_len, | 186 | u64 start, u64 len, u64 disk_len, |
187 | int type, int dio, int compress_type) | 187 | int type, int dio, int compress_type) |
188 | { | 188 | { |
189 | struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); | ||
189 | struct btrfs_root *root = BTRFS_I(inode)->root; | 190 | struct btrfs_root *root = BTRFS_I(inode)->root; |
190 | struct btrfs_ordered_inode_tree *tree; | 191 | struct btrfs_ordered_inode_tree *tree; |
191 | struct rb_node *node; | 192 | struct rb_node *node; |
@@ -234,11 +235,10 @@ static int __btrfs_add_ordered_extent(struct inode *inode, u64 file_offset, | |||
234 | &root->ordered_extents); | 235 | &root->ordered_extents); |
235 | root->nr_ordered_extents++; | 236 | root->nr_ordered_extents++; |
236 | if (root->nr_ordered_extents == 1) { | 237 | if (root->nr_ordered_extents == 1) { |
237 | spin_lock(&root->fs_info->ordered_root_lock); | 238 | spin_lock(&fs_info->ordered_root_lock); |
238 | BUG_ON(!list_empty(&root->ordered_root)); | 239 | BUG_ON(!list_empty(&root->ordered_root)); |
239 | list_add_tail(&root->ordered_root, | 240 | list_add_tail(&root->ordered_root, &fs_info->ordered_roots); |
240 | &root->fs_info->ordered_roots); | 241 | spin_unlock(&fs_info->ordered_root_lock); |
241 | spin_unlock(&root->fs_info->ordered_root_lock); | ||
242 | } | 242 | } |
243 | spin_unlock(&root->ordered_extent_lock); | 243 | spin_unlock(&root->ordered_extent_lock); |
244 | 244 | ||
@@ -303,6 +303,7 @@ int btrfs_dec_test_first_ordered_pending(struct inode *inode, | |||
303 | struct btrfs_ordered_extent **cached, | 303 | struct btrfs_ordered_extent **cached, |
304 | u64 *file_offset, u64 io_size, int uptodate) | 304 | u64 *file_offset, u64 io_size, int uptodate) |
305 | { | 305 | { |
306 | struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); | ||
306 | struct btrfs_ordered_inode_tree *tree; | 307 | struct btrfs_ordered_inode_tree *tree; |
307 | struct rb_node *node; | 308 | struct rb_node *node; |
308 | struct btrfs_ordered_extent *entry = NULL; | 309 | struct btrfs_ordered_extent *entry = NULL; |
@@ -331,14 +332,14 @@ int btrfs_dec_test_first_ordered_pending(struct inode *inode, | |||
331 | entry->len); | 332 | entry->len); |
332 | *file_offset = dec_end; | 333 | *file_offset = dec_end; |
333 | if (dec_start > dec_end) { | 334 | if (dec_start > dec_end) { |
334 | btrfs_crit(BTRFS_I(inode)->root->fs_info, | 335 | btrfs_crit(fs_info, "bad ordering dec_start %llu end %llu", |
335 | "bad ordering dec_start %llu end %llu", dec_start, dec_end); | 336 | dec_start, dec_end); |
336 | } | 337 | } |
337 | to_dec = dec_end - dec_start; | 338 | to_dec = dec_end - dec_start; |
338 | if (to_dec > entry->bytes_left) { | 339 | if (to_dec > entry->bytes_left) { |
339 | btrfs_crit(BTRFS_I(inode)->root->fs_info, | 340 | btrfs_crit(fs_info, |
340 | "bad ordered accounting left %llu size %llu", | 341 | "bad ordered accounting left %llu size %llu", |
341 | entry->bytes_left, to_dec); | 342 | entry->bytes_left, to_dec); |
342 | } | 343 | } |
343 | entry->bytes_left -= to_dec; | 344 | entry->bytes_left -= to_dec; |
344 | if (!uptodate) | 345 | if (!uptodate) |
@@ -588,6 +589,7 @@ void btrfs_put_ordered_extent(struct btrfs_ordered_extent *entry) | |||
588 | void btrfs_remove_ordered_extent(struct inode *inode, | 589 | void btrfs_remove_ordered_extent(struct inode *inode, |
589 | struct btrfs_ordered_extent *entry) | 590 | struct btrfs_ordered_extent *entry) |
590 | { | 591 | { |
592 | struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); | ||
591 | struct btrfs_ordered_inode_tree *tree; | 593 | struct btrfs_ordered_inode_tree *tree; |
592 | struct btrfs_root *root = BTRFS_I(inode)->root; | 594 | struct btrfs_root *root = BTRFS_I(inode)->root; |
593 | struct rb_node *node; | 595 | struct rb_node *node; |
@@ -618,11 +620,11 @@ void btrfs_remove_ordered_extent(struct inode *inode, | |||
618 | * lock, so be nice and check if trans is set, but ASSERT() so | 620 | * lock, so be nice and check if trans is set, but ASSERT() so |
619 | * if it isn't set a developer will notice. | 621 | * if it isn't set a developer will notice. |
620 | */ | 622 | */ |
621 | spin_lock(&root->fs_info->trans_lock); | 623 | spin_lock(&fs_info->trans_lock); |
622 | trans = root->fs_info->running_transaction; | 624 | trans = fs_info->running_transaction; |
623 | if (trans) | 625 | if (trans) |
624 | atomic_inc(&trans->use_count); | 626 | atomic_inc(&trans->use_count); |
625 | spin_unlock(&root->fs_info->trans_lock); | 627 | spin_unlock(&fs_info->trans_lock); |
626 | 628 | ||
627 | ASSERT(trans); | 629 | ASSERT(trans); |
628 | if (trans) { | 630 | if (trans) { |
@@ -639,10 +641,10 @@ void btrfs_remove_ordered_extent(struct inode *inode, | |||
639 | trace_btrfs_ordered_extent_remove(inode, entry); | 641 | trace_btrfs_ordered_extent_remove(inode, entry); |
640 | 642 | ||
641 | if (!root->nr_ordered_extents) { | 643 | if (!root->nr_ordered_extents) { |
642 | spin_lock(&root->fs_info->ordered_root_lock); | 644 | spin_lock(&fs_info->ordered_root_lock); |
643 | BUG_ON(list_empty(&root->ordered_root)); | 645 | BUG_ON(list_empty(&root->ordered_root)); |
644 | list_del_init(&root->ordered_root); | 646 | list_del_init(&root->ordered_root); |
645 | spin_unlock(&root->fs_info->ordered_root_lock); | 647 | spin_unlock(&fs_info->ordered_root_lock); |
646 | } | 648 | } |
647 | spin_unlock(&root->ordered_extent_lock); | 649 | spin_unlock(&root->ordered_extent_lock); |
648 | wake_up(&entry->wait); | 650 | wake_up(&entry->wait); |
@@ -664,6 +666,7 @@ static void btrfs_run_ordered_extent_work(struct btrfs_work *work) | |||
664 | int btrfs_wait_ordered_extents(struct btrfs_root *root, int nr, | 666 | int btrfs_wait_ordered_extents(struct btrfs_root *root, int nr, |
665 | const u64 range_start, const u64 range_len) | 667 | const u64 range_start, const u64 range_len) |
666 | { | 668 | { |
669 | struct btrfs_fs_info *fs_info = root->fs_info; | ||
667 | LIST_HEAD(splice); | 670 | LIST_HEAD(splice); |
668 | LIST_HEAD(skipped); | 671 | LIST_HEAD(skipped); |
669 | LIST_HEAD(works); | 672 | LIST_HEAD(works); |
@@ -694,8 +697,7 @@ int btrfs_wait_ordered_extents(struct btrfs_root *root, int nr, | |||
694 | btrfs_flush_delalloc_helper, | 697 | btrfs_flush_delalloc_helper, |
695 | btrfs_run_ordered_extent_work, NULL, NULL); | 698 | btrfs_run_ordered_extent_work, NULL, NULL); |
696 | list_add_tail(&ordered->work_list, &works); | 699 | list_add_tail(&ordered->work_list, &works); |
697 | btrfs_queue_work(root->fs_info->flush_workers, | 700 | btrfs_queue_work(fs_info->flush_workers, &ordered->flush_work); |
698 | &ordered->flush_work); | ||
699 | 701 | ||
700 | cond_resched(); | 702 | cond_resched(); |
701 | spin_lock(&root->ordered_extent_lock); | 703 | spin_lock(&root->ordered_extent_lock); |