Skip to content

Commit 382a228

Browse files
committed
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 <[email protected]>
1 parent 044e2e2 commit 382a228

File tree

10 files changed

+39
-47
lines changed

10 files changed

+39
-47
lines changed

fs/udf/directory.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ struct fileIdentDesc *udf_fileident_read(struct inode *dir, loff_t *nf_pos,
3434
fibh->soffset = fibh->eoffset;
3535

3636
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 -
3838
(iinfo->i_efe ?
3939
sizeof(struct extendedFileEntry) :
4040
sizeof(struct fileEntry)),

fs/udf/file.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ static void __udf_adinicb_readpage(struct page *page)
5050
* So just sample it once and use the same value everywhere.
5151
*/
5252
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);
5454
memset(kaddr + isize, 0, PAGE_SIZE - isize);
5555
flush_dcache_page(page);
5656
SetPageUptodate(page);
@@ -76,8 +76,7 @@ static int udf_adinicb_writepage(struct page *page,
7676
BUG_ON(!PageLocked(page));
7777

7878
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));
8180
SetPageUptodate(page);
8281
kunmap_atomic(kaddr);
8382
mark_inode_dirty(inode);
@@ -215,7 +214,7 @@ long udf_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
215214
return put_user(UDF_I(inode)->i_lenEAttr, (int __user *)arg);
216215
case UDF_GETEABLOCK:
217216
return copy_to_user((char __user *)arg,
218-
UDF_I(inode)->i_ext.i_data,
217+
UDF_I(inode)->i_data,
219218
UDF_I(inode)->i_lenEAttr) ? -EFAULT : 0;
220219
default:
221220
return -ENOIOCTLCMD;

fs/udf/ialloc.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,16 +67,16 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode)
6767
iinfo->i_efe = 1;
6868
if (UDF_VERS_USE_EXTENDED_FE > sbi->s_udfrev)
6969
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);
7373
} else {
7474
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);
7878
}
79-
if (!iinfo->i_ext.i_data) {
79+
if (!iinfo->i_data) {
8080
iput(inode);
8181
return ERR_PTR(-ENOMEM);
8282
}

fs/udf/inode.c

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,8 @@ void udf_evict_inode(struct inode *inode)
157157
truncate_inode_pages_final(&inode->i_data);
158158
invalidate_inode_buffers(inode);
159159
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;
162162
udf_clear_extent_cache(inode);
163163
if (want_delete) {
164164
udf_free_inode(inode);
@@ -288,14 +288,14 @@ int udf_expand_file_adinicb(struct inode *inode)
288288
kaddr = kmap_atomic(page);
289289
memset(kaddr + iinfo->i_lenAlloc, 0x00,
290290
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,
292292
iinfo->i_lenAlloc);
293293
flush_dcache_page(page);
294294
SetPageUptodate(page);
295295
kunmap_atomic(kaddr);
296296
}
297297
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,
299299
iinfo->i_lenAlloc);
300300
iinfo->i_lenAlloc = 0;
301301
if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_SHORT_AD))
@@ -311,8 +311,7 @@ int udf_expand_file_adinicb(struct inode *inode)
311311
lock_page(page);
312312
down_write(&iinfo->i_data_sem);
313313
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);
316315
kunmap_atomic(kaddr);
317316
unlock_page(page);
318317
iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB;
@@ -399,8 +398,7 @@ struct buffer_head *udf_expand_dir_adinicb(struct inode *inode,
399398
}
400399
mark_buffer_dirty_inode(dbh, inode);
401400

