13 Sep, 2013

1 commit

  • Pull btrfs updates from Chris Mason:
    "This is against 3.11-rc7, but was pulled and tested against your tree
    as of yesterday. We do have two small incrementals queued up, but I
    wanted to get this bunch out the door before I hop on an airplane.

    This is a fairly large batch of fixes, performance improvements, and
    cleanups from the usual Btrfs suspects.

    We've included Stefan Behren's work to index subvolume UUIDs, which is
    targeted at speeding up send/receive with many subvolumes or snapshots
    in place. It closes a long standing performance issue that was built
    in to the disk format.

    Mark Fasheh's offline dedup work is also here. In this case offline
    means the FS is mounted and active, but the dedup work is not done
    inline during file IO. This is a building block where utilities are
    able to ask the FS to dedup a series of extents. The kernel takes
    care of verifying the data involved really is the same. Today this
    involves reading both extents, but we'll continue to evolve the
    patches"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (118 commits)
    Btrfs: optimize key searches in btrfs_search_slot
    Btrfs: don't use an async starter for most of our workers
    Btrfs: only update disk_i_size as we remove extents
    Btrfs: fix deadlock in uuid scan kthread
    Btrfs: stop refusing the relocation of chunk 0
    Btrfs: fix memory leak of uuid_root in free_fs_info
    btrfs: reuse kbasename helper
    btrfs: return btrfs error code for dev excl ops err
    Btrfs: allow partial ordered extent completion
    Btrfs: convert all bug_ons in free-space-cache.c
    Btrfs: add support for asserts
    Btrfs: adjust the fs_devices->missing count on unmount
    Btrf: cleanup: don't check for root_refs == 0 twice
    Btrfs: fix for patch "cleanup: don't check the same thing twice"
    Btrfs: get rid of one BUG() in write_all_supers()
    Btrfs: allocate prelim_ref with a slab allocater
    Btrfs: pass gfp_t to __add_prelim_ref() to avoid always using GFP_ATOMIC
    Btrfs: fix race conditions in BTRFS_IOC_FS_INFO ioctl
    Btrfs: fix race between removing a dev and writing sbs
    Btrfs: remove ourselves from the cluster list under lock
    ...

    Linus Torvalds
     

01 Sep, 2013

2 commits


15 Jul, 2013

1 commit


14 Jun, 2013

2 commits


18 May, 2013

1 commit

  • This is not yet supported and causes crashes. One sad user reported
    that it destroyed his filesystem.

    One failure is in __btrfs_map_block+0xc1f calling kmalloc(0).

    0x5f21f is in __btrfs_map_block (fs/btrfs/volumes.c:4923).
    4918 num_stripes = map->num_stripes;
    4919 max_errors = nr_parity_stripes(map);
    4920
    4921 raid_map = kmalloc(sizeof(u64) * num_stripes,
    4922 GFP_NOFS);
    4923 if (!raid_map) {
    4924 ret = -ENOMEM;
    4925 goto out;
    4926 }
    4927

    There might be more issues. Until this is really tested, don't allow
    users to start the procedure on RAID5/RAID6 filesystems.

    Signed-off-by: Stefan Behrens
    Signed-off-by: Josef Bacik

    Stefan Behrens
     

20 Feb, 2013

1 commit


13 Dec, 2012

1 commit

  • This adds a new file to the sources together with the header file
    and the changes to ioctl.h and ctree.h that are required by the
    new C source file. Additionally, 4 new functions are added to
    volume.c that deal with device creation and destruction.

    Signed-off-by: Stefan Behrens
    Signed-off-by: Chris Mason

    Stefan Behrens