[PATCH] xfs: fix the judgment of whether the file already has extents

From: alexjlzheng
Date: Sat Oct 26 2024 - 14:01:39 EST


From: Jinliang Zheng <alexjlzheng@xxxxxxxxxxx>

When we call create(), lseek() and write() sequentially, offset != 0
cannot be used as a judgment condition for whether the file already
has extents.

This patch uses prev.br_startoff instead of offset != 0.

Signed-off-by: Jinliang Zheng <alexjlzheng@xxxxxxxxxxx>
---
fs/xfs/libxfs/xfs_bmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
index 36dd08d13293..94e7aeed9e95 100644
--- a/fs/xfs/libxfs/xfs_bmap.c
+++ b/fs/xfs/libxfs/xfs_bmap.c
@@ -3536,7 +3536,7 @@ xfs_bmap_btalloc_at_eof(
* or it's the first allocation in a file, just try for a stripe aligned
* allocation.
*/
- if (ap->offset) {
+ if (ap->prev.br_startoff != NULLFILEOFF) {
xfs_extlen_t nextminlen = 0;

/*
--
2.41.1