402-
memset(iinfo->i_ext.i_data + iinfo->i_lenEAttr, 0,
403-
iinfo->i_lenAlloc);
401+
memset(iinfo->i_data + iinfo->i_lenEAttr, 0, iinfo->i_lenAlloc);
404402
iinfo->i_lenAlloc = 0;
405403
eloc.logicalBlockNum = *block;
406404
eloc.partitionReferenceNum =
@@ -1263,7 +1261,7 @@ int udf_setsize(struct inode *inode, loff_t newsize)
12631261
if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) {
12641262
down_write(&iinfo->i_data_sem);
12651263
udf_clear_extent_cache(inode);
1266-
memset(iinfo->i_ext.i_data + iinfo->i_lenEAttr + newsize,
1264+
memset(iinfo->i_data + iinfo->i_lenEAttr + newsize,
12671265
0x00, bsize - newsize -
12681266
udf_file_entry_alloc_offset(inode));
12691267
iinfo->i_lenAlloc = newsize;
@@ -1414,7 +1412,7 @@ static int udf_read_inode(struct inode *inode, bool hidden_inode)
14141412
sizeof(struct extendedFileEntry));
14151413
if (ret)
14161414
goto out;
1417-
memcpy(iinfo->i_ext.i_data,
1415+
memcpy(iinfo->i_data,
14181416
bh->b_data + sizeof(struct extendedFileEntry),
14191417
bs - sizeof(struct extendedFileEntry));
14201418
} else if (fe->descTag.tagIdent == cpu_to_le16(TAG_IDENT_FE)) {
@@ -1423,7 +1421,7 @@ static int udf_read_inode(struct inode *inode, bool hidden_inode)
14231421
ret = udf_alloc_i_data(inode, bs - sizeof(struct fileEntry));
14241422
if (ret)
14251423
goto out;
1426-
memcpy(iinfo->i_ext.i_data,
1424+
memcpy(iinfo->i_data,
14271425
bh->b_data + sizeof(struct fileEntry),
14281426
bs - sizeof(struct fileEntry));
14291427
} else if (fe->descTag.tagIdent == cpu_to_le16(TAG_IDENT_USE)) {
@@ -1436,7 +1434,7 @@ static int udf_read_inode(struct inode *inode, bool hidden_inode)
14361434
sizeof(struct unallocSpaceEntry));
14371435
if (ret)
14381436
goto out;
1439-
memcpy(iinfo->i_ext.i_data,
1437+
memcpy(iinfo->i_data,
14401438
bh->b_data + sizeof(struct unallocSpaceEntry),
14411439
bs - sizeof(struct unallocSpaceEntry));
14421440
return 0;
@@ -1617,8 +1615,8 @@ static int udf_read_inode(struct inode *inode, bool hidden_inode)
16171615
static int udf_alloc_i_data(struct inode *inode, size_t size)
16181616
{
16191617
struct udf_inode_info *iinfo = UDF_I(inode);
1620-
iinfo->i_ext.i_data = kmalloc(size, GFP_KERNEL);
1621-
if (!iinfo->i_ext.i_data)
1618+
iinfo->i_data = kmalloc(size, GFP_KERNEL);
1619+
if (!iinfo->i_data)
16221620
return -ENOMEM;
16231621
return 0;
16241622
}
@@ -1709,7 +1707,7 @@ static int udf_update_inode(struct inode *inode, int do_sync)
17091707

17101708
use->lengthAllocDescs = cpu_to_le32(iinfo->i_lenAlloc);
17111709
memcpy(bh->b_data + sizeof(struct unallocSpaceEntry),
1712-
iinfo->i_ext.i_data, inode->i_sb->s_blocksize -
1710+
iinfo->i_data, inode->i_sb->s_blocksize -
17131711
sizeof(struct unallocSpaceEntry));
17141712
use->descTag.tagIdent = cpu_to_le16(TAG_IDENT_USE);
17151713
crclen = sizeof(struct unallocSpaceEntry);
@@ -1775,7 +1773,7 @@ static int udf_update_inode(struct inode *inode, int do_sync)
17751773

17761774
if (iinfo->i_efe == 0) {
17771775
memcpy(bh->b_data + sizeof(struct fileEntry),
1778-
iinfo->i_ext.i_data,
1776+
iinfo->i_data,
17791777
inode->i_sb->s_blocksize - sizeof(struct fileEntry));
17801778
fe->logicalBlocksRecorded = cpu_to_le64(lb_recorded);
17811779

@@ -1794,7 +1792,7 @@ static int udf_update_inode(struct inode *inode, int do_sync)
17941792
crclen = sizeof(struct fileEntry);
17951793
} else {
17961794
memcpy(bh->b_data + sizeof(struct extendedFileEntry),
1797-
iinfo->i_ext.i_data,
1795+
iinfo->i_data,
17981796
inode->i_sb->s_blocksize -
17991797
sizeof(struct extendedFileEntry));
18001798
efe->objectSize =
@@ -2090,7 +2088,7 @@ void udf_write_aext(struct inode *inode, struct extent_position *epos,
20902088
struct udf_inode_info *iinfo = UDF_I(inode);
20912089

20922090
if (!epos->bh)
2093-
ptr = iinfo->i_ext.i_data + epos->offset -
2091+
ptr = iinfo->i_data + epos->offset -
20942092
udf_file_entry_alloc_offset(inode) +
20952093
iinfo->i_lenEAttr;
20962094
else
@@ -2182,7 +2180,7 @@ int8_t udf_current_aext(struct inode *inode, struct extent_position *epos,
21822180
if (!epos->bh) {
21832181
if (!epos->offset)
21842182
epos->offset = udf_file_entry_alloc_offset(inode);
2185-
ptr = iinfo->i_ext.i_data + epos->offset -
2183+
ptr = iinfo->i_data + epos->offset -
21862184
udf_file_entry_alloc_offset(inode) +
21872185
iinfo->i_lenEAttr;
21882186
alen = udf_file_entry_alloc_offset(inode) +

fs/udf/misc.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ struct genericFormat *udf_add_extendedattr(struct inode *inode, uint32_t size,
5252
uint16_t crclen;
5353
struct udf_inode_info *iinfo = UDF_I(inode);
5454

55-
ea = iinfo->i_ext.i_data;
55+
ea = iinfo->i_data;
5656
if (iinfo->i_lenEAttr) {
57-
ad = iinfo->i_ext.i_data + iinfo->i_lenEAttr;
57+
ad = iinfo->i_data + iinfo->i_lenEAttr;
5858
} else {
5959
ad = ea;
6060
size += sizeof(struct extendedAttrHeaderDesc);
@@ -153,7 +153,7 @@ struct genericFormat *udf_get_extendedattr(struct inode *inode, uint32_t type,
153153
uint32_t offset;
154154
struct udf_inode_info *iinfo = UDF_I(inode);
155155

156-
ea = iinfo->i_ext.i_data;
156+
ea = iinfo->i_data;
157157

158158
if (iinfo->i_lenEAttr) {
159159
struct extendedAttrHeaderDesc *eahd;

fs/udf/namei.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -460,8 +460,7 @@ static struct fileIdentDesc *udf_add_entry(struct inode *dir,
460460
if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) {
461461
block = dinfo->i_location.logicalBlockNum;
462462
fi = (struct fileIdentDesc *)
463-
(dinfo->i_ext.i_data +
464-
fibh->soffset -
463+
(dinfo->i_data + fibh->soffset -
465464
udf_ext0_offset(dir) +
466465
dinfo->i_lenEAttr);
467466
} else {
@@ -940,7 +939,7 @@ static int udf_symlink(struct inode *dir, struct dentry *dentry,
940939
mark_buffer_dirty_inode(epos.bh, inode);
941940
ea = epos.bh->b_data + udf_ext0_offset(inode);
942941
} else
943-
ea = iinfo->i_ext.i_data + iinfo->i_lenEAttr;
942+
ea = iinfo->i_data + iinfo->i_lenEAttr;
944943

945944
eoffset = sb->s_blocksize - udf_ext0_offset(inode);
946945
pc = (struct pathComponent *)ea;
@@ -1120,7 +1119,7 @@ static int udf_rename(struct inode *old_dir, struct dentry *old_dentry,
11201119
retval = -EIO;
11211120
if (old_iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) {
11221121
dir_fi = udf_get_fileident(
1123-
old_iinfo->i_ext.i_data -
1122+
old_iinfo->i_data -
11241123
(old_iinfo->i_efe ?
11251124
sizeof(struct extendedFileEntry) :
11261125
sizeof(struct fileEntry)),

fs/udf/partition.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ uint32_t udf_get_pblock_virt15(struct super_block *sb, uint32_t block,
6565
}
6666

6767
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 +
6969
vdata->s_start_offset))[block]);
7070
goto translate;
7171
}

fs/udf/super.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ static void init_once(void *foo)
168168
{
169169
struct udf_inode_info *ei = (struct udf_inode_info *)foo;
170170

171-
ei->i_ext.i_data = NULL;
171+
ei->i_data = NULL;
172172
inode_init_once(&ei->vfs_inode);
173173
}
174174

@@ -1202,7 +1202,7 @@ static int udf_load_vat(struct super_block *sb, int p_index, int type1_index)
12021202
vat20 = (struct virtualAllocationTable20 *)bh->b_data;
12031203
} else {
12041204
vat20 = (struct virtualAllocationTable20 *)
1205-
vati->i_ext.i_data;
1205+
vati->i_data;
12061206
}
12071207

12081208
map->s_type_specific.s_virtual.s_start_offset =

fs/udf/symlink.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ static int udf_symlink_filler(struct file *file, struct page *page)
122122

123123
down_read(&iinfo->i_data_sem);
124124
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;
126126
} else {
127127
bh = sb_bread(inode->i_sb, pos);
128128

fs/udf/udf_i.h

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,7 @@ struct udf_inode_info {
4545
unsigned i_strat4096 : 1;
4646
unsigned i_streamdir : 1;
4747
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;
5349
struct kernel_lb_addr i_locStreamdir;
5450
__u64 i_lenStreams;
5551
struct rw_semaphore i_data_sem;

0 commit comments

Comments
 (0)