Skip to content

udf: Fix race between file type conversion and writeback#937

Closed
vfsci-bot[bot] wants to merge 2 commits intovfs.base.cifrom
pw/1072988/vfs.base.ci
Closed

udf: Fix race between file type conversion and writeback#937
vfsci-bot[bot] wants to merge 2 commits intovfs.base.cifrom
pw/1072988/vfs.base.ci

Conversation

@vfsci-bot
Copy link
Copy Markdown

@vfsci-bot vfsci-bot Bot commented Mar 27, 2026

Series: https://patchwork.kernel.org/project/linux-fsdevel/list/?series=1072988
Submitter: Jan Kara
Version: 4
Patches: 2/2
Message-ID: <20260326140257.15908-1-jack@suse.cz>
Base: vfs.base.ci
Lore: https://lore.kernel.org/linux-fsdevel/20260326140257.15908-1-jack@suse.cz


Automated by ml2pr

jankara added 2 commits March 27, 2026 02:10
…handler

Some filesystems need to treat some folios specially (for example for
inodes with inline data). Doing the handling in their .writepages method
in a race-free manner results in duplicating some of the writeback
internals. So provide generalized version of mpage_writepages() that
allows filesystem to provide a handler called for each folio which can
handle the folio in a special way.

Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Christoph Hellwig <hch@lst.de>
udf_setsize() can race with udf_writepages() as follows:

udf_setsize()			udf_writepages()
				  if (iinfo->i_alloc_type ==
						ICBTAG_FLAG_AD_IN_ICB)
  err = udf_expand_file_adinicb(inode);
  err = udf_extend_file(inode, newsize);
				    udf_adinicb_writepages()
				      memcpy_from_file_folio() - crash
					because inode size is too big.

Fix the problem by rechecking file type under folio lock in
udf_writepages() which properly serializes with
udf_expand_file_adinicb(). Since it is quite difficult to implement this
locking with current writeback_iter() logic, let's just opencode the
logic necessary to prepare (the only) folio the inode can have for
writeback.

Reported-by: Jianzhou Zhao <luckd0g@163.com>
Link: https://lore.kernel.org/all/f622c01.67ac.19cdbdd777d.Coremail.luckd0g@163.com
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Christoph Hellwig <hch@lst.de>
@vfsci-bot
Copy link
Copy Markdown
Author

vfsci-bot Bot commented Apr 10, 2026

This PR is older than 14 days. Closing automatically. If the series is still relevant, a new version will create a new PR.


Automated by ml2pr

@vfsci-bot vfsci-bot Bot closed this Apr 10, 2026
@vfsci-bot vfsci-bot Bot deleted the pw/1072988/vfs.base.ci branch April 10, 2026 02:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant