* [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY
@ 2026-04-01 4:20 tejas bharambe
2026-04-01 8:29 ` Joseph Qi
` (4 more replies)
0 siblings, 5 replies; 8+ messages in thread
From: tejas bharambe @ 2026-04-01 4:20 UTC (permalink / raw)
To: ocfs2-devel@lists.linux.dev
Cc: mark@fasheh.com, jlbec@evilplan.org, linux-kernel@vger.kernel.org,
syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com, Joseph Qi
filemap_fault() may drop the mmap_lock before returning VM_FAULT_RETRY,
as documented in mm/filemap.c:
"If our return value has VM_FAULT_RETRY set, it's because the mmap_lock
may be dropped before doing I/O or by lock_folio_maybe_drop_mmap()."
When this happens, a concurrent munmap() can call remove_vma() and free
the vm_area_struct via RCU. The saved 'vma' pointer in ocfs2_fault() then
becomes a dangling pointer, and the subsequent trace_ocfs2_fault() call
dereferences it -- a use-after-free.
Fix this by saving the inode reference before calling filemap_fault(),
and removing vma from the trace event. The inode remains valid across
the lock drop since the file is still open, so the trace can fire in
all cases without dereferencing the potentially freed vma.
Reported-by: syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=a49010a0e8fcdeea075f
Suggested-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Signed-off-by: Tejas Bharambe <tejas.bharambe@outlook.com>
---
fs/ocfs2/mmap.c | 4 ++--
fs/ocfs2/ocfs2_trace.h | 10 ++++------
2 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/fs/ocfs2/mmap.c b/fs/ocfs2/mmap.c
index 50e2faf64c..7a4be91d6a 100644
--- a/fs/ocfs2/mmap.c
+++ b/fs/ocfs2/mmap.c
@@ -38,8 +38,8 @@ static vm_fault_t ocfs2_fault(struct vm_fault *vmf)
ret = filemap_fault(vmf);
ocfs2_unblock_signals(&oldset);
- trace_ocfs2_fault(OCFS2_I(vma->vm_file->f_mapping->host)->ip_blkno,
- vma, vmf->page, vmf->pgoff);
+ trace_ocfs2_fault(OCFS2_I(inode)->ip_blkno,
+ vmf->page, vmf->pgoff);
return ret;
}
diff --git a/fs/ocfs2/ocfs2_trace.h b/fs/ocfs2/ocfs2_trace.h
index 4b32fb5658..6c2c97a980 100644
--- a/fs/ocfs2/ocfs2_trace.h
+++ b/fs/ocfs2/ocfs2_trace.h
@@ -1246,22 +1246,20 @@ TRACE_EVENT(ocfs2_write_end_inline,
TRACE_EVENT(ocfs2_fault,
TP_PROTO(unsigned long long ino,
- void *area, void *page, unsigned long pgoff),
- TP_ARGS(ino, area, page, pgoff),
+ void *page, unsigned long pgoff),
+ TP_ARGS(ino, page, pgoff),
TP_STRUCT__entry(
__field(unsigned long long, ino)
- __field(void *, area)
__field(void *, page)
__field(unsigned long, pgoff)
),
TP_fast_assign(
__entry->ino = ino;
- __entry->area = area;
__entry->page = page;
__entry->pgoff = pgoff;
),
- TP_printk("%llu %p %p %lu",
- __entry->ino, __entry->area, __entry->page, __entry->pgoff)
+ TP_printk("%llu %p %lu",
+ __entry->ino, __entry->page, __entry->pgoff)
);
/* End of trace events for fs/ocfs2/mmap.c. */
--
2.53.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY 2026-04-01 4:20 [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY tejas bharambe @ 2026-04-01 8:29 ` Joseph Qi 2026-04-01 12:55 ` [PATCH v3] " tejas bharambe 2026-04-03 16:50 ` [PATCH v2] " kernel test robot ` (3 subsequent siblings) 4 siblings, 1 reply; 8+ messages in thread From: Joseph Qi @ 2026-04-01 8:29 UTC (permalink / raw) To: tejas bharambe Cc: mark@fasheh.com, jlbec@evilplan.org, linux-kernel@vger.kernel.org, syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com, ocfs2-devel@lists.linux.dev On 4/1/26 12:20 PM, tejas bharambe wrote: > filemap_fault() may drop the mmap_lock before returning VM_FAULT_RETRY, > as documented in mm/filemap.c: > > "If our return value has VM_FAULT_RETRY set, it's because the mmap_lock > may be dropped before doing I/O or by lock_folio_maybe_drop_mmap()." > > When this happens, a concurrent munmap() can call remove_vma() and free > the vm_area_struct via RCU. The saved 'vma' pointer in ocfs2_fault() then > becomes a dangling pointer, and the subsequent trace_ocfs2_fault() call > dereferences it -- a use-after-free. > > Fix this by saving the inode reference before calling filemap_fault(), > and removing vma from the trace event. The inode remains valid across > the lock drop since the file is still open, so the trace can fire in > all cases without dereferencing the potentially freed vma. > > Reported-by: syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com > Closes: https://syzkaller.appspot.com/bug?extid=a49010a0e8fcdeea075f > Suggested-by: Joseph Qi <joseph.qi@linux.alibaba.com> > Signed-off-by: Tejas Bharambe <tejas.bharambe@outlook.com> > --- > fs/ocfs2/mmap.c | 4 ++-- > fs/ocfs2/ocfs2_trace.h | 10 ++++------ > 2 files changed, 6 insertions(+), 8 deletions(-) > > diff --git a/fs/ocfs2/mmap.c b/fs/ocfs2/mmap.c > index 50e2faf64c..7a4be91d6a 100644 > --- a/fs/ocfs2/mmap.c > +++ b/fs/ocfs2/mmap.c > @@ -38,8 +38,8 @@ static vm_fault_t ocfs2_fault(struct vm_fault *vmf) > ret = filemap_fault(vmf); > ocfs2_unblock_signals(&oldset); > > - trace_ocfs2_fault(OCFS2_I(vma->vm_file->f_mapping->host)->ip_blkno, > - vma, vmf->page, vmf->pgoff); > + trace_ocfs2_fault(OCFS2_I(inode)->ip_blkno, It seems you've missed defining 'inode' at first. Joseph > + vmf->page, vmf->pgoff); > return ret; > } > > diff --git a/fs/ocfs2/ocfs2_trace.h b/fs/ocfs2/ocfs2_trace.h > index 4b32fb5658..6c2c97a980 100644 > --- a/fs/ocfs2/ocfs2_trace.h > +++ b/fs/ocfs2/ocfs2_trace.h > @@ -1246,22 +1246,20 @@ TRACE_EVENT(ocfs2_write_end_inline, > > TRACE_EVENT(ocfs2_fault, > TP_PROTO(unsigned long long ino, > - void *area, void *page, unsigned long pgoff), > - TP_ARGS(ino, area, page, pgoff), > + void *page, unsigned long pgoff), > + TP_ARGS(ino, page, pgoff), > TP_STRUCT__entry( > __field(unsigned long long, ino) > - __field(void *, area) > __field(void *, page) > __field(unsigned long, pgoff) > ), > TP_fast_assign( > __entry->ino = ino; > - __entry->area = area; > __entry->page = page; > __entry->pgoff = pgoff; > ), > - TP_printk("%llu %p %p %lu", > - __entry->ino, __entry->area, __entry->page, __entry->pgoff) > + TP_printk("%llu %p %lu", > + __entry->ino, __entry->page, __entry->pgoff) > ); > > /* End of trace events for fs/ocfs2/mmap.c. */ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY 2026-04-01 8:29 ` Joseph Qi @ 2026-04-01 12:55 ` tejas bharambe 2026-04-02 1:06 ` Joseph Qi 0 siblings, 1 reply; 8+ messages in thread From: tejas bharambe @ 2026-04-01 12:55 UTC (permalink / raw) To: Joseph Qi Cc: mark@fasheh.com, jlbec@evilplan.org, linux-kernel@vger.kernel.org, syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com, ocfs2-devel@lists.linux.dev Hi Joseph, Sorry missed the inode declaration during rebasing. Here is v3: From b316cc0fdfa4e6a3702b8402bd613863226e1561 Mon Sep 17 00:00:00 2001 From: Tejas Bharambe <tejas.bharambe@outlook.com> Date: Tue, 31 Mar 2026 20:45:28 -0700 Subject: [PATCH v3] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY filemap_fault() may drop the mmap_lock before returning VM_FAULT_RETRY, as documented in mm/filemap.c: "If our return value has VM_FAULT_RETRY set, it's because the mmap_lock may be dropped before doing I/O or by lock_folio_maybe_drop_mmap()." When this happens, a concurrent munmap() can call remove_vma() and free the vm_area_struct via RCU. The saved 'vma' pointer in ocfs2_fault() then becomes a dangling pointer, and the subsequent trace_ocfs2_fault() call dereferences it -- a use-after-free. Fix this by saving the inode reference before calling filemap_fault(), and removing vma from the trace event. The inode remains valid across the lock drop since the file is still open, so the trace can fire in all cases without dereferencing the potentially freed vma. Reported-by: syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com Closes: https://syzkaller.appspot.com/bug?extid=a49010a0e8fcdeea075f Suggested-by: Joseph Qi <joseph.qi@linux.alibaba.com> Signed-off-by: Tejas Bharambe <tejas.bharambe@outlook.com> --- fs/ocfs2/mmap.c | 6 +++--- fs/ocfs2/ocfs2_trace.h | 10 ++++------ 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/fs/ocfs2/mmap.c b/fs/ocfs2/mmap.c index 50e2faf64c..41c08c5a3d 100644 --- a/fs/ocfs2/mmap.c +++ b/fs/ocfs2/mmap.c @@ -30,7 +30,7 @@ static vm_fault_t ocfs2_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct inode *inode = file_inode(vmf->vma->vm_file); sigset_t oldset; vm_fault_t ret; @@ -38,8 +38,8 @@ static vm_fault_t ocfs2_fault(struct vm_fault *vmf) ret = filemap_fault(vmf); ocfs2_unblock_signals(&oldset); - trace_ocfs2_fault(OCFS2_I(vma->vm_file->f_mapping->host)->ip_blkno, - vma, vmf->page, vmf->pgoff); + trace_ocfs2_fault(OCFS2_I(inode)->ip_blkno, + vmf->page, vmf->pgoff); return ret; } diff --git a/fs/ocfs2/ocfs2_trace.h b/fs/ocfs2/ocfs2_trace.h index 4b32fb5658..6c2c97a980 100644 --- a/fs/ocfs2/ocfs2_trace.h +++ b/fs/ocfs2/ocfs2_trace.h @@ -1246,22 +1246,20 @@ TRACE_EVENT(ocfs2_write_end_inline, TRACE_EVENT(ocfs2_fault, TP_PROTO(unsigned long long ino, - void *area, void *page, unsigned long pgoff), - TP_ARGS(ino, area, page, pgoff), + void *page, unsigned long pgoff), + TP_ARGS(ino, page, pgoff), TP_STRUCT__entry( __field(unsigned long long, ino) - __field(void *, area) __field(void *, page) __field(unsigned long, pgoff) ), TP_fast_assign( __entry->ino = ino; - __entry->area = area; __entry->page = page; __entry->pgoff = pgoff; ), - TP_printk("%llu %p %p %lu", - __entry->ino, __entry->area, __entry->page, __entry->pgoff) + TP_printk("%llu %p %lu", + __entry->ino, __entry->page, __entry->pgoff) ); /* End of trace events for fs/ocfs2/mmap.c. */ -- 2.53.0 Thanks, Tejas ________________________________________ From: Joseph Qi <joseph.qi@linux.alibaba.com> Sent: Wednesday, April 1, 2026 1:29 AM To: tejas bharambe <tejas.bharambe@outlook.com> Cc: mark@fasheh.com <mark@fasheh.com>; jlbec@evilplan.org <jlbec@evilplan.org>; linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>; syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com <syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com>; ocfs2-devel@lists.linux.dev <ocfs2-devel@lists.linux.dev> Subject: Re: [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY On 4/1/26 12:20 PM, tejas bharambe wrote: > filemap_fault() may drop the mmap_lock before returning VM_FAULT_RETRY, > as documented in mm/filemap.c: > > "If our return value has VM_FAULT_RETRY set, it's because the mmap_lock > may be dropped before doing I/O or by lock_folio_maybe_drop_mmap()." > > When this happens, a concurrent munmap() can call remove_vma() and free > the vm_area_struct via RCU. The saved 'vma' pointer in ocfs2_fault() then > becomes a dangling pointer, and the subsequent trace_ocfs2_fault() call > dereferences it -- a use-after-free. > > Fix this by saving the inode reference before calling filemap_fault(), > and removing vma from the trace event. The inode remains valid across > the lock drop since the file is still open, so the trace can fire in > all cases without dereferencing the potentially freed vma. > > Reported-by: syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com > Closes: https://syzkaller.appspot.com/bug?extid=a49010a0e8fcdeea075f > Suggested-by: Joseph Qi <joseph.qi@linux.alibaba.com> > Signed-off-by: Tejas Bharambe <tejas.bharambe@outlook.com> > --- > fs/ocfs2/mmap.c | 4 ++-- > fs/ocfs2/ocfs2_trace.h | 10 ++++------ > 2 files changed, 6 insertions(+), 8 deletions(-) > > diff --git a/fs/ocfs2/mmap.c b/fs/ocfs2/mmap.c > index 50e2faf64c..7a4be91d6a 100644 > --- a/fs/ocfs2/mmap.c > +++ b/fs/ocfs2/mmap.c > @@ -38,8 +38,8 @@ static vm_fault_t ocfs2_fault(struct vm_fault *vmf) > ret = filemap_fault(vmf); > ocfs2_unblock_signals(&oldset); > > - trace_ocfs2_fault(OCFS2_I(vma->vm_file->f_mapping->host)->ip_blkno, > - vma, vmf->page, vmf->pgoff); > + trace_ocfs2_fault(OCFS2_I(inode)->ip_blkno, It seems you've missed defining 'inode' at first. Joseph > + vmf->page, vmf->pgoff); > return ret; > } > > diff --git a/fs/ocfs2/ocfs2_trace.h b/fs/ocfs2/ocfs2_trace.h > index 4b32fb5658..6c2c97a980 100644 > --- a/fs/ocfs2/ocfs2_trace.h > +++ b/fs/ocfs2/ocfs2_trace.h > @@ -1246,22 +1246,20 @@ TRACE_EVENT(ocfs2_write_end_inline, > > TRACE_EVENT(ocfs2_fault, > TP_PROTO(unsigned long long ino, > - void *area, void *page, unsigned long pgoff), > - TP_ARGS(ino, area, page, pgoff), > + void *page, unsigned long pgoff), > + TP_ARGS(ino, page, pgoff), > TP_STRUCT__entry( > __field(unsigned long long, ino) > - __field(void *, area) > __field(void *, page) > __field(unsigned long, pgoff) > ), > TP_fast_assign( > __entry->ino = ino; > - __entry->area = area; > __entry->page = page; > __entry->pgoff = pgoff; > ), > - TP_printk("%llu %p %p %lu", > - __entry->ino, __entry->area, __entry->page, __entry->pgoff) > + TP_printk("%llu %p %lu", > + __entry->ino, __entry->page, __entry->pgoff) > ); > > /* End of trace events for fs/ocfs2/mmap.c. */ ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v3] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY 2026-04-01 12:55 ` [PATCH v3] " tejas bharambe @ 2026-04-02 1:06 ` Joseph Qi 0 siblings, 0 replies; 8+ messages in thread From: Joseph Qi @ 2026-04-02 1:06 UTC (permalink / raw) To: tejas bharambe Cc: mark@fasheh.com, jlbec@evilplan.org, linux-kernel@vger.kernel.org, syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com, ocfs2-devel@lists.linux.dev Please resend it in a new thread. Joseph On 4/1/26 8:55 PM, tejas bharambe wrote: > Hi Joseph, > > Sorry missed the inode declaration during rebasing. Here is v3: > > From b316cc0fdfa4e6a3702b8402bd613863226e1561 Mon Sep 17 00:00:00 2001 > From: Tejas Bharambe <tejas.bharambe@outlook.com> > Date: Tue, 31 Mar 2026 20:45:28 -0700 > Subject: [PATCH v3] ocfs2: fix use-after-free in ocfs2_fault() when > VM_FAULT_RETRY > > filemap_fault() may drop the mmap_lock before returning VM_FAULT_RETRY, > as documented in mm/filemap.c: > > "If our return value has VM_FAULT_RETRY set, it's because the mmap_lock > may be dropped before doing I/O or by lock_folio_maybe_drop_mmap()." > > When this happens, a concurrent munmap() can call remove_vma() and free > the vm_area_struct via RCU. The saved 'vma' pointer in ocfs2_fault() then > becomes a dangling pointer, and the subsequent trace_ocfs2_fault() call > dereferences it -- a use-after-free. > > Fix this by saving the inode reference before calling filemap_fault(), > and removing vma from the trace event. The inode remains valid across > the lock drop since the file is still open, so the trace can fire in > all cases without dereferencing the potentially freed vma. > > Reported-by: syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com > Closes: https://syzkaller.appspot.com/bug?extid=a49010a0e8fcdeea075f > Suggested-by: Joseph Qi <joseph.qi@linux.alibaba.com> > Signed-off-by: Tejas Bharambe <tejas.bharambe@outlook.com> > --- > fs/ocfs2/mmap.c | 6 +++--- > fs/ocfs2/ocfs2_trace.h | 10 ++++------ > 2 files changed, 7 insertions(+), 9 deletions(-) > > diff --git a/fs/ocfs2/mmap.c b/fs/ocfs2/mmap.c > index 50e2faf64c..41c08c5a3d 100644 > --- a/fs/ocfs2/mmap.c > +++ b/fs/ocfs2/mmap.c > @@ -30,7 +30,7 @@ > > static vm_fault_t ocfs2_fault(struct vm_fault *vmf) > { > - struct vm_area_struct *vma = vmf->vma; > + struct inode *inode = file_inode(vmf->vma->vm_file); > sigset_t oldset; > vm_fault_t ret; > > @@ -38,8 +38,8 @@ static vm_fault_t ocfs2_fault(struct vm_fault *vmf) > ret = filemap_fault(vmf); > ocfs2_unblock_signals(&oldset); > > - trace_ocfs2_fault(OCFS2_I(vma->vm_file->f_mapping->host)->ip_blkno, > - vma, vmf->page, vmf->pgoff); > + trace_ocfs2_fault(OCFS2_I(inode)->ip_blkno, > + vmf->page, vmf->pgoff); > return ret; > } > > diff --git a/fs/ocfs2/ocfs2_trace.h b/fs/ocfs2/ocfs2_trace.h > index 4b32fb5658..6c2c97a980 100644 > --- a/fs/ocfs2/ocfs2_trace.h > +++ b/fs/ocfs2/ocfs2_trace.h > @@ -1246,22 +1246,20 @@ TRACE_EVENT(ocfs2_write_end_inline, > > TRACE_EVENT(ocfs2_fault, > TP_PROTO(unsigned long long ino, > - void *area, void *page, unsigned long pgoff), > - TP_ARGS(ino, area, page, pgoff), > + void *page, unsigned long pgoff), > + TP_ARGS(ino, page, pgoff), > TP_STRUCT__entry( > __field(unsigned long long, ino) > - __field(void *, area) > __field(void *, page) > __field(unsigned long, pgoff) > ), > TP_fast_assign( > __entry->ino = ino; > - __entry->area = area; > __entry->page = page; > __entry->pgoff = pgoff; > ), > - TP_printk("%llu %p %p %lu", > - __entry->ino, __entry->area, __entry->page, __entry->pgoff) > + TP_printk("%llu %p %lu", > + __entry->ino, __entry->page, __entry->pgoff) > ); > > /* End of trace events for fs/ocfs2/mmap.c. */ > -- > 2.53.0 > > > Thanks, > Tejas > > > > > ________________________________________ > From: Joseph Qi <joseph.qi@linux.alibaba.com> > Sent: Wednesday, April 1, 2026 1:29 AM > To: tejas bharambe <tejas.bharambe@outlook.com> > Cc: mark@fasheh.com <mark@fasheh.com>; jlbec@evilplan.org <jlbec@evilplan.org>; linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>; syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com <syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com>; ocfs2-devel@lists.linux.dev <ocfs2-devel@lists.linux.dev> > Subject: Re: [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY > > > > On 4/1/26 12:20 PM, tejas bharambe wrote: >> filemap_fault() may drop the mmap_lock before returning VM_FAULT_RETRY, >> as documented in mm/filemap.c: >> >> "If our return value has VM_FAULT_RETRY set, it's because the mmap_lock >> may be dropped before doing I/O or by lock_folio_maybe_drop_mmap()." >> >> When this happens, a concurrent munmap() can call remove_vma() and free >> the vm_area_struct via RCU. The saved 'vma' pointer in ocfs2_fault() then >> becomes a dangling pointer, and the subsequent trace_ocfs2_fault() call >> dereferences it -- a use-after-free. >> >> Fix this by saving the inode reference before calling filemap_fault(), >> and removing vma from the trace event. The inode remains valid across >> the lock drop since the file is still open, so the trace can fire in >> all cases without dereferencing the potentially freed vma. >> >> Reported-by: syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com >> Closes: https://syzkaller.appspot.com/bug?extid=a49010a0e8fcdeea075f >> Suggested-by: Joseph Qi <joseph.qi@linux.alibaba.com> >> Signed-off-by: Tejas Bharambe <tejas.bharambe@outlook.com> >> --- >> fs/ocfs2/mmap.c | 4 ++-- >> fs/ocfs2/ocfs2_trace.h | 10 ++++------ >> 2 files changed, 6 insertions(+), 8 deletions(-) >> >> diff --git a/fs/ocfs2/mmap.c b/fs/ocfs2/mmap.c >> index 50e2faf64c..7a4be91d6a 100644 >> --- a/fs/ocfs2/mmap.c >> +++ b/fs/ocfs2/mmap.c >> @@ -38,8 +38,8 @@ static vm_fault_t ocfs2_fault(struct vm_fault *vmf) >> ret = filemap_fault(vmf); >> ocfs2_unblock_signals(&oldset); >> >> - trace_ocfs2_fault(OCFS2_I(vma->vm_file->f_mapping->host)->ip_blkno, >> - vma, vmf->page, vmf->pgoff); >> + trace_ocfs2_fault(OCFS2_I(inode)->ip_blkno, > > It seems you've missed defining 'inode' at first. > > Joseph > >> + vmf->page, vmf->pgoff); >> return ret; >> } >> >> diff --git a/fs/ocfs2/ocfs2_trace.h b/fs/ocfs2/ocfs2_trace.h >> index 4b32fb5658..6c2c97a980 100644 >> --- a/fs/ocfs2/ocfs2_trace.h >> +++ b/fs/ocfs2/ocfs2_trace.h >> @@ -1246,22 +1246,20 @@ TRACE_EVENT(ocfs2_write_end_inline, >> >> TRACE_EVENT(ocfs2_fault, >> TP_PROTO(unsigned long long ino, >> - void *area, void *page, unsigned long pgoff), >> - TP_ARGS(ino, area, page, pgoff), >> + void *page, unsigned long pgoff), >> + TP_ARGS(ino, page, pgoff), >> TP_STRUCT__entry( >> __field(unsigned long long, ino) >> - __field(void *, area) >> __field(void *, page) >> __field(unsigned long, pgoff) >> ), >> TP_fast_assign( >> __entry->ino = ino; >> - __entry->area = area; >> __entry->page = page; >> __entry->pgoff = pgoff; >> ), >> - TP_printk("%llu %p %p %lu", >> - __entry->ino, __entry->area, __entry->page, __entry->pgoff) >> + TP_printk("%llu %p %lu", >> + __entry->ino, __entry->page, __entry->pgoff) >> ); >> >> /* End of trace events for fs/ocfs2/mmap.c. */ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY 2026-04-01 4:20 [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY tejas bharambe 2026-04-01 8:29 ` Joseph Qi @ 2026-04-03 16:50 ` kernel test robot 2026-04-03 17:51 ` kernel test robot ` (2 subsequent siblings) 4 siblings, 0 replies; 8+ messages in thread From: kernel test robot @ 2026-04-03 16:50 UTC (permalink / raw) To: tejas bharambe, ocfs2-devel@lists.linux.dev Cc: llvm, oe-kbuild-all, mark@fasheh.com, jlbec@evilplan.org, linux-kernel@vger.kernel.org, syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com, Joseph Qi Hi tejas, kernel test robot noticed the following build errors: [auto build test ERROR on brauner-vfs/vfs.all] [also build test ERROR on linus/master v7.0-rc6] [cannot apply to next-20260403] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/tejas-bharambe/ocfs2-fix-use-after-free-in-ocfs2_fault-when-VM_FAULT_RETRY/20260403-161805 base: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git vfs.all patch link: https://lore.kernel.org/r/JH0PR06MB66325344CF84BBC38B2973C38950A%40JH0PR06MB6632.apcprd06.prod.outlook.com patch subject: [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY config: x86_64-kexec (https://download.01.org/0day-ci/archive/20260403/202604031809.3cnzRidc-lkp@intel.com/config) compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260403/202604031809.3cnzRidc-lkp@intel.com/reproduce) 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> | Closes: https://lore.kernel.org/oe-kbuild-all/202604031809.3cnzRidc-lkp@intel.com/ All errors (new ones prefixed by >>): >> fs/ocfs2/mmap.c:41:28: error: use of undeclared identifier 'inode' 41 | trace_ocfs2_fault(OCFS2_I(inode)->ip_blkno, | ^ 1 error generated. vim +/inode +41 fs/ocfs2/mmap.c 29 30 31 static vm_fault_t ocfs2_fault(struct vm_fault *vmf) 32 { 33 struct vm_area_struct *vma = vmf->vma; 34 sigset_t oldset; 35 vm_fault_t ret; 36 37 ocfs2_block_signals(&oldset); 38 ret = filemap_fault(vmf); 39 ocfs2_unblock_signals(&oldset); 40 > 41 trace_ocfs2_fault(OCFS2_I(inode)->ip_blkno, 42 vmf->page, vmf->pgoff); 43 return ret; 44 } 45 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY 2026-04-01 4:20 [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY tejas bharambe 2026-04-01 8:29 ` Joseph Qi 2026-04-03 16:50 ` [PATCH v2] " kernel test robot @ 2026-04-03 17:51 ` kernel test robot 2026-04-07 3:51 ` kernel test robot 2026-04-07 3:51 ` kernel test robot 4 siblings, 0 replies; 8+ messages in thread From: kernel test robot @ 2026-04-03 17:51 UTC (permalink / raw) To: tejas bharambe, ocfs2-devel@lists.linux.dev Cc: oe-kbuild-all, mark@fasheh.com, jlbec@evilplan.org, linux-kernel@vger.kernel.org, syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com, Joseph Qi Hi tejas, kernel test robot noticed the following build errors: [auto build test ERROR on brauner-vfs/vfs.all] [also build test ERROR on linus/master v6.16-rc1] [cannot apply to next-20260403] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/tejas-bharambe/ocfs2-fix-use-after-free-in-ocfs2_fault-when-VM_FAULT_RETRY/20260403-161805 base: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git vfs.all patch link: https://lore.kernel.org/r/JH0PR06MB66325344CF84BBC38B2973C38950A%40JH0PR06MB6632.apcprd06.prod.outlook.com patch subject: [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY config: x86_64-rhel-9.4-func (https://download.01.org/0day-ci/archive/20260403/202604031948.fsuptUtV-lkp@intel.com/config) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260403/202604031948.fsuptUtV-lkp@intel.com/reproduce) 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> | Closes: https://lore.kernel.org/oe-kbuild-all/202604031948.fsuptUtV-lkp@intel.com/ All error/warnings (new ones prefixed by >>): fs/ocfs2/mmap.c: In function 'ocfs2_fault': >> fs/ocfs2/mmap.c:41:35: error: 'inode' undeclared (first use in this function) 41 | trace_ocfs2_fault(OCFS2_I(inode)->ip_blkno, | ^~~~~ fs/ocfs2/mmap.c:41:35: note: each undeclared identifier is reported only once for each function it appears in >> fs/ocfs2/mmap.c:33:32: warning: unused variable 'vma' [-Wunused-variable] 33 | struct vm_area_struct *vma = vmf->vma; | ^~~ vim +/inode +41 fs/ocfs2/mmap.c 29 30 31 static vm_fault_t ocfs2_fault(struct vm_fault *vmf) 32 { > 33 struct vm_area_struct *vma = vmf->vma; 34 sigset_t oldset; 35 vm_fault_t ret; 36 37 ocfs2_block_signals(&oldset); 38 ret = filemap_fault(vmf); 39 ocfs2_unblock_signals(&oldset); 40 > 41 trace_ocfs2_fault(OCFS2_I(inode)->ip_blkno, 42 vmf->page, vmf->pgoff); 43 return ret; 44 } 45 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY 2026-04-01 4:20 [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY tejas bharambe ` (2 preceding siblings ...) 2026-04-03 17:51 ` kernel test robot @ 2026-04-07 3:51 ` kernel test robot 2026-04-07 3:51 ` kernel test robot 4 siblings, 0 replies; 8+ messages in thread From: kernel test robot @ 2026-04-07 3:51 UTC (permalink / raw) To: tejas bharambe, ocfs2-devel@lists.linux.dev Cc: oe-kbuild-all, mark@fasheh.com, jlbec@evilplan.org, linux-kernel@vger.kernel.org, syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com, Joseph Qi Hi tejas, kernel test robot noticed the following build errors: [auto build test ERROR on brauner-vfs/vfs.all] [also build test ERROR on linus/master v7.0-rc6] [cannot apply to next-20260403] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/tejas-bharambe/ocfs2-fix-use-after-free-in-ocfs2_fault-when-VM_FAULT_RETRY/20260403-161805 base: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git vfs.all patch link: https://lore.kernel.org/r/JH0PR06MB66325344CF84BBC38B2973C38950A%40JH0PR06MB6632.apcprd06.prod.outlook.com patch subject: [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY config: m68k-defconfig (https://download.01.org/0day-ci/archive/20260404/202604040621.obNS19yW-lkp@intel.com/config) compiler: m68k-linux-gcc (GCC) 15.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260404/202604040621.obNS19yW-lkp@intel.com/reproduce) 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> | Closes: https://lore.kernel.org/oe-kbuild-all/202604040621.obNS19yW-lkp@intel.com/ All error/warnings (new ones prefixed by >>): fs/ocfs2/mmap.c: In function 'ocfs2_fault': >> fs/ocfs2/mmap.c:41:35: error: 'inode' undeclared (first use in this function) 41 | trace_ocfs2_fault(OCFS2_I(inode)->ip_blkno, | ^~~~~ fs/ocfs2/mmap.c:41:35: note: each undeclared identifier is reported only once for each function it appears in >> fs/ocfs2/mmap.c:33:32: warning: unused variable 'vma' [-Wunused-variable] 33 | struct vm_area_struct *vma = vmf->vma; | ^~~ vim +/inode +41 fs/ocfs2/mmap.c 29 30 31 static vm_fault_t ocfs2_fault(struct vm_fault *vmf) 32 { > 33 struct vm_area_struct *vma = vmf->vma; 34 sigset_t oldset; 35 vm_fault_t ret; 36 37 ocfs2_block_signals(&oldset); 38 ret = filemap_fault(vmf); 39 ocfs2_unblock_signals(&oldset); 40 > 41 trace_ocfs2_fault(OCFS2_I(inode)->ip_blkno, 42 vmf->page, vmf->pgoff); 43 return ret; 44 } 45 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY 2026-04-01 4:20 [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY tejas bharambe ` (3 preceding siblings ...) 2026-04-07 3:51 ` kernel test robot @ 2026-04-07 3:51 ` kernel test robot 4 siblings, 0 replies; 8+ messages in thread From: kernel test robot @ 2026-04-07 3:51 UTC (permalink / raw) To: tejas bharambe, ocfs2-devel@lists.linux.dev Cc: oe-kbuild-all, mark@fasheh.com, jlbec@evilplan.org, linux-kernel@vger.kernel.org, syzbot+a49010a0e8fcdeea075f@syzkaller.appspotmail.com, Joseph Qi Hi tejas, kernel test robot noticed the following build errors: [auto build test ERROR on brauner-vfs/vfs.all] [also build test ERROR on linus/master v7.0-rc6] [cannot apply to next-20260403] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/tejas-bharambe/ocfs2-fix-use-after-free-in-ocfs2_fault-when-VM_FAULT_RETRY/20260403-161805 base: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git vfs.all patch link: https://lore.kernel.org/r/JH0PR06MB66325344CF84BBC38B2973C38950A%40JH0PR06MB6632.apcprd06.prod.outlook.com patch subject: [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY config: x86_64-randconfig-161-20260404 (https://download.01.org/0day-ci/archive/20260404/202604040729.Vs91c7q4-lkp@intel.com/config) compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261) smatch: v0.5.0-9004-gb810ac53 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260404/202604040729.Vs91c7q4-lkp@intel.com/reproduce) 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> | Closes: https://lore.kernel.org/oe-kbuild-all/202604040729.Vs91c7q4-lkp@intel.com/ All errors (new ones prefixed by >>): >> fs/ocfs2/mmap.c:41:28: error: use of undeclared identifier 'inode' 41 | trace_ocfs2_fault(OCFS2_I(inode)->ip_blkno, | ^ 1 error generated. vim +/inode +41 fs/ocfs2/mmap.c 29 30 31 static vm_fault_t ocfs2_fault(struct vm_fault *vmf) 32 { 33 struct vm_area_struct *vma = vmf->vma; 34 sigset_t oldset; 35 vm_fault_t ret; 36 37 ocfs2_block_signals(&oldset); 38 ret = filemap_fault(vmf); 39 ocfs2_unblock_signals(&oldset); 40 > 41 trace_ocfs2_fault(OCFS2_I(inode)->ip_blkno, 42 vmf->page, vmf->pgoff); 43 return ret; 44 } 45 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-04-07 3:52 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-04-01 4:20 [PATCH v2] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY tejas bharambe 2026-04-01 8:29 ` Joseph Qi 2026-04-01 12:55 ` [PATCH v3] " tejas bharambe 2026-04-02 1:06 ` Joseph Qi 2026-04-03 16:50 ` [PATCH v2] " kernel test robot 2026-04-03 17:51 ` kernel test robot 2026-04-07 3:51 ` kernel test robot 2026-04-07 3:51 ` kernel test robot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox