mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 20:51:03 +02:00
udf: Fix lost writes in udf_adinicb_writepage()
The patch converting udf_adinicb_writepage() to avoid manually kmapping
the page used memcpy_to_page() however that copies in the wrong
direction (effectively overwriting file data with the old contents).
What we should be using is memcpy_from_page() to copy data from the page
into the inode and then mark inode dirty to store the data.
Fixes: 5cfc45321a
("udf: Convert udf_adinicb_writepage() to memcpy_to_page()")
Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
@@ -193,7 +193,7 @@ static int udf_adinicb_writepage(struct folio *folio,
|
|||||||
struct udf_inode_info *iinfo = UDF_I(inode);
|
struct udf_inode_info *iinfo = UDF_I(inode);
|
||||||
|
|
||||||
BUG_ON(!PageLocked(page));
|
BUG_ON(!PageLocked(page));
|
||||||
memcpy_to_page(page, 0, iinfo->i_data + iinfo->i_lenEAttr,
|
memcpy_from_page(iinfo->i_data + iinfo->i_lenEAttr, page, 0,
|
||||||
i_size_read(inode));
|
i_size_read(inode));
|
||||||
unlock_page(page);
|
unlock_page(page);
|
||||||
mark_inode_dirty(inode);
|
mark_inode_dirty(inode);
|
||||||
|
Reference in New Issue
Block a user