summaryrefslogtreecommitdiffstats
path: root/fs/udf/inode.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2023-01-18 13:27:07 +0100
committerJan Kara <jack@suse.cz>2023-01-26 16:46:32 +0100
commit101ee137d32adc5b53f5c2a61fbda8f70f994845 (patch)
treeb4fe1ee0f9f1418d07cb12e8de365af78fc9ae29 /fs/udf/inode.c
parentbd904f3c74969442b0ac42f81c0d02da54cd47eb (diff)
downloadlinux-stable-101ee137d32adc5b53f5c2a61fbda8f70f994845.tar.gz
linux-stable-101ee137d32adc5b53f5c2a61fbda8f70f994845.tar.bz2
linux-stable-101ee137d32adc5b53f5c2a61fbda8f70f994845.zip
udf: Drop VARCONV support
UDF was supporting a strange mode where the media was containing 7 blocks of unknown data for every 32 blocks of the filesystem. I have yet to see the media that would need such conversion (maybe it comes from packet writing times) and the conversions have been inconsistent in the code. In particular any write will write to a wrong block and corrupt the media. This is an indication and no user actually needs this so let's just drop the support instead of trying to fix it. Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/udf/inode.c')
-rw-r--r--fs/udf/inode.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/fs/udf/inode.c b/fs/udf/inode.c
index 96873fa2f683..bcb56674773a 100644
--- a/fs/udf/inode.c
+++ b/fs/udf/inode.c
@@ -1592,7 +1592,7 @@ static int udf_update_inode(struct inode *inode, int do_sync)
unsigned char blocksize_bits = inode->i_sb->s_blocksize_bits;
struct udf_inode_info *iinfo = UDF_I(inode);
- bh = udf_tgetblk(inode->i_sb,
+ bh = sb_getblk(inode->i_sb,
udf_get_lb_pblock(inode->i_sb, &iinfo->i_location, 0));
if (!bh) {
udf_debug("getblk failure\n");
@@ -1852,7 +1852,7 @@ int udf_setup_indirect_aext(struct inode *inode, udf_pblk_t block,
neloc.logicalBlockNum = block;
neloc.partitionReferenceNum = epos->block.partitionReferenceNum;
- bh = udf_tgetblk(sb, udf_get_lb_pblock(sb, &neloc, 0));
+ bh = sb_getblk(sb, udf_get_lb_pblock(sb, &neloc, 0));
if (!bh)
return -EIO;
lock_buffer(bh);
@@ -2069,7 +2069,7 @@ int8_t udf_next_aext(struct inode *inode, struct extent_position *epos,
epos->offset = sizeof(struct allocExtDesc);
brelse(epos->bh);
block = udf_get_lb_pblock(inode->i_sb, &epos->block, 0);
- epos->bh = udf_tread(inode->i_sb, block);
+ epos->bh = sb_bread(inode->i_sb, block);
if (!epos->bh) {
udf_debug("reading block %u failed!\n", block);
return -1;
@@ -2290,8 +2290,5 @@ udf_pblk_t udf_block_map(struct inode *inode, sector_t block)
up_read(&UDF_I(inode)->i_data_sem);
brelse(epos.bh);
- if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_VARCONV))
- return udf_fixed_to_variable(ret);
- else
- return ret;
+ return ret;
}