* [PATCH v2] fiemap: add a nosync option
@ 2026-07-14 19:29 Pankaj Raghav
2026-07-14 19:38 ` Darrick J. Wong
0 siblings, 1 reply; 2+ messages in thread
From: Pankaj Raghav @ 2026-07-14 19:29 UTC (permalink / raw)
To: aalbersh
Cc: pankaj.raghav, djwong, linux-xfs, Zhang Yi, hch, gost.dev,
Pankaj Raghav
io/fiemap adds FIEMAP_FLAG_SYNC by default. There are some test cases
where adding this flag might have an undesired side effect on the
results [1].
Add an option that does not pass FIEMAP_FLAG_SYNC flag.
[1] https://lore.kernel.org/linux-xfs/ca21b3c4-e1df-4ba7-8e9c-5d221337c86b@huaweicloud.com/
Signed-off-by: Pankaj Raghav <p.raghav@samsung.com>
---
Changes since v1:
- Change '-s' to '-e' to match xfs_bmap (Christoph).
io/fiemap.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/io/fiemap.c b/io/fiemap.c
index b41f71bf..b2e89b95 100644
--- a/io/fiemap.c
+++ b/io/fiemap.c
@@ -36,6 +36,7 @@ fiemap_help(void)
" -a -- prints the attribute fork map instead of the data fork.\n"
" -l -- also displays the length of each extent in 512-byte blocks.\n"
" -n -- query n extents.\n"
+" -e -- do not use FIEMAP_FLAG_SYNC.\n"
" -v -- Verbose information\n"
" offset is the starting offset to map, and is optional. If offset is\n"
" specified, mapping length may (optionally) be specified as well."
@@ -242,7 +243,7 @@ fiemap_f(
init_cvtnum(&fsblocksize, &fssectsize);
- while ((c = getopt(argc, argv, "aln:v")) != EOF) {
+ while ((c = getopt(argc, argv, "aln:ev")) != EOF) {
switch (c) {
case 'a':
fiemap_flags |= FIEMAP_FLAG_XATTR;
@@ -253,6 +254,10 @@ fiemap_f(
case 'n':
max_extents = atoi(optarg);
break;
+ case 'e':
+ /* nosync */
+ fiemap_flags &= ~(FIEMAP_FLAG_SYNC);
+ break;
case 'v':
vflag++;
break;
@@ -393,7 +398,7 @@ fiemap_init(void)
fiemap_cmd.argmin = 0;
fiemap_cmd.argmax = -1;
fiemap_cmd.flags = CMD_NOMAP_OK | CMD_FOREIGN_OK;
- fiemap_cmd.args = _("[-alv] [-n nx] [offset [len]]");
+ fiemap_cmd.args = _("[-alev] [-n nx] [offset [len]]");
fiemap_cmd.oneline = _("print block mapping for a file");
fiemap_cmd.help = fiemap_help;
base-commit: e80b048d87fdc5735e0d03ae29b497b402ea8bbe
--
2.51.2
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH v2] fiemap: add a nosync option
2026-07-14 19:29 [PATCH v2] fiemap: add a nosync option Pankaj Raghav
@ 2026-07-14 19:38 ` Darrick J. Wong
0 siblings, 0 replies; 2+ messages in thread
From: Darrick J. Wong @ 2026-07-14 19:38 UTC (permalink / raw)
To: Pankaj Raghav; +Cc: aalbersh, pankaj.raghav, linux-xfs, Zhang Yi, hch, gost.dev
On Tue, Jul 14, 2026 at 09:29:21PM +0200, Pankaj Raghav wrote:
> io/fiemap adds FIEMAP_FLAG_SYNC by default. There are some test cases
> where adding this flag might have an undesired side effect on the
> results [1].
>
> Add an option that does not pass FIEMAP_FLAG_SYNC flag.
>
> [1] https://lore.kernel.org/linux-xfs/ca21b3c4-e1df-4ba7-8e9c-5d221337c86b@huaweicloud.com/
>
> Signed-off-by: Pankaj Raghav <p.raghav@samsung.com>
> ---
> Changes since v1:
> - Change '-s' to '-e' to match xfs_bmap (Christoph).
>
> io/fiemap.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/io/fiemap.c b/io/fiemap.c
> index b41f71bf..b2e89b95 100644
> --- a/io/fiemap.c
> +++ b/io/fiemap.c
> @@ -36,6 +36,7 @@ fiemap_help(void)
> " -a -- prints the attribute fork map instead of the data fork.\n"
> " -l -- also displays the length of each extent in 512-byte blocks.\n"
> " -n -- query n extents.\n"
> +" -e -- do not use FIEMAP_FLAG_SYNC.\n"
Needs an xfs_io(8) manpage update, but otherwise this looks good to me.
--D
> " -v -- Verbose information\n"
> " offset is the starting offset to map, and is optional. If offset is\n"
> " specified, mapping length may (optionally) be specified as well."
> @@ -242,7 +243,7 @@ fiemap_f(
>
> init_cvtnum(&fsblocksize, &fssectsize);
>
> - while ((c = getopt(argc, argv, "aln:v")) != EOF) {
> + while ((c = getopt(argc, argv, "aln:ev")) != EOF) {
> switch (c) {
> case 'a':
> fiemap_flags |= FIEMAP_FLAG_XATTR;
> @@ -253,6 +254,10 @@ fiemap_f(
> case 'n':
> max_extents = atoi(optarg);
> break;
> + case 'e':
> + /* nosync */
> + fiemap_flags &= ~(FIEMAP_FLAG_SYNC);
> + break;
> case 'v':
> vflag++;
> break;
> @@ -393,7 +398,7 @@ fiemap_init(void)
> fiemap_cmd.argmin = 0;
> fiemap_cmd.argmax = -1;
> fiemap_cmd.flags = CMD_NOMAP_OK | CMD_FOREIGN_OK;
> - fiemap_cmd.args = _("[-alv] [-n nx] [offset [len]]");
> + fiemap_cmd.args = _("[-alev] [-n nx] [offset [len]]");
> fiemap_cmd.oneline = _("print block mapping for a file");
> fiemap_cmd.help = fiemap_help;
>
>
> base-commit: e80b048d87fdc5735e0d03ae29b497b402ea8bbe
> --
> 2.51.2
>
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-14 19:38 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-14 19:29 [PATCH v2] fiemap: add a nosync option Pankaj Raghav
2026-07-14 19:38 ` Darrick J. Wong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox