* [PATCH v4 0/2] Improve user experience with xfs_fsr
@ 2026-04-07 11:14 cem
2026-04-07 11:14 ` [PATCH v4 1/2] fsr: package function should check for negative errors cem
2026-04-07 11:15 ` [PATCH v4 2/2] fsr: always print error messages from xfrog_defragrange() cem
0 siblings, 2 replies; 4+ messages in thread
From: cem @ 2026-04-07 11:14 UTC (permalink / raw)
To: aalbersh; +Cc: linux-xfs, djwong
From: Carlos Maiolino <cem@kernel.org>
This is the V4 of this series,
this fixes an issue based on an user report via IRC in January.
The only change in this series in in patch 2 which adds back the
fprintf() call I accidentally removed while rebasing it.
Carlos Maiolino (2):
fsr: package function should check for negative errors
fsr: always print error messages from xfrog_defragrange()
fsr/xfs_fsr.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
--
2.53.0
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v4 1/2] fsr: package function should check for negative errors
2026-04-07 11:14 [PATCH v4 0/2] Improve user experience with xfs_fsr cem
@ 2026-04-07 11:14 ` cem
2026-04-07 11:15 ` [PATCH v4 2/2] fsr: always print error messages from xfrog_defragrange() cem
1 sibling, 0 replies; 4+ messages in thread
From: cem @ 2026-04-07 11:14 UTC (permalink / raw)
To: aalbersh; +Cc: linux-xfs, djwong
From: Carlos Maiolino <cem@kernel.org>
xfrog_defragrange as most other functions from libfrog return
a negative error value, while xfs_fsr's packfile(), expects
a positive error value.
Whenever xfrog_defragrange fails, the switch case always falls into the
default clausule, making the error message pointless.
Fix this by inverting xfrog_defragrange() return value call.
Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
---
V4: Add Darrick's RwB
V3:
Just change xfrog_defragrange() return signal.
V2:
Change packfile() to check for negative error values
instead of changing the return sign from xfrog_defragrange().
fsr/xfs_fsr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c
index 8845ff172fcb..390f7c5276df 100644
--- a/fsr/xfs_fsr.c
+++ b/fsr/xfs_fsr.c
@@ -1459,7 +1459,7 @@ packfile(
}
/* Swap the extents */
- error = xfrog_defragrange(file_fd->fd, &xdf);
+ error = -xfrog_defragrange(file_fd->fd, &xdf);
switch (error) {
case 0:
break;
--
2.53.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v4 2/2] fsr: always print error messages from xfrog_defragrange()
2026-04-07 11:14 [PATCH v4 0/2] Improve user experience with xfs_fsr cem
2026-04-07 11:14 ` [PATCH v4 1/2] fsr: package function should check for negative errors cem
@ 2026-04-07 11:15 ` cem
2026-04-07 15:07 ` Darrick J. Wong
1 sibling, 1 reply; 4+ messages in thread
From: cem @ 2026-04-07 11:15 UTC (permalink / raw)
To: aalbersh; +Cc: linux-xfs, djwong
From: Carlos Maiolino <cem@kernel.org>
Error messages from xfrog_defragrange() are only printed when
verbose/debug flags are used.
We had reports from users complaining it's hard to find out the error
messages lost in the middle of dozens of other informational messages.
Change packfile() behavior to print errors independently of verbose or
debug flags.
Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
---
V4: fix up previous rebase (fprintf accidentally removed)
V3: Rebase on top of patch 1 changes
V2: Update commit description
fsr/xfs_fsr.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c
index 390f7c5276df..e74180c143be 100644
--- a/fsr/xfs_fsr.c
+++ b/fsr/xfs_fsr.c
@@ -1464,19 +1464,15 @@ packfile(
case 0:
break;
case ENOTSUP:
- if (vflag || dflag)
- fsrprintf(_("%s: file type not supported\n"), fname);
+ fsrprintf(_("%s: file type not supported\n"), fname);
break;
case EFAULT:
/* The file has changed since we started the copy */
- if (vflag || dflag)
- fsrprintf(_("%s: file modified defrag aborted\n"),
- fname);
+ fsrprintf(_("%s: file modified defrag aborted\n"), fname);
break;
case EBUSY:
/* Timestamp has changed or mmap'ed file */
- if (vflag || dflag)
- fsrprintf(_("%s: file busy\n"), fname);
+ fsrprintf(_("%s: file busy\n"), fname);
break;
default:
fsrprintf(_("XFS_IOC_SWAPEXT failed: %s: %s\n"),
--
2.53.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v4 2/2] fsr: always print error messages from xfrog_defragrange()
2026-04-07 11:15 ` [PATCH v4 2/2] fsr: always print error messages from xfrog_defragrange() cem
@ 2026-04-07 15:07 ` Darrick J. Wong
0 siblings, 0 replies; 4+ messages in thread
From: Darrick J. Wong @ 2026-04-07 15:07 UTC (permalink / raw)
To: cem; +Cc: aalbersh, linux-xfs
On Tue, Apr 07, 2026 at 01:15:00PM +0200, cem@kernel.org wrote:
> From: Carlos Maiolino <cem@kernel.org>
>
> Error messages from xfrog_defragrange() are only printed when
> verbose/debug flags are used.
>
> We had reports from users complaining it's hard to find out the error
> messages lost in the middle of dozens of other informational messages.
>
> Change packfile() behavior to print errors independently of verbose or
> debug flags.
>
> Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
Looks ok,
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> ---
>
> V4: fix up previous rebase (fprintf accidentally removed)
> V3: Rebase on top of patch 1 changes
> V2: Update commit description
>
> fsr/xfs_fsr.c | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c
> index 390f7c5276df..e74180c143be 100644
> --- a/fsr/xfs_fsr.c
> +++ b/fsr/xfs_fsr.c
> @@ -1464,19 +1464,15 @@ packfile(
> case 0:
> break;
> case ENOTSUP:
> - if (vflag || dflag)
> - fsrprintf(_("%s: file type not supported\n"), fname);
> + fsrprintf(_("%s: file type not supported\n"), fname);
> break;
> case EFAULT:
> /* The file has changed since we started the copy */
> - if (vflag || dflag)
> - fsrprintf(_("%s: file modified defrag aborted\n"),
> - fname);
> + fsrprintf(_("%s: file modified defrag aborted\n"), fname);
> break;
> case EBUSY:
> /* Timestamp has changed or mmap'ed file */
> - if (vflag || dflag)
> - fsrprintf(_("%s: file busy\n"), fname);
> + fsrprintf(_("%s: file busy\n"), fname);
> break;
> default:
> fsrprintf(_("XFS_IOC_SWAPEXT failed: %s: %s\n"),
> --
> 2.53.0
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-04-07 15:07 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-07 11:14 [PATCH v4 0/2] Improve user experience with xfs_fsr cem
2026-04-07 11:14 ` [PATCH v4 1/2] fsr: package function should check for negative errors cem
2026-04-07 11:15 ` [PATCH v4 2/2] fsr: always print error messages from xfrog_defragrange() cem
2026-04-07 15:07 ` 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