public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC 0/2] add FALLOC_FL_WRITE_ZEROES support to xfs
@ 2026-02-27 14:08 Pankaj Raghav
  2026-02-27 14:08 ` [RFC 1/2] xfs: add flags field to xfs_alloc_file_space Pankaj Raghav
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Pankaj Raghav @ 2026-02-27 14:08 UTC (permalink / raw)
  To: linux-xfs
  Cc: bfoster, dchinner, Darrick J . Wong, p.raghav, gost.dev,
	pankaj.raghav, andres, cem, hch, lucas

The benefits of FALLOC_FL_WRITE_ZEROES was already discussed as a part
of Zhang Yi's initial patches[1]. Postgres developer Andres also
mentioned they would like to use this feature in Postgres [2].

Lukas Herbolt sent a patch recently that adds this support but I found
some issues with them[3]. I independtly started working on these patches
a while back as well, so I thought maybe I will send a RFC version of
this support.

I have implemented this support similar to what ext4 is doing: write unwritten
extents first, increase the size of the file, then zero out those extents
with XFS_BMAPI_CONVERT with XFS_BMAPI_ZERO. This seems to be working
correctly without changing any of the core infrastructure. But I am not
sure if this is the most efficient way of doing it in XFS or if there
are some corner cases I am missing, so any feedback is welcome.

[1] https://lore.kernel.org/linux-fsdevel/20250619111806.3546162-1-yi.zhang@huaweicloud.com/
[2] https://lore.kernel.org/linux-fsdevel/20260217055103.GA6174@lst.de/T/#m7935b9bab32bb5ff372507f84803b8753ad1c814
[3] https://lore.kernel.org/linux-xfs/wmxdwtvahubdga73cgzprqtj7fxyjgx5kxvr4cobtl6ski2i6y@ic2g3bfymkwi/

=== Testing ===:

void test_fallocate(const char *filename, int mode, const char *mode_name) {
    int fd;

    printf("Testing %s on %s...\n", mode_name, filename);

    unlink(filename);

    fd = open(filename, O_RDWR | O_CREAT, 0666);
    if (fd < 0) {
        perror("open failed");
        return;
    }

    if (fallocate(fd, mode, 0, TEST_SIZE) == 0) {
        printf(" -> fallocate(%s) succeeded!\n", mode_name);
    } else {
        printf(" -> fallocate(%s) failed: %s\n", mode_name, strerror(errno));
    }

    close(fd);

    /* Dump extent info using xfs_io */
    char cmd[256];
    snprintf(cmd, sizeof(cmd), "xfs_io -c 'bmap -vvp' %s", filename);
    printf("=== Extents for %s ===\n", filename);
    system(cmd);
    printf("\n");
}

int main() {
    printf("Starting fallocate tests...\n");
    printf("------------------------------------------------\n\n");

    test_fallocate("test_zero_range.bin", FALLOC_FL_ZERO_RANGE, "FALLOC_FL_ZERO_RANGE");
    test_fallocate("test_write_zeroes.bin", FALLOC_FL_WRITE_ZEROES, "FALLOC_FL_WRITE_ZEROES");

    printf("Test complete.\n");
    return 0;
}

This is the output:

root@debian:/mnt# ~/home/write_zeroes /mnt/hello
Starting fallocate tests...
------------------------------------------------

Testing FALLOC_FL_ZERO_RANGE on test_zero_range.bin...
 -> fallocate(FALLOC_FL_ZERO_RANGE) succeeded!
=== Extents for test_zero_range.bin ===
test_zero_range.bin:
 EXT: FILE-OFFSET      BLOCK-RANGE      AG AG-OFFSET        TOTAL FLAGS
   0: [0..20479]:      20672..41151      0 (20672..41151)   20480 010000
 FLAG Values:
    0100000 Shared extent
    0010000 Unwritten preallocated extent
    0001000 Doesn't begin on stripe unit
    0000100 Doesn't end   on stripe unit
    0000010 Doesn't begin on stripe width
    0000001 Doesn't end   on stripe width

Testing FALLOC_FL_WRITE_ZEROES on test_write_zeroes.bin...
 -> fallocate(FALLOC_FL_WRITE_ZEROES) succeeded!
=== Extents for test_write_zeroes.bin ===
test_write_zeroes.bin:
 EXT: FILE-OFFSET      BLOCK-RANGE      AG AG-OFFSET        TOTAL FLAGS
   0: [0..20479]:      41152..61631      0 (41152..61631)   20480 000000
 FLAG Values:
    0100000 Shared extent
    0010000 Unwritten preallocated extent
    0001000 Doesn't begin on stripe unit
    0000100 Doesn't end   on stripe unit
    0000010 Doesn't begin on stripe width
    0000001 Doesn't end   on stripe width

Pankaj Raghav (2):
  xfs: add flags field to xfs_alloc_file_space
  xfs: add support for FALLOC_FL_WRITE_ZEROES

 fs/xfs/xfs_bmap_util.c |  5 ++--
 fs/xfs/xfs_bmap_util.h |  2 +-
 fs/xfs/xfs_file.c      | 64 +++++++++++++++++++++++++++++++++++++++---
 3 files changed, 64 insertions(+), 7 deletions(-)


base-commit: 4d750717498bbc1d8801281c32453a5f23d0bbe8
-- 
2.50.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [RFC 1/2] xfs: add flags field to xfs_alloc_file_space
  2026-02-27 14:08 [RFC 0/2] add FALLOC_FL_WRITE_ZEROES support to xfs Pankaj Raghav
@ 2026-02-27 14:08 ` Pankaj Raghav
  2026-03-03 15:24   ` Christoph Hellwig
  2026-02-27 14:08 ` [RFC 2/2] xfs: add support for FALLOC_FL_WRITE_ZEROES Pankaj Raghav
  2026-02-27 16:26 ` [RFC 0/2] add FALLOC_FL_WRITE_ZEROES support to xfs Pankaj Raghav (Samsung)
  2 siblings, 1 reply; 11+ messages in thread
From: Pankaj Raghav @ 2026-02-27 14:08 UTC (permalink / raw)
  To: linux-xfs
  Cc: bfoster, dchinner, Darrick J . Wong, p.raghav, gost.dev,
	pankaj.raghav, andres, cem, hch, lucas

Currently, xfs_alloc_file_space() hardcodes the XFS_BMAPI_PREALLOC flag
when calling xfs_bmapi_write(). This restricts its capability to only
allocating unwritten extents.

In preparation for adding FALLOC_FL_WRITE_ZEROES support, which needs to
allocate space and simultaneously convert it to written and zeroed
extents, introduce a 'flags' parameter to xfs_alloc_file_space(). This
allows callers to explicitly pass the required XFS_BMAPI_* allocation
flags.

Update all existing callers to pass XFS_BMAPI_PREALLOC to maintain the
current behavior. No functional changes intended.

Signed-off-by: Pankaj Raghav <p.raghav@samsung.com>
---
 fs/xfs/xfs_bmap_util.c | 5 +++--
 fs/xfs/xfs_bmap_util.h | 2 +-
 fs/xfs/xfs_file.c      | 6 +++---
 3 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c
index 0ab00615f1ad..532200959d8d 100644
--- a/fs/xfs/xfs_bmap_util.c
+++ b/fs/xfs/xfs_bmap_util.c
@@ -646,7 +646,8 @@ int
 xfs_alloc_file_space(
 	struct xfs_inode	*ip,
 	xfs_off_t		offset,
-	xfs_off_t		len)
+	xfs_off_t		len,
+	uint32_t flags)
 {
 	xfs_mount_t		*mp = ip->i_mount;
 	xfs_off_t		count;
@@ -748,7 +749,7 @@ xfs_alloc_file_space(
 		 * will eventually reach the requested range.
 		 */
 		error = xfs_bmapi_write(tp, ip, startoffset_fsb,
-				allocatesize_fsb, XFS_BMAPI_PREALLOC, 0, imapp,
+				allocatesize_fsb, flags, 0, imapp,
 				&nimaps);
 		if (error) {
 			if (error != -ENOSR)
diff --git a/fs/xfs/xfs_bmap_util.h b/fs/xfs/xfs_bmap_util.h
index c477b3361630..1fd4844d4ec6 100644
--- a/fs/xfs/xfs_bmap_util.h
+++ b/fs/xfs/xfs_bmap_util.h
@@ -56,7 +56,7 @@ int	xfs_bmap_last_extent(struct xfs_trans *tp, struct xfs_inode *ip,
 
 /* preallocation and hole punch interface */
 int	xfs_alloc_file_space(struct xfs_inode *ip, xfs_off_t offset,
-		xfs_off_t len);
+		xfs_off_t len, uint32_t flags);
 int	xfs_free_file_space(struct xfs_inode *ip, xfs_off_t offset,
 		xfs_off_t len, struct xfs_zone_alloc_ctx *ac);
 int	xfs_collapse_file_space(struct xfs_inode *, xfs_off_t offset,
diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
index 6246f34df9fd..3bd099534c68 100644
--- a/fs/xfs/xfs_file.c
+++ b/fs/xfs/xfs_file.c
@@ -1346,7 +1346,7 @@ xfs_falloc_zero_range(
 		len = round_up(offset + len, blksize) -
 			round_down(offset, blksize);
 		offset = round_down(offset, blksize);
-		error = xfs_alloc_file_space(ip, offset, len);
+		error = xfs_alloc_file_space(ip, offset, len, XFS_BMAPI_PREALLOC);
 	}
 	if (error)
 		return error;
@@ -1372,7 +1372,7 @@ xfs_falloc_unshare_range(
 	if (error)
 		return error;
 
-	error = xfs_alloc_file_space(XFS_I(inode), offset, len);
+	error = xfs_alloc_file_space(XFS_I(inode), offset, len, XFS_BMAPI_PREALLOC);
 	if (error)
 		return error;
 	return xfs_falloc_setsize(file, new_size);
@@ -1400,7 +1400,7 @@ xfs_falloc_allocate_range(
 	if (error)
 		return error;
 
-	error = xfs_alloc_file_space(XFS_I(inode), offset, len);
+	error = xfs_alloc_file_space(XFS_I(inode), offset, len, XFS_BMAPI_PREALLOC);
 	if (error)
 		return error;
 	return xfs_falloc_setsize(file, new_size);
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [RFC 2/2] xfs: add support for FALLOC_FL_WRITE_ZEROES
  2026-02-27 14:08 [RFC 0/2] add FALLOC_FL_WRITE_ZEROES support to xfs Pankaj Raghav
  2026-02-27 14:08 ` [RFC 1/2] xfs: add flags field to xfs_alloc_file_space Pankaj Raghav
