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 tag 'for-4.16-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux

Pull btrfs fixes from David Sterba:
"There's an important revert in this pull request that needs to go to
stable as it causes a corruption on big endian machines.

The other fix is for FIEMAP incorrectly reporting shared extents
before a sync and one fix for a crash in raid56.

So far we got only one report about the BE corruption, the stable
kernels were out for like a week, so hopefully the scope of the damage
is low"

* tag 'for-4.16-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
Revert "btrfs: use proper endianness accessors for super_copy"
btrfs: add missing initialization in btrfs_check_shared
btrfs: Fix NULL pointer exception in find_bio_stripe

+15 -15
+1
fs/btrfs/backref.c
··· 1519 1519 if (!node) 1520 1520 break; 1521 1521 bytenr = node->val; 1522 + shared.share_count = 0; 1522 1523 cond_resched(); 1523 1524 } 1524 1525
+1
fs/btrfs/raid56.c
··· 1370 1370 stripe_start = stripe->physical; 1371 1371 if (physical >= stripe_start && 1372 1372 physical < stripe_start + rbio->stripe_len && 1373 + stripe->dev->bdev && 1373 1374 bio->bi_disk == stripe->dev->bdev->bd_disk && 1374 1375 bio->bi_partno == stripe->dev->bdev->bd_partno) { 1375 1376 return i;
+5 -3
fs/btrfs/sysfs.c
··· 423 423 { 424 424 struct btrfs_fs_info *fs_info = to_fs_info(kobj); 425 425 426 - return snprintf(buf, PAGE_SIZE, "%u\n", fs_info->nodesize); 426 + return snprintf(buf, PAGE_SIZE, "%u\n", fs_info->super_copy->nodesize); 427 427 } 428 428 429 429 BTRFS_ATTR(, nodesize, btrfs_nodesize_show); ··· 433 433 { 434 434 struct btrfs_fs_info *fs_info = to_fs_info(kobj); 435 435 436 - return snprintf(buf, PAGE_SIZE, "%u\n", fs_info->sectorsize); 436 + return snprintf(buf, PAGE_SIZE, "%u\n", 437 + fs_info->super_copy->sectorsize); 437 438 } 438 439 439 440 BTRFS_ATTR(, sectorsize, btrfs_sectorsize_show); ··· 444 443 { 445 444 struct btrfs_fs_info *fs_info = to_fs_info(kobj); 446 445 447 - return snprintf(buf, PAGE_SIZE, "%u\n", fs_info->sectorsize); 446 + return snprintf(buf, PAGE_SIZE, "%u\n", 447 + fs_info->super_copy->sectorsize); 448 448 } 449 449 450 450 BTRFS_ATTR(, clone_alignment, btrfs_clone_alignment_show);
+8 -12
fs/btrfs/transaction.c
··· 1722 1722 1723 1723 super = fs_info->super_copy; 1724 1724 1725 - /* update latest btrfs_super_block::chunk_root refs */ 1726 1725 root_item = &fs_info->chunk_root->root_item; 1727 - btrfs_set_super_chunk_root(super, root_item->bytenr); 1728 - btrfs_set_super_chunk_root_generation(super, root_item->generation); 1729 - btrfs_set_super_chunk_root_level(super, root_item->level); 1726 + super->chunk_root = root_item->bytenr; 1727 + super->chunk_root_generation = root_item->generation; 1728 + super->chunk_root_level = root_item->level; 1730 1729 1731 - /* update latest btrfs_super_block::root refs */ 1732 1730 root_item = &fs_info->tree_root->root_item; 1733 - btrfs_set_super_root(super, root_item->bytenr); 1734 - btrfs_set_super_generation(super, root_item->generation); 1735 - btrfs_set_super_root_level(super, root_item->level); 1736 - 1731 + super->root = root_item->bytenr; 1732 + super->generation = root_item->generation; 1733 + super->root_level = root_item->level; 1737 1734 if (btrfs_test_opt(fs_info, SPACE_CACHE)) 1738 - btrfs_set_super_cache_generation(super, root_item->generation); 1735 + super->cache_generation = root_item->generation; 1739 1736 if (test_bit(BTRFS_FS_UPDATE_UUID_TREE_GEN, &fs_info->flags)) 1740 - btrfs_set_super_uuid_tree_generation(super, 1741 - root_item->generation); 1737 + super->uuid_tree_generation = root_item->generation; 1742 1738 } 1743 1739 1744 1740 int btrfs_transaction_in_commit(struct btrfs_fs_info *info)