aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ordered-data.c
diff options
context:
space:
mode:
authorJeff Mahoney <jeffm@suse.com>2016-06-22 18:54:23 -0400
committerDavid Sterba <dsterba@suse.com>2016-12-06 10:06:59 -0500
commit0b246afa62b0cf5b09d078121f543135f28492ad (patch)
tree200ad296d09f1b2f5329658c8de81bc625007ace /fs/btrfs/ordered-data.c
parent6202df6921494f29308307e0ae6f567c2ab2ba19 (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.c34
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)
588void btrfs_remove_ordered_extent(struct inode *inode, 589void 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)
664int btrfs_wait_ordered_extents(struct btrfs_root *root, int nr, 666int 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);