From patchwork Wed Sep 14 23:07:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josef Bacik X-Patchwork-Id: 12976622 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E4E7AC6FA82 for ; Wed, 14 Sep 2022 23:08:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229804AbiINXIA (ORCPT ); Wed, 14 Sep 2022 19:08:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52388 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229701AbiINXH6 (ORCPT ); Wed, 14 Sep 2022 19:07:58 -0400 Received: from mail-qt1-x82f.google.com (mail-qt1-x82f.google.com [IPv6:2607:f8b0:4864:20::82f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 496D087094 for ; Wed, 14 Sep 2022 16:07:54 -0700 (PDT) Received: by mail-qt1-x82f.google.com with SMTP id ay9so1659716qtb.0 for ; Wed, 14 Sep 2022 16:07:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toxicpanda-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date; bh=bGTljzgjlG0L3SNv7Kpbd2lJWKRBuiAPmPQ/y9uSgQo=; b=VoEvL8ybPdAAR/tE+0EtBckLar8whHX3Ni4GVsT03LOpasp4p8tmdoYyvPpJkuU+w7 UZuNFXMAk29y4T9g7gq9nYHlLQnk7pjpyWhnPOjPyP5ziJ18uBW4URBYR2+CTGZhBmmh GA7fSmMHUlqqaVBzKrlEv5pfXa762+jNO0blrqlcBuVNe2ecEigogUAp0mEeAfDewP1F slZRjRjRMlrw5pEMT5R2ThM6VHoPFIcCvOixCTSH8aMgtXAjHtLa337qa3Q6tmgXXRYB 5q9ucTTRS+8IFeeAKP7Nfkr2Vqmq5MqQoAaHPus2ZN5KdGDn/cWibV+taGxPPy9CQ6HP GQhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date; bh=bGTljzgjlG0L3SNv7Kpbd2lJWKRBuiAPmPQ/y9uSgQo=; b=tV0BTEHDTkN/ASMJ+zzs6Y/NyVliDrbgQMnkSyOraTh09tn1AUK481QgTqa0MgJhk4 +ArXo/8D955VbjCOjiosR9vvAQ2zO7AmnP46Df3ufAX9hHr0aKm4PR13YvS2BDa5JwSr Au47Ae7KY2XrZ4vU2EOTHnKosatFl/oVcCvGgzZ4xqlbSn30xQD+vYG92tfmxeM9pqkd kzwTfRcMggE1pumnwAv8pL4W6qeCIbWFCuXABuhTnbEytrmwmDJtjXkPu2p27sn9eNwP qG/WibmqkO3HDYyvb1mz3PXzrPrXRDKo5v9E/ietaPIk7QFtF/5iovPsxYJez0qV+KD+ YcMA== X-Gm-Message-State: ACgBeo0ZR0tuCJuFYkaOU6LjKy9VXvbdakMWZw/4zCh9cohyhsX7KmaU 42V9U7cwy8LKd3xnr7YWGOhLELF2ogyXtQ== X-Google-Smtp-Source: AA6agR4sF/TGj0zieQ2sDpZl5Ll4oV43iQW2xMnqWKlxAnjZxVJQyfZGWUteWBw++4UFXBxiSwQtnw== X-Received: by 2002:ac8:7f16:0:b0:35b:b8c3:ef93 with SMTP id f22-20020ac87f16000000b0035bb8c3ef93mr12861891qtk.209.1663196873029; Wed, 14 Sep 2022 16:07:53 -0700 (PDT) Received: from localhost (cpe-174-109-172-136.nc.res.rr.com. [174.109.172.136]) by smtp.gmail.com with ESMTPSA id w8-20020a05620a424800b006ce5fe31c2dsm2988620qko.65.2022.09.14.16.07.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Sep 2022 16:07:52 -0700 (PDT) From: Josef Bacik To: linux-btrfs@vger.kernel.org, kernel-team@fb.com Subject: [PATCH 01/10] btrfs: add a helper for opening a new device to add to the fs Date: Wed, 14 Sep 2022 19:07:41 -0400 Message-Id: <280fe61f3405e88a0a4a5ac0cacff3993f9f31ff.1663196746.git.josef@toxicpanda.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org We currently duplicate our device init code for adding a new device to a file system and replacing an existing device in a file system. These two init functions are subtle-y different, however they both open the disk and check it's zoned status to see if it's compatible. Combine this step into a single helper and use that helper from both init functions. The goal of this change is to move the zoned helper out of zoned.h in order to avoid using helpers that aren't defined in zoned.h. Signed-off-by: Josef Bacik Reviewed-by: Johannes Thumshirn --- fs/btrfs/dev-replace.c | 10 +--------- fs/btrfs/volumes.c | 28 +++++++++++++++++++++------- fs/btrfs/volumes.h | 2 ++ 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/fs/btrfs/dev-replace.c b/fs/btrfs/dev-replace.c index c6222057f655..8f5922ba0129 100644 --- a/fs/btrfs/dev-replace.c +++ b/fs/btrfs/dev-replace.c @@ -258,20 +258,12 @@ static int btrfs_init_dev_replace_tgtdev(struct btrfs_fs_info *fs_info, return -EINVAL; } - bdev = blkdev_get_by_path(device_path, FMODE_WRITE | FMODE_EXCL, - fs_info->bdev_holder); + bdev = btrfs_open_device_for_adding(fs_info, device_path); if (IS_ERR(bdev)) { btrfs_err(fs_info, "target device %s is invalid!", device_path); return PTR_ERR(bdev); } - if (!btrfs_check_device_zone_type(fs_info, bdev)) { - btrfs_err(fs_info, - "dev-replace: zoned type of target device mismatch with filesystem"); - ret = -EINVAL; - goto error; - } - sync_blockdev(bdev); list_for_each_entry(device, &fs_devices->devices, dev_list) { diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 09c1434c3cae..ea76458d7c70 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -2583,6 +2583,26 @@ static int btrfs_finish_sprout(struct btrfs_trans_handle *trans) return ret; } +struct block_device *btrfs_open_device_for_adding(struct btrfs_fs_info *fs_info, + const char *device_path) +{ + struct block_device *bdev; + + bdev = blkdev_get_by_path(device_path, FMODE_WRITE | FMODE_EXCL, + fs_info->bdev_holder); + if (IS_ERR(bdev)) + return bdev; + + if (!btrfs_check_device_zone_type(fs_info, bdev)) { + btrfs_err(fs_info, + "dev-replace: zoned type of target device mismatch with filesystem"); + blkdev_put(bdev, FMODE_EXCL); + return ERR_PTR(-EINVAL); + } + + return bdev; +} + int btrfs_init_new_device(struct btrfs_fs_info *fs_info, const char *device_path) { struct btrfs_root *root = fs_info->dev_root; @@ -2602,16 +2622,10 @@ int btrfs_init_new_device(struct btrfs_fs_info *fs_info, const char *device_path if (sb_rdonly(sb) && !fs_devices->seeding) return -EROFS; - bdev = blkdev_get_by_path(device_path, FMODE_WRITE | FMODE_EXCL, - fs_info->bdev_holder); + bdev = btrfs_open_device_for_adding(fs_info, device_path); if (IS_ERR(bdev)) return PTR_ERR(bdev); - if (!btrfs_check_device_zone_type(fs_info, bdev)) { - ret = -EINVAL; - goto error; - } - if (fs_devices->seeding) { seeding_dev = true; down_write(&sb->s_umount); diff --git a/fs/btrfs/volumes.h b/fs/btrfs/volumes.h index 2bf7dbe739fd..60d74554edf2 100644 --- a/fs/btrfs/volumes.h +++ b/fs/btrfs/volumes.h @@ -757,4 +757,6 @@ int btrfs_verify_dev_extents(struct btrfs_fs_info *fs_info); bool btrfs_repair_one_zone(struct btrfs_fs_info *fs_info, u64 logical); unsigned long btrfs_chunk_item_size(int num_stripes); bool btrfs_pinned_by_swapfile(struct btrfs_fs_info *fs_info, void *ptr); +struct block_device *btrfs_open_device_for_adding(struct btrfs_fs_info *fs_info, + const char *device_path); #endif From patchwork Wed Sep 14 23:07:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josef Bacik X-Patchwork-Id: 12976623 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1F77CECAAD3 for ; Wed, 14 Sep 2022 23:08:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229824AbiINXIB (ORCPT ); Wed, 14 Sep 2022 19:08:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52424 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229696AbiINXH7 (ORCPT ); Wed, 14 Sep 2022 19:07:59 -0400 Received: from mail-qt1-x833.google.com (mail-qt1-x833.google.com [IPv6:2607:f8b0:4864:20::833]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8C77087081 for ; Wed, 14 Sep 2022 16:07:55 -0700 (PDT) Received: by mail-qt1-x833.google.com with SMTP id s18so9392008qtx.6 for ; Wed, 14 Sep 2022 16:07:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toxicpanda-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date; bh=MFDwn1dwx6PkSD57bKJCt2SMDtuYBMpaUpYFyW+I6Us=; b=X/slaij+DoAvmJjYsEa9vlDL/IQgKGKv73aoeduqBTxQ//DNWq1JkJ9nkPWahDMgbY GCRzfVaYm7EJWxSo5VoPaxVrK2QqRrRfWH6smmYrKmxgJaE+ujj3x97mUiChnHbSQtg1 71RZVmi+GSC7iPq6fFxT5fDfrvOeFsYNg9ve4l8WvTz33RNZ2M6pIIVGjFue+IhzRx4D 15bHZSfCFmIg6NPOIfxrbhDq9MErHFLb5KRYJuGr7fDtMFgKjdOUIGqpvqYSQXLkCY3f UYXtvsh/DbgRIq0aw1VtwWpc/ZeePG5+DA2lLgWnGHt3sQ3K5ROi9jePjsjdFP+ykgXt iiqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date; bh=MFDwn1dwx6PkSD57bKJCt2SMDtuYBMpaUpYFyW+I6Us=; b=4enrnCCDEEjxssmLdC+D7+zxlNUfaBGYZ0E8mZLLk1d89uS3cvJRlWXxHHcO4mvAFk 9HfwBq+91jnGxjJWgxPE0cSCeFv5g7RHLisHERx0iEM6ZWQ3TzAmFhWT0XotS/jr2EpE FuZkHIGFlcL5JfY4jxbDWGx5PH6niGQLeiSK2CjQC9mw4vjhUoHpei3vEQznVgX1XxKe +RaYEt3V3BbpwGRIPIZPlqMAR/kfU4HNJSzAhKvKMrSvjmAhSzaDE99CJgkaJTpLUngm vp65zqGQTmJgZRbGN1G/7uxk7dr+czOOVo59B1C6mkVtjE3AzMeQU184R4P9cowjNocH 0/Dg== X-Gm-Message-State: ACgBeo1PWp8TdxVSzct3pmzoX8TTAKx7QEwxQrBcNmLwJB7OrKH3VhqF NcmOl7pN9WUQ2+ajzeP3mY3yNziXrWoNiw== X-Google-Smtp-Source: AA6agR50mzpZWgfxc9Zcx8M45Ux1Eg7bylsFevWiBhJe7tUPcyxGwGYoY2NF8GWpvvUepgM4La42nA== X-Received: by 2002:a05:622a:290:b0:35b:bc26:d98c with SMTP id z16-20020a05622a029000b0035bbc26d98cmr10492687qtw.489.1663196874323; Wed, 14 Sep 2022 16:07:54 -0700 (PDT) Received: from localhost (cpe-174-109-172-136.nc.res.rr.com. [174.109.172.136]) by smtp.gmail.com with ESMTPSA id az6-20020a05620a170600b006b919c6749esm2824976qkb.91.2022.09.14.16.07.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Sep 2022 16:07:53 -0700 (PDT) From: Josef Bacik To: linux-btrfs@vger.kernel.org, kernel-team@fb.com Subject: [PATCH 02/10] btrfs: move btrfs_check_device_zone_type into volumes.c Date: Wed, 14 Sep 2022 19:07:42 -0400 Message-Id: X-Mailer: git-send-email 2.26.3 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org Now that this is only used in volumes.c move it out of zoned.h locally to volumes.c. This is in order to avoid having a helper that uses functions not defined in zoned.h. Signed-off-by: Josef Bacik Reviewed-by: Johannes Thumshirn --- fs/btrfs/volumes.c | 19 +++++++++++++++++++ fs/btrfs/zoned.h | 19 ------------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index ea76458d7c70..29652323ef9b 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -2583,6 +2583,25 @@ static int btrfs_finish_sprout(struct btrfs_trans_handle *trans) return ret; } +static inline bool btrfs_check_device_zone_type(const struct btrfs_fs_info *fs_info, + struct block_device *bdev) +{ + if (btrfs_is_zoned(fs_info)) { + /* + * We can allow a regular device on a zoned filesystem, because + * we will emulate the zoned capabilities. + */ + if (!bdev_is_zoned(bdev)) + return true; + + return fs_info->zone_size == + (bdev_zone_sectors(bdev) << SECTOR_SHIFT); + } + + /* Do not allow Host Manged zoned device */ + return bdev_zoned_model(bdev) != BLK_ZONED_HM; +} + struct block_device *btrfs_open_device_for_adding(struct btrfs_fs_info *fs_info, const char *device_path) { diff --git a/fs/btrfs/zoned.h b/fs/btrfs/zoned.h index 094f3e44c53c..20d7f35406d4 100644 --- a/fs/btrfs/zoned.h +++ b/fs/btrfs/zoned.h @@ -311,25 +311,6 @@ static inline void btrfs_dev_clear_zone_empty(struct btrfs_device *device, u64 p btrfs_dev_set_empty_zone_bit(device, pos, false); } -static inline bool btrfs_check_device_zone_type(const struct btrfs_fs_info *fs_info, - struct block_device *bdev) -{ - if (btrfs_is_zoned(fs_info)) { - /* - * We can allow a regular device on a zoned filesystem, because - * we will emulate the zoned capabilities. - */ - if (!bdev_is_zoned(bdev)) - return true; - - return fs_info->zone_size == - (bdev_zone_sectors(bdev) << SECTOR_SHIFT); - } - - /* Do not allow Host Manged zoned device */ - return bdev_zoned_model(bdev) != BLK_ZONED_HM; -} - static inline bool btrfs_check_super_location(struct btrfs_device *device, u64 pos) { /* From patchwork Wed Sep 14 23:07:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josef Bacik X-Patchwork-Id: 12976625 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 26216C6FA8A for ; Wed, 14 Sep 2022 23:08:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229845AbiINXID (ORCPT ); Wed, 14 Sep 2022 19:08:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229701AbiINXIA (ORCPT ); Wed, 14 Sep 2022 19:08:00 -0400 Received: from mail-qk1-x736.google.com (mail-qk1-x736.google.com [IPv6:2607:f8b0:4864:20::736]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4A38F88DF1 for ; Wed, 14 Sep 2022 16:07:56 -0700 (PDT) Received: by mail-qk1-x736.google.com with SMTP id q11so9016252qkc.12 for ; Wed, 14 Sep 2022 16:07:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toxicpanda-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date; bh=4eGczGLZTkmdb3LjA+84lArlPiAPZprT358D2WG+w18=; b=ftFp/I76kIXjwxj2Dtg+oZ6rpPWBaedqdB6uqd3I5yMVPxEM1XN4I7M15k5k9+T+o9 j9sONFSmKGP5NxFddRqY+9s4tZDNafGcmrXIxyWtJokHgAGdh4twxZ03ZSmCLePUIK3n 6IFgwwNaq26zZkHGjnEnJW2wsIK+kTD1a9pGPG+3HpWSes7NkeTU3OaADy+O7rcFaLOe hJ9eFZQw2mUdflDrGVPS6dk45LHQfrgYpe7Gh2naEk2mLaRF4yeWe0rtkGNvroAMNOOR civJNp9LEJl479XgmcRvgdDiAYqMJPv/+pXCob8iZM5/hD1swPY0j82H3wOmoGLS2rSi 20mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date; bh=4eGczGLZTkmdb3LjA+84lArlPiAPZprT358D2WG+w18=; b=EmlYPCbAuw/yJzBeV2q0S7WsbMR2YY1RNuc+on52nHyRkl1lq9WH82khn/vAGI8/Gx fcyHx6v+3FoeomSapacUD/opoltjZ47pg/d/6+lp2JO7tkOFNKKE2lvD5LP1jibpxy2a hPwNuRO6ez5rkfALsMgKB4MqtyS+wR7r6520EOK90jD5/Qfpdx9rtaRoZ9XgFsu2e0n6 W5zK3GnT/EC6Po/9qc44GYMcF3DocFnwWZ3KSK0ivQBkBCK7Z3SGqWUhrO09GBXWFq1P 7Bs5MftPjP6ssSEZbUlcN4b7SBIba52Yi8nlxgjqqmJM2q1bZskUef1bz0BajaGuUQF5 5DRw== X-Gm-Message-State: ACgBeo2mhGBTZH8a5qqnW1IRZPUlLO6zArhh0Y9Q0yb8Fnb0RwFRN1Sb OBzQPGWXn2dTHMVeHxx/wLT4iajxWE74Ug== X-Google-Smtp-Source: AA6agR7AuGcq0mIF/v1GNjOcaYgtSogfvoL/rVHMPTrD0LTDIGFUm0bm2rHap3JPLwh3NyysPmvEZg== X-Received: by 2002:a05:620a:43a2:b0:6c7:f2f5:4a1c with SMTP id a34-20020a05620a43a200b006c7f2f54a1cmr28562063qkp.439.1663196875622; Wed, 14 Sep 2022 16:07:55 -0700 (PDT) Received: from localhost (cpe-174-109-172-136.nc.res.rr.com. [174.109.172.136]) by smtp.gmail.com with ESMTPSA id m12-20020ac866cc000000b0035bbc29b3c9sm2414815qtp.60.2022.09.14.16.07.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Sep 2022 16:07:55 -0700 (PDT) From: Josef Bacik To: linux-btrfs@vger.kernel.org, kernel-team@fb.com Subject: [PATCH 03/10] btrfs: move btrfs_can_zone_reset into extent-tree.c Date: Wed, 14 Sep 2022 19:07:43 -0400 Message-Id: X-Mailer: git-send-email 2.26.3 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org This helper is only used in extent-tree.c to decide if we need to zone reset for a discard. Move it out of zoned.h locally to extent-tree.c. Signed-off-by: Josef Bacik Reviewed-by: Johannes Thumshirn --- fs/btrfs/extent-tree.c | 15 +++++++++++++++ fs/btrfs/zoned.h | 15 --------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 7cf7844c9dba..0785c1491313 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -1271,6 +1271,21 @@ static int btrfs_issue_discard(struct block_device *bdev, u64 start, u64 len, return ret; } +static inline bool btrfs_can_zone_reset(struct btrfs_device *device, + u64 physical, u64 length) +{ + u64 zone_size; + + if (!btrfs_dev_is_sequential(device, physical)) + return false; + + zone_size = device->zone_info->zone_size; + if (!IS_ALIGNED(physical, zone_size) || !IS_ALIGNED(length, zone_size)) + return false; + + return true; +} + static int do_discard_extent(struct btrfs_discard_stripe *stripe, u64 *bytes) { struct btrfs_device *dev = stripe->dev; diff --git a/fs/btrfs/zoned.h b/fs/btrfs/zoned.h index 20d7f35406d4..aabdd364e889 100644 --- a/fs/btrfs/zoned.h +++ b/fs/btrfs/zoned.h @@ -320,21 +320,6 @@ static inline bool btrfs_check_super_location(struct btrfs_device *device, u64 p return device->zone_info == NULL || !btrfs_dev_is_sequential(device, pos); } -static inline bool btrfs_can_zone_reset(struct btrfs_device *device, - u64 physical, u64 length) -{ - u64 zone_size; - - if (!btrfs_dev_is_sequential(device, physical)) - return false; - - zone_size = device->zone_info->zone_size; - if (!IS_ALIGNED(physical, zone_size) || !IS_ALIGNED(length, zone_size)) - return false; - - return true; -} - static inline void btrfs_zoned_meta_io_lock(struct btrfs_fs_info *fs_info) { if (!btrfs_is_zoned(fs_info)) From patchwork Wed Sep 14 23:07:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josef Bacik X-Patchwork-Id: 12976624 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EC264C6FA86 for ; Wed, 14 Sep 2022 23:08:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229832AbiINXIC (ORCPT ); Wed, 14 Sep 2022 19:08:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52434 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229812AbiINXIB (ORCPT ); Wed, 14 Sep 2022 19:08:01 -0400 Received: from mail-qt1-x834.google.com (mail-qt1-x834.google.com [IPv6:2607:f8b0:4864:20::834]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6E64F88DF6 for ; Wed, 14 Sep 2022 16:07:58 -0700 (PDT) Received: by mail-qt1-x834.google.com with SMTP id w2so8747139qtv.9 for ; Wed, 14 Sep 2022 16:07:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toxicpanda-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date; bh=6JrsQeBhWMZTS5cFS5BZe+GUQzsKrqLxavip0LbAT3E=; b=ujrQfnmRMUKH7nGqSjdS+QUXsQxGibTyRW+cuTBGLZn2+QVUS8wpWS5yinCxrEuGKH Ybp5LRdsSpMVyg2FLIvSQnojC1uVJpSRgRVXIKJordKj8rlzoAWCbi9oQlMdRfhGtxMM kXKuxg+6qHkF6qNIaoC64usuGKYD63RkLdVqXLmVanazmx8989KtO7sw7yjjmF6rqLGa 6SrwaI/hVF5EdSvG0Ym+vIEDpJ/f6UkJwb/Uk5ZCk3t2CkJV9myOj78JLOkh1nZ7Ibnk sVWjWNqcnYC2TgaGyNY5BgjCZzMVX6/vbGAhIaSEPXnQYWpXaKlWb/WfHBqk15CMD6in RwOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date; bh=6JrsQeBhWMZTS5cFS5BZe+GUQzsKrqLxavip0LbAT3E=; b=lIoNFGiyVEw4sHI3rJoeoN2ylrZYsLaJHtCSH8wdTPMJLA2AaSvgHs9MlVwi09nr2m QXD68MMLFx018i5QedpJgwq8cLsJ8q/pENrPwkzsux9IEWQQice3tp9uRuPlYKuPx4+n kbBKxSY2hFChdFT22HXN225xM8hYds/k/UWvyUr1X2xOtXk6eDigvXj/MfPpia0TtETb jjombz5ASqf/BGQEm0Yu9TRZBAdo2jCi4okhRXRHUx4ezSLQXpE5YxZ0kSQGDxitfHrD 8c9+iNIXphRaUKb/huO7w8E+eFsGIDW2A9bKmbyOcIWwRItudzfq4Y8F+4HoHh7Q870I Wjrg== X-Gm-Message-State: ACgBeo0ogRPBjGBzOyeUOLfGkWCP/SkrU0+A4uDxch2wMjIbzt2UIEha nM7WhITHmbsOntNs09PXH3lzvOKaADo1bA== X-Google-Smtp-Source: AA6agR4LQKpNU9I5cVQswXdHlZTbz+CEAdk9B3XLWO4uhLHfEmHU0DNNB4eK9xEWiVeMzXUyoqslGQ== X-Received: by 2002:ac8:5ac7:0:b0:35b:b658:4b6c with SMTP id d7-20020ac85ac7000000b0035bb6584b6cmr13969978qtd.207.1663196876940; Wed, 14 Sep 2022 16:07:56 -0700 (PDT) Received: from localhost (cpe-174-109-172-136.nc.res.rr.com. [174.109.172.136]) by smtp.gmail.com with ESMTPSA id fw8-20020a05622a4a8800b00338ae1f5421sm2425078qtb.0.2022.09.14.16.07.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Sep 2022 16:07:56 -0700 (PDT) From: Josef Bacik To: linux-btrfs@vger.kernel.org, kernel-team@fb.com Subject: [PATCH 04/10] btrfs: move btrfs_check_super_location into scrub.c Date: Wed, 14 Sep 2022 19:07:44 -0400 Message-Id: <32978def2ae6a480ad5734ce4d1c5661db0206c0.1663196746.git.josef@toxicpanda.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org This helper is only used in scrub.c, move it out of zoned.h locally to scrub.c to avoid using code that isn't defined in zoned.h. Signed-off-by: Josef Bacik Reviewed-by: Johannes Thumshirn --- fs/btrfs/scrub.c | 9 +++++++++ fs/btrfs/zoned.h | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c index d5c23faceb8e..927431217131 100644 --- a/fs/btrfs/scrub.c +++ b/fs/btrfs/scrub.c @@ -4140,6 +4140,15 @@ int scrub_enumerate_chunks(struct scrub_ctx *sctx, return ret; } +static inline bool btrfs_check_super_location(struct btrfs_device *device, u64 pos) +{ + /* + * On a non-zoned device, any address is OK. On a zoned device, + * non-SEQUENTIAL WRITE REQUIRED zones are capable. + */ + return device->zone_info == NULL || !btrfs_dev_is_sequential(device, pos); +} + static noinline_for_stack int scrub_supers(struct scrub_ctx *sctx, struct btrfs_device *scrub_dev) { diff --git a/fs/btrfs/zoned.h b/fs/btrfs/zoned.h index aabdd364e889..0a1298afa049 100644 --- a/fs/btrfs/zoned.h +++ b/fs/btrfs/zoned.h @@ -311,15 +311,6 @@ static inline void btrfs_dev_clear_zone_empty(struct btrfs_device *device, u64 p btrfs_dev_set_empty_zone_bit(device, pos, false); } -static inline bool btrfs_check_super_location(struct btrfs_device *device, u64 pos) -{ - /* - * On a non-zoned device, any address is OK. On a zoned device, - * non-SEQUENTIAL WRITE REQUIRED zones are capable. - */ - return device->zone_info == NULL || !btrfs_dev_is_sequential(device, pos); -} - static inline void btrfs_zoned_meta_io_lock(struct btrfs_fs_info *fs_info) { if (!btrfs_is_zoned(fs_info)) From patchwork Wed Sep 14 23:07:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josef Bacik X-Patchwork-Id: 12976626 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AB8BAC6FA82 for ; Wed, 14 Sep 2022 23:08:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229894AbiINXIE (ORCPT ); Wed, 14 Sep 2022 19:08:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52436 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229818AbiINXIB (ORCPT ); Wed, 14 Sep 2022 19:08:01 -0400 Received: from mail-qv1-xf2c.google.com (mail-qv1-xf2c.google.com [IPv6:2607:f8b0:4864:20::f2c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F081886C3A for ; Wed, 14 Sep 2022 16:07:59 -0700 (PDT) Received: by mail-qv1-xf2c.google.com with SMTP id j8so2004692qvt.13 for ; Wed, 14 Sep 2022 16:07:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toxicpanda-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date; bh=SL3kQOlJuvxxL2gD4th/N/EksG5qOqX5CpFfCBGXcho=; b=i8QAdfP6JtFvlNpi1KNNJvFJTbykp5cVEfFxdDiCVFgYEQ+iWZTBba6FyU4K6he4oH p1pqLGW6D4llFyKW3AYE5QbQ5hu7QMxNJF2JIaDozrItuwpteVg8i8mcvI/JmlzBHk2z Yw+GuG9Qr6glk064en7Xxo4ySXtTmru52JFJ3D6jZng5ly9kWkYC5A+DT86JlMqvlkxA mNRJvUDPju/3mKGDB5Ajo8IvUabTZp0FdDERnY6XyhZhoMBR+MMYmK3b9byLeNQHNB4q 9UuI9zm4Ob2DOABNLt/Gr/Qp1rCpcsnOiXuN80RGyalbKT8kGoHnS89yycYP/fZ4zGEG +cHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date; bh=SL3kQOlJuvxxL2gD4th/N/EksG5qOqX5CpFfCBGXcho=; b=tYm61hnStxcY5etpcqBkuQGjPkqFDcuAgep2wyQHesFb00GuNy6DQmH2tl+ZgB0Wfa 9MrduwnjEmDHGY1+NEAGWnPMl3Flo6hJ0kWT4R69aBVQMMwQxRgv7xI9K1CBuPAHVjJh 6GMHq+ezeFsnMm2rdBUpCzt0+7bGTYnboGXo70BWjcBlCsDPC8x7SahVX7jcnQy1T+Sx bRprsJCYX6Wxt8O9pNQ7xg4Vmht+3TYNy/rk8wQ4aVGuvVe4vpwFmh7UHQUPKL+i72a3 UGBPkU0angVsQrg9uJBRztqW9IH2zQfmVmBI+QN2uu+qcHjncWpmXDQgk+nUOJKH0KZo rjhw== X-Gm-Message-State: ACgBeo3kHpEtc0d6yeIC0tng3L86WD8zRSsmMHs+Qd7O0qwbIN4WABv8 eR77nQJXYeZxg9thpa3K27z7n+QQPHlA5A== X-Google-Smtp-Source: AA6agR5qI743FdjPv4vtiw5sopyfvpIQY1f0xj3/E2b37uRkYL3dKx+JmXLYdSV5QKJYRVTQgzOG9w== X-Received: by 2002:a05:6214:29ee:b0:4ac:8956:7ac0 with SMTP id jv14-20020a05621429ee00b004ac89567ac0mr24253672qvb.48.1663196878758; Wed, 14 Sep 2022 16:07:58 -0700 (PDT) Received: from localhost (cpe-174-109-172-136.nc.res.rr.com. [174.109.172.136]) by smtp.gmail.com with ESMTPSA id y18-20020a05622a005200b0034305a91aaesm2557647qtw.83.2022.09.14.16.07.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Sep 2022 16:07:57 -0700 (PDT) From: Josef Bacik To: linux-btrfs@vger.kernel.org, kernel-team@fb.com Subject: [PATCH 05/10] btrfs: move btrfs_zoned_meta_io_*lock to extent_io.c Date: Wed, 14 Sep 2022 19:07:45 -0400 Message-Id: X-Mailer: git-send-email 2.26.3 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org This is only used in extent_io.c for locking during writeout. Move this out of zoned.h locally to extent_io.c, these functions use code not defined in zoned.h so allows us to clean up the header file. Signed-off-by: Josef Bacik Reviewed-by: Johannes Thumshirn --- fs/btrfs/extent_io.c | 14 ++++++++++++++ fs/btrfs/zoned.h | 14 -------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index f5eb6c66911c..18b60304c97a 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -2945,6 +2945,20 @@ static int submit_eb_page(struct page *page, struct writeback_control *wbc, return 1; } +static inline void btrfs_zoned_meta_io_lock(struct btrfs_fs_info *fs_info) +{ + if (!btrfs_is_zoned(fs_info)) + return; + mutex_lock(&fs_info->zoned_meta_io_lock); +} + +static inline void btrfs_zoned_meta_io_unlock(struct btrfs_fs_info *fs_info) +{ + if (!btrfs_is_zoned(fs_info)) + return; + mutex_unlock(&fs_info->zoned_meta_io_lock); +} + int btree_write_cache_pages(struct address_space *mapping, struct writeback_control *wbc) { diff --git a/fs/btrfs/zoned.h b/fs/btrfs/zoned.h index 0a1298afa049..af7eebe4f405 100644 --- a/fs/btrfs/zoned.h +++ b/fs/btrfs/zoned.h @@ -311,20 +311,6 @@ static inline void btrfs_dev_clear_zone_empty(struct btrfs_device *device, u64 p btrfs_dev_set_empty_zone_bit(device, pos, false); } -static inline void btrfs_zoned_meta_io_lock(struct btrfs_fs_info *fs_info) -{ - if (!btrfs_is_zoned(fs_info)) - return; - mutex_lock(&fs_info->zoned_meta_io_lock); -} - -static inline void btrfs_zoned_meta_io_unlock(struct btrfs_fs_info *fs_info) -{ - if (!btrfs_is_zoned(fs_info)) - return; - mutex_unlock(&fs_info->zoned_meta_io_lock); -} - static inline void btrfs_clear_treelog_bg(struct btrfs_block_group *bg) { struct btrfs_fs_info *fs_info = bg->fs_info; From patchwork Wed Sep 14 23:07:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josef Bacik X-Patchwork-Id: 12976627 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2EAA2C6FA86 for ; Wed, 14 Sep 2022 23:08:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229923AbiINXIG (ORCPT ); Wed, 14 Sep 2022 19:08:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52442 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229696AbiINXIC (ORCPT ); Wed, 14 Sep 2022 19:08:02 -0400 Received: from mail-qv1-xf2c.google.com (mail-qv1-xf2c.google.com [IPv6:2607:f8b0:4864:20::f2c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 319F887081 for ; Wed, 14 Sep 2022 16:08:01 -0700 (PDT) Received: by mail-qv1-xf2c.google.com with SMTP id c6so12923465qvn.6 for ; Wed, 14 Sep 2022 16:08:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toxicpanda-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date; bh=ifsE12uS/h9wkhPyzkOPzi10gC3ipxyRSfEZFKcDH8g=; b=mQlwuytm+TrYLmqpi3mX7tPyj17qL3nnRRVmOZq16QrPbF20v6CaYLj/PYO2OFaH0K pv3zl+LhiD8a+FSsc2T74s1oOhxJCKuidDfWKsVcOBJyALPMgRtEZFYlLHV5+ujcAzcH lPQ1LqGLhht5/TCySxSuJ4iSSJzUQXFredNup1Cqwvz2Zk95CgVNGo8GzlTmFTGp5zZx DC5H8T0+No23Ziv6umqlMzjc21jly2QT1hyz+mzb94DOCH2j2otSNv32Hi8dG2+iL67l vY+uZeBd1Gn49wzdgqtgdxDQNXAmmRsaEV2kDnWk8/NLdYfvEn8A+Nj3h0HN/HwqM+Pl Mxdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date; bh=ifsE12uS/h9wkhPyzkOPzi10gC3ipxyRSfEZFKcDH8g=; b=UP66S8zVhI7m3N/icct3qPdOZ/YEFXsZ+mrLwM1pnrdl1IFgt9PvrlizskuUqqCKsY sk/4qMwTJBcMjpzSXjBj0Ovx+anccPITxWLhdLceOykJ/ZXGA7niIOJh7HM33zQOHWUE L+2M9qGumuB2bZM/InxJyLg4UVc1qo3MZ4e3fI0Ke8j5eUBjCGw27aB/6frxwi7khNWE OKMNkhmxs6dcADb1pglQw/Dd5Hj04m5e+3PIca0hKCGS10DooJeIjgFU2M9BXii7XhFO JtBtQ4Sa0gKtMrF/pu4uOBdlbY8KF+/pGNOUgI4ergbuXjXUYE6yyoA+0BB6HOJLuQvl p/2g== X-Gm-Message-State: ACgBeo2JkgXEwJG0ZgjLCf3SwPznbisg/qPLBFzqvI2hIvyqcpUt3q21 H2AsrNDg62en2wbXTwO5071AvKumI7d6aQ== X-Google-Smtp-Source: AA6agR5vJ7BOxHbWSYlKgJDcXJMA6rasc61Eg8m49i0HrWwcok9Lgx9pt1Rps8h6U0C3fe4nTCL6vQ== X-Received: by 2002:ad4:5c4d:0:b0:4ac:942f:78b0 with SMTP id a13-20020ad45c4d000000b004ac942f78b0mr22076885qva.48.1663196880006; Wed, 14 Sep 2022 16:08:00 -0700 (PDT) Received: from localhost (cpe-174-109-172-136.nc.res.rr.com. [174.109.172.136]) by smtp.gmail.com with ESMTPSA id 79-20020a370452000000b006ce441816e0sm2670487qke.15.2022.09.14.16.07.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Sep 2022 16:07:59 -0700 (PDT) From: Josef Bacik To: linux-btrfs@vger.kernel.org, kernel-team@fb.com Subject: [PATCH 06/10] btrfs: move btrfs_clear_treelog_bg to extent-tree.c Date: Wed, 14 Sep 2022 19:07:46 -0400 Message-Id: <4d12140ef58244d81f2888e8d9e585c268f01911.1663196746.git.josef@toxicpanda.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org This function uses a lot of code that isn't defined inside of zoned.h, so move it to extent-tree.c where the other functions that use these members are. Signed-off-by: Josef Bacik Reviewed-by: Johannes Thumshirn --- fs/btrfs/extent-tree.c | 12 ++++++++++++ fs/btrfs/zoned.h | 15 ++------------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 0785c1491313..9c4ce3c100ec 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -3731,6 +3731,18 @@ static int do_allocation_clustered(struct btrfs_block_group *block_group, * block_group::lock * fs_info::treelog_bg_lock */ +void btrfs_clear_treelog_bg(struct btrfs_block_group *bg) +{ + struct btrfs_fs_info *fs_info = bg->fs_info; + + if (!btrfs_is_zoned(fs_info)) + return; + + spin_lock(&fs_info->treelog_bg_lock); + if (fs_info->treelog_bg == bg->start) + fs_info->treelog_bg = 0; + spin_unlock(&fs_info->treelog_bg_lock); +} /* * Simple allocator for sequential-only block group. It only allows sequential diff --git a/fs/btrfs/zoned.h b/fs/btrfs/zoned.h index af7eebe4f405..bd2b3fee4f2d 100644 --- a/fs/btrfs/zoned.h +++ b/fs/btrfs/zoned.h @@ -31,6 +31,8 @@ struct btrfs_zoned_device_info { struct blk_zone sb_zones[2 * BTRFS_SUPER_MIRROR_MAX]; }; +void btrfs_clear_treelog_bg(struct btrfs_block_group *bg); + #ifdef CONFIG_BLK_DEV_ZONED int btrfs_get_dev_zone(struct btrfs_device *device, u64 pos, struct blk_zone *zone); @@ -311,19 +313,6 @@ static inline void btrfs_dev_clear_zone_empty(struct btrfs_device *device, u64 p btrfs_dev_set_empty_zone_bit(device, pos, false); } -static inline void btrfs_clear_treelog_bg(struct btrfs_block_group *bg) -{ - struct btrfs_fs_info *fs_info = bg->fs_info; - - if (!btrfs_is_zoned(fs_info)) - return; - - spin_lock(&fs_info->treelog_bg_lock); - if (fs_info->treelog_bg == bg->start) - fs_info->treelog_bg = 0; - spin_unlock(&fs_info->treelog_bg_lock); -} - static inline void btrfs_zoned_data_reloc_lock(struct btrfs_inode *inode) { struct btrfs_root *root = inode->root; From patchwork Wed Sep 14 23:07:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josef Bacik X-Patchwork-Id: 12976628 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 81A7CECAAD3 for ; Wed, 14 Sep 2022 23:08:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229906AbiINXII (ORCPT ); Wed, 14 Sep 2022 19:08:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52516 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229701AbiINXIE (ORCPT ); Wed, 14 Sep 2022 19:08:04 -0400 Received: from mail-qv1-xf30.google.com (mail-qv1-xf30.google.com [IPv6:2607:f8b0:4864:20::f30]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BC88087081 for ; Wed, 14 Sep 2022 16:08:02 -0700 (PDT) Received: by mail-qv1-xf30.google.com with SMTP id s13so12911493qvq.10 for ; Wed, 14 Sep 2022 16:08:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toxicpanda-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date; bh=D3yrp+m004UR0fVemLriMd19Z6YV9SNVzs/TI4VG3ss=; b=d1sIhTIu1mK1BJz4Bw/DXCwj9vZYrNjLMjZKe7P8lDPk1F3BHqdvqUvyGh8SCWaeIo KI6uHnSj66CWCFl/MWr0HVZKtIQYT7GOjl9l9lvYv+2s7e63vZkmnKHJRzzIOaTUKCjd diy/tTrCTnkazyM8iWRkZNCJOAGnXrj++LFjm0b/EqBS7VpdJPA0WTLeZLCdv1Se9sK5 1ytIU9slTiGQ26mq4KACWoWph03iA/nboN/thvnNvBqT3H+aMxpkQwSaSJEfKjM8GdbP ey1EWDAwcZC3/nU8SGhm0Za8ZSsYPLUwai0yF4LtudiMJ8RSzNL7nO26AtoABAF0Za7H fsng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date; bh=D3yrp+m004UR0fVemLriMd19Z6YV9SNVzs/TI4VG3ss=; b=TU9HvarCT755fY+WWybh2dhOR8tGDlBJzChe0HTKQukvH+CU5pEb/8JTBe5Gap6Nvs c9WYMeGyfRh3CkiCU29bQpeI6t3L0uuJ7rkb4Ij55zCBCOPTzJwcLNgRI5VulLDQ5ciA Pyxd78I/odClEjo4pDDzs2RhzCG5+FwSvnVjHoQDwYk6h1bfi4dERKQTZRw11HyAUmjO R0gb9SrvHdn5sRDo0d8dGK6VksK+2AW1H9B9/PU01cQvqTPG+6/fRVTgAczSA0fkEivX DKkhj/rcK5BbFbn4bl2Z3re/dOZIXrrc5d4VR7cMZ3CbOidrLD9wkxK17lr8JJinTEDS mlHQ== X-Gm-Message-State: ACgBeo1jfjQL8IzFOY9gmy7tIICkweHGNLQusUF5Aa5DJO1d6N4iVZ7b 57xaXBuOiwIXzBR9sGVV+/0sJCaGrDfL4Q== X-Google-Smtp-Source: AA6agR5Ab1kFDYFqkIZhHv58U41rI8rwq/MwGAlLiyPTQzY+TM/2tJ9mqqCSByPH6eO6e8xdtMomfA== X-Received: by 2002:ad4:4eec:0:b0:4a5:52eb:5cbe with SMTP id dv12-20020ad44eec000000b004a552eb5cbemr34105163qvb.34.1663196881244; Wed, 14 Sep 2022 16:08:01 -0700 (PDT) Received: from localhost (cpe-174-109-172-136.nc.res.rr.com. [174.109.172.136]) by smtp.gmail.com with ESMTPSA id l14-20020ac84cce000000b0034355a352d1sm2348702qtv.92.2022.09.14.16.08.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Sep 2022 16:08:00 -0700 (PDT) From: Josef Bacik To: linux-btrfs@vger.kernel.org, kernel-team@fb.com Subject: [PATCH 07/10] btrfs: move btrfs_zoned_data_reloc_*lock to extent_io.c Date: Wed, 14 Sep 2022 19:07:47 -0400 Message-Id: <9ff2cb480bba029fb169a15919bf96a87b37a919.1663196746.git.josef@toxicpanda.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org These functions are only used to protect io in extent_io.c, move them from zoned.h locally in extent_io.c. These helpers use code not defined in zoned.h, this cleans up the header file. Signed-off-by: Josef Bacik Reviewed-by: Johannes Thumshirn --- fs/btrfs/extent_io.c | 16 ++++++++++++++++ fs/btrfs/zoned.h | 16 ---------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 18b60304c97a..13c8ed8cbfc8 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -3301,6 +3301,22 @@ int extent_write_locked_range(struct inode *inode, u64 start, u64 end) return ret; } +static inline void btrfs_zoned_data_reloc_lock(struct btrfs_inode *inode) +{ + struct btrfs_root *root = inode->root; + + if (btrfs_is_data_reloc_root(root) && btrfs_is_zoned(root->fs_info)) + mutex_lock(&root->fs_info->zoned_data_reloc_io_lock); +} + +static inline void btrfs_zoned_data_reloc_unlock(struct btrfs_inode *inode) +{ + struct btrfs_root *root = inode->root; + + if (btrfs_is_data_reloc_root(root) && btrfs_is_zoned(root->fs_info)) + mutex_unlock(&root->fs_info->zoned_data_reloc_io_lock); +} + int extent_writepages(struct address_space *mapping, struct writeback_control *wbc) { diff --git a/fs/btrfs/zoned.h b/fs/btrfs/zoned.h index bd2b3fee4f2d..de1337e462be 100644 --- a/fs/btrfs/zoned.h +++ b/fs/btrfs/zoned.h @@ -313,22 +313,6 @@ static inline void btrfs_dev_clear_zone_empty(struct btrfs_device *device, u64 p btrfs_dev_set_empty_zone_bit(device, pos, false); } -static inline void btrfs_zoned_data_reloc_lock(struct btrfs_inode *inode) -{ - struct btrfs_root *root = inode->root; - - if (btrfs_is_data_reloc_root(root) && btrfs_is_zoned(root->fs_info)) - mutex_lock(&root->fs_info->zoned_data_reloc_io_lock); -} - -static inline void btrfs_zoned_data_reloc_unlock(struct btrfs_inode *inode) -{ - struct btrfs_root *root = inode->root; - - if (btrfs_is_data_reloc_root(root) && btrfs_is_zoned(root->fs_info)) - mutex_unlock(&root->fs_info->zoned_data_reloc_io_lock); -} - static inline bool btrfs_zoned_bg_is_full(const struct btrfs_block_group *bg) { ASSERT(btrfs_is_zoned(bg->fs_info)); From patchwork Wed Sep 14 23:07:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josef Bacik X-Patchwork-Id: 12976629 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BB1CFC6FA86 for ; Wed, 14 Sep 2022 23:08:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229924AbiINXIJ (ORCPT ); Wed, 14 Sep 2022 19:08:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52556 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229818AbiINXIF (ORCPT ); Wed, 14 Sep 2022 19:08:05 -0400 Received: from mail-qk1-x72d.google.com (mail-qk1-x72d.google.com [IPv6:2607:f8b0:4864:20::72d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D67F6895C3 for ; Wed, 14 Sep 2022 16:08:03 -0700 (PDT) Received: by mail-qk1-x72d.google.com with SMTP id f13so7823292qkk.6 for ; Wed, 14 Sep 2022 16:08:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toxicpanda-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date; bh=4uW150atEhF6nK23NrUBZERw9/ufdlInpqL5JXvQcbw=; b=PcmhX/f4qC3z7ywAsxyG4zM+Bne0ontBhzuF/G7vWSUuKZlcdJCXT0EMAqVAubQ0ar wpPqtk+8Mf1Wme8oPzNJFnZgxc6EHrsLFS7bwJE5krf7qOFjTb62ODfjuZO8dic1sSNo 5Q3GC10wcX2vvaElE9V2w2V3xZaxdeyxI9xu8vKFWYqlrY9lbBYJdmMo0l7E9grNN9zx /XawWnwxbYG46Np9lBl1u7ta9p6ryvMyii/lReqEnULLn4xn+C/Z/W9QyLlJ6cmNNjuV k2rU0hyQxvfuTNofTJbgiAuNiz9oHbiBdg0HwM7cvZN3zyKcvcZXUPvGW2sB2+ylJc8z AXcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date; bh=4uW150atEhF6nK23NrUBZERw9/ufdlInpqL5JXvQcbw=; b=ZzN7CJwvhXoEyR0chG82/Q42IBhWLdV3J5SZhj9SaruyO3NMSvuoyPLVkf9piVRAG6 OJLfI7ZJtWwkqD6Md2rB6PlAnp4cmXdBYnOEEVDHdZlXfQM1Ym0uFtx4M0vLzMo+tlzf xvPg5O1CXZ8ALW/pRvNAmmgPvD/dwF6zlyzZUH5Wgiq6ay68pdIMthegM/0NlWNXmInY Lk9wKUR6sM4bbGSCqUrrS7tSMawptUgTJiVUNF705ZVdrpKMuL9HBNrNLX10SrjtRO76 w1YilCPb6/OVHjxn5zTe1YWzDdF9tXT7zMBaGzbpRmliBF6OOgQSN/JnklJiCMQhODoW ll9A== X-Gm-Message-State: ACgBeo0WWbLR7MOe74Kh50l2pa7O0hNVbmgqmQkPUD2uViFwn2uaFe1L FN+LDO0wDjzcxXvSGsBLEs2XXiKMlO8KSw== X-Google-Smtp-Source: AA6agR61ltNcy26TVYlHSLL/2i+S++9ZlUg9LbeV7PiCdfw/pwUplyL5yKZt8cp8gJZKovdkE+HZzA== X-Received: by 2002:ae9:ed44:0:b0:6ce:19bb:7780 with SMTP id c65-20020ae9ed44000000b006ce19bb7780mr14382176qkg.25.1663196882531; Wed, 14 Sep 2022 16:08:02 -0700 (PDT) Received: from localhost (cpe-174-109-172-136.nc.res.rr.com. [174.109.172.136]) by smtp.gmail.com with ESMTPSA id s14-20020ac85ece000000b00339b8a5639csm2366578qtx.95.2022.09.14.16.08.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Sep 2022 16:08:02 -0700 (PDT) From: Josef Bacik To: linux-btrfs@vger.kernel.org, kernel-team@fb.com Subject: [PATCH 08/10] btrfs: move btrfs_zoned_bg_is_full into block-group.c Date: Wed, 14 Sep 2022 19:07:48 -0400 Message-Id: <04ad998f1c1c383fd68577abf613ffd8e4622cec.1663196746.git.josef@toxicpanda.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org This function is completely related to block groups, as well as using ASSERT() which isn't defined in either zoned.h or block-group.h. Move the code to block-group.c to make sure the headers are only using code they define themselves. Signed-off-by: Josef Bacik Reviewed-by: Johannes Thumshirn --- fs/btrfs/block-group.c | 6 ++++++ fs/btrfs/block-group.h | 1 + fs/btrfs/zoned.h | 7 ------- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/fs/btrfs/block-group.c b/fs/btrfs/block-group.c index e21382a13fe4..3a5f29494d98 100644 --- a/fs/btrfs/block-group.c +++ b/fs/btrfs/block-group.c @@ -4178,3 +4178,9 @@ void btrfs_dec_block_group_swap_extents(struct btrfs_block_group *bg, int amount bg->swap_extents -= amount; spin_unlock(&bg->lock); } + +bool btrfs_zoned_bg_is_full(const struct btrfs_block_group *bg) +{ + ASSERT(btrfs_is_zoned(bg->fs_info)); + return (bg->alloc_offset == bg->zone_capacity); +} diff --git a/fs/btrfs/block-group.h b/fs/btrfs/block-group.h index 6c970a486b68..4edf5486a592 100644 --- a/fs/btrfs/block-group.h +++ b/fs/btrfs/block-group.h @@ -322,6 +322,7 @@ int btrfs_free_block_groups(struct btrfs_fs_info *info); int btrfs_rmap_block(struct btrfs_fs_info *fs_info, u64 chunk_start, struct block_device *bdev, u64 physical, u64 **logical, int *naddrs, int *stripe_len); +bool btrfs_zoned_bg_is_full(const struct btrfs_block_group *bg); static inline u64 btrfs_data_alloc_profile(struct btrfs_fs_info *fs_info) { diff --git a/fs/btrfs/zoned.h b/fs/btrfs/zoned.h index de1337e462be..a94de42f9edb 100644 --- a/fs/btrfs/zoned.h +++ b/fs/btrfs/zoned.h @@ -312,11 +312,4 @@ static inline void btrfs_dev_clear_zone_empty(struct btrfs_device *device, u64 p { btrfs_dev_set_empty_zone_bit(device, pos, false); } - -static inline bool btrfs_zoned_bg_is_full(const struct btrfs_block_group *bg) -{ - ASSERT(btrfs_is_zoned(bg->fs_info)); - return (bg->alloc_offset == bg->zone_capacity); -} - #endif From patchwork Wed Sep 14 23:07:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josef Bacik X-Patchwork-Id: 12976630 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 22649ECAAD3 for ; Wed, 14 Sep 2022 23:08:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229926AbiINXIK (ORCPT ); Wed, 14 Sep 2022 19:08:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52612 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229925AbiINXIG (ORCPT ); Wed, 14 Sep 2022 19:08:06 -0400 Received: from mail-qv1-xf2c.google.com (mail-qv1-xf2c.google.com [IPv6:2607:f8b0:4864:20::f2c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8852A88DEE for ; Wed, 14 Sep 2022 16:08:04 -0700 (PDT) Received: by mail-qv1-xf2c.google.com with SMTP id c6so12923561qvn.6 for ; Wed, 14 Sep 2022 16:08:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toxicpanda-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date; bh=H3kx1/pzbmFkH8h4XKFPer63LjQi1HyWST01q1l5aTw=; b=CdnuouvkXl9Zm6dwhpZkSOTQSSOovQVMdQKZxm9jFi9nqbeMd98dlJ5/5dAPpwCNub MNybse6lpsitLwXEHLFsH7cQpQJ3+D1plJ63EM2puarKSf5kpn676gtrG6Miv2Q6WDW3 Q8+uGRffC3vQVtwdSLB/Ul11OVD1ZYtt2FXWntFrmEAHcJ/MR7AhQK51q3JHqz5yeFrI qWoESKyIS/eEnHLfK202ZYzhYeEckU8Imo4BWCB/X47VEGxuBPUHiyA+1aAHFUFGmXIn q2NyT4QDiUwQU0DR685U3ZCT3xkY19rW548Y8PWstzDR93fyUCx87wcxUUjWuayfN+7k GxfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date; bh=H3kx1/pzbmFkH8h4XKFPer63LjQi1HyWST01q1l5aTw=; b=3udjgfmL+Ezf2sBxbTS5Jsc+7WvAKkpgehHmGnIM1Am08eEO+OORGJUXrDl9G94/H1 GJbrkziH0EN/vXgnlY8nwv7f7CSu4MHEzxg+sAGbq87CQt69raL6rOdWDfPnIHNTp0pD PkvMoetFFO4c02HD+QCq7NtZbTrT2x7AN5ud1YRtOu4jYuFsM4xUK/l88CK5K/OiK+uf Cy5AoXDqD5uhLfcbBQ2ZBFm4E2Jh7m90HDK3nLmS+a4LQJBhZV194Bx0iscLLGcmplpQ 7EaCKUhdxDu2lDAxCG0OxkmsnHKW4IKK7A04b36R+4E4V4sOYI1NBxuvf6pcBCNiFjW4 Debg== X-Gm-Message-State: ACgBeo0bzFtAN93C4Ptt0aJF3UQcrnKsHdFqh/XCdKbDaPf+nOsOjZbl nx8t6DQGAf6Mz9j47JZdsUFhxctAWLL0qg== X-Google-Smtp-Source: AA6agR55raJaVzhWHcfy+CU+XdmycmtUvlZm9a5oJuPS+0oKMUhirm50auG5s3BA7XVxPnbTl3xtUw== X-Received: by 2002:a0c:a901:0:b0:4aa:a283:ef4a with SMTP id y1-20020a0ca901000000b004aaa283ef4amr33473455qva.53.1663196883795; Wed, 14 Sep 2022 16:08:03 -0700 (PDT) Received: from localhost (cpe-174-109-172-136.nc.res.rr.com. [174.109.172.136]) by smtp.gmail.com with ESMTPSA id s11-20020a05620a29cb00b006b8e049cf08sm3008282qkp.2.2022.09.14.16.08.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Sep 2022 16:08:03 -0700 (PDT) From: Josef Bacik To: linux-btrfs@vger.kernel.org, kernel-team@fb.com Subject: [PATCH 09/10] btrfs: make the zoned helpers take btrfs_zoned_device_info Date: Wed, 14 Sep 2022 19:07:49 -0400 Message-Id: <8ac50c0d42b9930f7e8305eabab314fe7f3845cc.1663196746.git.josef@toxicpanda.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org These helpers are doing btrfs_device->zone_info, but btrfs_device isn't defined in zoned.h, which forces one to include files in a specific order. Fix the helpers to take btrfs_zoned_device_info instead, and make the callers pass in the zone_info. Signed-off-by: Josef Bacik Reviewed-by: Johannes Thumshirn --- fs/btrfs/extent-tree.c | 2 +- fs/btrfs/scrub.c | 9 +++++---- fs/btrfs/volumes.c | 2 +- fs/btrfs/zoned.c | 20 +++++++++++--------- fs/btrfs/zoned.h | 23 +++++++++++------------ 5 files changed, 29 insertions(+), 27 deletions(-) diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 9c4ce3c100ec..7dac704071b9 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -1276,7 +1276,7 @@ static inline bool btrfs_can_zone_reset(struct btrfs_device *device, { u64 zone_size; - if (!btrfs_dev_is_sequential(device, physical)) + if (!btrfs_dev_is_sequential(device->zone_info, physical)) return false; zone_size = device->zone_info->zone_size; diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c index 927431217131..66f09202ba96 100644 --- a/fs/btrfs/scrub.c +++ b/fs/btrfs/scrub.c @@ -1792,7 +1792,7 @@ static int fill_writer_pointer_gap(struct scrub_ctx *sctx, u64 physical) if (!btrfs_is_zoned(sctx->fs_info)) return 0; - if (!btrfs_dev_is_sequential(sctx->wr_tgtdev, physical)) + if (!btrfs_dev_is_sequential(sctx->wr_tgtdev->zone_info, physical)) return 0; if (sctx->write_pointer < physical) { @@ -3367,7 +3367,7 @@ static int sync_write_pointer_for_zoned(struct scrub_ctx *sctx, u64 logical, "zoned: failed to recover write pointer"); } mutex_unlock(&sctx->wr_lock); - btrfs_dev_clear_zone_empty(sctx->wr_tgtdev, physical); + btrfs_dev_clear_zone_empty(sctx->wr_tgtdev->zone_info, physical); return ret; } @@ -3627,7 +3627,7 @@ static noinline_for_stack int scrub_stripe(struct scrub_ctx *sctx, blk_start_plug(&plug); if (sctx->is_dev_replace && - btrfs_dev_is_sequential(sctx->wr_tgtdev, physical)) { + btrfs_dev_is_sequential(sctx->wr_tgtdev->zone_info, physical)) { mutex_lock(&sctx->wr_lock); sctx->write_pointer = physical; mutex_unlock(&sctx->wr_lock); @@ -4146,7 +4146,8 @@ static inline bool btrfs_check_super_location(struct btrfs_device *device, u64 p * On a non-zoned device, any address is OK. On a zoned device, * non-SEQUENTIAL WRITE REQUIRED zones are capable. */ - return device->zone_info == NULL || !btrfs_dev_is_sequential(device, pos); + return device->zone_info == NULL || + !btrfs_dev_is_sequential(device->zone_info, pos); } static noinline_for_stack int scrub_supers(struct scrub_ctx *sctx, diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 29652323ef9b..ac3aca265a59 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -6853,7 +6853,7 @@ static void btrfs_submit_dev_bio(struct btrfs_device *dev, struct bio *bio) if (bio_op(bio) == REQ_OP_ZONE_APPEND) { u64 physical = bio->bi_iter.bi_sector << SECTOR_SHIFT; - if (btrfs_dev_is_sequential(dev, physical)) { + if (btrfs_dev_is_sequential(dev->zone_info, physical)) { u64 zone_start = round_down(physical, dev->fs_info->zone_size); diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c index 4d6647925545..67751294f113 100644 --- a/fs/btrfs/zoned.c +++ b/fs/btrfs/zoned.c @@ -1012,7 +1012,7 @@ u64 btrfs_find_allocatable_zones(struct btrfs_device *device, u64 hole_start, return hole_end; /* Check if zones in the region are all empty */ - if (btrfs_dev_is_sequential(device, pos) && + if (btrfs_dev_is_sequential(zinfo, pos) && find_next_zero_bit(zinfo->empty_zones, end, begin) != end) { pos += zinfo->zone_size; continue; @@ -1098,7 +1098,7 @@ int btrfs_reset_device_zone(struct btrfs_device *device, u64 physical, *bytes = length; while (length) { - btrfs_dev_set_zone_empty(device, physical); + btrfs_dev_set_zone_empty(device->zone_info, physical); btrfs_dev_clear_active_zone(device, physical); physical += device->zone_info->zone_size; length -= device->zone_info->zone_size; @@ -1134,8 +1134,8 @@ int btrfs_ensure_empty_zones(struct btrfs_device *device, u64 start, u64 size) for (pos = start; pos < start + size; pos += zinfo->zone_size) { u64 reset_bytes; - if (!btrfs_dev_is_sequential(device, pos) || - btrfs_dev_is_empty_zone(device, pos)) + if (!btrfs_dev_is_sequential(zinfo, pos) || + btrfs_dev_is_empty_zone(zinfo, pos)) continue; /* Free regions should be empty */ @@ -1315,7 +1315,8 @@ int btrfs_load_block_group_zone_info(struct btrfs_block_group *cache, bool new) continue; } - is_sequential = btrfs_dev_is_sequential(device, physical[i]); + is_sequential = btrfs_dev_is_sequential(device->zone_info, + physical[i]); if (is_sequential) num_sequential++; else @@ -1337,12 +1338,13 @@ int btrfs_load_block_group_zone_info(struct btrfs_block_group *cache, bool new) * This zone will be used for allocation, so mark this zone * non-empty. */ - btrfs_dev_clear_zone_empty(device, physical[i]); + btrfs_dev_clear_zone_empty(device->zone_info, physical[i]); down_read(&dev_replace->rwsem); dev_replace_is_ongoing = btrfs_dev_replace_is_ongoing(dev_replace); if (dev_replace_is_ongoing && dev_replace->tgtdev != NULL) - btrfs_dev_clear_zone_empty(dev_replace->tgtdev, physical[i]); + btrfs_dev_clear_zone_empty(dev_replace->tgtdev->zone_info, + physical[i]); up_read(&dev_replace->rwsem); /* @@ -1720,7 +1722,7 @@ void btrfs_revert_meta_write_pointer(struct btrfs_block_group *cache, int btrfs_zoned_issue_zeroout(struct btrfs_device *device, u64 physical, u64 length) { - if (!btrfs_dev_is_sequential(device, physical)) + if (!btrfs_dev_is_sequential(device->zone_info, physical)) return -EOPNOTSUPP; return blkdev_issue_zeroout(device->bdev, physical >> SECTOR_SHIFT, @@ -1784,7 +1786,7 @@ int btrfs_sync_zone_write_pointer(struct btrfs_device *tgt_dev, u64 logical, u64 wp; int ret; - if (!btrfs_dev_is_sequential(tgt_dev, physical_pos)) + if (!btrfs_dev_is_sequential(tgt_dev->zone_info, physical_pos)) return 0; ret = read_zone_info(fs_info, logical, &zone); diff --git a/fs/btrfs/zoned.h b/fs/btrfs/zoned.h index a94de42f9edb..eaaa4787fefb 100644 --- a/fs/btrfs/zoned.h +++ b/fs/btrfs/zoned.h @@ -267,30 +267,27 @@ static inline int btrfs_zoned_activate_one_bg(struct btrfs_fs_info *fs_info, #endif -static inline bool btrfs_dev_is_sequential(struct btrfs_device *device, u64 pos) +static inline bool btrfs_dev_is_sequential(struct btrfs_zoned_device_info *zone_info, + u64 pos) { - struct btrfs_zoned_device_info *zone_info = device->zone_info; - if (!zone_info) return false; return test_bit(pos >> zone_info->zone_size_shift, zone_info->seq_zones); } -static inline bool btrfs_dev_is_empty_zone(struct btrfs_device *device, u64 pos) +static inline bool btrfs_dev_is_empty_zone(struct btrfs_zoned_device_info *zone_info, + u64 pos) { - struct btrfs_zoned_device_info *zone_info = device->zone_info; - if (!zone_info) return true; return test_bit(pos >> zone_info->zone_size_shift, zone_info->empty_zones); } -static inline void btrfs_dev_set_empty_zone_bit(struct btrfs_device *device, +static inline void btrfs_dev_set_empty_zone_bit(struct btrfs_zoned_device_info *zone_info, u64 pos, bool set) { - struct btrfs_zoned_device_info *zone_info = device->zone_info; unsigned int zno; if (!zone_info) @@ -303,13 +300,15 @@ static inline void btrfs_dev_set_empty_zone_bit(struct btrfs_device *device, clear_bit(zno, zone_info->empty_zones); } -static inline void btrfs_dev_set_zone_empty(struct btrfs_device *device, u64 pos) +static inline void btrfs_dev_set_zone_empty(struct btrfs_zoned_device_info *zone_info, + u64 pos) { - btrfs_dev_set_empty_zone_bit(device, pos, true); + btrfs_dev_set_empty_zone_bit(zone_info, pos, true); } -static inline void btrfs_dev_clear_zone_empty(struct btrfs_device *device, u64 pos) +static inline void btrfs_dev_clear_zone_empty(struct btrfs_zoned_device_info *zone_info, + u64 pos) { - btrfs_dev_set_empty_zone_bit(device, pos, false); + btrfs_dev_set_empty_zone_bit(zone_info, pos, false); } #endif From patchwork Wed Sep 14 23:07:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josef Bacik X-Patchwork-Id: 12976631 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AE1BEC6FA82 for ; Wed, 14 Sep 2022 23:08:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229929AbiINXIL (ORCPT ); Wed, 14 Sep 2022 19:08:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52624 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229928AbiINXIH (ORCPT ); Wed, 14 Sep 2022 19:08:07 -0400 Received: from mail-qk1-x72e.google.com (mail-qk1-x72e.google.com [IPv6:2607:f8b0:4864:20::72e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7144288DE9 for ; Wed, 14 Sep 2022 16:08:06 -0700 (PDT) Received: by mail-qk1-x72e.google.com with SMTP id g2so9235520qkk.1 for ; Wed, 14 Sep 2022 16:08:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toxicpanda-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date; bh=4vscmGDixQrgZjf3tzecMOiNjfQewceZNEZsDEmJz74=; b=lpfRNv0U+MIm6nwGlN63Eef9JjoVUAp9LeiFp9zEqtwO77EkEpSe/+OCc/tdn5kIn3 RyL9LxiEWlcBgPYbjmw2rrV6VxGIeM6hR031fE+m90g9f8CD3EUNyG2r9kebG09v7HMf ughu9890TcmmMCQJSxgEVwZnf2tKfxNR0zxDZqsQ5cHoOMgmh0Hxf2UjTJOSPKgdmq+t oKd/jtzIQ/5cvS87ssDQHtJlMjF68yR7OygJY9Fy99h8rlhhE57gwJqjHgcM0nWxNWL/ J3E9JIkcZNA1JuInYIUKcEgWQUiVM2Sb0JcbtAccFCc/32XpjGPgrOdGrf7+dBpTNQ/A DJew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date; bh=4vscmGDixQrgZjf3tzecMOiNjfQewceZNEZsDEmJz74=; b=IPcTnm4SvNyBvIED7QA1hZK/xRUjtd2PmAWlS0tAjzajkCDTHcrKXV4N0MqAiMdKEB 5moikRohQIpYjkg6PwOB5qtu3LXKKnaNXgyAKsncOL+yV9INvkaAf2ijd2wmEBfZ6v1I Bf79pocqzD7XMSJ1w29bLUlSN0OFeKQHbzIV1pAHXxdTMVIxK7N+53e9T+1OtXmiFJz7 Zml7yVZ+NVvhAxBUK60gzPHLK/iQa9N6fQGGS9W9xbNiPUzebAJKXgifE7UAiQMpbrRO ZbZbEm9bc5/Yq4nVTBXVfJ2gZizIcNfjmEhHZ3r3vif33QXKJr+heDU6pFiYp1QG0ars ZdMg== X-Gm-Message-State: ACgBeo1S5uW8ob71OxvaJkVT6em/kiW8hWFJyFBeb7w2yqQFUtrKEI7D tFeeU2bC4yMt6gNSiKmOwlXDJJ2Ok1K+Lg== X-Google-Smtp-Source: AA6agR5paK80xF/bXoDm19yrTBOOqgoVMoSXQav1vrZN/rQZ7rcN7tI7SI4PL5edgkZGhk1ofHUs/w== X-Received: by 2002:ae9:df01:0:b0:6bb:4e95:6a59 with SMTP id t1-20020ae9df01000000b006bb4e956a59mr28229640qkf.339.1663196885048; Wed, 14 Sep 2022 16:08:05 -0700 (PDT) Received: from localhost (cpe-174-109-172-136.nc.res.rr.com. [174.109.172.136]) by smtp.gmail.com with ESMTPSA id ay7-20020a05620a178700b006b942ae928bsm2718052qkb.71.2022.09.14.16.08.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Sep 2022 16:08:04 -0700 (PDT) From: Josef Bacik To: linux-btrfs@vger.kernel.org, kernel-team@fb.com Subject: [PATCH 10/10] btrfs: delete btrfs_check_super_location helper Date: Wed, 14 Sep 2022 19:07:50 -0400 Message-Id: X-Mailer: git-send-email 2.26.3 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org This checks if device->zone_info == NULL or if the bytenr falls in a sequential range, however btrfs_dev_is_sequential already does the NULL zone_info check, so we can replace this helper with just !btrfs_dev_is_sequential. Signed-off-by: Josef Bacik --- fs/btrfs/scrub.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c index 66f09202ba96..9d130e13c6b9 100644 --- a/fs/btrfs/scrub.c +++ b/fs/btrfs/scrub.c @@ -4140,16 +4140,6 @@ int scrub_enumerate_chunks(struct scrub_ctx *sctx, return ret; } -static inline bool btrfs_check_super_location(struct btrfs_device *device, u64 pos) -{ - /* - * On a non-zoned device, any address is OK. On a zoned device, - * non-SEQUENTIAL WRITE REQUIRED zones are capable. - */ - return device->zone_info == NULL || - !btrfs_dev_is_sequential(device->zone_info, pos); -} - static noinline_for_stack int scrub_supers(struct scrub_ctx *sctx, struct btrfs_device *scrub_dev) { @@ -4173,7 +4163,7 @@ static noinline_for_stack int scrub_supers(struct scrub_ctx *sctx, if (bytenr + BTRFS_SUPER_INFO_SIZE > scrub_dev->commit_total_bytes) break; - if (!btrfs_check_super_location(scrub_dev, bytenr)) + if (!btrfs_dev_is_sequential(scrub_dev->zone_info, bytenr)) continue; ret = scrub_sectors(sctx, bytenr, BTRFS_SUPER_INFO_SIZE, bytenr,