All of lore.kernel.org
 help / color / mirror / Atom feed
From: Omar Sandoval <osandov@osandov.com>
To: linux-btrfs@vger.kernel.org, David Sterba <dsterba@suse.cz>
Cc: kernel-team@fb.com
Subject: [PATCH] btrfs: get rid of at_offset parameter to btrfs_lookup_bio_sums()
Date: Tue, 10 Dec 2019 10:37:35 -0800	[thread overview]
Message-ID: <a52f14650c1d0d0b1371c15df4a76e2089864d76.1576003002.git.osandov@fb.com> (raw)
In-Reply-To: <20191210182606.GG3929@twin.jikos.cz>

From: Omar Sandoval <osandov@fb.com>

We can encode this in the offset parameter: -1 means use the page
offsets, anything else is a valid offset.

Signed-off-by: Omar Sandoval <osandov@fb.com>
---
Feel free to fold this in or apply separately as needed.

 fs/btrfs/compression.c |  6 +++---
 fs/btrfs/ctree.h       |  2 +-
 fs/btrfs/file-item.c   | 11 +++++------
 fs/btrfs/inode.c       |  6 +++---
 4 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
index 03eb50727038..4a8578512c07 100644
--- a/fs/btrfs/compression.c
+++ b/fs/btrfs/compression.c
@@ -757,8 +757,8 @@ blk_status_t btrfs_submit_compressed_read(struct inode *inode, struct bio *bio,
 			refcount_inc(&cb->pending_bios);
 
 			if (!(BTRFS_I(inode)->flags & BTRFS_INODE_NODATASUM)) {
-				ret = btrfs_lookup_bio_sums(inode, comp_bio,
-							    false, 0, sums);
+				ret = btrfs_lookup_bio_sums(inode, comp_bio, -1,
+							    sums);
 				BUG_ON(ret); /* -ENOMEM */
 			}
 
@@ -786,7 +786,7 @@ blk_status_t btrfs_submit_compressed_read(struct inode *inode, struct bio *bio,
 	BUG_ON(ret); /* -ENOMEM */
 
 	if (!(BTRFS_I(inode)->flags & BTRFS_INODE_NODATASUM)) {
-		ret = btrfs_lookup_bio_sums(inode, comp_bio, false, 0, sums);
+		ret = btrfs_lookup_bio_sums(inode, comp_bio, -1, sums);
 		BUG_ON(ret); /* -ENOMEM */
 	}
 
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index 6e2ac3e06c45..6b2af3ab2c26 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -2789,7 +2789,7 @@ struct btrfs_dio_private;
 int btrfs_del_csums(struct btrfs_trans_handle *trans,
 		    struct btrfs_fs_info *fs_info, u64 bytenr, u64 len);
 blk_status_t btrfs_lookup_bio_sums(struct inode *inode, struct bio *bio,
-				   bool at_offset, u64 offset, u8 *dst);
+				   u64 offset, u8 *dst);
 int btrfs_insert_file_extent(struct btrfs_trans_handle *trans,
 			     struct btrfs_root *root,
 			     u64 objectid, u64 pos,
diff --git a/fs/btrfs/file-item.c b/fs/btrfs/file-item.c
index 6f7777e5a554..76a433aba675 100644
--- a/fs/btrfs/file-item.c
+++ b/fs/btrfs/file-item.c
@@ -152,17 +152,15 @@ int btrfs_lookup_file_extent(struct btrfs_trans_handle *trans,
  * btrfs_lookup_bio_sums - Look up checksums for a bio.
  * @inode: inode that the bio is for.
  * @bio: bio embedded in btrfs_io_bio.
- * @at_offset: If true, look up checksums for the extent at @offset.
- *             If false, use the page offsets from the bio.
- * @offset: If @at_offset is true, offset in file to look up checksums for.
- *          Ignored otherwise.
+ * @offset: Unless -1, look up checksums for this offset in the file. If -1, use
+ *          the page offsets from the bio instead.
  * @dst: Buffer of size btrfs_super_csum_size() used to return checksum. If
  *       NULL, the checksum is returned in btrfs_io_bio(bio)->csum instead.
  *
  * Return: BLK_STS_RESOURCE if allocating memory fails, BLK_STS_OK otherwise.
  */
 blk_status_t btrfs_lookup_bio_sums(struct inode *inode, struct bio *bio,
-				   bool at_offset, u64 offset, u8 *dst)
+				   u64 offset, u8 *dst)
 {
 	struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
 	struct bio_vec bvec;
@@ -171,6 +169,7 @@ blk_status_t btrfs_lookup_bio_sums(struct inode *inode, struct bio *bio,
 	struct btrfs_csum_item *item = NULL;
 	struct extent_io_tree *io_tree = &BTRFS_I(inode)->io_tree;
 	struct btrfs_path *path;
+	bool page_offsets = offset == (u64)-1;
 	u8 *csum;
 	u64 item_start_offset = 0;
 	u64 item_last_offset = 0;
@@ -223,7 +222,7 @@ blk_status_t btrfs_lookup_bio_sums(struct inode *inode, struct bio *bio,
 		if (count)
 			goto next;
 
-		if (!at_offset)
+		if (page_offsets)
 			offset = page_offset(bvec.bv_page) + bvec.bv_offset;
 		count = btrfs_find_ordered_sum(inode, offset, disk_bytenr,
 					       csum, nblocks);
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 056e4035e469..3c812f3ba1ba 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -2127,7 +2127,7 @@ static blk_status_t btrfs_submit_bio_hook(struct inode *inode, struct bio *bio,
 							   bio_flags);
 			goto out;
 		} else if (!skip_sum) {
-			ret = btrfs_lookup_bio_sums(inode, bio, false, 0, NULL);
+			ret = btrfs_lookup_bio_sums(inode, bio, -1, NULL);
 			if (ret)
 				goto out;
 		}
@@ -7690,8 +7690,8 @@ static inline blk_status_t btrfs_lookup_and_bind_dio_csum(struct inode *inode,
 	 * contention.
 	 */
 	if (dip->logical_offset == file_offset) {
-		ret = btrfs_lookup_bio_sums(inode, dip->orig_bio, true,
-					    file_offset, NULL);
+		ret = btrfs_lookup_bio_sums(inode, dip->orig_bio, file_offset,
+					    NULL);
 		if (ret)
 			return ret;
 	}
-- 
2.24.0


  reply	other threads:[~2019-12-10 18:37 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-03  1:34 [PATCH 0/9] btrfs: miscellaneous cleanups Omar Sandoval
2019-12-03  1:34 ` [PATCH 1/9] btrfs: get rid of trivial __btrfs_lookup_bio_sums() wrappers Omar Sandoval
2019-12-03  8:36   ` Johannes Thumshirn
2019-12-10 17:12   ` David Sterba
2019-12-10 18:24     ` Omar Sandoval
2019-12-10 18:26       ` David Sterba
2019-12-10 18:37         ` Omar Sandoval [this message]
2019-12-03  1:34 ` [PATCH 2/9] btrfs: remove dead snapshot-aware defrag code Omar Sandoval
2019-12-03  8:38   ` Johannes Thumshirn
2019-12-10 17:22   ` David Sterba
2019-12-03  1:34 ` [PATCH 3/9] btrfs: make btrfs_ordered_extent naming consistent with btrfs_file_extent_item Omar Sandoval
2019-12-03  9:51   ` Johannes Thumshirn
2019-12-10 18:22   ` David Sterba
2019-12-10 18:32     ` Omar Sandoval
2019-12-10 18:48       ` David Sterba
2019-12-03  1:34 ` [PATCH 4/9] btrfs: remove unnecessary pg_offset assignments in __extent_writepage() Omar Sandoval
2019-12-03 12:59   ` Johannes Thumshirn
2019-12-03  1:34 ` [PATCH 5/9] btrfs: remove trivial goto label " Omar Sandoval
2019-12-03 13:06   ` Johannes Thumshirn
2019-12-03  1:34 ` [PATCH 6/9] btrfs: remove redundant i_size check in __extent_writepage_io() Omar Sandoval
2019-12-10 17:45   ` David Sterba
2019-12-03  1:34 ` [PATCH 7/9] btrfs: drop create parameter to btrfs_get_extent() Omar Sandoval
2019-12-03  7:47   ` Omar Sandoval
2019-12-03  1:34 ` [PATCH 8/9] btrfs: simplify compressed/inline check in __extent_writepage_io() Omar Sandoval
2019-12-03 13:17   ` Johannes Thumshirn
2019-12-03  1:34 ` [PATCH 9/9] btrfs: remove struct find_free_extent.ram_bytes Omar Sandoval
2019-12-03 13:27   ` Johannes Thumshirn
2019-12-03 18:01     ` Omar Sandoval
2019-12-10 18:47 ` [PATCH 0/9] btrfs: miscellaneous cleanups David Sterba
2019-12-10 18:50   ` Omar Sandoval

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=a52f14650c1d0d0b1371c15df4a76e2089864d76.1576003002.git.osandov@fb.com \
    --to=osandov@osandov.com \
    --cc=dsterba@suse.cz \
    --cc=kernel-team@fb.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 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.