From: David Sterba Date: Wed, 25 May 2016 20:51:03 +0000 (+0200) Subject: Merge branch 'cleanups-4.7' into for-chris-4.7-20160525 X-Git-Tag: v4.7-rc2~7^2~3^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=42f31734eb7658fd01fb186d56312be869450a42;p=platform%2Fkernel%2Flinux-exynos.git Merge branch 'cleanups-4.7' into for-chris-4.7-20160525 --- 42f31734eb7658fd01fb186d56312be869450a42 diff --cc fs/btrfs/ctree.h index ddcc58f,65e7a9f..101c3cf --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h @@@ -89,9 -186,20 +89,9 @@@ static const int btrfs_csum_sizes[] = /* four bytes for CRC32 */ #define BTRFS_EMPTY_DIR_SIZE 0 - /* spefic to btrfs_map_block(), therefore not in include/linux/blk_types.h */ + /* specific to btrfs_map_block(), therefore not in include/linux/blk_types.h */ #define REQ_GET_READ_MIRRORS (1 << 30) -#define BTRFS_FT_UNKNOWN 0 -#define BTRFS_FT_REG_FILE 1 -#define BTRFS_FT_DIR 2 -#define BTRFS_FT_CHRDEV 3 -#define BTRFS_FT_BLKDEV 4 -#define BTRFS_FT_FIFO 5 -#define BTRFS_FT_SOCK 6 -#define BTRFS_FT_SYMLINK 7 -#define BTRFS_FT_XATTR 8 -#define BTRFS_FT_MAX 9 - /* ioprio of readahead is set to idle */ #define BTRFS_IOPRIO_READA (IOPRIO_PRIO_VALUE(IOPRIO_CLASS_IDLE, 0)) diff --cc fs/btrfs/dev-replace.c index 85f12e6,0584b6c..63ef9cd --- a/fs/btrfs/dev-replace.c +++ b/fs/btrfs/dev-replace.c @@@ -420,37 -440,8 +420,37 @@@ leave return ret; } +int btrfs_dev_replace_by_ioctl(struct btrfs_root *root, + struct btrfs_ioctl_dev_replace_args *args) +{ + int ret; + + switch (args->start.cont_reading_from_srcdev_mode) { + case BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: + case BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: + break; + default: + return -EINVAL; + } + + if ((args->start.srcdevid == 0 && args->start.srcdev_name[0] == '\0') || + args->start.tgtdev_name[0] == '\0') + return -EINVAL; + + ret = btrfs_dev_replace_start(root, args->start.tgtdev_name, + args->start.srcdevid, + args->start.srcdev_name, + args->start.cont_reading_from_srcdev_mode); + args->result = ret; + /* don't warn if EINPROGRESS, someone else might be running scrub */ + if (ret == BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS) + ret = 0; + + return ret; +} + /* - * blocked until all flighting bios are finished. + * blocked until all in-flight bios operations are finished. */ static void btrfs_rm_dev_replace_blocked(struct btrfs_fs_info *fs_info) { diff --cc fs/btrfs/ioctl.c index 73c0be7,972cd0b..e6714e2 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@@ -465,12 -461,10 +465,12 @@@ static noinline int create_subvol(struc /* * Don't create subvolume whose level is not zero. Or qgroup will be - * screwed up since it assume subvolme qgroup's level to be 0. + * screwed up since it assumes subvolume qgroup's level to be 0. */ - if (btrfs_qgroup_level(objectid)) - return -ENOSPC; + if (btrfs_qgroup_level(objectid)) { + ret = -ENOSPC; + goto fail_free; + } btrfs_init_block_rsv(&block_rsv, BTRFS_BLOCK_RSV_TEMP); /*