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 fixes from Chris Mason:
"This is a small collection of fixes"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
Btrfs: fix data corruption when reading/updating compressed extents
Btrfs: don't loop forever if we can't run because of the tree mod log
btrfs: reserve no transaction units in btrfs_ioctl_set_features
btrfs: commit transaction after setting label and features
Btrfs: fix assert screwup for the pending move stuff

+9 -8
+2
fs/btrfs/compression.c
··· 1010 1010 bytes = min(bytes, working_bytes); 1011 1011 kaddr = kmap_atomic(page_out); 1012 1012 memcpy(kaddr + *pg_offset, buf + buf_offset, bytes); 1013 + if (*pg_index == (vcnt - 1) && *pg_offset == 0) 1014 + memset(kaddr + bytes, 0, PAGE_CACHE_SIZE - bytes); 1013 1015 kunmap_atomic(kaddr); 1014 1016 flush_dcache_page(page_out); 1015 1017
+1
fs/btrfs/extent-tree.c
··· 2385 2385 spin_unlock(&delayed_refs->lock); 2386 2386 locked_ref = NULL; 2387 2387 cond_resched(); 2388 + count++; 2388 2389 continue; 2389 2390 } 2390 2391
+3 -3
fs/btrfs/ioctl.c
··· 4525 4525 spin_lock(&root->fs_info->super_lock); 4526 4526 strcpy(super_block->label, label); 4527 4527 spin_unlock(&root->fs_info->super_lock); 4528 - ret = btrfs_end_transaction(trans, root); 4528 + ret = btrfs_commit_transaction(trans, root); 4529 4529 4530 4530 out_unlock: 4531 4531 mnt_drop_write_file(file); ··· 4668 4668 if (ret) 4669 4669 return ret; 4670 4670 4671 - trans = btrfs_start_transaction(root, 1); 4671 + trans = btrfs_start_transaction(root, 0); 4672 4672 if (IS_ERR(trans)) 4673 4673 return PTR_ERR(trans); 4674 4674 ··· 4689 4689 btrfs_set_super_incompat_flags(super_block, newflags); 4690 4690 spin_unlock(&root->fs_info->super_lock); 4691 4691 4692 - return btrfs_end_transaction(trans, root); 4692 + return btrfs_commit_transaction(trans, root); 4693 4693 } 4694 4694 4695 4695 long btrfs_ioctl(struct file *file, unsigned int
+3 -5
fs/btrfs/send.c
··· 2774 2774 return 0; 2775 2775 } 2776 2776 2777 - #ifdef CONFIG_BTRFS_ASSERT 2778 - 2779 2777 static int del_waiting_dir_move(struct send_ctx *sctx, u64 ino) 2780 2778 { 2781 2779 struct rb_node *n = sctx->waiting_dir_moves.rb_node; ··· 2793 2795 } 2794 2796 return -ENOENT; 2795 2797 } 2796 - 2797 - #endif 2798 2798 2799 2799 static int add_pending_dir_move(struct send_ctx *sctx, u64 parent_ino) 2800 2800 { ··· 2898 2902 } 2899 2903 2900 2904 sctx->send_progress = sctx->cur_ino + 1; 2901 - ASSERT(del_waiting_dir_move(sctx, pm->ino) == 0); 2905 + ret = del_waiting_dir_move(sctx, pm->ino); 2906 + ASSERT(ret == 0); 2907 + 2902 2908 ret = get_cur_path(sctx, pm->ino, pm->gen, to_path); 2903 2909 if (ret < 0) 2904 2910 goto out;