mbox series

[V3,0/2] Some bugfix for xfs fsmap

Message ID 20240812011505.1414130-1-wozizhi@huawei.com (mailing list archive)
Headers show
Series Some bugfix for xfs fsmap | expand

Message

Zizhi Wo Aug. 12, 2024, 1:15 a.m. UTC
Changes since V2[1]:
 - Split the original patch into two, each for a different problem.
 - The fix focuses solely on addressing the omission problem and does not
   involve the precision of intervals.

This patch set contains two patches to repair fsmap. Although they are both
problems of missing query intervals, the root causes of the two are
inconsistent, so two patches are proposed.

Patch 1: The fix addresses the interval omission issue caused by the
incorrect setting of "rm_owner" in the high_key during rmap queries. In
this scenario, fsmap finds the record on the rmapbt, but due to the
incorrect setting of the "rm_owner", the key of the record is larger than
the high_key, causing the query result to be incorrect. This issue is
resolved by fixing the "rm_owner" setup logic.

Patch 2: The fix addresses the interval omission issue caused by bit
shifting during gap queries in fsmap. In this scenario, fsmap does not
find the record on the rmapbt, so it needs to locate it by the gap of the
info->next_daddr and high_key address. However, due to the shift, the
two are reduced to 0, so the query error is caused. The issue is resolved
by introducing the "end_daddr" field in the xfs_getfsmap_info structure to
store the high_key at the sector granularity.

[1] https://lore.kernel.org/all/20240808144759.1330237-1-wozizhi@huawei.com/

Zizhi Wo (2):
  xfs: Fix the owner setting issue for rmap query in xfs fsmap
  xfs: Fix missing interval for missing_owner in xfs fsmap

 fs/xfs/xfs_fsmap.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

Comments

Zizhi Wo Aug. 15, 2024, 10:20 a.m. UTC | #1
friendly ping


在 2024/8/12 9:15, Zizhi Wo 写道:
> Changes since V2[1]:
>   - Split the original patch into two, each for a different problem.
>   - The fix focuses solely on addressing the omission problem and does not
>     involve the precision of intervals.
> 
> This patch set contains two patches to repair fsmap. Although they are both
> problems of missing query intervals, the root causes of the two are
> inconsistent, so two patches are proposed.
> 
> Patch 1: The fix addresses the interval omission issue caused by the
> incorrect setting of "rm_owner" in the high_key during rmap queries. In
> this scenario, fsmap finds the record on the rmapbt, but due to the
> incorrect setting of the "rm_owner", the key of the record is larger than
> the high_key, causing the query result to be incorrect. This issue is
> resolved by fixing the "rm_owner" setup logic.
> 
> Patch 2: The fix addresses the interval omission issue caused by bit
> shifting during gap queries in fsmap. In this scenario, fsmap does not
> find the record on the rmapbt, so it needs to locate it by the gap of the
> info->next_daddr and high_key address. However, due to the shift, the
> two are reduced to 0, so the query error is caused. The issue is resolved
> by introducing the "end_daddr" field in the xfs_getfsmap_info structure to
> store the high_key at the sector granularity.
> 
> [1] https://lore.kernel.org/all/20240808144759.1330237-1-wozizhi@huawei.com/
> 
> Zizhi Wo (2):
>    xfs: Fix the owner setting issue for rmap query in xfs fsmap
>    xfs: Fix missing interval for missing_owner in xfs fsmap
> 
>   fs/xfs/xfs_fsmap.c | 19 ++++++++++++++++++-
>   1 file changed, 18 insertions(+), 1 deletion(-)
>