* [PATCH v0 0/1] exfat: add limited FALLOC_FL_ZERO_RANGE support
@ 2026-03-19 4:35 David Timber
2026-03-19 4:35 ` [PATCH v0 1/1] " David Timber
2026-03-20 8:16 ` [syzbot ci] " syzbot ci
0 siblings, 2 replies; 6+ messages in thread
From: David Timber @ 2026-03-19 4:35 UTC (permalink / raw)
To: linkinjeon, sj1557.seo
Cc: yuezhang.mo, linux-fsdevel, linux-kernel, David Timber
This is part of my exFAT fragmentation optimisation project.
As exFAT is fundamentally based on linked-list structure, cluster
allocation is not a cheap operation - it involves walking the cluster
chain as well as bitmap so it's not particularly easy on flash devices.
The purpose of VDL is in part addressing the issue by allowing users
to clear the contents of files without changing the cluster layout by
only updating VDL which is O(1) op. I.e. reduced flash wear.
The fallocate support should see applications in recording devices like
dashcams, IP cameras and DVRs(digital video recorders). Such devices
typically implement FIFO-style file rotation. Also, the technique
could be potentially utilise to eliminate the chance of fragmentation
if the device preallocates clusters for large media files.
The `fallocate -d ...` and `cp --sparse=always ...`
commands(util-linux) can be used on the files in exFAT to detect zeros
leading up to EOF and update the VDL accordingly.
David Timber (1):
exfat: add limited FALLOC_FL_ZERO_RANGE support
fs/exfat/file.c | 75 +++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 64 insertions(+), 11 deletions(-)
--
2.53.0.1.ga224b40d3f.dirty
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v0 1/1] exfat: add limited FALLOC_FL_ZERO_RANGE support
2026-03-19 4:35 [PATCH v0 0/1] exfat: add limited FALLOC_FL_ZERO_RANGE support David Timber
@ 2026-03-19 4:35 ` David Timber
2026-03-23 7:59 ` Dan Carpenter
2026-03-20 8:16 ` [syzbot ci] " syzbot ci
1 sibling, 1 reply; 6+ messages in thread
From: David Timber @ 2026-03-19 4:35 UTC (permalink / raw)
To: linkinjeon, sj1557.seo
Cc: yuezhang.mo, linux-fsdevel, linux-kernel, David Timber
As means of truncating the VDL of a regular file while maintaining the
layout of the allocated clusters, allow the use fallocate mode
FALLOC_FL_ZERO_RANGE with the range that covers EOF, with the support
of optional FALLOC_FL_KEEP_SIZE flag.
To reset the VDL to 0, userspace may use fallocate() like so:
fallocate(fd, FALLOC_FL_ZERO_RANGE|FALLOC_FL_KEEP_SIZE,
lseek(fd, 0, SEEK_END));
FALLOC_FL_KEEP_SIZE flag is for multiple users to guard the file from
TOCTOU conditions. Without the flag, the behaviour is the same as
FALLOC_FL_ZERO_RANGE.
Signed-off-by: David Timber <dxdt@dev.snart.me>
---
fs/exfat/file.c | 75 +++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 64 insertions(+), 11 deletions(-)
diff --git a/fs/exfat/file.c b/fs/exfat/file.c
index 2daf0dbabb24..cff61d1a9f68 100644
--- a/fs/exfat/file.c
+++ b/fs/exfat/file.c
@@ -36,7 +36,8 @@ static int exfat_cont_expand(struct inode *inode, loff_t size)
num_clusters = EXFAT_B_TO_CLU(exfat_ondisk_size(inode), sbi);
new_num_clusters = EXFAT_B_TO_CLU_ROUND_UP(size, sbi);
- if (new_num_clusters == num_clusters)
+ WARN_ON(new_num_clusters < num_clusters);
+ if (new_num_clusters <= num_clusters)
goto out;
if (num_clusters) {
@@ -94,35 +95,87 @@ static int exfat_cont_expand(struct inode *inode, loff_t size)
/*
* Preallocate space for a file. This implements exfat's fallocate file
* operation, which gets called from sys_fallocate system call. User space
- * requests len bytes at offset. In contrary to fat, we only support
- * FALLOC_FL_ALLOCATE_RANGE because by leaving the valid data length(VDL)
- * field, it is unnecessary to zero out the newly allocated clusters.
+ * requests len bytes at offset.
+ *
+ * In contrary to fat, FALLOC_FL_ALLOCATE_RANGE can be done without zeroing out
+ * the newly allocated clusters by leaving the valid data length(VDL) field
+ * unchanged.
+ *
+ * Due to the inherent limitation of the VDL scheme, FALLOC_FL_ZERO_RANGE is
+ * only possible when the requested range covers EOF.
*/
static long exfat_fallocate(struct file *file, int mode,
loff_t offset, loff_t len)
{
struct inode *inode = file->f_mapping->host;
- loff_t newsize = offset + len;
+ loff_t newsize, isize;
int err = 0;
/* No support for other modes */
- if (mode != FALLOC_FL_ALLOCATE_RANGE)
+ switch (mode) {
+ case FALLOC_FL_ALLOCATE_RANGE:
+ case FALLOC_FL_ZERO_RANGE:
+ case FALLOC_FL_ZERO_RANGE|FALLOC_FL_KEEP_SIZE:
+ break;
+ default:
return -EOPNOTSUPP;
+ }
/* No support for dir */
if (!S_ISREG(inode->i_mode))
- return -EOPNOTSUPP;
+ return mode & FALLOC_FL_ZERO_RANGE ? -EINVAL : -EOPNOTSUPP;
if (unlikely(exfat_forced_shutdown(inode->i_sb)))
return -EIO;
inode_lock(inode);
- if (newsize <= i_size_read(inode))
- goto error;
+ newsize = offset + len;
+ isize = i_size_read(inode);
+
+ if (mode & FALLOC_FL_ZERO_RANGE) {
+ struct exfat_inode_info *ei = EXFAT_I(inode);
+ loff_t saved_validsize = ei->valid_size;
+
+ /* The requested range must span to or past EOF */
+ if (newsize < isize) {
+ err = -EOPNOTSUPP;
+ goto error;
+ }
+
+ /* valid_size can only be truncated */
+ if (offset < ei->valid_size)
+ ei->valid_size = offset;
+ /* If offset >= ei->valid_size, the range is already zeroed so that'd be no-op */
+
+ if (!(mode & FALLOC_FL_KEEP_SIZE) && isize < newsize) {
+ err = exfat_cont_expand(inode, newsize);
+ if (err) {
+ /* inode unchanged - revert valid_size */
+ ei->valid_size = saved_validsize;
+ goto error;
+ }
+ /* inode invalidated in exfat_cont_expand() */
+ } else {
+ /* update inode */
+ inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode));
- /* This is just an expanding truncate */
- err = exfat_cont_expand(inode, newsize);
+ mark_inode_dirty(inode);
+
+ if (IS_SYNC(inode))
+ return write_inode_now(inode, 1);
+ }
+
+ /* drop cache after the new valid_size */
+ if (ei->valid_size != saved_validsize)
+ truncate_pagecache(inode, ei->valid_size);
+ } else { /* mode == FALLOC_FL_ALLOCATE_RANGE */
+ if (newsize <= isize)
+ goto error;
+
+ /* This is just an expanding truncate */
+ err = exfat_cont_expand(inode, newsize);
+ }
error:
inode_unlock(inode);
--
2.53.0.1.ga224b40d3f.dirty
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [syzbot ci] Re: exfat: add limited FALLOC_FL_ZERO_RANGE support
2026-03-19 4:35 [PATCH v0 0/1] exfat: add limited FALLOC_FL_ZERO_RANGE support David Timber
2026-03-19 4:35 ` [PATCH v0 1/1] " David Timber
@ 2026-03-20 8:16 ` syzbot ci
2026-03-22 12:35 ` David Timber
1 sibling, 1 reply; 6+ messages in thread
From: syzbot ci @ 2026-03-20 8:16 UTC (permalink / raw)
To: dxdt, linkinjeon, linux-fsdevel, linux-kernel, sj1557.seo,
yuezhang.mo
Cc: syzbot, syzkaller-bugs
syzbot ci has tested the following series
[v0] exfat: add limited FALLOC_FL_ZERO_RANGE support
https://lore.kernel.org/all/20260319043553.301185-1-dxdt@dev.snart.me
* [PATCH v0 1/1] exfat: add limited FALLOC_FL_ZERO_RANGE support
and found the following issue:
WARNING: lock held when returning to user space in exfat_fallocate
Full report is available here:
https://ci.syzbot.org/series/a58a79c9-a4e7-40b7-a5d3-8d4da244a00c
***
WARNING: lock held when returning to user space in exfat_fallocate
tree: linux-next
URL: https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next
base: b5d083a3ed1e2798396d5e491432e887da8d4a06
arch: amd64
compiler: Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8
config: https://ci.syzbot.org/builds/6a43cfef-5b9a-4b39-a6b0-7d34bfb0f7b7/config
C repro: https://ci.syzbot.org/findings/87d27fd2-e5b7-4174-8faf-3b746f7aa18d/c_repro
syz repro: https://ci.syzbot.org/findings/87d27fd2-e5b7-4174-8faf-3b746f7aa18d/syz_repro
exFAT-fs (loop0): failed to load upcase table (idx : 0x0000fd4f, chksum : 0x395e47cf, utbl_chksum : 0xe619d30d)
exFAT-fs (loop0): valid_size(150994954) is greater than size(10)
================================================
WARNING: lock held when returning to user space!
syzkaller #0 Not tainted
------------------------------------------------
syz.0.17/5982 is leaving the kernel with locks still held!
1 lock held by syz.0.17/5982:
#0: ffff8881bc75c110 (&sb->s_type->i_mutex_key#24){+.+.}-{4:4}, at: inode_lock include/linux/fs.h:1028 [inline]
#0: ffff8881bc75c110 (&sb->s_type->i_mutex_key#24){+.+.}-{4:4}, at: exfat_fallocate+0x163/0x4e0 fs/exfat/file.c:131
***
If these findings have caused you to resend the series or submit a
separate fix, please add the following tag to your commit message:
Tested-by: syzbot@syzkaller.appspotmail.com
---
This report is generated by a bot. It may contain errors.
syzbot ci engineers can be reached at syzkaller@googlegroups.com.
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [syzbot ci] Re: exfat: add limited FALLOC_FL_ZERO_RANGE support
2026-03-20 8:16 ` [syzbot ci] " syzbot ci
@ 2026-03-22 12:35 ` David Timber
2026-03-22 12:38 ` syzbot ci
0 siblings, 1 reply; 6+ messages in thread
From: David Timber @ 2026-03-22 12:35 UTC (permalink / raw)
To: syzbot ci, linkinjeon, linux-fsdevel, linux-kernel, sj1557.seo,
yuezhang.mo
Cc: syzbot, syzkaller-bugs
#syz test
diff --git a/fs/exfat/file.c b/fs/exfat/file.c
index 2daf0dbabb24..dfa5fc89f77d 100644
--- a/fs/exfat/file.c
+++ b/fs/exfat/file.c
@@ -36,7 +36,8 @@ static int exfat_cont_expand(struct inode *inode, loff_t size)
num_clusters = EXFAT_B_TO_CLU(exfat_ondisk_size(inode), sbi);
new_num_clusters = EXFAT_B_TO_CLU_ROUND_UP(size, sbi);
- if (new_num_clusters == num_clusters)
+ WARN_ON(new_num_clusters < num_clusters);
+ if (new_num_clusters <= num_clusters)
goto out;
if (num_clusters) {
@@ -94,35 +95,87 @@ static int exfat_cont_expand(struct inode *inode, loff_t size)
/*
* Preallocate space for a file. This implements exfat's fallocate file
* operation, which gets called from sys_fallocate system call. User space
- * requests len bytes at offset. In contrary to fat, we only support
- * FALLOC_FL_ALLOCATE_RANGE because by leaving the valid data length(VDL)
- * field, it is unnecessary to zero out the newly allocated clusters.
+ * requests len bytes at offset.
+ *
+ * In contrary to fat, FALLOC_FL_ALLOCATE_RANGE can be done without zeroing out
+ * the newly allocated clusters by leaving the valid data length(VDL) field
+ * unchanged.
+ *
+ * Due to the inherent limitation of the VDL scheme, FALLOC_FL_ZERO_RANGE is
+ * only possible when the requested range covers EOF.
*/
static long exfat_fallocate(struct file *file, int mode,
loff_t offset, loff_t len)
{
struct inode *inode = file->f_mapping->host;
- loff_t newsize = offset + len;
+ loff_t newsize, isize;
int err = 0;
/* No support for other modes */
- if (mode != FALLOC_FL_ALLOCATE_RANGE)
+ switch (mode) {
+ case FALLOC_FL_ALLOCATE_RANGE:
+ case FALLOC_FL_ZERO_RANGE:
+ case FALLOC_FL_ZERO_RANGE|FALLOC_FL_KEEP_SIZE:
+ break;
+ default:
return -EOPNOTSUPP;
+ }
/* No support for dir */
if (!S_ISREG(inode->i_mode))
- return -EOPNOTSUPP;
+ return mode & FALLOC_FL_ZERO_RANGE ? -EINVAL : -EOPNOTSUPP;
if (unlikely(exfat_forced_shutdown(inode->i_sb)))
return -EIO;
inode_lock(inode);
- if (newsize <= i_size_read(inode))
- goto error;
+ newsize = offset + len;
+ isize = i_size_read(inode);
+
+ if (mode & FALLOC_FL_ZERO_RANGE) {
+ struct exfat_inode_info *ei = EXFAT_I(inode);
+ loff_t saved_validsize = ei->valid_size;
+
+ /* The requested range must span to or past EOF */
+ if (newsize < isize) {
+ err = -EOPNOTSUPP;
+ goto error;
+ }
+
+ /* valid_size can only be truncated */
+ if (offset < ei->valid_size)
+ ei->valid_size = offset;
+ /* If offset >= ei->valid_size, the range is already zeroed so that'd be no-op */
+
+ if (!(mode & FALLOC_FL_KEEP_SIZE) && isize < newsize)
+ err = exfat_cont_expand(inode, newsize);
+ /* inode invalidated in exfat_cont_expand() */
+ else {
+ /* update inode */
+ inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode));
+ mark_inode_dirty(inode);
+
+ if (IS_SYNC(inode))
+ err = write_inode_now(inode, 1);
+ }
+
+ if (err) {
+ /* inode unchanged - revert valid_size */
+ ei->valid_size = saved_validsize;
+ goto error;
+ }
+
+ /* drop cache after the new valid_size */
+ if (ei->valid_size != saved_validsize)
+ truncate_pagecache(inode, ei->valid_size);
+ } else { /* mode == FALLOC_FL_ALLOCATE_RANGE */
+ if (newsize <= isize)
+ goto error;
- /* This is just an expanding truncate */
- err = exfat_cont_expand(inode, newsize);
+ /* This is just an expanding truncate */
+ err = exfat_cont_expand(inode, newsize);
+ }
error:
inode_unlock(inode);
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: RE: [syzbot ci] Re: exfat: add limited FALLOC_FL_ZERO_RANGE support
2026-03-22 12:35 ` David Timber
@ 2026-03-22 12:38 ` syzbot ci
0 siblings, 0 replies; 6+ messages in thread
From: syzbot ci @ 2026-03-22 12:38 UTC (permalink / raw)
To: dxdt
Cc: dxdt, linkinjeon, linux-fsdevel, linux-kernel, sj1557.seo, syzbot,
syzkaller-bugs, yuezhang.mo
syzbot-ci does not support `test` command
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v0 1/1] exfat: add limited FALLOC_FL_ZERO_RANGE support
2026-03-19 4:35 ` [PATCH v0 1/1] " David Timber
@ 2026-03-23 7:59 ` Dan Carpenter
0 siblings, 0 replies; 6+ messages in thread
From: Dan Carpenter @ 2026-03-23 7:59 UTC (permalink / raw)
To: oe-kbuild, David Timber, linkinjeon, sj1557.seo
Cc: lkp, oe-kbuild-all, yuezhang.mo, linux-fsdevel, linux-kernel,
David Timber
Hi David,
kernel test robot noticed the following build warnings:
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/David-Timber/exfat-add-limited-FALLOC_FL_ZERO_RANGE-support/20260319-185700
base: next-20260318
patch link: https://lore.kernel.org/r/20260319043553.301185-2-dxdt%40dev.snart.me
patch subject: [PATCH v0 1/1] exfat: add limited FALLOC_FL_ZERO_RANGE support
config: i386-randconfig-141-20260322 (https://download.01.org/0day-ci/archive/20260322/202603221252.dVVrrOrL-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
smatch: v0.5.0-9004-gb810ac53
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202603221252.dVVrrOrL-lkp@intel.com/
smatch warnings:
fs/exfat/file.c:183 exfat_fallocate() warn: inconsistent returns '&inode->i_rwsem'.
vim +183 fs/exfat/file.c
bf1797960c20f3d David Timber 2026-02-28 107 static long exfat_fallocate(struct file *file, int mode,
bf1797960c20f3d David Timber 2026-02-28 108 loff_t offset, loff_t len)
bf1797960c20f3d David Timber 2026-02-28 109 {
bf1797960c20f3d David Timber 2026-02-28 110 struct inode *inode = file->f_mapping->host;
1178dacb657facf David Timber 2026-03-19 111 loff_t newsize, isize;
bf1797960c20f3d David Timber 2026-02-28 112 int err = 0;
bf1797960c20f3d David Timber 2026-02-28 113
bf1797960c20f3d David Timber 2026-02-28 114 /* No support for other modes */
1178dacb657facf David Timber 2026-03-19 115 switch (mode) {
1178dacb657facf David Timber 2026-03-19 116 case FALLOC_FL_ALLOCATE_RANGE:
1178dacb657facf David Timber 2026-03-19 117 case FALLOC_FL_ZERO_RANGE:
1178dacb657facf David Timber 2026-03-19 118 case FALLOC_FL_ZERO_RANGE|FALLOC_FL_KEEP_SIZE:
1178dacb657facf David Timber 2026-03-19 119 break;
1178dacb657facf David Timber 2026-03-19 120 default:
bf1797960c20f3d David Timber 2026-02-28 121 return -EOPNOTSUPP;
1178dacb657facf David Timber 2026-03-19 122 }
bf1797960c20f3d David Timber 2026-02-28 123
bf1797960c20f3d David Timber 2026-02-28 124 /* No support for dir */
bf1797960c20f3d David Timber 2026-02-28 125 if (!S_ISREG(inode->i_mode))
1178dacb657facf David Timber 2026-03-19 126 return mode & FALLOC_FL_ZERO_RANGE ? -EINVAL : -EOPNOTSUPP;
bf1797960c20f3d David Timber 2026-02-28 127
bf1797960c20f3d David Timber 2026-02-28 128 if (unlikely(exfat_forced_shutdown(inode->i_sb)))
bf1797960c20f3d David Timber 2026-02-28 129 return -EIO;
bf1797960c20f3d David Timber 2026-02-28 130
bf1797960c20f3d David Timber 2026-02-28 131 inode_lock(inode);
^^^^^^^^^^^^^^^^^^
bf1797960c20f3d David Timber 2026-02-28 132
1178dacb657facf David Timber 2026-03-19 133 newsize = offset + len;
1178dacb657facf David Timber 2026-03-19 134 isize = i_size_read(inode);
1178dacb657facf David Timber 2026-03-19 135
1178dacb657facf David Timber 2026-03-19 136 if (mode & FALLOC_FL_ZERO_RANGE) {
1178dacb657facf David Timber 2026-03-19 137 struct exfat_inode_info *ei = EXFAT_I(inode);
1178dacb657facf David Timber 2026-03-19 138 loff_t saved_validsize = ei->valid_size;
1178dacb657facf David Timber 2026-03-19 139
1178dacb657facf David Timber 2026-03-19 140 /* The requested range must span to or past EOF */
1178dacb657facf David Timber 2026-03-19 141 if (newsize < isize) {
1178dacb657facf David Timber 2026-03-19 142 err = -EOPNOTSUPP;
1178dacb657facf David Timber 2026-03-19 143 goto error;
1178dacb657facf David Timber 2026-03-19 144 }
1178dacb657facf David Timber 2026-03-19 145
1178dacb657facf David Timber 2026-03-19 146 /* valid_size can only be truncated */
1178dacb657facf David Timber 2026-03-19 147 if (offset < ei->valid_size)
1178dacb657facf David Timber 2026-03-19 148 ei->valid_size = offset;
1178dacb657facf David Timber 2026-03-19 149 /* If offset >= ei->valid_size, the range is already zeroed so that'd be no-op */
1178dacb657facf David Timber 2026-03-19 150
1178dacb657facf David Timber 2026-03-19 151 if (!(mode & FALLOC_FL_KEEP_SIZE) && isize < newsize) {
1178dacb657facf David Timber 2026-03-19 152 err = exfat_cont_expand(inode, newsize);
1178dacb657facf David Timber 2026-03-19 153 if (err) {
1178dacb657facf David Timber 2026-03-19 154 /* inode unchanged - revert valid_size */
1178dacb657facf David Timber 2026-03-19 155 ei->valid_size = saved_validsize;
1178dacb657facf David Timber 2026-03-19 156 goto error;
1178dacb657facf David Timber 2026-03-19 157 }
1178dacb657facf David Timber 2026-03-19 158 /* inode invalidated in exfat_cont_expand() */
1178dacb657facf David Timber 2026-03-19 159 } else {
1178dacb657facf David Timber 2026-03-19 160 /* update inode */
1178dacb657facf David Timber 2026-03-19 161 inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode));
1178dacb657facf David Timber 2026-03-19 162
1178dacb657facf David Timber 2026-03-19 163 mark_inode_dirty(inode);
1178dacb657facf David Timber 2026-03-19 164
1178dacb657facf David Timber 2026-03-19 165 if (IS_SYNC(inode))
1178dacb657facf David Timber 2026-03-19 166 return write_inode_now(inode, 1);
I don't think this calls inode_unlock(inode);
1178dacb657facf David Timber 2026-03-19 167 }
1178dacb657facf David Timber 2026-03-19 168
1178dacb657facf David Timber 2026-03-19 169 /* drop cache after the new valid_size */
1178dacb657facf David Timber 2026-03-19 170 if (ei->valid_size != saved_validsize)
1178dacb657facf David Timber 2026-03-19 171 truncate_pagecache(inode, ei->valid_size);
1178dacb657facf David Timber 2026-03-19 172 } else { /* mode == FALLOC_FL_ALLOCATE_RANGE */
1178dacb657facf David Timber 2026-03-19 173 if (newsize <= isize)
bf1797960c20f3d David Timber 2026-02-28 174 goto error;
bf1797960c20f3d David Timber 2026-02-28 175
bf1797960c20f3d David Timber 2026-02-28 176 /* This is just an expanding truncate */
bf1797960c20f3d David Timber 2026-02-28 177 err = exfat_cont_expand(inode, newsize);
1178dacb657facf David Timber 2026-03-19 178 }
bf1797960c20f3d David Timber 2026-02-28 179
bf1797960c20f3d David Timber 2026-02-28 180 error:
bf1797960c20f3d David Timber 2026-02-28 181 inode_unlock(inode);
bf1797960c20f3d David Timber 2026-02-28 182
bf1797960c20f3d David Timber 2026-02-28 @183 return err;
bf1797960c20f3d David Timber 2026-02-28 184 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-03-23 7:59 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-19 4:35 [PATCH v0 0/1] exfat: add limited FALLOC_FL_ZERO_RANGE support David Timber
2026-03-19 4:35 ` [PATCH v0 1/1] " David Timber
2026-03-23 7:59 ` Dan Carpenter
2026-03-20 8:16 ` [syzbot ci] " syzbot ci
2026-03-22 12:35 ` David Timber
2026-03-22 12:38 ` syzbot ci
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox