Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs

Pull btrfs updates from Chris Mason:
"I have two additional and btrfs fixes in my for-linus branch. One is
a casting error that leads to memory corruption on i386 during scrub,
and the other fixes a corner case in the backref walking code (also
triggered by scrub)."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
Btrfs: fix casting error in scrub reada code
btrfs: fix locking issues in find_parent_nodes()

+7 -3
+6 -2
fs/btrfs/backref.c
··· 583 583 struct btrfs_path *path; 584 584 struct btrfs_key info_key = { 0 }; 585 585 struct btrfs_delayed_ref_root *delayed_refs = NULL; 586 - struct btrfs_delayed_ref_head *head = NULL; 586 + struct btrfs_delayed_ref_head *head; 587 587 int info_level = 0; 588 588 int ret; 589 589 struct list_head prefs_delayed; ··· 607 607 * at a specified point in time 608 608 */ 609 609 again: 610 + head = NULL; 611 + 610 612 ret = btrfs_search_slot(trans, fs_info->extent_root, &key, path, 0, 0); 611 613 if (ret < 0) 612 614 goto out; ··· 637 635 goto again; 638 636 } 639 637 ret = __add_delayed_refs(head, seq, &info_key, &prefs_delayed); 640 - if (ret) 638 + if (ret) { 639 + spin_unlock(&delayed_refs->lock); 641 640 goto out; 641 + } 642 642 } 643 643 spin_unlock(&delayed_refs->lock); 644 644
+1 -1
fs/btrfs/reada.c
··· 305 305 306 306 spin_lock(&fs_info->reada_lock); 307 307 ret = radix_tree_insert(&dev->reada_zones, 308 - (unsigned long)zone->end >> PAGE_CACHE_SHIFT, 308 + (unsigned long)(zone->end >> PAGE_CACHE_SHIFT), 309 309 zone); 310 310 spin_unlock(&fs_info->reada_lock); 311 311