@ 2026-02-27 14:08 ` Pankaj Raghav
  2026-02-27 16:26 ` [RFC 0/2] add FALLOC_FL_WRITE_ZEROES support to xfs Pankaj Raghav (Samsung)
  2 siblings, 0 replies; 11+ messages in thread
From: Pankaj Raghav @ 2026-02-27 14:08 UTC (permalink / raw)
  To: linux-xfs
  Cc: bfoster, dchinner, Darrick J . Wong, p.raghav, gost.dev,
	pankaj.raghav, andres, cem, hch, lucas

If the underlying block device supports the unmap write zeroes
operation, this flag allows users to quickly preallocate a file with
written extents that contain zeroes. This is beneficial for subsequent
overwrites as it prevents the need for unwritten-to-written extent
conversions, thereby significantly reducing metadata updates and journal
I/O overhead, improving overwrite performance.

When handling FALLOC_FL_WRITE_ZEROES, we first allocate unwritten
extents. This ensures that xfs_falloc_setsize() does not trip over a
written extent beyond i_size and trigger warnings in iomap_zero_range().
After the size is updated, we call xfs_alloc_file_space() again with the
XFS_BMAPI_CONVERT and XFS_BMAPI_ZERO flags to convert the unwritten
extents to written and offload the write zeroes operation to the device.

