05 Oct, 2013

2 commits


23 Sep, 2013

1 commit

  • Pull btrfs fixes from Chris Mason:
    "These are mostly bug fixes and a two small performance fixes. The
    most important of the bunch are Josef's fix for a snapshotting
    regression and Mark's update to fix compile problems on arm"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (25 commits)
    Btrfs: create the uuid tree on remount rw
    btrfs: change extent-same to copy entire argument struct
    Btrfs: dir_inode_operations should use btrfs_update_time also
    btrfs: Add btrfs: prefix to kernel log output
    btrfs: refuse to remount read-write after abort
    Btrfs: btrfs_ioctl_default_subvol: Revert back to toplevel subvolume when arg is 0
    Btrfs: don't leak transaction in btrfs_sync_file()
    Btrfs: add the missing mutex unlock in write_all_supers()
    Btrfs: iput inode on allocation failure
    Btrfs: remove space_info->reservation_progress
    Btrfs: kill delay_iput arg to the wait_ordered functions
    Btrfs: fix worst case calculator for space usage
    Revert "Btrfs: rework the overcommit logic to be based on the total size"
    Btrfs: improve replacing nocow extents
    Btrfs: drop dir i_size when adding new names on replay
    Btrfs: replay dir_index items before other items
    Btrfs: check roots last log commit when checking if an inode has been logged
    Btrfs: actually log directory we are fsync()'ing
    Btrfs: actually limit the size of delalloc range
    Btrfs: allocate the free space by the existed max extent size when ENOSPC
    ...

    Linus Torvalds
     

21 Sep, 2013

1 commit

  • This is a left over of how we used to wait for ordered extents, which was to
    grab the inode and then run filemap flush on it. However if we have an ordered
    extent then we already are holding a ref on the inode, and we just use
    btrfs_start_ordered_extent anyway, so there is no reason to have an extra ref on
    the inode to start work on the ordered extent. Thanks,

    Signed-off-by: Josef Bacik
    Signed-off-by: Chris Mason

    Josef Bacik
     

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