Forwarded: test patch

From: syzbot

Date: Tue Feb 24 2026 - 01:35:37 EST


For archival purposes, forwarding an incoming command email to
linux-kernel@xxxxxxxxxxxxxxx, syzkaller-bugs@xxxxxxxxxxxxxxxx.

***

Subject: test patch
Author: heming.zhao@xxxxxxxx

#syz test

diff --git a/fs/ocfs2/quota_global.c b/fs/ocfs2/quota_global.c
index e85b1ccf81be..4321d8f59402 100644
--- a/fs/ocfs2/quota_global.c
+++ b/fs/ocfs2/quota_global.c
@@ -311,7 +311,10 @@ int ocfs2_lock_global_qf(struct ocfs2_mem_dqinfo *oinfo, int ex)
spin_unlock(&dq_data_lock);
if (ex) {
inode_lock(oinfo->dqi_gqinode);
- down_write(&OCFS2_I(oinfo->dqi_gqinode)->ip_alloc_sem);
+ if (!down_write_trylock(&OCFS2_I(oinfo->dqi_gqinode)->ip_alloc_sem)) {
+ inode_unlock(oinfo->dqi_gqinode);
+ return -EBUSY;
+ }
} else {
down_read(&OCFS2_I(oinfo->dqi_gqinode)->ip_alloc_sem);
}
diff --git a/fs/ocfs2/quota_local.c b/fs/ocfs2/quota_local.c
index de7f12858729..b7555aff169e 100644
--- a/fs/ocfs2/quota_local.c
+++ b/fs/ocfs2/quota_local.c
@@ -1224,7 +1224,10 @@ int ocfs2_create_local_dquot(struct dquot *dquot)
int status;
u64 pcount;

- down_write(&OCFS2_I(lqinode)->ip_alloc_sem);
+ if (!down_write_trylock(&OCFS2_I(lqinode)->ip_alloc_sem)) {
+ status = -EBUSY;
+ goto out;
+ }
chunk = ocfs2_find_free_entry(sb, type, &offset);
if (!chunk) {
chunk = ocfs2_extend_local_quota_file(sb, type, &offset);