mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
\n
-----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEq1nRK9aeMoq1VSgcnJ2qBz9kQNkFAmQIrVcACgkQnJ2qBz9k QNkG0gf/Z9O+5AKKGM3tGzO/IsQB+33S+cCSH6FVqIpV8rx6HJBUtUOU8bJBoA6r yY/t9phD1ahOBDpeZKQPj9zL5R3LWf0Xf3LDbMNfx7lD0mRiM1QR1hSOPQ9Frze+ cydo1LQvtZ1U3Axs/26fNMRzBwF6a9l9X3YTvSHfpaEPuZwDPtDZAgT2ORE85gZv faTXlTubc6qEsvkHS7JWwloFRgqjdE74mMcBIhSQizo2Z+QH14uXUQ36DuU6UlU7 bYQ5VBEN6kanKzR3gGcOkdb22k8SL91pvoK9nYhqOqlVi/ydc5KhuKeWoPXQ9DVT mXrBxfH8fF7G2Q98N8EgRcdia6ksNQ== =OBP7 -----END PGP SIGNATURE----- Merge tag 'fs_for_v6.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs Pull udf fixes from Jan Kara: "Fix bugs in UDF caused by the big pile of changes that went in during the merge window" * tag 'fs_for_v6.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: udf: Warn if block mapping is done for in-ICB files udf: Fix reading of in-ICB files udf: Fix lost writes in udf_adinicb_writepage()
This commit is contained in:
commit
6a98c9cae2
@ -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);
|
||||||
@ -241,6 +241,15 @@ static int udf_read_folio(struct file *file, struct folio *folio)
|
|||||||
|
|
||||||
static void udf_readahead(struct readahead_control *rac)
|
static void udf_readahead(struct readahead_control *rac)
|
||||||
{
|
{
|
||||||
|
struct udf_inode_info *iinfo = UDF_I(rac->mapping->host);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* No readahead needed for in-ICB files and udf_get_block() would get
|
||||||
|
* confused for such file anyway.
|
||||||
|
*/
|
||||||
|
if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB)
|
||||||
|
return;
|
||||||
|
|
||||||
mpage_readahead(rac, udf_get_block);
|
mpage_readahead(rac, udf_get_block);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -407,6 +416,9 @@ static int udf_map_block(struct inode *inode, struct udf_map_rq *map)
|
|||||||
int err;
|
int err;
|
||||||
struct udf_inode_info *iinfo = UDF_I(inode);
|
struct udf_inode_info *iinfo = UDF_I(inode);
|
||||||
|
|
||||||
|
if (WARN_ON_ONCE(iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB))
|
||||||
|
return -EFSCORRUPTED;
|
||||||
|
|
||||||
map->oflags = 0;
|
map->oflags = 0;
|
||||||
if (!(map->iflags & UDF_MAP_CREATE)) {
|
if (!(map->iflags & UDF_MAP_CREATE)) {
|
||||||
struct kernel_lb_addr eloc;
|
struct kernel_lb_addr eloc;
|
||||||
|
Loading…
Reference in New Issue
Block a user