Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

udf: Remove pointless union in udf_inode_info

We use only a single member out of the i_ext union in udf_inode_info.
Just remove the pointless union.

Signed-off-by: Jan Kara <jack@suse.cz>

Jan Kara 382a2287 044e2e26

+39 -47
+1 -1
fs/udf/directory.c
··· 34 34 fibh->soffset = fibh->eoffset; 35 35 36 36 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { 37 - fi = udf_get_fileident(iinfo->i_ext.i_data - 37 + fi = udf_get_fileident(iinfo->i_data - 38 38 (iinfo->i_efe ? 39 39 sizeof(struct extendedFileEntry) : 40 40 sizeof(struct fileEntry)),
+3 -4
fs/udf/file.c
··· 50 50 * So just sample it once and use the same value everywhere. 51 51 */ 52 52 kaddr = kmap_atomic(page); 53 - memcpy(kaddr, iinfo->i_ext.i_data + iinfo->i_lenEAttr, isize); 53 + memcpy(kaddr, iinfo->i_data + iinfo->i_lenEAttr, isize); 54 54 memset(kaddr + isize, 0, PAGE_SIZE - isize); 55 55 flush_dcache_page(page); 56 56 SetPageUptodate(page); ··· 76 76 BUG_ON(!PageLocked(page)); 77 77 78 78 kaddr = kmap_atomic(page); 79 - memcpy(iinfo->i_ext.i_data + iinfo->i_lenEAttr, kaddr, 80 - i_size_read(inode)); 79 + memcpy(iinfo->i_data + iinfo->i_lenEAttr, kaddr, i_size_read(inode)); 81 80 SetPageUptodate(page); 82 81 kunmap_atomic(kaddr); 83 82 mark_inode_dirty(inode); ··· 214 215 return put_user(UDF_I(inode)->i_lenEAttr, (int __user *)arg); 215 216 case UDF_GETEABLOCK: 216 217 return copy_to_user((char __user *)arg, 217 - UDF_I(inode)->i_ext.i_data, 218 + UDF_I(inode)->i_data, 218 219 UDF_I(inode)->i_lenEAttr) ? -EFAULT : 0; 219 220 default: 220 221 return -ENOIOCTLCMD;
+7 -7
fs/udf/ialloc.c
··· 67 67 iinfo->i_efe = 1; 68 68 if (UDF_VERS_USE_EXTENDED_FE > sbi->s_udfrev) 69 69 sbi->s_udfrev = UDF_VERS_USE_EXTENDED_FE; 70 - iinfo->i_ext.i_data = kzalloc(inode->i_sb->s_blocksize - 71 - sizeof(struct extendedFileEntry), 72 - GFP_KERNEL); 70 + iinfo->i_data = kzalloc(inode->i_sb->s_blocksize - 71 + sizeof(struct extendedFileEntry), 72 + GFP_KERNEL); 73 73 } else { 74 74 iinfo->i_efe = 0; 75 - iinfo->i_ext.i_data = kzalloc(inode->i_sb->s_blocksize - 76 - sizeof(struct fileEntry), 77 - GFP_KERNEL); 75 + iinfo->i_data = kzalloc(inode->i_sb->s_blocksize - 76 + sizeof(struct fileEntry), 77 + GFP_KERNEL); 78 78 } 79 - if (!iinfo->i_ext.i_data) { 79 + if (!iinfo->i_data) { 80 80 iput(inode); 81 81 return ERR_PTR(-ENOMEM); 82 82 }
+17 -19
fs/udf/inode.c
··· 157 157 truncate_inode_pages_final(&inode->i_data); 158 158 invalidate_inode_buffers(inode); 159 159 clear_inode(inode); 160 - kfree(iinfo->i_ext.i_data); 161 - iinfo->i_ext.i_data = NULL; 160 + kfree(iinfo->i_data); 161 + iinfo->i_data = NULL; 162 162 udf_clear_extent_cache(inode); 163 163 if (want_delete) { 164 164 udf_free_inode(inode); ··· 288 288 kaddr = kmap_atomic(page); 289 289 memset(kaddr + iinfo->i_lenAlloc, 0x00, 290 290 PAGE_SIZE - iinfo->i_lenAlloc); 291 - memcpy(kaddr, iinfo->i_ext.i_data + iinfo->i_lenEAttr, 291 + memcpy(kaddr, iinfo->i_data + iinfo->i_lenEAttr, 292 292 iinfo->i_lenAlloc); 293 293 flush_dcache_page(page); 294 294 SetPageUptodate(page); 295 295 kunmap_atomic(kaddr); 296 296 } 297 297 down_write(&iinfo->i_data_sem); 298 - memset(iinfo->i_ext.i_data + iinfo->i_lenEAttr, 0x00, 298 + memset(iinfo->i_data + iinfo->i_lenEAttr, 0x00, 299 299 iinfo->i_lenAlloc); 300 300 iinfo->i_lenAlloc = 0; 301 301 if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_SHORT_AD)) ··· 311 311 lock_page(page); 312 312 down_write(&iinfo->i_data_sem); 313 313 kaddr = kmap_atomic(page); 314 - memcpy(iinfo->i_ext.i_data + iinfo->i_lenEAttr, kaddr, 315 - inode->i_size); 314 + memcpy(iinfo->i_data + iinfo->i_lenEAttr, kaddr, inode->i_size); 316 315 kunmap_atomic(kaddr); 317 316 unlock_page(page); 318 317 iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB; ··· 398 399 } 399 400 mark_buffer_dirty_inode(dbh, inode); 400 401 401 - memset(iinfo->i_ext.i_data + iinfo->i_lenEAttr, 0, 402 - iinfo->i_lenAlloc); 402 + memset(iinfo->i_data + iinfo->i_lenEAttr, 0, iinfo->i_lenAlloc); 403 403 iinfo->i_lenAlloc = 0; 404 404 eloc.logicalBlockNum = *block; 405 405 eloc.partitionReferenceNum = ··· 1261 1263 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { 1262 1264 down_write(&iinfo->i_data_sem); 1263 1265 udf_clear_extent_cache(inode); 1264 - memset(iinfo->i_ext.i_data + iinfo->i_lenEAttr + newsize, 1266 + memset(iinfo->i_data + iinfo->i_lenEAttr + newsize, 1265 1267 0x00, bsize - newsize - 1266 1268 udf_file_entry_alloc_offset(inode)); 1267 1269 iinfo->i_lenAlloc = newsize; ··· 1412 1414 sizeof(struct extendedFileEntry)); 1413 1415 if (ret) 1414 1416 goto out; 1415 - memcpy(iinfo->i_ext.i_data, 1417 + memcpy(iinfo->i_data, 1416 1418 bh->b_data + sizeof(struct extendedFileEntry), 1417 1419 bs - sizeof(struct extendedFileEntry)); 1418 1420 } else if (fe->descTag.tagIdent == cpu_to_le16(TAG_IDENT_FE)) { ··· 1421 1423 ret = udf_alloc_i_data(inode, bs - sizeof(struct fileEntry)); 1422 1424 if (ret) 1423 1425 goto out; 1424 - memcpy(iinfo->i_ext.i_data, 1426 + memcpy(iinfo->i_data, 1425 1427 bh->b_data + sizeof(struct fileEntry), 1426 1428 bs - sizeof(struct fileEntry)); 1427 1429 } else if (fe->descTag.tagIdent == cpu_to_le16(TAG_IDENT_USE)) { ··· 1434 1436 sizeof(struct unallocSpaceEntry)); 1435 1437 if (ret) 1436 1438 goto out; 1437 - memcpy(iinfo->i_ext.i_data, 1439 + memcpy(iinfo->i_data, 1438 1440 bh->b_data + sizeof(struct unallocSpaceEntry), 1439 1441 bs - sizeof(struct unallocSpaceEntry)); 1440 1442 return 0; ··· 1615 1617 static int udf_alloc_i_data(struct inode *inode, size_t size) 1616 1618 { 1617 1619 struct udf_inode_info *iinfo = UDF_I(inode); 1618 - iinfo->i_ext.i_data = kmalloc(size, GFP_KERNEL); 1619 - if (!iinfo->i_ext.i_data) 1620 + iinfo->i_data = kmalloc(size, GFP_KERNEL); 1621 + if (!iinfo->i_data) 1620 1622 return -ENOMEM; 1621 1623 return 0; 1622 1624 } ··· 1707 1709 1708 1710 use->lengthAllocDescs = cpu_to_le32(iinfo->i_lenAlloc); 1709 1711 memcpy(bh->b_data + sizeof(struct unallocSpaceEntry), 1710 - iinfo->i_ext.i_data, inode->i_sb->s_blocksize - 1712 + iinfo->i_data, inode->i_sb->s_blocksize - 1711 1713 sizeof(struct unallocSpaceEntry)); 1712 1714 use->descTag.tagIdent = cpu_to_le16(TAG_IDENT_USE); 1713 1715 crclen = sizeof(struct unallocSpaceEntry); ··· 1773 1775 1774 1776 if (iinfo->i_efe == 0) { 1775 1777 memcpy(bh->b_data + sizeof(struct fileEntry), 1776 - iinfo->i_ext.i_data, 1778 + iinfo->i_data, 1777 1779 inode->i_sb->s_blocksize - sizeof(struct fileEntry)); 1778 1780 fe->logicalBlocksRecorded = cpu_to_le64(lb_recorded); 1779 1781 ··· 1792 1794 crclen = sizeof(struct fileEntry); 1793 1795 } else { 1794 1796 memcpy(bh->b_data + sizeof(struct extendedFileEntry), 1795 - iinfo->i_ext.i_data, 1797 + iinfo->i_data, 1796 1798 inode->i_sb->s_blocksize - 1797 1799 sizeof(struct extendedFileEntry)); 1798 1800 efe->objectSize = ··· 2088 2090 struct udf_inode_info *iinfo = UDF_I(inode); 2089 2091 2090 2092 if (!epos->bh) 2091 - ptr = iinfo->i_ext.i_data + epos->offset - 2093 + ptr = iinfo->i_data + epos->offset - 2092 2094 udf_file_entry_alloc_offset(inode) + 2093 2095 iinfo->i_lenEAttr; 2094 2096 else ··· 2180 2182 if (!epos->bh) { 2181 2183 if (!epos->offset) 2182 2184 epos->offset = udf_file_entry_alloc_offset(inode); 2183 - ptr = iinfo->i_ext.i_data + epos->offset - 2185 + ptr = iinfo->i_data + epos->offset - 2184 2186 udf_file_entry_alloc_offset(inode) + 2185 2187 iinfo->i_lenEAttr; 2186 2188 alen = udf_file_entry_alloc_offset(inode) +
+3 -3
fs/udf/misc.c
··· 52 52 uint16_t crclen; 53 53 struct udf_inode_info *iinfo = UDF_I(inode); 54 54 55 - ea = iinfo->i_ext.i_data; 55 + ea = iinfo->i_data; 56 56 if (iinfo->i_lenEAttr) { 57 - ad = iinfo->i_ext.i_data + iinfo->i_lenEAttr; 57 + ad = iinfo->i_data + iinfo->i_lenEAttr; 58 58 } else { 59 59 ad = ea; 60 60 size += sizeof(struct extendedAttrHeaderDesc); ··· 153 153 uint32_t offset; 154 154 struct udf_inode_info *iinfo = UDF_I(inode); 155 155 156 - ea = iinfo->i_ext.i_data; 156 + ea = iinfo->i_data; 157 157 158 158 if (iinfo->i_lenEAttr) { 159 159 struct extendedAttrHeaderDesc *eahd;
+3 -4
fs/udf/namei.c
··· 460 460 if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { 461 461 block = dinfo->i_location.logicalBlockNum; 462 462 fi = (struct fileIdentDesc *) 463 - (dinfo->i_ext.i_data + 464 - fibh->soffset - 463 + (dinfo->i_data + fibh->soffset - 465 464 udf_ext0_offset(dir) + 466 465 dinfo->i_lenEAttr); 467 466 } else { ··· 939 940 mark_buffer_dirty_inode(epos.bh, inode); 940 941 ea = epos.bh->b_data + udf_ext0_offset(inode); 941 942 } else 942 - ea = iinfo->i_ext.i_data + iinfo->i_lenEAttr; 943 + ea = iinfo->i_data + iinfo->i_lenEAttr; 943 944 944 945 eoffset = sb->s_blocksize - udf_ext0_offset(inode); 945 946 pc = (struct pathComponent *)ea; ··· 1119 1120 retval = -EIO; 1120 1121 if (old_iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { 1121 1122 dir_fi = udf_get_fileident( 1122 - old_iinfo->i_ext.i_data - 1123 + old_iinfo->i_data - 1123 1124 (old_iinfo->i_efe ? 1124 1125 sizeof(struct extendedFileEntry) : 1125 1126 sizeof(struct fileEntry)),
+1 -1
fs/udf/partition.c
··· 65 65 } 66 66 67 67 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { 68 - loc = le32_to_cpu(((__le32 *)(iinfo->i_ext.i_data + 68 + loc = le32_to_cpu(((__le32 *)(iinfo->i_data + 69 69 vdata->s_start_offset))[block]); 70 70 goto translate; 71 71 }
+2 -2
fs/udf/super.c
··· 168 168 { 169 169 struct udf_inode_info *ei = (struct udf_inode_info *)foo; 170 170 171 - ei->i_ext.i_data = NULL; 171 + ei->i_data = NULL; 172 172 inode_init_once(&ei->vfs_inode); 173 173 } 174 174 ··· 1202 1202 vat20 = (struct virtualAllocationTable20 *)bh->b_data; 1203 1203 } else { 1204 1204 vat20 = (struct virtualAllocationTable20 *) 1205 - vati->i_ext.i_data; 1205 + vati->i_data; 1206 1206 } 1207 1207 1208 1208 map->s_type_specific.s_virtual.s_start_offset =
+1 -1
fs/udf/symlink.c
··· 122 122 123 123 down_read(&iinfo->i_data_sem); 124 124 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { 125 - symlink = iinfo->i_ext.i_data + iinfo->i_lenEAttr; 125 + symlink = iinfo->i_data + iinfo->i_lenEAttr; 126 126 } else { 127 127 bh = sb_bread(inode->i_sb, pos); 128 128
+1 -5
fs/udf/udf_i.h
··· 45 45 unsigned i_strat4096 : 1; 46 46 unsigned i_streamdir : 1; 47 47 unsigned reserved : 25; 48 - union { 49 - struct short_ad *i_sad; 50 - struct long_ad *i_lad; 51 - __u8 *i_data; 52 - } i_ext; 48 + __u8 *i_data; 53 49 struct kernel_lb_addr i_locStreamdir; 54 50 __u64 i_lenStreams; 55 51 struct rw_semaphore i_data_sem;