hc
2024-09-20 cf4ce59b3b70238352c7f1729f0f7223214828ad
kernel/fs/udf/namei.c
....@@ -241,7 +241,7 @@
241241 poffset - lfi);
242242 else {
243243 if (!copy_name) {
244
- copy_name = kmalloc(UDF_NAME_LEN,
244
+ copy_name = kmalloc(UDF_NAME_LEN_CS0,
245245 GFP_NOFS);
246246 if (!copy_name) {
247247 fi = ERR_PTR(-ENOMEM);
....@@ -306,21 +306,6 @@
306306
307307 if (dentry->d_name.len > UDF_NAME_LEN)
308308 return ERR_PTR(-ENAMETOOLONG);
309
-
310
-#ifdef UDF_RECOVERY
311
- /* temporary shorthand for specifying files by inode number */
312
- if (!strncmp(dentry->d_name.name, ".B=", 3)) {
313
- struct kernel_lb_addr lb = {
314
- .logicalBlockNum = 0,
315
- .partitionReferenceNum =
316
- simple_strtoul(dentry->d_name.name + 3,
317
- NULL, 0),
318
- };
319
- inode = udf_iget(dir->i_sb, lb);
320
- if (IS_ERR(inode))
321
- return inode;
322
- } else
323
-#endif /* UDF_RECOVERY */
324309
325310 fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi);
326311 if (IS_ERR(fi))
....@@ -478,8 +463,7 @@
478463 if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) {
479464 block = dinfo->i_location.logicalBlockNum;
480465 fi = (struct fileIdentDesc *)
481
- (dinfo->i_ext.i_data +
482
- fibh->soffset -
466
+ (dinfo->i_data + fibh->soffset -
483467 udf_ext0_offset(dir) +
484468 dinfo->i_lenEAttr);
485469 } else {
....@@ -962,7 +946,7 @@
962946 mark_buffer_dirty_inode(epos.bh, inode);
963947 ea = epos.bh->b_data + udf_ext0_offset(inode);
964948 } else
965
- ea = iinfo->i_ext.i_data + iinfo->i_lenEAttr;
949
+ ea = iinfo->i_data + iinfo->i_lenEAttr;
966950
967951 eoffset = sb->s_blocksize - udf_ext0_offset(inode);
968952 pc = (struct pathComponent *)ea;
....@@ -1106,8 +1090,9 @@
11061090 return -EINVAL;
11071091
11081092 ofi = udf_find_entry(old_dir, &old_dentry->d_name, &ofibh, &ocfi);
1109
- if (IS_ERR(ofi)) {
1110
- retval = PTR_ERR(ofi);
1093
+ if (!ofi || IS_ERR(ofi)) {
1094
+ if (IS_ERR(ofi))
1095
+ retval = PTR_ERR(ofi);
11111096 goto end_rename;
11121097 }
11131098
....@@ -1116,8 +1101,7 @@
11161101
11171102 brelse(ofibh.sbh);
11181103 tloc = lelb_to_cpu(ocfi.icb.extLocation);
1119
- if (!ofi || udf_get_lb_pblock(old_dir->i_sb, &tloc, 0)
1120
- != old_inode->i_ino)
1104
+ if (udf_get_lb_pblock(old_dir->i_sb, &tloc, 0) != old_inode->i_ino)
11211105 goto end_rename;
11221106
11231107 nfi = udf_find_entry(new_dir, &new_dentry->d_name, &nfibh, &ncfi);
....@@ -1142,7 +1126,7 @@
11421126 retval = -EIO;
11431127 if (old_iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) {
11441128 dir_fi = udf_get_fileident(
1145
- old_iinfo->i_ext.i_data -
1129
+ old_iinfo->i_data -
11461130 (old_iinfo->i_efe ?
11471131 sizeof(struct extendedFileEntry) :
11481132 sizeof(struct fileEntry)),