Signed-off-by: Pankaj Raghav <p.raghav@samsung.com>
---
 fs/xfs/xfs_file.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 57 insertions(+), 1 deletion(-)

diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
index 3bd099534c68..38688cdf4cdc 100644
--- a/fs/xfs/xfs_file.c
+++ b/fs/xfs/xfs_file.c
@@ -1308,6 +1308,59 @@ xfs_falloc_force_zero(
 	return XFS_TEST_ERROR(ip->i_mount, XFS_ERRTAG_FORCE_ZERO_RANGE);
 }
 
+static int
+xfs_falloc_write_zeroes(
+	struct file		*file,
+	int			mode,
+	loff_t			offset,
+	loff_t			len,
+	struct xfs_zone_alloc_ctx *ac)
+{
+	struct inode		*inode = file_inode(file);
+	struct xfs_inode	*ip = XFS_I(inode);
+	unsigned int		blksize = i_blocksize(inode);
+	loff_t			new_size = 0;
+	int			error;
+
+	if (!bdev_write_zeroes_unmap_sectors(
+		    xfs_inode_buftarg(XFS_I(inode))->bt_bdev))
+		return -EOPNOTSUPP;
+
+	error = xfs_falloc_newsize(file, mode, offset, len, &new_size);
+	if (error)
+		return error;
+
+	error = xfs_free_file_space(ip, offset, len, ac);
+	if (error)
+		return error;
+
+	len = round_up(offset + len, blksize) - round_down(offset, blksize);
+	offset = round_down(offset, blksize);
+
+	/*
+	 * Allocate unwritten extents first. This ensures that xfs_falloc_setsize
+	 * does not trip over a written extent beyond i_size and trigger warnings
+	 * in iomap_zero_range.
+	 */
+	error = xfs_alloc_file_space(ip, offset, len, XFS_BMAPI_PREALLOC);
+	if (error)
+		return error;
+
+	error = xfs_falloc_setsize(file, new_size);
+	if (error)
+		return error;
+
+	/*
+	 * Now convert the unwritten extents to written and zero them out using
+	 * unmap write zeroes.
+	 */
+	error = xfs_alloc_file_space(ip, offset, len, XFS_BMAPI_CONVERT | XFS_BMAPI_ZERO);
+	if (error)
+		return error;
+
+	return 0;
+}
+
 /*
  * Punch a hole and prealloc the range.  We use a hole punch rather than
  * unwritten extent conversion for two reasons:
@@ -1410,7 +1463,7 @@ xfs_falloc_allocate_range(
 		(FALLOC_FL_ALLOCATE_RANGE | FALLOC_FL_KEEP_SIZE |	\
 		 FALLOC_FL_PUNCH_HOLE |	FALLOC_FL_COLLAPSE_RANGE |	\
 		 FALLOC_FL_ZERO_RANGE |	FALLOC_FL_INSERT_RANGE |	\
-		 FALLOC_FL_UNSHARE_RANGE)
+		 FALLOC_FL_UNSHARE_RANGE | FALLOC_FL_WRITE_ZEROES)
 
 STATIC long
 __xfs_file_fallocate(
@@ -1462,6 +1515,9 @@ __xfs_file_fallocate(
 	case FALLOC_FL_ALLOCATE_RANGE:
 		error = xfs_falloc_allocate_range(file, mode, offset, len);
 		break;
+	case FALLOC_FL_WRITE_ZEROES:
+		error = xfs_falloc_write_zeroes(file, mode, offset, len, ac);
+		break;
 	default:
 		error = -EOPNOTSUPP;
 		break;
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [RFC 0/2] add FALLOC_FL_WRITE_ZEROES support to xfs
  2026-02-27 14:08 [RFC 0/2] add FALLOC_FL_WRITE_ZEROES support to xfs Pankaj Raghav
  2026-02-27 14:08 ` [RFC 1/2] xfs: add flags field to xfs_alloc_file_space Pankaj Raghav
  2026-02-27 14:08 ` [RFC 2/2] xfs: add support for FALLOC_FL_WRITE_ZEROES Pankaj Raghav
@ 2026-02-27 16:26 ` Pankaj Raghav (Samsung)
  2 siblings, 0 replies; 11+ messages in thread
From: Pankaj Raghav (Samsung) @ 2026-02-27 16:26 UTC (permalink / raw)
  To: Pankaj Raghav
  Cc: linux-xfs, bfoster, dchinner, Darrick J . Wong, gost.dev, andres,
	cem, hch, lukas

On Fri, Feb 27, 2026 at 03:08:40PM +0100, Pankaj Raghav wrote:
> The benefits of FALLOC_FL_WRITE_ZEROES was already discussed as a part
> of Zhang Yi's initial patches[1]. Postgres developer Andres also
> mentioned they would like to use this feature in Postgres [2].
> 
> Lukas Herbolt sent a patch recently that adds this support but I found
> some issues with them[3]. I independtly started working on these patches
> a while back as well, so I thought maybe I will send a RFC version of
> this support.
> 

CCed the wrong Lukas by mistake.

cc: s/lucas/lukas/@herbolt.com

--
Pankaj

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [RFC 1/2] xfs: add flags field to xfs_alloc_file_space
  2026-02-27 14:08 ` [RFC 1/2] xfs: add flags field to xfs_alloc_file_space Pankaj Raghav
@ 2026-03-03 15:24   ` Christoph Hellwig
  2026-03-04  8:20     ` Pankaj Raghav (Samsung)
  0 siblings, 1 reply; 11+ messages in thread
From: Christoph Hellwig @ 2026-03-03 15:24 UTC (permalink / raw)
  To: Pankaj Raghav
  Cc: linux-xfs, bfoster, dchinner, Darrick J . Wong, gost.dev,
	pankaj.raghav, andres, cem, hch, lucas

On Fri, Feb 27, 2026 at 03:08:41PM +0100, Pankaj Raghav wrote:
> Currently, xfs_alloc_file_space() hardcodes the XFS_BMAPI_PREALLOC flag
> when calling xfs_bmapi_write(). This restricts its capability to only
> allocating unwritten extents.
> 
> In preparation for adding FALLOC_FL_WRITE_ZEROES support, which needs to
> allocate space and simultaneously convert it to written and zeroed
> extents, introduce a 'flags' parameter to xfs_alloc_file_space(). This
> allows callers to explicitly pass the required XFS_BMAPI_* allocation
> flags.
> 
> Update all existing callers to pass XFS_BMAPI_PREALLOC to maintain the
> current behavior. No functional changes intended.
> 
> Signed-off-by: Pankaj Raghav <p.raghav@samsung.com>
> ---
>  fs/xfs/xfs_bmap_util.c | 5 +++--
>  fs/xfs/xfs_bmap_util.h | 2 +-
>  fs/xfs/xfs_file.c      | 6 +++---
>  3 files changed, 7 insertions(+), 6 deletions(-)
> 
> diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c
> index 0ab00615f1ad..532200959d8d 100644
> --- a/fs/xfs/xfs_bmap_util.c
> +++ b/fs/xfs/xfs_bmap_util.c
> @@ -646,7 +646,8 @@ int
>  xfs_alloc_file_space(
>  	struct xfs_inode	*ip,
>  	xfs_off_t		offset,
> -	xfs_off_t		len)
> +	xfs_off_t		len,
> +	uint32_t flags)

Messed up indentation.

Given that we've been through this for a lot of iterations, what
about you just take Lukas' existing patch and help improving it?


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [RFC 1/2] xfs: add flags field to xfs_alloc_file_space
  2026-03-03 15:24   ` Christoph Hellwig
@ 2026-03-04  8:20     ` Pankaj Raghav (Samsung)
  2026-03-04  8:31       ` Pankaj Raghav (Samsung)
  2026-03-04  9:31       ` Carlos Maiolino
  0 siblings, 2 replies; 11+ messages in thread
From: Pankaj Raghav (Samsung) @ 2026-03-04  8:20 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Pankaj Raghav, linux-xfs, bfoster, dchinner, Darrick J . Wong,
	gost.dev, andres, cem, lucas

On Tue, Mar 03, 2026 at 07:24:30AM -0800, Christoph Hellwig wrote:
> On Fri, Feb 27, 2026 at 03:08:41PM +0100, Pankaj Raghav wrote:
> > Currently, xfs_alloc_file_space() hardcodes the XFS_BMAPI_PREALLOC flag
> > when calling xfs_bmapi_write(). This restricts its capability to only
> > allocating unwritten extents.
> > 
> > In preparation for adding FALLOC_FL_WRITE_ZEROES support, which needs to
> > allocate space and simultaneously convert it to written and zeroed
> > extents, introduce a 'flags' parameter to xfs_alloc_file_space(). This
> > allows callers to explicitly pass the required XFS_BMAPI_* allocation
> > flags.
> > 
> > Update all existing callers to pass XFS_BMAPI_PREALLOC to maintain the
> > current behavior. No functional changes intended.
> > 
> > Signed-off-by: Pankaj Raghav <p.raghav@samsung.com>
> > ---
> >  fs/xfs/xfs_bmap_util.c | 5 +++--
> >  fs/xfs/xfs_bmap_util.h | 2 +-
> >  fs/xfs/xfs_file.c      | 6 +++---
> >  3 files changed, 7 insertions(+), 6 deletions(-)
> > 
> > diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c
> > index 0ab00615f1ad..532200959d8d 100644
> > --- a/fs/xfs/xfs_bmap_util.c
> > +++ b/fs/xfs/xfs_bmap_util.c
> > @@ -646,7 +646,8 @@ int
> >  xfs_alloc_file_space(
> >  	struct xfs_inode	*ip,
> >  	xfs_off_t		offset,
> > -	xfs_off_t		len)
> > +	xfs_off_t		len,
> > +	uint32_t flags)
> 
> Messed up indentation.
> 
Oops.

> Given that we've been through this for a lot of iterations, what
> about you just take Lukas' existing patch and help improving it?

I did review his patch[1]. The patches were broken when I tested it but I
did not get a reply from him after I reported them. That is why I decided
to send a new version.

[1] https://lore.kernel.org/linux-xfs/wmxdwtvahubdga73cgzprqtj7fxyjgx5kxvr4cobtl6ski2i6y@ic2g3bfymkwi/

--
Pankaj

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [RFC 1/2] xfs: add flags field to xfs_alloc_file_space
  2026-03-04  8:20     ` Pankaj Raghav (Samsung)
@ 2026-03-04  8:31       ` Pankaj Raghav (Samsung)
  2026-03-04  9:31       ` Carlos Maiolino
  1 sibling, 0 replies; 11+ messages in thread
From: Pankaj Raghav (Samsung) @ 2026-03-04  8:31 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Pankaj Raghav, linux-xfs, bfoster, dchinner, Darrick J . Wong,
	gost.dev, andres, cem, lukas

> > >  	struct xfs_inode	*ip,
> > >  	xfs_off_t		offset,
> > > -	xfs_off_t		len)
> > > +	xfs_off_t		len,
> > > +	uint32_t flags)
> > 
> > Messed up indentation.
> > 
> Oops.
> 
> > Given that we've been through this for a lot of iterations, what
> > about you just take Lukas' existing patch and help improving it?
> 
> I did review his patch[1]. The patches were broken when I tested it but I
> did not get a reply from him after I reported them. That is why I decided
> to send a new version.
> 
> [1] https://lore.kernel.org/linux-xfs/wmxdwtvahubdga73cgzprqtj7fxyjgx5kxvr4cobtl6ski2i6y@ic2g3bfymkwi/
> 

@Lukas, how do you want to move forward? Can I merge the changes I did
here into your patch?

--
Pankaj

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [RFC 1/2] xfs: add flags field to xfs_alloc_file_space
  2026-03-04  8:20     ` Pankaj Raghav (Samsung)
  2026-03-04  8:31       ` Pankaj Raghav (Samsung)
@ 2026-03-04  9:31       ` Carlos Maiolino
  2026-03-04  9:46         ` Pankaj Raghav
  1 sibling, 1 reply; 11+ messages in thread
From: Carlos Maiolino @ 2026-03-04  9:31 UTC (permalink / raw)
  To: Pankaj Raghav (Samsung)
  Cc: Christoph Hellwig, Pankaj Raghav, linux-xfs, bfoster, dchinner,
	Darrick J . Wong, gost.dev, andres, lukas

> > > @@ -646,7 +646,8 @@ int
> > >  xfs_alloc_file_space(
> > >  	struct xfs_inode	*ip,
> > >  	xfs_off_t		offset,
> > > -	xfs_off_t		len)
> > > +	xfs_off_t		len,
> > > +	uint32_t flags)
> > 
> > Messed up indentation.
> > 
> Oops.
> 
> > Given that we've been through this for a lot of iterations, what
> > about you just take Lukas' existing patch and help improving it?
> 
> I did review his patch[1]. The patches were broken when I tested it but I
> did not get a reply from him after I reported them. That is why I decided
> to send a new version.
> 
> [1] https://lore.kernel.org/linux-xfs/wmxdwtvahubdga73cgzprqtj7fxyjgx5kxvr4cobtl6ski2i6y@ic2g3bfymkwi/

If I properly got the timeline, you barely gave him time to reply:

your reply to the original patch: Date: Thu, 26 Feb 2026 14:44:05 +0000
your RFC time: Date: Fri, 27 Feb 2026 15:08:40 +0100

You are around enough time to know that people usually requires more
than 24 hours to reply.

Please, work with him to get this done. It's not a nice thing to do IMHO
to pass over somebody's else work if you are aware there is work being
done.

FWIW you also didn't Cc'ed him in your RFC as you used the wrong email
address... I'm fixing the headers so he gets aware of it.

If by any means I got the timeline wrong above, forget everything I said
other than the "work with him to get this done".

Carlos


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [RFC 1/2] xfs: add flags field to xfs_alloc_file_space
  2026-03-04  9:31       ` Carlos Maiolino
@ 2026-03-04  9:46         ` Pankaj Raghav
  2026-03-04 14:39           ` Lukas Herbolt
  0 siblings, 1 reply; 11+ messages in thread
From: Pankaj Raghav @ 2026-03-04  9:46 UTC (permalink / raw)
  To: Carlos Maiolino
  Cc: Christoph Hellwig, Pankaj Raghav, linux-xfs, bfoster, dchinner,
	Darrick J . Wong, gost.dev, andres, lukas


On 3/4/2026 10:31 AM, Carlos Maiolino wrote:
>>>> @@ -646,7 +646,8 @@ int
>>>>   xfs_alloc_file_space(
>>>>   	struct xfs_inode	*ip,
>>>>   	xfs_off_t		offset,
>>>> -	xfs_off_t		len)
>>>> +	xfs_off_t		len,
>>>> +	uint32_t flags)
>>>
>>> Messed up indentation.
>>>
>> Oops.
>>
>>> Given that we've been through this for a lot of iterations, what
>>> about you just take Lukas' existing patch and help improving it?
>>
>> I did review his patch[1]. The patches were broken when I tested it but I
>> did not get a reply from him after I reported them. That is why I decided
>> to send a new version.
>>
>> [1] https://lore.kernel.org/linux-xfs/wmxdwtvahubdga73cgzprqtj7fxyjgx5kxvr4cobtl6ski2i6y@ic2g3bfymkwi/
> 
> If I properly got the timeline, you barely gave him time to reply:
> 
> your reply to the original patch: Date: Thu, 26 Feb 2026 14:44:05 +0000
> your RFC time: Date: Fri, 27 Feb 2026 15:08:40 +0100
> 
> You are around enough time to know that people usually requires more
> than 24 hours to reply.
> 

I started working on this in parallel before I realized it was already being 
worked on. I could have waited a bit longer after responding to his patches. :) 
. Sorry for that.

> Please, work with him to get this done. It's not a nice thing to do IMHO
> to pass over somebody's else work if you are aware there is work being
> done.
> 
> FWIW you also didn't Cc'ed him in your RFC as you used the wrong email
> address... I'm fixing the headers so he gets aware of it.
>

Yes, I replied back to the thread with the correct ID [1].

> If by any means I got the timeline wrong above, forget everything I said
> other than the "work with him to get this done".
> 

His patches are not working properly. It is almost a week since I sent that 
message on his thread. I have messaged him again on how to proceed. I will wait 
and see what he replies :)

[1] 
https://lore.kernel.org/linux-xfs/20260227140842.1437710-1-p.raghav@samsung.com/T/#mb773dea20a7fc37772f811b26a5c5dd8941c3d2d

--
Pankaj

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [RFC 1/2] xfs: add flags field to xfs_alloc_file_space
  2026-03-04  9:46         ` Pankaj Raghav
@ 2026-03-04 14:39           ` Lukas Herbolt
  2026-03-04 19:57             ` Pankaj Raghav (Samsung)
  0 siblings, 1 reply; 11+ messages in thread
From: Lukas Herbolt @ 2026-03-04 14:39 UTC (permalink / raw)
  To: Pankaj Raghav
  Cc: Carlos Maiolino, Christoph Hellwig, Pankaj Raghav, linux-xfs,
	bfoster, dchinner, Darrick J . Wong, gost.dev, andres

On 2026-03-04 10:46, Pankaj Raghav wrote:
> On 3/4/2026 10:31 AM, Carlos Maiolino wrote:
>>>>> @@ -646,7 +646,8 @@ int
>>>>>   xfs_alloc_file_space(
>>>>>   	struct xfs_inode	*ip,
>>>>>   	xfs_off_t		offset,
>>>>> -	xfs_off_t		len)
>>>>> +	xfs_off_t		len,
>>>>> +	uint32_t flags)
>>>> 
>>>> Messed up indentation.
>>>> 
>>> Oops.
>>> 
>>>> Given that we've been through this for a lot of iterations, what
>>>> about you just take Lukas' existing patch and help improving it?
>>> 
>>> I did review his patch[1]. The patches were broken when I tested it 
>>> but I
>>> did not get a reply from him after I reported them. That is why I 
>>> decided
>>> to send a new version.
>>> 
>>> [1] 
>>> https://lore.kernel.org/linux-xfs/wmxdwtvahubdga73cgzprqtj7fxyjgx5kxvr4cobtl6ski2i6y@ic2g3bfymkwi/
>> 
>> If I properly got the timeline, you barely gave him time to reply:
>> 
>> your reply to the original patch: Date: Thu, 26 Feb 2026 14:44:05 
>> +0000
>> your RFC time: Date: Fri, 27 Feb 2026 15:08:40 +0100
>> 
>> You are around enough time to know that people usually requires more
>> than 24 hours to reply.
>> 
> 
> I started working on this in parallel before I realized it was already 
> being worked on. I could have waited a bit longer after responding to 
> his patches. :) . Sorry for that.
> 
>> Please, work with him to get this done. It's not a nice thing to do 
>> IMHO
>> to pass over somebody's else work if you are aware there is work being
>> done.
>> 
>> FWIW you also didn't Cc'ed him in your RFC as you used the wrong email
>> address... I'm fixing the headers so he gets aware of it.
>> 
> 
> Yes, I replied back to the thread with the correct ID [1].
> 
>> If by any means I got the timeline wrong above, forget everything I 
>> said
>> other than the "work with him to get this done".
>> 
> 
> His patches are not working properly. It is almost a week since I sent 
> that message on his thread. I have messaged him again on how to 
> proceed. I will wait and see what he replies :)

Sorry, the original CC somehow messed the filtering and it fell trough 
the cracks
of the email folders. If you agree I would add the `two stage Ext4 like` 
into the
original patch still utilizing the xfs_falloc_zero_range. Doing the the 
default
XFS_BMAPI_PREALLOC and sending the XFS_BMAPI_ZERO|XFS_BMAPI_CONVERT if 
the WR_ZERO
is set and the device supports it.

I think that would still be quite readable without the of duplicating 
the code.

-- 
-lhe

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [RFC 1/2] xfs: add flags field to xfs_alloc_file_space
  2026-03-04 14:39           ` Lukas Herbolt
@ 2026-03-04 19:57             ` Pankaj Raghav (Samsung)
  0 siblings, 0 replies; 11+ messages in thread
From: Pankaj Raghav (Samsung) @ 2026-03-04 19:57 UTC (permalink / raw)
  To: Lukas Herbolt
  Cc: Carlos Maiolino, Christoph Hellwig, Pankaj Raghav, linux-xfs,
	bfoster, dchinner, Darrick J . Wong, gost.dev, andres

> > > If by any means I got the timeline wrong above, forget everything I
> > > said
> > > other than the "work with him to get this done".
> > > 
> > 
> > His patches are not working properly. It is almost a week since I sent
> > that message on his thread. I have messaged him again on how to proceed.
> > I will wait and see what he replies :)
> 
> Sorry, the original CC somehow messed the filtering and it fell trough the
> cracks
> of the email folders. If you agree I would add the `two stage Ext4 like`
> into the
> original patch still utilizing the xfs_falloc_zero_range. Doing the the
> default
> XFS_BMAPI_PREALLOC and sending the XFS_BMAPI_ZERO|XFS_BMAPI_CONVERT if the
> WR_ZERO
> is set and the device supports it.
> 

Sounds good. I think this is the right way to go.

> I think that would still be quite readable without the of duplicating the
> code.
> 

Yeah. Maybe also you want to split your code into two patches similar to
what I done here? IMO, it makes it a bit more readable.

--
Pankaj

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-03-04 19:58 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-27 14:08 [RFC 0/2] add FALLOC_FL_WRITE_ZEROES support to xfs Pankaj Raghav
2026-02-27 14:08 ` [RFC 1/2] xfs: add flags field to xfs_alloc_file_space Pankaj Raghav
2026-03-03 15:24   ` Christoph Hellwig
2026-03-04  8:20     ` Pankaj Raghav (Samsung)
2026-03-04  8:31       ` Pankaj Raghav (Samsung)
2026-03-04  9:31       ` Carlos Maiolino
2026-03-04  9:46         ` Pankaj Raghav
2026-03-04 14:39           ` Lukas Herbolt
2026-03-04 19:57             ` Pankaj Raghav (Samsung)
2026-02-27 14:08 ` [RFC 2/2] xfs: add support for FALLOC_FL_WRITE_ZEROES Pankaj Raghav
2026-02-27 16:26 ` [RFC 0/2] add FALLOC_FL_WRITE_ZEROES support to xfs Pankaj Raghav (Samsung)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox