From patchwork Sat Oct 5 05:17:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chengguang Xu X-Patchwork-Id: 11175487 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1BE7A1902 for ; Sat, 5 Oct 2019 05:36:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E4D21222C0 for ; Sat, 5 Oct 2019 05:36:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mykernel.net header.i=cgxu519@mykernel.net header.b="dTYb7/+i" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726831AbfJEFdp (ORCPT ); Sat, 5 Oct 2019 01:33:45 -0400 Received: from sender2-of-o52.zoho.com.cn ([163.53.93.247]:21657 "EHLO sender2-of-o52.zoho.com.cn" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725773AbfJEFdo (ORCPT ); Sat, 5 Oct 2019 01:33:44 -0400 X-Greylist: delayed 907 seconds by postgrey-1.27 at vger.kernel.org; Sat, 05 Oct 2019 01:33:43 EDT ARC-Seal: i=1; a=rsa-sha256; t=1570252680; cv=none; d=zoho.com.cn; s=zohoarc; b=hsHpoQgZb04KhJFSWPIWY4TEAiUDIY3NNKLpIxkMyPIzlAk07InQr08neC0sXSYfZWncVv9tFI/49EjE7/k5By4QrJWaWRCrpnLg/BBOqmoiCvAy16HdUoyPuk2gYqgv4IbEG57aaAZroRZVXiWKDJe3LBSUkjAOjASbeKX6Ba0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com.cn; s=zohoarc; t=1570252680; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:MIME-Version:Message-ID:Subject:To:ARC-Authentication-Results; bh=PpZpsclsUorTE1vSJjbjRH38NgJ0hwLkChLs9j2SfSg=; b=lPXLQG6mVwtuIS+n0yPezyZNAgMsFMKgkRDFscV4B3XFtgB1Z8zmUZhJUPYXfEz4KRMEGooPNGua9h8nGp+SGB0BSuorhOguB/iiI+EPH0s0PWLbNHQovdIHK1wAfgFcIHFcEgAEVtOFiKJDGs05mDbxYph4wS2VTQ753qxyspA= ARC-Authentication-Results: i=1; mx.zoho.com.cn; dkim=pass header.i=mykernel.net; spf=pass smtp.mailfrom=cgxu519@mykernel.net; dmarc=pass header.from= header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1570252680; s=zohomail; d=mykernel.net; i=cgxu519@mykernel.net; h=From:To:Cc:Message-ID:Subject:Date:MIME-Version:Content-Transfer-Encoding:Content-Type; l=641; bh=PpZpsclsUorTE1vSJjbjRH38NgJ0hwLkChLs9j2SfSg=; b=dTYb7/+i52RZIF8NzDshqihmzvcoS6ePWCX7cCqA5UMLo7Pi+iqBURLpEuBmIi9W 7ZUd0OsilndrzpUZILUQaEWC+Hs+QGAqgwQO+zAltLXQ+u5x97NbXSoNJKfKvZkTY5Y NisuaYqBWyyzgI+W4QLUhbeHhwxPx6clxOrEiuRo= Received: from localhost.localdomain (116.30.195.234 [116.30.195.234]) by mx.zoho.com.cn with SMTPS id 1570252677250448.9482086126976; Sat, 5 Oct 2019 13:17:57 +0800 (CST) From: Chengguang Xu To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com Cc: linux-btrfs@vger.kernel.org, Chengguang Xu Message-ID: <20191005051736.29857-1-cgxu519@mykernel.net> Subject: [PATCH 1/3] btrfs: remove unnecessary hash_init() Date: Sat, 5 Oct 2019 13:17:34 +0800 X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 X-ZohoCNMailClient: External Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org hash_init() is not necessary in btrfs_props_init(), so remove it. Signed-off-by: Chengguang Xu --- fs/btrfs/props.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/fs/btrfs/props.c b/fs/btrfs/props.c index 1e664e0b59b8..68508db3dc65 100644 --- a/fs/btrfs/props.c +++ b/fs/btrfs/props.c @@ -437,8 +437,6 @@ void __init btrfs_props_init(void) { int i; - hash_init(prop_handlers_ht); - for (i = 0; i < ARRAY_SIZE(prop_handlers); i++) { struct prop_handler *p = &prop_handlers[i]; u64 h = btrfs_name_hash(p->xattr_name, strlen(p->xattr_name)); From patchwork Sat Oct 5 05:17:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chengguang Xu X-Patchwork-Id: 11175485 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EB6A01709 for ; Sat, 5 Oct 2019 05:36:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B941B222BE for ; Sat, 5 Oct 2019 05:36:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mykernel.net header.i=cgxu519@mykernel.net header.b="TFPkn7lh" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726654AbfJEFdo (ORCPT ); Sat, 5 Oct 2019 01:33:44 -0400 Received: from sender2-of-o52.zoho.com.cn ([163.53.93.247]:21573 "EHLO sender2-of-o52.zoho.com.cn" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726511AbfJEFdo (ORCPT ); Sat, 5 Oct 2019 01:33:44 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1570252686; cv=none; d=zoho.com.cn; s=zohoarc; b=l2GRt2oltuT8Js8gkaOq4/cmWZP648Xa075DakNnbJ8Q7n3d6JFhbmYznD7nMKfqotR25qaZh9S5BINxXHTcDOBjWOqg1lOv0g9oCex3privv7FJYaQnM505i4zHlkjpCf9xlv2gTt8ouEg/9Jw3kUzTv4ZYouNXwTca1wUhw3M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com.cn; s=zohoarc; t=1570252686; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To:ARC-Authentication-Results; bh=KAmWT9ZgEK3+5bjAXL2HNblCb43PqqG5xVDTsKJZsNA=; b=VNZdz4rjyZZp5TchRILaaatEC8fRIZvVSPYg1IesP4lCOBkj6SgSxEpn84sKu5f+fz+VmBR4bNUaesGctQrzTjzSYBmbVLPBJihOo+OWwBDGBl3OMN0VN1CY2zI3+ugm0oS0sA5blbOzZKXIpnCZLjrbTxJy6ISxi4mGbB8acRY= ARC-Authentication-Results: i=1; mx.zoho.com.cn; dkim=pass header.i=mykernel.net; spf=pass smtp.mailfrom=cgxu519@mykernel.net; dmarc=pass header.from= header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1570252686; s=zohomail; d=mykernel.net; i=cgxu519@mykernel.net; h=From:To:Cc:Message-ID:Subject:Date:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Content-Type; l=3333; bh=KAmWT9ZgEK3+5bjAXL2HNblCb43PqqG5xVDTsKJZsNA=; b=TFPkn7lh3MHe7R19i+MnquDfSPlf5IULC35j4rfUvBFuDAc4UO1qqn4VZfAyMjNG rMRgaCw8K5h2z7CLTwXYAdARPg+YfGlYhI41nOEqGoXqQ7yoxI6sf249UmVLUU6vXmR 5iqj2yyJJ+F0g0Q6UzhhatzcMdp/0LF2N0ZUwm+4= Received: from localhost.localdomain (116.30.195.234 [116.30.195.234]) by mx.zoho.com.cn with SMTPS id 15702526847841015.7426628721475; Sat, 5 Oct 2019 13:18:04 +0800 (CST) From: Chengguang Xu To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com Cc: linux-btrfs@vger.kernel.org, Chengguang Xu Message-ID: <20191005051736.29857-2-cgxu519@mykernel.net> Subject: [PATCH 2/3] btrfs: code cleanup for compression type Date: Sat, 5 Oct 2019 13:17:35 +0800 X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191005051736.29857-1-cgxu519@mykernel.net> References: <20191005051736.29857-1-cgxu519@mykernel.net> MIME-Version: 1.0 X-ZohoCNMailClient: External Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org Let BTRFS_COMPRESS_TYPES represents the total number of cmpressoin types and fix related calling places. It will be more safe when adding new compression type in the future. Signed-off-by: Chengguang Xu --- fs/btrfs/compression.c | 2 ++ fs/btrfs/compression.h | 12 ++++++------ fs/btrfs/ioctl.c | 2 +- fs/btrfs/tree-checker.c | 4 ++-- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c index d70c46407420..93deaf0cc2b8 100644 --- a/fs/btrfs/compression.c +++ b/fs/btrfs/compression.c @@ -39,6 +39,8 @@ const char* btrfs_compress_type2str(enum btrfs_compression_type type) case BTRFS_COMPRESS_ZSTD: case BTRFS_COMPRESS_NONE: return btrfs_compress_types[type]; + default: + break; } return NULL; diff --git a/fs/btrfs/compression.h b/fs/btrfs/compression.h index dd392278ab3f..091ff3f986e5 100644 --- a/fs/btrfs/compression.h +++ b/fs/btrfs/compression.h @@ -101,11 +101,11 @@ blk_status_t btrfs_submit_compressed_read(struct inode *inode, struct bio *bio, unsigned int btrfs_compress_str2level(unsigned int type, const char *str); enum btrfs_compression_type { - BTRFS_COMPRESS_NONE = 0, - BTRFS_COMPRESS_ZLIB = 1, - BTRFS_COMPRESS_LZO = 2, - BTRFS_COMPRESS_ZSTD = 3, - BTRFS_COMPRESS_TYPES = 3, + BTRFS_COMPRESS_NONE, + BTRFS_COMPRESS_ZLIB, + BTRFS_COMPRESS_LZO, + BTRFS_COMPRESS_ZSTD, + BTRFS_COMPRESS_TYPES }; struct workspace_manager { @@ -163,7 +163,7 @@ struct btrfs_compress_op { }; /* The heuristic workspaces are managed via the 0th workspace manager */ -#define BTRFS_NR_WORKSPACE_MANAGERS (BTRFS_COMPRESS_TYPES + 1) +#define BTRFS_NR_WORKSPACE_MANAGERS BTRFS_COMPRESS_TYPES extern const struct btrfs_compress_op btrfs_heuristic_compress; extern const struct btrfs_compress_op btrfs_zlib_compress; diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index de730e56d3f5..8c7196ed7ae0 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -1411,7 +1411,7 @@ int btrfs_defrag_file(struct inode *inode, struct file *file, return -EINVAL; if (do_compress) { - if (range->compress_type > BTRFS_COMPRESS_TYPES) + if (range->compress_type >= BTRFS_COMPRESS_TYPES) return -EINVAL; if (range->compress_type) compress_type = range->compress_type; diff --git a/fs/btrfs/tree-checker.c b/fs/btrfs/tree-checker.c index f28f9725cef1..2d91c34bbf63 100644 --- a/fs/btrfs/tree-checker.c +++ b/fs/btrfs/tree-checker.c @@ -168,11 +168,11 @@ static int check_extent_data_item(struct extent_buffer *leaf, * Support for new compression/encryption must introduce incompat flag, * and must be caught in open_ctree(). */ - if (btrfs_file_extent_compression(leaf, fi) > BTRFS_COMPRESS_TYPES) { + if (btrfs_file_extent_compression(leaf, fi) >= BTRFS_COMPRESS_TYPES) { file_extent_err(leaf, slot, "invalid compression for file extent, have %u expect range [0, %u]", btrfs_file_extent_compression(leaf, fi), - BTRFS_COMPRESS_TYPES); + BTRFS_COMPRESS_TYPES - 1); return -EUCLEAN; } if (btrfs_file_extent_encryption(leaf, fi)) { From patchwork Sat Oct 5 05:17:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chengguang Xu X-Patchwork-Id: 11175489 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 454CE76 for ; Sat, 5 Oct 2019 05:36:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 24B32222BE for ; Sat, 5 Oct 2019 05:36:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mykernel.net header.i=cgxu519@mykernel.net header.b="VAiAMPQM" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726774AbfJEFdp (ORCPT ); Sat, 5 Oct 2019 01:33:45 -0400 Received: from sender2-of-o52.zoho.com.cn ([163.53.93.247]:21554 "EHLO sender2-of-o52.zoho.com.cn" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726426AbfJEFdo (ORCPT ); Sat, 5 Oct 2019 01:33:44 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1570252688; cv=none; d=zoho.com.cn; s=zohoarc; b=p0E5kHJEP+jqUDuo6tPyptfqmyyFtXCBdAK3lhYR+bvCzZYpGptNRs+M7H6lRB8aOO2LvrNiRQIFd8UNxuwP8UkDNlCIhv5J8HIvj+C3XqHbCnx2b6TSmwQ4kgXRz2zS6pgmZyp67uCdQAwvhybDCNyqkYOID+sEULfYJcH80XM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com.cn; s=zohoarc; t=1570252688; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To:ARC-Authentication-Results; bh=cuCj8lkW5ZTQMOaX87sqd1zA7ygX45opu+Zre1DkD74=; b=hFSkpJQtZFch6eEo614NYHZ+qxN4cVu8KTly2f3p05VcWQrJki3QbLiQmRdkec5ukIwDWCunzV/DiBcOqcmPoOaBEP2QAKiD+fQYcdx+vXR80eho/zQIhNgSCUFCU4PDrC6NXY/G6Ux1LEPtBaogezf8GfGtEkjrRfxcqoAb+Q8= ARC-Authentication-Results: i=1; mx.zoho.com.cn; dkim=pass header.i=mykernel.net; spf=pass smtp.mailfrom=cgxu519@mykernel.net; dmarc=pass header.from= header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1570252688; s=zohomail; d=mykernel.net; i=cgxu519@mykernel.net; h=From:To:Cc:Message-ID:Subject:Date:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Content-Type; l=1664; bh=cuCj8lkW5ZTQMOaX87sqd1zA7ygX45opu+Zre1DkD74=; b=VAiAMPQMrk5vGgxyMA6mV2vHRSXkM58PjTDN1ruQo66Yemw5jYvt/8bucPetlJ2i cT3okPyObu0umh+3hIFU89a7QT3Xm89He3Alsv6Y/qyyu0wZJvbdnZd3BCQJCGj33bW hUC+OD2yEcv6B52axw1nmAYIhly42C+Wv/sLTieQ= Received: from localhost.localdomain (116.30.195.234 [116.30.195.234]) by mx.zoho.com.cn with SMTPS id 1570252686586852.6704752914676; Sat, 5 Oct 2019 13:18:06 +0800 (CST) From: Chengguang Xu To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com Cc: linux-btrfs@vger.kernel.org, Chengguang Xu Message-ID: <20191005051736.29857-3-cgxu519@mykernel.net> Subject: [PATCH 3/3] btrfs: using enum to replace macro Date: Sat, 5 Oct 2019 13:17:36 +0800 X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191005051736.29857-1-cgxu519@mykernel.net> References: <20191005051736.29857-1-cgxu519@mykernel.net> MIME-Version: 1.0 X-ZohoCNMailClient: External Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org using enum to replace macro definition for extent types. Signed-off-by: Chengguang Xu --- fs/btrfs/tree-checker.c | 4 ++-- include/uapi/linux/btrfs_tree.h | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/fs/btrfs/tree-checker.c b/fs/btrfs/tree-checker.c index 2d91c34bbf63..9b0c5fdbe04e 100644 --- a/fs/btrfs/tree-checker.c +++ b/fs/btrfs/tree-checker.c @@ -156,11 +156,11 @@ static int check_extent_data_item(struct extent_buffer *leaf, fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item); - if (btrfs_file_extent_type(leaf, fi) > BTRFS_FILE_EXTENT_TYPES) { + if (btrfs_file_extent_type(leaf, fi) >= BTRFS_FILE_EXTENT_TYPES) { file_extent_err(leaf, slot, "invalid type for file extent, have %u expect range [0, %u]", btrfs_file_extent_type(leaf, fi), - BTRFS_FILE_EXTENT_TYPES); + BTRFS_FILE_EXTENT_TYPES - 1); return -EUCLEAN; } diff --git a/include/uapi/linux/btrfs_tree.h b/include/uapi/linux/btrfs_tree.h index b65c7ee75bc7..34bd09ffc71d 100644 --- a/include/uapi/linux/btrfs_tree.h +++ b/include/uapi/linux/btrfs_tree.h @@ -737,10 +737,12 @@ struct btrfs_balance_item { __le64 unused[4]; } __attribute__ ((__packed__)); -#define BTRFS_FILE_EXTENT_INLINE 0 -#define BTRFS_FILE_EXTENT_REG 1 -#define BTRFS_FILE_EXTENT_PREALLOC 2 -#define BTRFS_FILE_EXTENT_TYPES 2 +enum { + BTRFS_FILE_EXTENT_INLINE, + BTRFS_FILE_EXTENT_REG, + BTRFS_FILE_EXTENT_PREALLOC, + BTRFS_FILE_EXTENT_TYPES +}; struct btrfs_file_extent_item { /*