linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nikolay Borisov <nborisov@suse.com>
To: linux-btrfs@vger.kernel.org
Cc: Nikolay Borisov <nborisov@suse.com>
Subject: [PATCH 17/46] btrfs: Make submit_compressed_extents take btrfs_inode
Date: Mon,  1 Jun 2020 18:37:15 +0300	[thread overview]
Message-ID: <20200601153744.31891-18-nborisov@suse.com> (raw)
In-Reply-To: <20200601153744.31891-1-nborisov@suse.com>

All but 3 uses require vfs_inode so convert the logic to have btrfs_inode be
the main inode struct.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
---
 fs/btrfs/inode.c | 34 +++++++++++++++-------------------
 1 file changed, 15 insertions(+), 19 deletions(-)

diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index a527848c57d5..9794895d16fe 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -763,14 +763,14 @@ static void free_async_extent_pages(struct async_extent *async_extent)
  */
 static noinline void submit_compressed_extents(struct async_chunk *async_chunk)
 {
-	struct inode *inode = async_chunk->inode;
-	struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
+	struct btrfs_inode *inode = BTRFS_I(async_chunk->inode);
+	struct btrfs_fs_info *fs_info = inode->root->fs_info;
 	struct async_extent *async_extent;
 	u64 alloc_hint = 0;
 	struct btrfs_key ins;
 	struct extent_map *em;
-	struct btrfs_root *root = BTRFS_I(inode)->root;
-	struct extent_io_tree *io_tree = &BTRFS_I(inode)->io_tree;
+	struct btrfs_root *root = inode->root;
+	struct extent_io_tree *io_tree = &inode->io_tree;
 	int ret = 0;

 again:
@@ -788,8 +788,7 @@ static noinline void submit_compressed_extents(struct async_chunk *async_chunk)
 			unsigned long nr_written = 0;

 			/* allocate blocks */
-			ret = cow_file_range(BTRFS_I(inode),
-					     async_chunk->locked_page,
+			ret = cow_file_range(inode, async_chunk->locked_page,
 					     async_extent->start,
 					     async_extent->start +
 					     async_extent->ram_size - 1,
@@ -804,7 +803,7 @@ static noinline void submit_compressed_extents(struct async_chunk *async_chunk)
 			 * all those pages down to the drive.
 			 */
 			if (!page_started && !ret)
-				extent_write_locked_range(inode,
+				extent_write_locked_range(&inode->vfs_inode,
 						  async_extent->start,
 						  async_extent->start +
 						  async_extent->ram_size - 1,
@@ -834,7 +833,7 @@ static noinline void submit_compressed_extents(struct async_chunk *async_chunk)
 				 * will not submit these pages down to lower
 				 * layers.
 				 */
-				extent_range_redirty_for_io(inode,
+				extent_range_redirty_for_io(&inode->vfs_inode,
 						async_extent->start,
 						async_extent->start +
 						async_extent->ram_size - 1);
@@ -847,7 +846,7 @@ static noinline void submit_compressed_extents(struct async_chunk *async_chunk)
 		 * here we're doing allocation and writeback of the
 		 * compressed pages
 		 */
-		em = create_io_em(BTRFS_I(inode), async_extent->start,
+		em = create_io_em(inode, async_extent->start,
 				  async_extent->ram_size, /* len */
 				  async_extent->start, /* orig_start */
 				  ins.objectid, /* block_start */
@@ -861,7 +860,7 @@ static noinline void submit_compressed_extents(struct async_chunk *async_chunk)
 			goto out_free_reserve;
 		free_extent_map(em);

-		ret = btrfs_add_ordered_extent_compress(BTRFS_I(inode),
+		ret = btrfs_add_ordered_extent_compress(inode,
 						async_extent->start,
 						ins.objectid,
 						async_extent->ram_size,
@@ -869,8 +868,7 @@ static noinline void submit_compressed_extents(struct async_chunk *async_chunk)
 						BTRFS_ORDERED_COMPRESSED,
 						async_extent->compress_type);
 		if (ret) {
-			btrfs_drop_extent_cache(BTRFS_I(inode),
-						async_extent->start,
+			btrfs_drop_extent_cache(inode, async_extent->start,
 						async_extent->start +
 						async_extent->ram_size - 1, 0);
 			goto out_free_reserve;
@@ -880,14 +878,13 @@ static noinline void submit_compressed_extents(struct async_chunk *async_chunk)
 		/*
 		 * clear dirty, set writeback and unlock the pages.
 		 */
-		extent_clear_unlock_delalloc(BTRFS_I(inode), async_extent->start,
+		extent_clear_unlock_delalloc(inode, async_extent->start,
 				async_extent->start +
 				async_extent->ram_size - 1,
 				NULL, EXTENT_LOCKED | EXTENT_DELALLOC,
 				PAGE_UNLOCK | PAGE_CLEAR_DIRTY |
 				PAGE_SET_WRITEBACK);
-		if (btrfs_submit_compressed_write(BTRFS_I(inode),
-				    async_extent->start,
+		if (btrfs_submit_compressed_write(inode, async_extent->start,
 				    async_extent->ram_size,
 				    ins.objectid,
 				    ins.offset, async_extent->pages,
@@ -898,12 +895,11 @@ static noinline void submit_compressed_extents(struct async_chunk *async_chunk)
 			const u64 start = async_extent->start;
 			const u64 end = start + async_extent->ram_size - 1;

-			p->mapping = inode->i_mapping;
+			p->mapping = inode->vfs_inode.i_mapping;
 			btrfs_writepage_endio_finish_ordered(p, start, end, 0);

 			p->mapping = NULL;
-			extent_clear_unlock_delalloc(BTRFS_I(inode), start, end,
-						     NULL, 0,
+			extent_clear_unlock_delalloc(inode, start, end, NULL, 0,
 						     PAGE_END_WRITEBACK |
 						     PAGE_SET_ERROR);
 			free_async_extent_pages(async_extent);
@@ -917,7 +913,7 @@ static noinline void submit_compressed_extents(struct async_chunk *async_chunk)
 	btrfs_dec_block_group_reservations(fs_info, ins.objectid);
 	btrfs_free_reserved_extent(fs_info, ins.objectid, ins.offset, 1);
 out_free:
-	extent_clear_unlock_delalloc(BTRFS_I(inode), async_extent->start,
+	extent_clear_unlock_delalloc(inode, async_extent->start,
 				     async_extent->start +
 				     async_extent->ram_size - 1,
 				     NULL, EXTENT_LOCKED | EXTENT_DELALLOC |
--
2.17.1


  parent reply	other threads:[~2020-06-01 15:37 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-01 15:36 [PATCH 00/46] Trivial BTRFS_I removal Nikolay Borisov
2020-06-01 15:36 ` [PATCH 01/46] btrfs: Make __btrfs_add_ordered_extent take struct btrfs_inode Nikolay Borisov
2020-06-02  8:50   ` Johannes Thumshirn
2020-06-01 15:37 ` [PATCH 02/46] btrfs: Make get_extent_allocation_hint take btrfs_inode Nikolay Borisov
2020-06-02  8:54   ` Johannes Thumshirn
2020-06-01 15:37 ` [PATCH 03/46] btrfs: Make btrfs_lookup_ordered_extent " Nikolay Borisov
2020-06-02  8:56   ` Johannes Thumshirn
2020-06-01 15:37 ` [PATCH 04/46] btrfs: Make btrfs_reloc_clone_csums " Nikolay Borisov
2020-06-02  8:57   ` Johannes Thumshirn
2020-06-01 15:37 ` [PATCH 05/46] btrfs: Make create_io_em " Nikolay Borisov
2020-06-02  8:58   ` Johannes Thumshirn
2020-06-01 15:37 ` [PATCH 06/46] btrfs: Make extent_clear_unlock_delalloc " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 07/46] btrfs: Make btrfs_csum_one_bio takae btrfs_inode Nikolay Borisov
2020-06-01 15:37 ` [PATCH 08/46] btrfs: Make __btrfs_drop_extents take btrfs_inode Nikolay Borisov
2020-06-01 15:37 ` [PATCH 09/46] btrfs: Make qgroup_free_reserved_data " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 10/46] btrfs: Make __btrfs_qgroup_release_data " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 11/46] btrfs: Make btrfs_qgroup_free_data " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 12/46] btrfs: Make cow_file_range_inline " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 13/46] btrfs: Make btrfs_add_ordered_extent " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 14/46] btrfs: Make cow_file_range " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 15/46] btrfs: Make btrfs_add_ordered_extent_compress " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 16/46] btrfs: Make btrfs_submit_compressed_write " Nikolay Borisov
2020-06-01 15:37 ` Nikolay Borisov [this message]
2020-06-01 15:37 ` [PATCH 18/46] btrfs: Make btrfs_qgroup_release_data " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 19/46] btrfs: Make insert_reserved_file_extent " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 20/46] btrfs: Make fallback_to_cow " Nikolay Borisov
2020-06-02  9:23   ` Johannes Thumshirn
2020-06-01 15:37 ` [PATCH 21/46] btrfs: Make run_delalloc_nocow " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 22/46] btrfs: Make cow_file_range_async " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 23/46] btrfs: Make btrfs_dec_test_first_ordered_pending " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 24/46] btrfs: Make __endio_write_update_ordered " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 25/46] btrfs: Make btrfs_cleanup_ordered_extents " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 26/46] btrfs: Make inode_can_compress " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 27/46] btrfs: Make inode_need_compress " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 28/46] btrfs: Make need_force_cow " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 29/46] btrfs: Make btrfs_run_delalloc_range " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 30/46] btrfs: Make btrfs_add_ordered_extent_dio " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 31/46] btrfs: Make btrfs_create_dio_extent " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 32/46] btrfs: Make btrfs_new_extent_direct " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 33/46] btrfs: Make __extent_writepage_io " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 34/46] btrfs: Make writepage_delalloc " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 35/46] btrfs: Make btrfs_set_extent_delalloc " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 36/46] btrfs: Make btrfs_dirty_pages " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 37/46] btrfs: Make btrfs_qgroup_reserve_data " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 38/46] btrfs: Make btrfs_free_reserved_data_space_noquota take btrfs_fs_info Nikolay Borisov
2020-06-01 15:37 ` [PATCH 39/46] btrfs: Make btrfs_free_reserved_data_space take btrfs_inode Nikolay Borisov
2020-06-01 15:37 ` [PATCH 40/46] btrfs: Make btrfs_delalloc_release_space " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 41/46] btrfs: Make btrfs_check_data_free_space " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 42/46] btrfs: Make btrfs_delalloc_reserve_space " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 43/46] btrfs: Remove BTRFS_I calls in btrfs_writepage_fixup_worker Nikolay Borisov
2020-06-01 15:37 ` [PATCH 44/46] btrfs: Make prealloc_file_extent_cluster take btrfs_inode Nikolay Borisov
2020-06-01 15:37 ` [PATCH 45/46] btrfs make btrfs_set_inode_last_trans " Nikolay Borisov
2020-06-01 15:37 ` [PATCH 46/46] btrfs: Make btrfs_qgroup_check_reserved_leak " Nikolay Borisov
2020-06-01 17:20 ` [PATCH 00/46] Trivial BTRFS_I removal David Sterba
2020-06-02  9:46 ` Johannes Thumshirn
2020-06-03  5:55 [PATCH v2 " Nikolay Borisov
2020-06-03  5:55 ` [PATCH 17/46] btrfs: Make submit_compressed_extents take btrfs_inode Nikolay Borisov

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=20200601153744.31891-18-nborisov@suse.com \
    --to=nborisov@suse.com \
    --cc=linux-btrfs@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).