[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <bug-205569-13602@https.bugzilla.kernel.org/>
Date: Mon, 18 Nov 2019 20:41:40 +0000
From: bugzilla-daemon@...zilla.kernel.org
To: linux-ext4@...r.kernel.org
Subject: [Bug 205569] New: potential data race (likely benign) on
inode->i_state (reading and writing to different bits)
https://bugzilla.kernel.org/show_bug.cgi?id=205569
Bug ID: 205569
Summary: potential data race (likely benign) on inode->i_state
(reading and writing to different bits)
Product: File System
Version: 2.5
Kernel Version: 5.4-rc5
Hardware: All
OS: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: ext4
Assignee: fs_ext4@...nel-bugs.osdl.org
Reporter: mengxu.gatech@...il.com
Regression: No
I am reporting a potential data race (maybe benign) in the ext4 layer on
inode->i_state, with reading and writing to the same byte but different bits:
I_DIRTY_PAGES (bit 2) and I_NEW | I_FREEING (bit 3 and 5), observable during
the write-back phase.
The function call trace is shown below:
[Thread 1: SYS_rmdir]
__do_sys_rmdir
do_rmdir
vfs_rmdir
ext4_rmdir
ext4_orphan_add
[READ] WARN_ON_ONCE(!(inode->i_state & (I_NEW | I_FREEING)) &&
!inode_is_locked(inode));
[Thread 2: write-back thread]
wb_workfn
wb_do_writeback
wb_writeback
writeback_sb_inodes
__writeback_single_inode
[WRITE] dirty = inode->i_state & I_DIRTY;
I could confirm that the WRITE may happen before and after the READ operation
by controlling the timing of the two threads, i.e., by setting breakpoints
before the WRITE statement.
However, I am not very sure about the implication of such a data race (e.g.,
causing violations of assumptions). I would appreciate if you could help check
on this potential bug and advise whether this is a harmful data race or it
is intended. Thank you!
--
You are receiving this mail because:
You are watching the assignee of the bug.
Powered by blists - more mailing lists