Hi, all,<div><br></div><div>I sync latest XFS last month and build into our embedded system. When I test, I found below issue.</div><div>It seems that the xfs_iomap failed when it did allocat with xfs_ilock_nowait().</div>
<div>I debug this and found that ip->i_lock is locked and there are sometime no unlock coming between two lock trying.</div><div>This issue will give wrong data in file on disk exactly on that offset.</div><div><br></div>
<div><div>Filesystem "ubdb1": page discard on page 09160ac0, inode 0x43, offset 229494784.</div><div>Filesystem "ubdb1": page discard on page 09160ae0, inode 0x43, offset 229498880.</div><div>Filesystem "ubdb1": page discard on page 0915fac0, inode 0x43, offset 229502976.</div>
<div>Filesystem "ubdb1": page discard on page 0915fae0, inode 0x43, offset 229507072.</div><div>Filesystem "ubdb1": page discard on page 0914d440, inode 0x43, offset 229511168.</div></div><div><br></div>
<div><br></div><div>Should we just discard the page? I don't think it is good because the file will be corrupted. </div><div>Should we fix it? I am new to XFS and more than like to hear your opinion. </div><div><br></div>
<div>Thanks very much,</div><div>Mike Gao</div>