diff mbox series

xfsprogs: remove BMV_IF_NO_DMAPI_READ flag

Message ID 20210326125321.28047-3-ailiop@suse.com (mailing list archive)
State Accepted
Headers show
Series xfsprogs: remove BMV_IF_NO_DMAPI_READ flag | expand

Commit Message

Anthony Iliopoulos March 26, 2021, 12:53 p.m. UTC
Use of the flag has had no effect since kernel commit 288699fecaff
("xfs: drop dmapi hooks"), which removed all dmapi related code, so
remove it from bmap.

Signed-off-by: Anthony Iliopoulos <ailiop@suse.com>
---
 io/bmap.c           | 28 +++++++---------------------
 man/man8/xfs_bmap.8 |  9 ---------
 po/de.po            |  3 ---
 po/pl.po            |  3 ---
 scrub/filemap.c     |  3 +--
 5 files changed, 8 insertions(+), 38 deletions(-)

Comments

Darrick J. Wong March 26, 2021, 3:35 p.m. UTC | #1
On Fri, Mar 26, 2021 at 01:53:21PM +0100, Anthony Iliopoulos wrote:
> Use of the flag has had no effect since kernel commit 288699fecaff
> ("xfs: drop dmapi hooks"), which removed all dmapi related code, so
> remove it from bmap.
> 
> Signed-off-by: Anthony Iliopoulos <ailiop@suse.com>

Looks ok to me,
Reviewed-by: Darrick J. Wong <djwong@kernel.org>

--D

> ---
>  io/bmap.c           | 28 +++++++---------------------
>  man/man8/xfs_bmap.8 |  9 ---------
>  po/de.po            |  3 ---
>  po/pl.po            |  3 ---
>  scrub/filemap.c     |  3 +--
>  5 files changed, 8 insertions(+), 38 deletions(-)
> 
> diff --git a/io/bmap.c b/io/bmap.c
> index f838840eb533..27383ca60375 100644
> --- a/io/bmap.c
> +++ b/io/bmap.c
> @@ -33,7 +33,6 @@ bmap_help(void)
>  " -a -- prints the attribute fork map instead of the data fork.\n"
>  " -c -- prints the copy-on-write fork map instead of the data fork.\n"
>  "       This works only if the kernel was compiled in debug mode.\n"
> -" -d -- suppresses a DMAPI read event, offline portions shown as holes.\n"
>  " -e -- print delayed allocation extents.\n"
>  " -l -- also displays the length of each extent in 512-byte blocks.\n"
>  " -n -- query n extents.\n"
> @@ -67,7 +66,7 @@ bmap_f(
>  	int			c;
>  	int			egcnt;
>  
> -	while ((c = getopt(argc, argv, "acdeln:pv")) != EOF) {
> +	while ((c = getopt(argc, argv, "aceln:pv")) != EOF) {
>  		switch (c) {
>  		case 'a':	/* Attribute fork. */
>  			bmv_iflags |= BMV_IF_ATTRFORK;
> @@ -86,10 +85,6 @@ bmap_f(
>  		case 'n':	/* number of extents specified */
>  			nflag = atoi(optarg);
>  			break;
> -		case 'd':
> -		/* do not recall possibly offline DMAPI files */
> -			bmv_iflags |= BMV_IF_NO_DMAPI_READ;
> -			break;
>  		case 'p':
>  		/* report unwritten preallocated blocks */
>  			pflag = 1;
> @@ -103,7 +98,7 @@ bmap_f(
>  		}
>  	}
>  	if (aflag || cflag)
> -		bmv_iflags &= ~(BMV_IF_PREALLOC|BMV_IF_NO_DMAPI_READ);
> +		bmv_iflags &= ~BMV_IF_PREALLOC;
>  
>  	if (vflag) {
>  		c = -xfrog_geometry(file->fd, &fsgeo);
> @@ -154,19 +149,10 @@ bmap_f(
>   *	EINVAL, check the length with fstat() and return "no extents"
>   *	if the length == 0.
>   *
> - *	Why not do the xfsctl(FS_IOC_FSGETXATTR[A]) first?  Two reasons:
> - *	(1)	The extent count may be wrong for a file with delayed
> - *		allocation blocks.  The XFS_IOC_GETBMAPX forces the real
> - *		allocation and fixes up the extent count.
> - *	(2)	For XFS_IOC_GETBMAP[X] on a DMAPI file that has been moved
> - *		offline by a DMAPI application (e.g., DMF) the
> - *		FS_IOC_FSGETXATTR only reflects the extents actually online.
> - *		Doing XFS_IOC_GETBMAPX call first forces that data blocks online
> - *		and then everything proceeds normally (see PV #545725).
> - *
> - *		If you don't want this behavior on a DMAPI offline file,
> - *		try the "-d" option which sets the BMV_IF_NO_DMAPI_READ
> - *		iflag for XFS_IOC_GETBMAPX.
> + *	Why not do the xfsctl(FS_IOC_FSGETXATTR[A]) first?
> + *	The extent count may be wrong for a file with delayed
> + *	allocation blocks.  The XFS_IOC_GETBMAPX forces the real
> + *	allocation and fixes up the extent count.
>   */
>  
>  	do {	/* loop a miximum of two times */
> @@ -441,7 +427,7 @@ bmap_init(void)
>  	bmap_cmd.argmin = 0;
>  	bmap_cmd.argmax = -1;
>  	bmap_cmd.flags = CMD_NOMAP_OK;
> -	bmap_cmd.args = _("[-adlpv] [-n nx]");
> +	bmap_cmd.args = _("[-acelpv] [-n nx]");
>  	bmap_cmd.oneline = _("print block mapping for an XFS file");
>  	bmap_cmd.help = bmap_help;
>  
> diff --git a/man/man8/xfs_bmap.8 b/man/man8/xfs_bmap.8
> index dd925b12dbd4..9ec7f52b84f2 100644
> --- a/man/man8/xfs_bmap.8
> +++ b/man/man8/xfs_bmap.8
> @@ -36,15 +36,6 @@ no matter what the filesystem's block size is.
>  If this option is specified, information about the file's
>  attribute fork is printed instead of the default data fork.
>  .TP
> -.B \-d
> -If portions of the file have been migrated offline by
> -a DMAPI application, a DMAPI read event will be generated to
> -bring those portions back online before the disk block map is
> -printed.  However if the
> -.B \-d
> -option is used, no DMAPI read event will be generated for a
> -DMAPI file and offline portions will be reported as holes.
> -.TP
>  .B \-e
>  If this option is used,
>  .B xfs_bmap
> diff --git a/po/de.po b/po/de.po
> index aa9af769ab89..944b0e91deb2 100644
> --- a/po/de.po
> +++ b/po/de.po
> @@ -4670,7 +4670,6 @@ msgid ""
>  " Holes are marked by replacing the startblock..endblock with 'hole'.\n"
>  " All the file offsets and disk blocks are in units of 512-byte blocks.\n"
>  " -a -- prints the attribute fork map instead of the data fork.\n"
> -" -d -- suppresses a DMAPI read event, offline portions shown as holes.\n"
>  " -l -- also displays the length of each extent in 512-byte blocks.\n"
>  " Note: the bmap for non-regular files can be obtained provided the file\n"
>  " was opened appropriately (in particular, must be opened read-only).\n"
> @@ -4694,8 +4693,6 @@ msgstr ""
>  " Alle Datei-Offsets und Plattenblöcke sind Einheiten aus 512-Byte-Blöcken.\n"
>  " -a -- gibt die Attributs-Verzweigungs-Karte statt der\n"
>  "       Daten-Verzweigung aus.\n"
> -" -d -- unterdrückt ein DMAPI-Lese-Ereignis, Offline-Teile werden als Löcher\n"
> -"       betrachtet.\n"
>  " -l -- zeigt außerdem die Länge von jedem Bereich in 512-Byte Blöcken.\n"
>  " Anmerkung: Das »bmap« für irreguläre Dateien kann bereitgestellt werden,\n"
>  " statt der Datei die passend geöffnet wurde (im Einzelnen darf sie\n"
> diff --git a/po/pl.po b/po/pl.po
> index cf9d2e8edac9..e5a1aad8307e 100644
> --- a/po/pl.po
> +++ b/po/pl.po
> @@ -6252,7 +6252,6 @@ msgid ""
>  " -a -- prints the attribute fork map instead of the data fork.\n"
>  " -c -- prints the copy-on-write fork map instead of the data fork.\n"
>  "       This works only if the kernel was compiled in debug mode.\n"
> -" -d -- suppresses a DMAPI read event, offline portions shown as holes.\n"
>  " -e -- print delayed allocation extents.\n"
>  " -l -- also displays the length of each extent in 512-byte blocks.\n"
>  " -n -- query n extents.\n"
> @@ -6278,8 +6277,6 @@ msgstr ""
>  " Wszystkie offsety w plikach i bloki dysku są w jednostkach 512-bajtowych.\n"
>  " -a - wypisanie mapy gałęzi atrybutów zamiast gałęzi danych.\n"
>  " -c - wypisanie mapy gałęzi CoW zamiast gałęzi danych.\n"
> -" -d - pominięcie zdarzenia odczytu DMAPI, pokazanie części offline jako "
> -"dziur.\n"
>  " -e - wypisanie ekstentów opóźnionego przydzielania.\n"
>  " -l - wyświetlenie także długości każdego ekstentu w 512-bajtowych blokach.\n"
>  " -n - odpytanie n ekstentów.\n"
> diff --git a/scrub/filemap.c b/scrub/filemap.c
> index 0b914ef6017a..d4905ace659e 100644
> --- a/scrub/filemap.c
> +++ b/scrub/filemap.c
> @@ -55,8 +55,7 @@ scrub_iterate_filemaps(
>  		map->bmv_length = ULLONG_MAX;
>  	else
>  		map->bmv_length = BTOBB(key->bm_length);
> -	map->bmv_iflags = BMV_IF_NO_DMAPI_READ | BMV_IF_PREALLOC |
> -			  BMV_IF_NO_HOLES;
> +	map->bmv_iflags = BMV_IF_PREALLOC | BMV_IF_NO_HOLES;
>  	switch (whichfork) {
>  	case XFS_ATTR_FORK:
>  		getxattr_type = XFS_IOC_FSGETXATTRA;
> -- 
> 2.31.0
>
diff mbox series

Patch

diff --git a/io/bmap.c b/io/bmap.c
index f838840eb533..27383ca60375 100644
--- a/io/bmap.c
+++ b/io/bmap.c
@@ -33,7 +33,6 @@  bmap_help(void)
 " -a -- prints the attribute fork map instead of the data fork.\n"
 " -c -- prints the copy-on-write fork map instead of the data fork.\n"
 "       This works only if the kernel was compiled in debug mode.\n"
-" -d -- suppresses a DMAPI read event, offline portions shown as holes.\n"
 " -e -- print delayed allocation extents.\n"
 " -l -- also displays the length of each extent in 512-byte blocks.\n"
 " -n -- query n extents.\n"
@@ -67,7 +66,7 @@  bmap_f(
 	int			c;
 	int			egcnt;
 
-	while ((c = getopt(argc, argv, "acdeln:pv")) != EOF) {
+	while ((c = getopt(argc, argv, "aceln:pv")) != EOF) {
 		switch (c) {
 		case 'a':	/* Attribute fork. */
 			bmv_iflags |= BMV_IF_ATTRFORK;
@@ -86,10 +85,6 @@  bmap_f(
 		case 'n':	/* number of extents specified */
 			nflag = atoi(optarg);
 			break;
-		case 'd':
-		/* do not recall possibly offline DMAPI files */
-			bmv_iflags |= BMV_IF_NO_DMAPI_READ;
-			break;
 		case 'p':
 		/* report unwritten preallocated blocks */
 			pflag = 1;
@@ -103,7 +98,7 @@  bmap_f(
 		}
 	}
 	if (aflag || cflag)
-		bmv_iflags &= ~(BMV_IF_PREALLOC|BMV_IF_NO_DMAPI_READ);
+		bmv_iflags &= ~BMV_IF_PREALLOC;
 
 	if (vflag) {
 		c = -xfrog_geometry(file->fd, &fsgeo);
@@ -154,19 +149,10 @@  bmap_f(
  *	EINVAL, check the length with fstat() and return "no extents"
  *	if the length == 0.
  *
- *	Why not do the xfsctl(FS_IOC_FSGETXATTR[A]) first?  Two reasons:
- *	(1)	The extent count may be wrong for a file with delayed
- *		allocation blocks.  The XFS_IOC_GETBMAPX forces the real
- *		allocation and fixes up the extent count.
- *	(2)	For XFS_IOC_GETBMAP[X] on a DMAPI file that has been moved
- *		offline by a DMAPI application (e.g., DMF) the
- *		FS_IOC_FSGETXATTR only reflects the extents actually online.
- *		Doing XFS_IOC_GETBMAPX call first forces that data blocks online
- *		and then everything proceeds normally (see PV #545725).
- *
- *		If you don't want this behavior on a DMAPI offline file,
- *		try the "-d" option which sets the BMV_IF_NO_DMAPI_READ
- *		iflag for XFS_IOC_GETBMAPX.
+ *	Why not do the xfsctl(FS_IOC_FSGETXATTR[A]) first?
+ *	The extent count may be wrong for a file with delayed
+ *	allocation blocks.  The XFS_IOC_GETBMAPX forces the real
+ *	allocation and fixes up the extent count.
  */
 
 	do {	/* loop a miximum of two times */
@@ -441,7 +427,7 @@  bmap_init(void)
 	bmap_cmd.argmin = 0;
 	bmap_cmd.argmax = -1;
 	bmap_cmd.flags = CMD_NOMAP_OK;
-	bmap_cmd.args = _("[-adlpv] [-n nx]");
+	bmap_cmd.args = _("[-acelpv] [-n nx]");
 	bmap_cmd.oneline = _("print block mapping for an XFS file");
 	bmap_cmd.help = bmap_help;
 
diff --git a/man/man8/xfs_bmap.8 b/man/man8/xfs_bmap.8
index dd925b12dbd4..9ec7f52b84f2 100644
--- a/man/man8/xfs_bmap.8
+++ b/man/man8/xfs_bmap.8
@@ -36,15 +36,6 @@  no matter what the filesystem's block size is.
 If this option is specified, information about the file's
 attribute fork is printed instead of the default data fork.
 .TP
-.B \-d
-If portions of the file have been migrated offline by
-a DMAPI application, a DMAPI read event will be generated to
-bring those portions back online before the disk block map is
-printed.  However if the
-.B \-d
-option is used, no DMAPI read event will be generated for a
-DMAPI file and offline portions will be reported as holes.
-.TP
 .B \-e
 If this option is used,
 .B xfs_bmap
diff --git a/po/de.po b/po/de.po
index aa9af769ab89..944b0e91deb2 100644
--- a/po/de.po
+++ b/po/de.po
@@ -4670,7 +4670,6 @@  msgid ""
 " Holes are marked by replacing the startblock..endblock with 'hole'.\n"
 " All the file offsets and disk blocks are in units of 512-byte blocks.\n"
 " -a -- prints the attribute fork map instead of the data fork.\n"
-" -d -- suppresses a DMAPI read event, offline portions shown as holes.\n"
 " -l -- also displays the length of each extent in 512-byte blocks.\n"
 " Note: the bmap for non-regular files can be obtained provided the file\n"
 " was opened appropriately (in particular, must be opened read-only).\n"
@@ -4694,8 +4693,6 @@  msgstr ""
 " Alle Datei-Offsets und Plattenblöcke sind Einheiten aus 512-Byte-Blöcken.\n"
 " -a -- gibt die Attributs-Verzweigungs-Karte statt der\n"
 "       Daten-Verzweigung aus.\n"
-" -d -- unterdrückt ein DMAPI-Lese-Ereignis, Offline-Teile werden als Löcher\n"
-"       betrachtet.\n"
 " -l -- zeigt außerdem die Länge von jedem Bereich in 512-Byte Blöcken.\n"
 " Anmerkung: Das »bmap« für irreguläre Dateien kann bereitgestellt werden,\n"
 " statt der Datei die passend geöffnet wurde (im Einzelnen darf sie\n"
diff --git a/po/pl.po b/po/pl.po
index cf9d2e8edac9..e5a1aad8307e 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6252,7 +6252,6 @@  msgid ""
 " -a -- prints the attribute fork map instead of the data fork.\n"
 " -c -- prints the copy-on-write fork map instead of the data fork.\n"
 "       This works only if the kernel was compiled in debug mode.\n"
-" -d -- suppresses a DMAPI read event, offline portions shown as holes.\n"
 " -e -- print delayed allocation extents.\n"
 " -l -- also displays the length of each extent in 512-byte blocks.\n"
 " -n -- query n extents.\n"
@@ -6278,8 +6277,6 @@  msgstr ""
 " Wszystkie offsety w plikach i bloki dysku są w jednostkach 512-bajtowych.\n"
 " -a - wypisanie mapy gałęzi atrybutów zamiast gałęzi danych.\n"
 " -c - wypisanie mapy gałęzi CoW zamiast gałęzi danych.\n"
-" -d - pominięcie zdarzenia odczytu DMAPI, pokazanie części offline jako "
-"dziur.\n"
 " -e - wypisanie ekstentów opóźnionego przydzielania.\n"
 " -l - wyświetlenie także długości każdego ekstentu w 512-bajtowych blokach.\n"
 " -n - odpytanie n ekstentów.\n"
diff --git a/scrub/filemap.c b/scrub/filemap.c
index 0b914ef6017a..d4905ace659e 100644
--- a/scrub/filemap.c
+++ b/scrub/filemap.c
@@ -55,8 +55,7 @@  scrub_iterate_filemaps(
 		map->bmv_length = ULLONG_MAX;
 	else
 		map->bmv_length = BTOBB(key->bm_length);
-	map->bmv_iflags = BMV_IF_NO_DMAPI_READ | BMV_IF_PREALLOC |
-			  BMV_IF_NO_HOLES;
+	map->bmv_iflags = BMV_IF_PREALLOC | BMV_IF_NO_HOLES;
 	switch (whichfork) {
 	case XFS_ATTR_FORK:
 		getxattr_type = XFS_IOC_FSGETXATTRA;