On Fri, Mar 25, 2022 at 02:49:50PM -0400, Theodore Ts'o wrote: > On Sat, 12 Mar 2022 18:18:30 -0500, Artem Blagodarenko wrote: > > From: Andrew Perepechko <andrew.perepechko@xxxxxxx> > > > > When changing a large xattr value to a different large xattr value, > > the old xattr inode is freed. Truncate during the final iput causes > > current transaction restart. Eventually, parent inode bh is marked > > dirty and kernel panic happens when jbd2 figures out that this bh > > belongs to the committed transaction. > > > > [...] > > Applied, thanks! > > [1/1] ext4: truncate during setxattr leads to kernel panic > commit: c7cded845fc192cc35a1ca37c0cd957ee35abdf8 I'm going to drop this patch from the dev branch for now, due to the issue pointed out here[1]. The solution, as suggested in [2], is we need to use our own subsystem workqueue. Perhaps we can reuse rsv_conversion_wq for that purpose (after renaming it, of course). [1] https://lore.kernel.org/all/385ce718-f965-4005-56b6-34922c4533b8@xxxxxxxxxxxxxxxxxxx/ [2] https://lore.kernel.org/all/49925af7-78a8-a3dd-bce6-cfc02e1a9236@xxxxxxxxxxxxxxxxxxx/T/#u - Ted