commit btrfsprogs for openSUSE:Factory
Hello community, here is the log from the commit of package btrfsprogs for openSUSE:Factory checked in at 2014-10-06 22:04:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/btrfsprogs (Old) and /work/SRC/openSUSE:Factory/.btrfsprogs.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "btrfsprogs" Changes: -------- --- /work/SRC/openSUSE:Factory/btrfsprogs/btrfsprogs.changes 2014-09-25 09:33:25.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.btrfsprogs.new/btrfsprogs.changes 2014-10-06 22:04:29.000000000 +0200 @@ -1,0 +2,9 @@ +Sat Oct 4 00:00:03 CEST 2014 - dsterba@suse.cz + +- version 3.16.2 + - fsck: handle bad extent mapping + - image: make it work on a balanced fs + - btrfs-show-super: print flags in human readable way + - documentation updates + +------------------------------------------------------------------- Old: ---- btrfs-progs-v3.16.1.tar.gz New: ---- btrfs-progs-v3.16.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ btrfsprogs.spec ++++++ --- /var/tmp/diff_new_pack.YnfA3O/_old 2014-10-06 22:04:30.000000000 +0200 +++ /var/tmp/diff_new_pack.YnfA3O/_new 2014-10-06 22:04:30.000000000 +0200 @@ -16,9 +16,9 @@ # -%define tar_version v3.16.1 +%define tar_version v3.16.2 Name: btrfsprogs -Version: 3.16.1 +Version: 3.16.2 Release: 0 Summary: Utilities for the Btrfs filesystem License: GPL-2.0 ++++++ btrfs-progs-v3.16.1.tar.gz -> btrfs-progs-v3.16.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfs-balance.txt new/btrfs-progs-v3.16.2/Documentation/btrfs-balance.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfs-balance.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfs-balance.txt 2014-10-01 18:07:59.000000000 +0200 @@ -117,7 +117,7 @@ EXIT STATUS ----------- -*btrfs balance* returns a zero exist status if it succeeds. Non zero is +*btrfs balance* returns a zero exit status if it succeeds. Non zero is returned in case of failure. AVAILABILITY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfs-check.txt new/btrfs-progs-v3.16.2/Documentation/btrfs-check.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfs-check.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfs-check.txt 2014-10-01 18:07:59.000000000 +0200 @@ -35,7 +35,7 @@ EXIT STATUS ----------- -*btrfs check* returns a zero exist status if it succeeds. Non zero is +*btrfs check* returns a zero exit status if it succeeds. Non zero is returned in case of failure. AVAILABILITY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfs-device.txt new/btrfs-progs-v3.16.2/Documentation/btrfs-device.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfs-device.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfs-device.txt 2014-10-01 18:07:59.000000000 +0200 @@ -100,7 +100,7 @@ EXIT STATUS ----------- -*btrfs device* returns a zero exist status if it succeeds. Non zero is +*btrfs device* returns a zero exit status if it succeeds. Non zero is returned in case of failure. AVAILABILITY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfs-filesystem.txt new/btrfs-progs-v3.16.2/Documentation/btrfs-filesystem.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfs-filesystem.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfs-filesystem.txt 2014-10-01 18:07:59.000000000 +0200 @@ -102,7 +102,7 @@ EXIT STATUS ----------- -*btrfs filesystem* returns a zero exist status if it succeeds. Non zero is +*btrfs filesystem* returns a zero exit status if it succeeds. Non zero is returned in case of failure. AVAILABILITY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfs-inspect-internal.txt new/btrfs-progs-v3.16.2/Documentation/btrfs-inspect-internal.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfs-inspect-internal.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfs-inspect-internal.txt 2014-10-01 18:07:59.000000000 +0200 @@ -52,7 +52,7 @@ EXIT STATUS ----------- -*btrfs inspect-internal* returns a zero exist status if it succeeds. Non zero is +*btrfs inspect-internal* returns a zero exit status if it succeeds. Non zero is returned in case of failure. AVAILABILITY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfs-property.txt new/btrfs-progs-v3.16.2/Documentation/btrfs-property.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfs-property.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfs-property.txt 2014-10-01 18:07:59.000000000 +0200 @@ -51,7 +51,7 @@ EXIT STATUS ----------- -*btrfs property* returns a zero exist status if it succeeds. Non zero is +*btrfs property* returns a zero exit status if it succeeds. Non zero is returned in case of failure. AVAILABILITY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfs-qgroup.txt new/btrfs-progs-v3.16.2/Documentation/btrfs-qgroup.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfs-qgroup.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfs-qgroup.txt 2014-10-01 18:07:59.000000000 +0200 @@ -92,7 +92,7 @@ EXIT STATUS ----------- -*btrfs qgroup* returns a zero exist status if it succeeds. Non zero is +*btrfs qgroup* returns a zero exit status if it succeeds. Non zero is returned in case of failure. AVAILABILITY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfs-quota.txt new/btrfs-progs-v3.16.2/Documentation/btrfs-quota.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfs-quota.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfs-quota.txt 2014-10-01 18:07:59.000000000 +0200 @@ -41,7 +41,7 @@ EXIT STATUS ----------- -*btrfs quota* returns a zero exist status if it succeeds. Non zero is +*btrfs quota* returns a zero exit status if it succeeds. Non zero is returned in case of failure. AVAILABILITY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfs-receive.txt new/btrfs-progs-v3.16.2/Documentation/btrfs-receive.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfs-receive.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfs-receive.txt 2014-10-01 18:07:59.000000000 +0200 @@ -44,7 +44,7 @@ EXIT STATUS ----------- -*btrfs receive* returns a zero exist status if it succeeds. Non zero is +*btrfs receive* returns a zero exit status if it succeeds. Non zero is returned in case of failure. AVAILABILITY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfs-replace.txt new/btrfs-progs-v3.16.2/Documentation/btrfs-replace.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfs-replace.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfs-replace.txt 2014-10-01 18:07:59.000000000 +0200 @@ -66,7 +66,7 @@ EXIT STATUS ----------- -*btrfs replace* returns a zero exist status if it succeeds. Non zero is +*btrfs replace* returns a zero exit status if it succeeds. Non zero is returned in case of failure. AVAILABILITY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfs-rescue.txt new/btrfs-progs-v3.16.2/Documentation/btrfs-rescue.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfs-rescue.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfs-rescue.txt 2014-10-01 18:07:59.000000000 +0200 @@ -42,7 +42,7 @@ EXIT STATUS ----------- -*btrfs rescue* returns a zero exist status if it succeeds. Non zero is +*btrfs rescue* returns a zero exit status if it succeeds. Non zero is returned in case of failure. AVAILABILITY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfs-restore.txt new/btrfs-progs-v3.16.2/Documentation/btrfs-restore.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfs-restore.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfs-restore.txt 2014-10-01 18:07:59.000000000 +0200 @@ -68,7 +68,7 @@ EXIT STATUS ----------- -*btrfs restore* returns a zero exist status if it succeeds. Non zero is +*btrfs restore* returns a zero exit status if it succeeds. Non zero is returned in case of failure. AVAILABILITY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfs-scrub.txt new/btrfs-progs-v3.16.2/Documentation/btrfs-scrub.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfs-scrub.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfs-scrub.txt 2014-10-01 18:07:59.000000000 +0200 @@ -82,7 +82,7 @@ EXIT STATUS ----------- -*btrfs scrub* returns a zero exist status if it succeeds. Non zero is +*btrfs scrub* returns a zero exit status if it succeeds. Non zero is returned in case of failure. AVAILABILITY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfs-send.txt new/btrfs-progs-v3.16.2/Documentation/btrfs-send.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfs-send.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfs-send.txt 2014-10-01 18:07:59.000000000 +0200 @@ -43,7 +43,7 @@ EXIT STATUS ----------- -*btrfs send* returns a zero exist status if it succeeds. Non zero is +*btrfs send* returns a zero exit status if it succeeds. Non zero is returned in case of failure. AVAILABILITY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfs-subvolume.txt new/btrfs-progs-v3.16.2/Documentation/btrfs-subvolume.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfs-subvolume.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfs-subvolume.txt 2014-10-01 18:07:59.000000000 +0200 @@ -99,7 +99,7 @@ -g:::: print the generation of the subvolume. -o:::: -print only subvolumes bellow specified <path>. +print only subvolumes below specified <path>. -u:::: print the UUID of the subvolume. -q:::: @@ -155,7 +155,7 @@ EXIT STATUS ----------- -*btrfs subvolume* returns a zero exist status if it succeeds. Non zero is +*btrfs subvolume* returns a zero exit status if it succeeds. Non zero is returned in case of failure. AVAILABILITY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfs.txt new/btrfs-progs-v3.16.2/Documentation/btrfs.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfs.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfs.txt 2014-10-01 18:07:59.000000000 +0200 @@ -87,7 +87,7 @@ EXIT STATUS ----------- -*btrfs* returns a zero exist status if it succeeds. Non zero is returned in +*btrfs* returns a zero exit status if it succeeds. Non zero is returned in case of failure. AVAILABILITY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Documentation/btrfstune.txt new/btrfs-progs-v3.16.2/Documentation/btrfstune.txt --- old/btrfs-progs-v3.16.1/Documentation/btrfstune.txt 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Documentation/btrfstune.txt 2014-10-01 18:07:59.000000000 +0200 @@ -24,7 +24,14 @@ Enable extended inode refs. -x:: Enable skinny metadata extent refs. +-f:: +Allow dangerous changes, e.g. clear the seeding flag +When mounting the new device, btrfs will check whether the seeding flag is set +when try to open seeding device. If the user clears the seeding flag of the +seeding device, the new device will not be mountable. Even setting the seeding +flag back will not fix this problem, because the generation will be changed at +that time. Clear the seeding flag may damage the new filesystem. EXIT STATUS ----------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/Makefile new/btrfs-progs-v3.16.2/Makefile --- old/btrfs-progs-v3.16.1/Makefile 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/Makefile 2014-10-01 18:07:59.000000000 +0200 @@ -5,7 +5,7 @@ LN = ln AR = ar AM_CFLAGS = -Wall -D_FILE_OFFSET_BITS=64 -DBTRFS_FLAT_INCLUDES -fno-strict-aliasing -fPIC -CFLAGS = -g -O1 -fno-strict-aliasing +CFLAGS = -g -O1 -fno-strict-aliasing -rdynamic objects = ctree.o disk-io.o radix-tree.o extent-tree.o print-tree.o \ root-tree.o dir-item.o file-item.o inode-item.o inode-map.o \ extent-cache.o extent_io.o volumes.o utils.o repair.o \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/btrfs-convert.c new/btrfs-progs-v3.16.2/btrfs-convert.c --- old/btrfs-progs-v3.16.1/btrfs-convert.c 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/btrfs-convert.c 2014-10-01 18:07:59.000000000 +0200 @@ -2441,7 +2441,7 @@ ext2_root = btrfs_read_fs_root(root->fs_info, &key); if (!ext2_root || IS_ERR(ext2_root)) { fprintf(stderr, "unable to open subvol %llu\n", - key.objectid); + (unsigned long long)key.objectid); goto fail; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/btrfs-show-super.c new/btrfs-progs-v3.16.2/btrfs-show-super.c --- old/btrfs-progs-v3.16.1/btrfs-show-super.c 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/btrfs-show-super.c 2014-10-01 18:07:59.000000000 +0200 @@ -285,6 +285,58 @@ } } +struct readable_flag_entry { + u64 bit; + char *output; +}; + +#define DEF_INCOMPAT_FLAG_ENTRY(bit_name) \ + {BTRFS_FEATURE_INCOMPAT_##bit_name, #bit_name} + +struct readable_flag_entry incompat_flags_array[] = { + DEF_INCOMPAT_FLAG_ENTRY(MIXED_BACKREF), + DEF_INCOMPAT_FLAG_ENTRY(DEFAULT_SUBVOL), + DEF_INCOMPAT_FLAG_ENTRY(MIXED_GROUPS), + DEF_INCOMPAT_FLAG_ENTRY(COMPRESS_LZO), + DEF_INCOMPAT_FLAG_ENTRY(COMPRESS_LZOv2), + DEF_INCOMPAT_FLAG_ENTRY(BIG_METADATA), + DEF_INCOMPAT_FLAG_ENTRY(EXTENDED_IREF), + DEF_INCOMPAT_FLAG_ENTRY(RAID56), + DEF_INCOMPAT_FLAG_ENTRY(SKINNY_METADATA), + DEF_INCOMPAT_FLAG_ENTRY(NO_HOLES) +}; +static const int incompat_flags_num = sizeof(incompat_flags_array) / + sizeof(struct readable_flag_entry); + +static void print_readable_incompat_flag(u64 flag) +{ + int i; + int first = 1; + struct readable_flag_entry *entry; + + if (!flag) + return; + printf("\t\t\t( "); + for (i = 0; i < incompat_flags_num; i++) { + entry = incompat_flags_array + i; + if (flag & entry->bit) { + if (first) + printf("%s ", entry->output); + else + printf("|\n\t\t\t %s ", entry->output); + } + first = 0; + } + flag &= ~BTRFS_FEATURE_INCOMPAT_SUPP; + if (flag) { + if (first) + printf("unknown flag: 0x%llx ", flag); + else + printf("|\n\t\t\t unknown flag: 0x%llx ", flag); + } + printf(")\n"); +} + static void dump_superblock(struct btrfs_super_block *sb, int full) { int i; @@ -364,6 +416,7 @@ (unsigned long long)btrfs_super_compat_ro_flags(sb)); printf("incompat_flags\t\t0x%llx\n", (unsigned long long)btrfs_super_incompat_flags(sb)); + print_readable_incompat_flag(btrfs_super_incompat_flags(sb)); printf("csum_type\t\t%llu\n", (unsigned long long)btrfs_super_csum_type(sb)); printf("csum_size\t\t%llu\n", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/cmds-check.c new/btrfs-progs-v3.16.2/cmds-check.c --- old/btrfs-progs-v3.16.1/cmds-check.c 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/cmds-check.c 2014-10-01 18:07:59.000000000 +0200 @@ -243,6 +243,17 @@ static void reset_cached_block_groups(struct btrfs_fs_info *fs_info); +static void record_root_in_trans(struct btrfs_trans_handle *trans, + struct btrfs_root *root) +{ + if (root->last_trans != trans->transid) { + root->track_dirty = 1; + root->last_trans = trans->transid; + root->commit_root = root->node; + extent_buffer_get(root->node); + } +} + static u8 imode_to_type(u32 imode) { #define S_SHIFT 12 @@ -2429,6 +2440,8 @@ if (IS_ERR(root)) return -EIO; + record_root_in_trans(trans, root); + path = btrfs_alloc_path(); if (!path) return -EIO; @@ -3854,6 +3867,10 @@ unsigned long leaf_offset; root = root->fs_info->csum_root; + if (!extent_buffer_uptodate(root->node)) { + fprintf(stderr, "No valid csum tree found\n"); + return -ENOENT; + } key.objectid = BTRFS_EXTENT_CSUM_OBJECTID; key.type = BTRFS_EXTENT_CSUM_KEY; @@ -4667,12 +4684,7 @@ * Have to make sure that this root gets updated when we commit the * transaction */ - root->track_dirty = 1; - if (root->last_trans != trans->transid) { - root->last_trans = trans->transid; - root->commit_root = root->node; - extent_buffer_get(root->node); - } + record_root_in_trans(trans, root); /* * Ok we have the key of the file extent we want to fix, now we can cow @@ -6352,12 +6364,7 @@ fprintf(stderr, "Error reading data reloc tree\n"); return PTR_ERR(root); } - root->track_dirty = 1; - if (root->last_trans != trans->transid) { - root->last_trans = trans->transid; - root->commit_root = root->node; - extent_buffer_get(root->node); - } + record_root_in_trans(trans, root); ret = btrfs_fsck_reinit_root(trans, root, 0); if (ret) goto out; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/ctree.c new/btrfs-progs-v3.16.2/ctree.c --- old/btrfs-progs-v3.16.1/ctree.c 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/ctree.c 2014-10-01 18:07:59.000000000 +0200 @@ -494,7 +494,7 @@ (unsigned long long)btrfs_header_bytenr(buf)); goto fail; } - for (i = 0; nritems > 1 && i < nritems - 2; i++) { + for (i = 0; nritems > 1 && i < nritems - 1; i++) { btrfs_item_key(buf, &key, i); btrfs_item_key_to_cpu(buf, &cpukey, i + 1); if (btrfs_comp_keys(&key, &cpukey) >= 0) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/disk-io.c new/btrfs-progs-v3.16.2/disk-io.c --- old/btrfs-progs-v3.16.1/disk-io.c 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/disk-io.c 2014-10-01 18:07:59.000000000 +0200 @@ -201,7 +201,8 @@ read_len = bytes_left; device = NULL; - if (!info->on_restoring) { + if (!info->on_restoring && + eb->start != BTRFS_SUPER_INFO_OFFSET) { ret = btrfs_map_block(&info->mapping_tree, READ, eb->start + offset, &read_len, &multi, mirror, NULL); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/kerncompat.h new/btrfs-progs-v3.16.2/kerncompat.h --- old/btrfs-progs-v3.16.1/kerncompat.h 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/kerncompat.h 2014-10-01 18:07:59.000000000 +0200 @@ -29,6 +29,7 @@ #include <stddef.h> #include <linux/types.h> #include <stdint.h> +#include <execinfo.h> #define ptr_to_u64(x) ((u64)(uintptr_t)x) #define u64_to_ptr(x) ((void *)(uintptr_t)x) @@ -54,7 +55,33 @@ #define ULONG_MAX (~0UL) #endif -#define BUG() assert(0) +#define MAX_BACKTRACE 16 +static inline void print_trace(void) +{ + void *array[MAX_BACKTRACE]; + size_t size; + + size = backtrace(array, MAX_BACKTRACE); + backtrace_symbols_fd(array, size, 2); +} + +static inline void assert_trace(const char *assertion, const char *filename, + const char *func, unsigned line, int val) +{ + if (val) + return; + if (assertion) + fprintf(stderr, "%s:%d: %s: Assertion `%s` failed.\n", + filename, line, func, assertion); + else + fprintf(stderr, "%s:%d: %s: Assertion failed.\n", filename, + line, func); + print_trace(); + exit(1); +} + +#define BUG() assert_trace(NULL, __FILE__, __func__, __LINE__, 0) + #ifdef __CHECKER__ #define __force __attribute__((force)) #define __bitwise__ __attribute__((bitwise)) @@ -237,9 +264,10 @@ #define kstrdup(x, y) strdup(x) #define kfree(x) free(x) -#define BUG_ON(c) assert(!(c)) -#define WARN_ON(c) assert(!(c)) -#define ASSERT(c) assert(c) +#define BUG_ON(c) assert_trace(#c, __FILE__, __func__, __LINE__, !(c)) + +#define WARN_ON(c) BUG_ON(c) +#define ASSERT(c) assert_trace(#c, __FILE__, __func__, __LINE__, (c)) #define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/version.sh new/btrfs-progs-v3.16.2/version.sh --- old/btrfs-progs-v3.16.1/version.sh 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/version.sh 2014-10-01 18:07:59.000000000 +0200 @@ -6,7 +6,7 @@ # Copyright 2008, Oracle # Released under the GNU GPLv2 -v="v3.16.1" +v="v3.16.2" lib_major=0 lib_minor=1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/btrfs-progs-v3.16.1/volumes.c new/btrfs-progs-v3.16.2/volumes.c --- old/btrfs-progs-v3.16.1/volumes.c 2014-09-15 15:18:00.000000000 +0200 +++ new/btrfs-progs-v3.16.2/volumes.c 2014-10-01 18:07:59.000000000 +0200 @@ -1136,8 +1136,20 @@ int ret; ce = search_cache_extent(&map_tree->cache_tree, logical); - BUG_ON(!ce); - BUG_ON(ce->start > logical || ce->start + ce->size < logical); + if (!ce) { + fprintf(stderr, "No mapping for %llu-%llu\n", + (unsigned long long)logical, + (unsigned long long)logical+len); + return 1; + } + if (ce->start > logical || ce->start + ce->size < logical) { + fprintf(stderr, "Invalid mapping for %llu-%llu, got " + "%llu-%llu\n", (unsigned long long)logical, + (unsigned long long)logical+len, + (unsigned long long)ce->start, + (unsigned long long)ce->start + ce->size); + return 1; + } map = container_of(ce, struct map_lookup, ce); if (map->type & (BTRFS_BLOCK_GROUP_DUP | BTRFS_BLOCK_GROUP_RAID1)) ++++++ local-version-override.patch ++++++ --- /var/tmp/diff_new_pack.YnfA3O/_old 2014-10-06 22:04:31.000000000 +0200 +++ /var/tmp/diff_new_pack.YnfA3O/_new 2014-10-06 22:04:31.000000000 +0200 @@ -6,8 +6,8 @@ # Copyright 2008, Oracle # Released under the GNU GPLv2 --v="v3.16.1" -+v="v3.16.1+20140922" +-v="v3.16.2" ++v="v3.16.2+20141003" lib_major=0 lib_minor=1 -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de