From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BB771C433DF for ; Mon, 1 Jun 2020 15:38:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A36B02065C for ; Mon, 1 Jun 2020 15:38:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728182AbgFAPiD (ORCPT ); Mon, 1 Jun 2020 11:38:03 -0400 Received: from mx2.suse.de ([195.135.220.15]:34130 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728031AbgFAPh5 (ORCPT ); Mon, 1 Jun 2020 11:37:57 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 2E720B21E; Mon, 1 Jun 2020 15:37:58 +0000 (UTC) From: Nikolay Borisov To: linux-btrfs@vger.kernel.org Cc: Nikolay Borisov Subject: [PATCH 44/46] btrfs: Make prealloc_file_extent_cluster take btrfs_inode Date: Mon, 1 Jun 2020 18:37:42 +0300 Message-Id: <20200601153744.31891-45-nborisov@suse.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200601153744.31891-1-nborisov@suse.com> References: <20200601153744.31891-1-nborisov@suse.com> Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org The vfs inode is only used for a pair of inode_lock/unlock calls all other uses call for btrfs_inode. Signed-off-by: Nikolay Borisov --- fs/btrfs/relocation.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c index fd8710837430..b48a8e9c844e 100644 --- a/fs/btrfs/relocation.c +++ b/fs/btrfs/relocation.c @@ -2572,13 +2572,13 @@ int relocate_tree_blocks(struct btrfs_trans_handle *trans, } static noinline_for_stack -int prealloc_file_extent_cluster(struct inode *inode, +int prealloc_file_extent_cluster(struct btrfs_inode *inode, struct file_extent_cluster *cluster) { u64 alloc_hint = 0; u64 start; u64 end; - u64 offset = BTRFS_I(inode)->index_cnt; + u64 offset = inode->index_cnt; u64 num_bytes; int nr = 0; int ret = 0; @@ -2588,10 +2588,9 @@ int prealloc_file_extent_cluster(struct inode *inode, struct extent_changeset *data_reserved = NULL; BUG_ON(cluster->start != cluster->boundary[0]); - inode_lock(inode); + inode_lock(&inode->vfs_inode); - ret = btrfs_check_data_free_space(BTRFS_I(inode), &data_reserved, - prealloc_start, + ret = btrfs_check_data_free_space(inode, &data_reserved, prealloc_start, prealloc_end + 1 - prealloc_start); if (ret) goto out; @@ -2604,26 +2603,25 @@ int prealloc_file_extent_cluster(struct inode *inode, else end = cluster->end - offset; - lock_extent(&BTRFS_I(inode)->io_tree, start, end); + lock_extent(&inode->io_tree, start, end); num_bytes = end + 1 - start; if (cur_offset < start) - btrfs_free_reserved_data_space(BTRFS_I(inode), - data_reserved, cur_offset, - start - cur_offset); - ret = btrfs_prealloc_file_range(inode, 0, start, + btrfs_free_reserved_data_space(inode, data_reserved, + cur_offset, start - cur_offset); + ret = btrfs_prealloc_file_range(&inode->vfs_inode, 0, start, num_bytes, num_bytes, end + 1, &alloc_hint); cur_offset = end + 1; - unlock_extent(&BTRFS_I(inode)->io_tree, start, end); + unlock_extent(&inode->io_tree, start, end); if (ret) break; nr++; } if (cur_offset < prealloc_end) - btrfs_free_reserved_data_space(BTRFS_I(inode), data_reserved, - cur_offset, prealloc_end + 1 - cur_offset); + btrfs_free_reserved_data_space(inode, data_reserved, cur_offset, + prealloc_end + 1 - cur_offset); out: - inode_unlock(inode); + inode_unlock(&inode->vfs_inode); extent_changeset_free(data_reserved); return ret; } @@ -2692,7 +2690,7 @@ static int relocate_file_extent_cluster(struct inode *inode, if (!ra) return -ENOMEM; - ret = prealloc_file_extent_cluster(inode, cluster); + ret = prealloc_file_extent_cluster(BTRFS_I(inode), cluster); if (ret) goto out; -- 2.17.1