All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org,
	Johannes Thumshirn <johannes.thumshirn@wdc.com>,
	David Sterba <dsterba@suse.com>
Subject: [PATCH 5.15 10/20] btrfs: zoned: allow preallocation for relocation inodes
Date: Fri, 19 Nov 2021 18:39:28 +0100	[thread overview]
Message-ID: <20211119171444.992343653@linuxfoundation.org> (raw)
In-Reply-To: <20211119171444.640508836@linuxfoundation.org>

From: Johannes Thumshirn <johannes.thumshirn@wdc.com>

commit 960a3166aed015887cd54423a6589ae4d0b65bd5 upstream

Now that we use a dedicated block group and regular writes for data
relocation, we can preallocate the space needed for a relocated inode,
just like we do in regular mode.

Essentially this reverts commit 32430c614844 ("btrfs: zoned: enable
relocation on a zoned filesystem") as it is not needed anymore.

Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/btrfs/relocation.c |   35 ++---------------------------------
 1 file changed, 2 insertions(+), 33 deletions(-)

--- a/fs/btrfs/relocation.c
+++ b/fs/btrfs/relocation.c
@@ -2852,31 +2852,6 @@ static noinline_for_stack int prealloc_f
 	if (ret)
 		return ret;
 
-	/*
-	 * On a zoned filesystem, we cannot preallocate the file region.
-	 * Instead, we dirty and fiemap_write the region.
-	 */
-	if (btrfs_is_zoned(inode->root->fs_info)) {
-		struct btrfs_root *root = inode->root;
-		struct btrfs_trans_handle *trans;
-
-		end = cluster->end - offset + 1;
-		trans = btrfs_start_transaction(root, 1);
-		if (IS_ERR(trans))
-			return PTR_ERR(trans);
-
-		inode->vfs_inode.i_ctime = current_time(&inode->vfs_inode);
-		i_size_write(&inode->vfs_inode, end);
-		ret = btrfs_update_inode(trans, root, inode);
-		if (ret) {
-			btrfs_abort_transaction(trans, ret);
-			btrfs_end_transaction(trans);
-			return ret;
-		}
-
-		return btrfs_end_transaction(trans);
-	}
-
 	btrfs_inode_lock(&inode->vfs_inode, 0);
 	for (nr = 0; nr < cluster->nr; nr++) {
 		start = cluster->boundary[nr] - offset;
@@ -3084,7 +3059,6 @@ release_page:
 static int relocate_file_extent_cluster(struct inode *inode,
 					struct file_extent_cluster *cluster)
 {
-	struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
 	u64 offset = BTRFS_I(inode)->index_cnt;
 	unsigned long index;
 	unsigned long last_index;
@@ -3114,8 +3088,6 @@ static int relocate_file_extent_cluster(
 	for (index = (cluster->start - offset) >> PAGE_SHIFT;
 	     index <= last_index && !ret; index++)
 		ret = relocate_one_page(inode, ra, cluster, &cluster_nr, index);
-	if (btrfs_is_zoned(fs_info) && !ret)
-		ret = btrfs_wait_ordered_range(inode, 0, (u64)-1);
 	if (ret == 0)
 		WARN_ON(cluster_nr != cluster->nr);
 out:
@@ -3770,12 +3742,8 @@ static int __insert_orphan_inode(struct
 	struct btrfs_path *path;
 	struct btrfs_inode_item *item;
 	struct extent_buffer *leaf;
-	u64 flags = BTRFS_INODE_NOCOMPRESS | BTRFS_INODE_PREALLOC;
 	int ret;
 
-	if (btrfs_is_zoned(trans->fs_info))
-		flags &= ~BTRFS_INODE_PREALLOC;
-
 	path = btrfs_alloc_path();
 	if (!path)
 		return -ENOMEM;
@@ -3790,7 +3758,8 @@ static int __insert_orphan_inode(struct
 	btrfs_set_inode_generation(leaf, item, 1);
 	btrfs_set_inode_size(leaf, item, 0);
 	btrfs_set_inode_mode(leaf, item, S_IFREG | 0600);
-	btrfs_set_inode_flags(leaf, item, flags);
+	btrfs_set_inode_flags(leaf, item, BTRFS_INODE_NOCOMPRESS |
+					  BTRFS_INODE_PREALLOC);
 	btrfs_mark_buffer_dirty(leaf);
 out:
 	btrfs_free_path(path);



  parent reply	other threads:[~2021-11-19 17:39 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-19 17:39 [PATCH 5.15 00/20] 5.15.4-rc1 review Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 01/20] string: uninline memcpy_and_pad Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 02/20] Revert "drm: fb_helper: improve CONFIG_FB dependency" Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 03/20] Revert "drm: fb_helper: fix " Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 04/20] KVM: Fix steal time asm constraints Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 05/20] btrfs: introduce btrfs_is_data_reloc_root Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 06/20] btrfs: zoned: add a dedicated data relocation block group Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 07/20] btrfs: zoned: only allow one process to add pages to a relocation inode Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 08/20] btrfs: zoned: use regular writes for relocation Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 09/20] btrfs: check for relocation inodes on zoned btrfs in should_nocow Greg Kroah-Hartman
2021-11-19 17:39 ` Greg Kroah-Hartman [this message]
2021-11-19 17:39 ` [PATCH 5.15 11/20] fortify: Explicitly disable Clang support Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 12/20] block: Add a helper to validate the block size Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 13/20] loop: Use blk_validate_block_size() to validate " Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 14/20] Bluetooth: btusb: Add support for TP-Link UB500 Adapter Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 15/20] parisc/entry: fix trace test in syscall exit path Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 16/20] PCI/MSI: Deal with devices lying about their MSI mask capability Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 17/20] PCI: Add MSI masking quirk for Nvidia ION AHCI Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 18/20] perf/core: Avoid put_page() when GUP fails Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 19/20] thermal: Fix NULL pointer dereferences in of_thermal_ functions Greg Kroah-Hartman
2021-11-19 17:39 ` [PATCH 5.15 20/20] Revert "ACPI: scan: Release PM resources blocked by unused objects" Greg Kroah-Hartman
2021-11-19 19:15 ` [PATCH 5.15 00/20] 5.15.4-rc1 review Florian Fainelli
2021-11-19 21:53 ` Fox Chen
2021-11-19 23:17 ` Shuah Khan
2021-11-20  4:28 ` Daniel Díaz
2021-11-20  8:16 ` Rudi Heitbaum
2021-11-20 16:53 ` Guenter Roeck
2021-11-20 17:40 ` Scott Bruce

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211119171444.992343653@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=dsterba@suse.com \
    --cc=johannes.thumshirn@wdc.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.