From: Daniel Vacek <neelx@suse.com>
To: Chris Mason <clm@fb.com>, Josef Bacik <josef@toxicpanda.com>,
David Sterba <dsterba@suse.com>
Cc: Daniel Vacek <neelx@suse.com>,
linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v6 6/8] btrfs: move inode_to_path higher in backref.c
Date: Wed, 12 Nov 2025 20:36:06 +0100 [thread overview]
Message-ID: <20251112193611.2536093-7-neelx@suse.com> (raw)
In-Reply-To: <20251112193611.2536093-1-neelx@suse.com>
From: Josef Bacik <josef@toxicpanda.com>
We have a prototype and then the definition lower below, we don't need
to do this, simply move the function to where the prototype is.
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
---
No code changes since v5.
---
fs/btrfs/backref.c | 68 ++++++++++++++++++++++------------------------
1 file changed, 32 insertions(+), 36 deletions(-)
diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c
index eff2d388a706..56e177941da4 100644
--- a/fs/btrfs/backref.c
+++ b/fs/btrfs/backref.c
@@ -2574,8 +2574,39 @@ int iterate_inodes_from_logical(u64 logical, struct btrfs_fs_info *fs_info,
return iterate_extent_inodes(&walk_ctx, false, build_ino_list, ctx);
}
+/*
+ * returns 0 if the path could be dumped (probably truncated)
+ * returns <0 in case of an error
+ */
static int inode_to_path(u64 inum, u32 name_len, unsigned long name_off,
- struct extent_buffer *eb, struct inode_fs_paths *ipath);
+ struct extent_buffer *eb, struct inode_fs_paths *ipath)
+{
+ char *fspath;
+ char *fspath_min;
+ int i = ipath->fspath->elem_cnt;
+ const int s_ptr = sizeof(char *);
+ u32 bytes_left;
+
+ bytes_left = ipath->fspath->bytes_left > s_ptr ? ipath->fspath->bytes_left - s_ptr : 0;
+
+ fspath_min = (char *)ipath->fspath->val + (i + 1) * s_ptr;
+ fspath = btrfs_ref_to_path(ipath->fs_root, ipath->btrfs_path, name_len,
+ name_off, eb, inum, fspath_min, bytes_left);
+ if (IS_ERR(fspath))
+ return PTR_ERR(fspath);
+
+ if (fspath > fspath_min) {
+ ipath->fspath->val[i] = (u64)(unsigned long)fspath;
+ ++ipath->fspath->elem_cnt;
+ ipath->fspath->bytes_left = fspath - fspath_min;
+ } else {
+ ++ipath->fspath->elem_missed;
+ ipath->fspath->bytes_missing += fspath_min - fspath;
+ ipath->fspath->bytes_left = 0;
+ }
+
+ return 0;
+}
static int iterate_inode_refs(u64 inum, struct inode_fs_paths *ipath)
{
@@ -2700,41 +2731,6 @@ static int iterate_inode_extrefs(u64 inum, struct inode_fs_paths *ipath)
return ret;
}
-/*
- * returns 0 if the path could be dumped (probably truncated)
- * returns <0 in case of an error
- */
-static int inode_to_path(u64 inum, u32 name_len, unsigned long name_off,
- struct extent_buffer *eb, struct inode_fs_paths *ipath)
-{
- char *fspath;
- char *fspath_min;
- int i = ipath->fspath->elem_cnt;
- const int s_ptr = sizeof(char *);
- u32 bytes_left;
-
- bytes_left = ipath->fspath->bytes_left > s_ptr ?
- ipath->fspath->bytes_left - s_ptr : 0;
-
- fspath_min = (char *)ipath->fspath->val + (i + 1) * s_ptr;
- fspath = btrfs_ref_to_path(ipath->fs_root, ipath->btrfs_path, name_len,
- name_off, eb, inum, fspath_min, bytes_left);
- if (IS_ERR(fspath))
- return PTR_ERR(fspath);
-
- if (fspath > fspath_min) {
- ipath->fspath->val[i] = (u64)(unsigned long)fspath;
- ++ipath->fspath->elem_cnt;
- ipath->fspath->bytes_left = fspath - fspath_min;
- } else {
- ++ipath->fspath->elem_missed;
- ipath->fspath->bytes_missing += fspath_min - fspath;
- ipath->fspath->bytes_left = 0;
- }
-
- return 0;
-}
-
/*
* this dumps all file system paths to the inode into the ipath struct, provided
* is has been created large enough. each path is zero-terminated and accessed
--
2.51.0
next prev parent reply other threads:[~2025-11-12 19:37 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-12 19:36 [PATCH v6 0/8] btrfs: add fscrypt support, PART 1 Daniel Vacek
2025-11-12 19:36 ` [PATCH v6 1/8] btrfs: disable various operations on encrypted inodes Daniel Vacek
2025-11-12 21:10 ` Qu Wenruo
2025-11-13 10:22 ` David Sterba
2025-11-12 19:36 ` [PATCH v6 2/8] btrfs: disable verity " Daniel Vacek
2025-11-13 10:25 ` David Sterba
2025-11-12 19:36 ` [PATCH v6 3/8] btrfs: add a bio argument to btrfs_csum_one_bio Daniel Vacek
2025-11-12 21:02 ` Qu Wenruo
2025-11-13 19:07 ` Daniel Vacek
2025-11-13 20:16 ` Qu Wenruo
2025-11-18 14:05 ` Daniel Vacek
2025-11-18 15:08 ` Christoph Hellwig
2025-11-18 15:45 ` Daniel Vacek
2025-11-18 21:05 ` Qu Wenruo
2025-11-19 7:34 ` Daniel Vacek
2025-11-19 8:16 ` Qu Wenruo
2025-11-19 8:22 ` Christoph Hellwig
2025-11-19 9:28 ` Daniel Vacek
2025-11-19 9:32 ` Christoph Hellwig
2025-11-19 9:48 ` Daniel Vacek
2025-11-12 19:36 ` [PATCH v6 4/8] btrfs: add orig_logical to btrfs_bio Daniel Vacek
2025-11-12 21:07 ` Qu Wenruo
2025-11-13 19:16 ` Daniel Vacek
2025-11-12 19:36 ` [PATCH v6 5/8] btrfs: don't rewrite ret from inode_permission Daniel Vacek
2025-11-12 19:36 ` Daniel Vacek [this message]
2025-11-12 19:36 ` [PATCH v6 7/8] btrfs: don't search back for dir inode item in INO_LOOKUP_USER Daniel Vacek
2025-11-12 19:36 ` [PATCH v6 8/8] btrfs: set the appropriate free space settings in reconfigure Daniel Vacek
2025-11-13 10:32 ` David Sterba
2025-11-13 11:24 ` Daniel Vacek
2025-11-18 12:10 ` David Sterba
2025-11-18 15:04 ` [PATCH v6 0/8] btrfs: add fscrypt support, PART 1 David Sterba
2025-11-18 16:14 ` Daniel Vacek
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=20251112193611.2536093-7-neelx@suse.com \
--to=neelx@suse.com \
--cc=clm@fb.com \
--cc=dsterba@suse.com \
--cc=josef@toxicpanda.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-kernel@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