Re: [PATCH v2] fiemap: add a nosync option

"Darrick J. Wong" <[email protected]>
Newsgroups org.kernel.vger.linux-xfs
Message-ID <20260714193805.GH7380@frogsfrogsfrogs>
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/[email protected]/
> 
> Signed-off-by: Pankaj Raghav <[email protected]>
> ---
> 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
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.