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 42/46] btrfs: Make btrfs_delalloc_reserve_space take btrfs_inode
Date: Mon,  1 Jun 2020 18:37:40 +0300	[thread overview]
Message-ID: <20200601153744.31891-43-nborisov@suse.com> (raw)
In-Reply-To: <20200601153744.31891-1-nborisov@suse.com>

All of its children take btrfs_inode so bubble up this requirement to
btrfs_delalloc_reserve_space's interface and stop calling BTRFS_I internally.
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
---
 fs/btrfs/delalloc-space.c |  8 ++++----
 fs/btrfs/delalloc-space.h |  2 +-
 fs/btrfs/inode-map.c      |  3 ++-
 fs/btrfs/inode.c          | 12 ++++++------
 fs/btrfs/ioctl.c          |  2 +-
 fs/btrfs/reflink.c        |  4 ++--
 6 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/fs/btrfs/delalloc-space.c b/fs/btrfs/delalloc-space.c
index e5580262e4dd..d3bc86a7ad6d 100644
--- a/fs/btrfs/delalloc-space.c
+++ b/fs/btrfs/delalloc-space.c
@@ -556,17 +556,17 @@ void btrfs_delalloc_release_extents(struct btrfs_inode *inode, u64 num_bytes)
  * Return 0 for success
  * Return <0 for error(-ENOSPC or -EQUOT)
  */
-int btrfs_delalloc_reserve_space(struct inode *inode,
+int btrfs_delalloc_reserve_space(struct btrfs_inode *inode,
 			struct extent_changeset **reserved, u64 start, u64 len)
 {
 	int ret;

-	ret = btrfs_check_data_free_space(BTRFS_I(inode), reserved, start, len);
+	ret = btrfs_check_data_free_space(inode, reserved, start, len);
 	if (ret < 0)
 		return ret;
-	ret = btrfs_delalloc_reserve_metadata(BTRFS_I(inode), len);
+	ret = btrfs_delalloc_reserve_metadata(inode, len);
 	if (ret < 0)
-		btrfs_free_reserved_data_space(BTRFS_I(inode), *reserved, start, len);
+		btrfs_free_reserved_data_space(inode, *reserved, start, len);
 	return ret;
 }

diff --git a/fs/btrfs/delalloc-space.h b/fs/btrfs/delalloc-space.h
index 2722fb6d2e5b..47c5dcdc5402 100644
--- a/fs/btrfs/delalloc-space.h
+++ b/fs/btrfs/delalloc-space.h
@@ -17,7 +17,7 @@ void btrfs_free_reserved_data_space_noquota(struct btrfs_fs_info *fs_info,
 					    u64 start, u64 len);
 void btrfs_delalloc_release_metadata(struct btrfs_inode *inode, u64 num_bytes,
 				     bool qgroup_free);
-int btrfs_delalloc_reserve_space(struct inode *inode,
+int btrfs_delalloc_reserve_space(struct btrfs_inode *inode,
 			struct extent_changeset **reserved, u64 start, u64 len);

 #endif /* BTRFS_DELALLOC_SPACE_H */
diff --git a/fs/btrfs/inode-map.c b/fs/btrfs/inode-map.c
index 6009e0e939b5..76d2e43817ea 100644
--- a/fs/btrfs/inode-map.c
+++ b/fs/btrfs/inode-map.c
@@ -495,7 +495,8 @@ int btrfs_save_ino_cache(struct btrfs_root *root,
 	/* Just to make sure we have enough space */
 	prealloc += 8 * PAGE_SIZE;

-	ret = btrfs_delalloc_reserve_space(inode, &data_reserved, 0, prealloc);
+	ret = btrfs_delalloc_reserve_space(BTRFS_I(inode), &data_reserved, 0,
+					   prealloc);
 	if (ret)
 		goto out_put;

diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 687b06458f1a..bad40b41f329 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -2281,8 +2281,8 @@ static void btrfs_writepage_fixup_worker(struct btrfs_work *work)
 	 * This is similar to page_mkwrite, we need to reserve the space before
 	 * we take the page lock.
 	 */
-	ret = btrfs_delalloc_reserve_space(inode, &data_reserved, page_start,
-					   PAGE_SIZE);
+	ret = btrfs_delalloc_reserve_space(BTRFS_I(inode), &data_reserved,
+					   page_start, PAGE_SIZE);
 again:
 	lock_page(page);

@@ -4503,7 +4503,7 @@ int btrfs_truncate_block(struct inode *inode, loff_t from, loff_t len,
 	block_start = round_down(from, blocksize);
 	block_end = block_start + blocksize - 1;

-	ret = btrfs_delalloc_reserve_space(inode, &data_reserved,
+	ret = btrfs_delalloc_reserve_space(BTRFS_I(inode), &data_reserved,
 					   block_start, blocksize);
 	if (ret)
 		goto out;
@@ -7295,7 +7295,7 @@ static int btrfs_dio_iomap_begin(struct inode *inode, loff_t start,
 	dio_data->length = length;
 	if (write) {
 		dio_data->reserve = round_up(length, fs_info->sectorsize);
-		ret = btrfs_delalloc_reserve_space(inode,
+		ret = btrfs_delalloc_reserve_space(BTRFS_I(inode),
 				&dio_data->data_reserved,
 				start, dio_data->reserve);
 		if (ret) {
@@ -8098,8 +8098,8 @@ vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
 	 * end up waiting indefinitely to get a lock on the page currently
 	 * being processed by btrfs_page_mkwrite() function.
 	 */
-	ret2 = btrfs_delalloc_reserve_space(inode, &data_reserved, page_start,
-					   reserved_space);
+	ret2 = btrfs_delalloc_reserve_space(BTRFS_I(inode), &data_reserved,
+					    page_start, reserved_space);
 	if (!ret2) {
 		ret2 = file_update_time(vmf->vma->vm_file);
 		reserved = 1;
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 37072628149d..dff1a9957a12 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -1243,7 +1243,7 @@ static int cluster_pages_for_defrag(struct inode *inode,

 	page_cnt = min_t(u64, (u64)num_pages, (u64)file_end - start_index + 1);

-	ret = btrfs_delalloc_reserve_space(inode, &data_reserved,
+	ret = btrfs_delalloc_reserve_space(BTRFS_I(inode), &data_reserved,
 			start_index << PAGE_SHIFT,
 			page_cnt << PAGE_SHIFT);
 	if (ret)
diff --git a/fs/btrfs/reflink.c b/fs/btrfs/reflink.c
index 9da0f101548f..834eb6d98caa 100644
--- a/fs/btrfs/reflink.c
+++ b/fs/btrfs/reflink.c
@@ -68,8 +68,8 @@ static int copy_inline_to_page(struct inode *inode,
 	 * reservation here. Also we must not do the reservation while holding
 	 * a transaction open, otherwise we would deadlock.
 	 */
-	ret = btrfs_delalloc_reserve_space(inode, &data_reserved, file_offset,
-					   block_size);
+	ret = btrfs_delalloc_reserve_space(BTRFS_I(inode), &data_reserved,
+					   file_offset, block_size);
 	if (ret)
 		goto out;

--
2.17.1


  parent reply	other threads:[~2020-06-01 15:38 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 ` [PATCH 17/46] btrfs: Make submit_compressed_extents " Nikolay Borisov
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 ` Nikolay Borisov [this message]
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 42/46] btrfs: Make btrfs_delalloc_reserve_space 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-43-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).