diff options
author | Pekka Enberg <penberg@cs.helsinki.fi> | 2008-10-15 06:28:03 -0400 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2009-04-02 06:29:47 -0400 |
commit | 5ca4e4be841e389d7d17833fef7be2359f290163 (patch) | |
tree | 9c059a3b7599260d096fae395d640e79bdc46f30 /fs | |
parent | 833bb3046b6cb320e775ea2160ddca87d53260d5 (diff) |
Remove struct typedefs from fs/udf/ecma_167.h et al.
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/udf/balloc.c | 38 | ||||
-rw-r--r-- | fs/udf/dir.c | 8 | ||||
-rw-r--r-- | fs/udf/directory.c | 32 | ||||
-rw-r--r-- | fs/udf/ecma_167.h | 416 | ||||
-rw-r--r-- | fs/udf/inode.c | 140 | ||||
-rw-r--r-- | fs/udf/misc.c | 26 | ||||
-rw-r--r-- | fs/udf/namei.c | 54 | ||||
-rw-r--r-- | fs/udf/osta_udf.h | 22 | ||||
-rw-r--r-- | fs/udf/partition.c | 2 | ||||
-rw-r--r-- | fs/udf/super.c | 48 | ||||
-rw-r--r-- | fs/udf/truncate.c | 24 | ||||
-rw-r--r-- | fs/udf/udf_i.h | 6 | ||||
-rw-r--r-- | fs/udf/udfdecl.h | 36 | ||||
-rw-r--r-- | fs/udf/udfend.h | 28 | ||||
-rw-r--r-- | fs/udf/udftime.c | 6 |
15 files changed, 444 insertions, 442 deletions
diff --git a/fs/udf/balloc.c b/fs/udf/balloc.c index 2bb788a2acb1..1237900e81b6 100644 --- a/fs/udf/balloc.c +++ b/fs/udf/balloc.c | |||
@@ -87,7 +87,7 @@ static int read_block_bitmap(struct super_block *sb, | |||
87 | { | 87 | { |
88 | struct buffer_head *bh = NULL; | 88 | struct buffer_head *bh = NULL; |
89 | int retval = 0; | 89 | int retval = 0; |
90 | kernel_lb_addr loc; | 90 | struct kernel_lb_addr loc; |
91 | 91 | ||
92 | loc.logicalBlockNum = bitmap->s_extPosition; | 92 | loc.logicalBlockNum = bitmap->s_extPosition; |
93 | loc.partitionReferenceNum = UDF_SB(sb)->s_partition; | 93 | loc.partitionReferenceNum = UDF_SB(sb)->s_partition; |
@@ -156,7 +156,7 @@ static bool udf_add_free_space(struct udf_sb_info *sbi, | |||
156 | static void udf_bitmap_free_blocks(struct super_block *sb, | 156 | static void udf_bitmap_free_blocks(struct super_block *sb, |
157 | struct inode *inode, | 157 | struct inode *inode, |
158 | struct udf_bitmap *bitmap, | 158 | struct udf_bitmap *bitmap, |
159 | kernel_lb_addr bloc, uint32_t offset, | 159 | struct kernel_lb_addr bloc, uint32_t offset, |
160 | uint32_t count) | 160 | uint32_t count) |
161 | { | 161 | { |
162 | struct udf_sb_info *sbi = UDF_SB(sb); | 162 | struct udf_sb_info *sbi = UDF_SB(sb); |
@@ -425,13 +425,13 @@ error_return: | |||
425 | static void udf_table_free_blocks(struct super_block *sb, | 425 | static void udf_table_free_blocks(struct super_block *sb, |
426 | struct inode *inode, | 426 | struct inode *inode, |
427 | struct inode *table, | 427 | struct inode *table, |
428 | kernel_lb_addr bloc, uint32_t offset, | 428 | struct kernel_lb_addr bloc, uint32_t offset, |
429 | uint32_t count) | 429 | uint32_t count) |
430 | { | 430 | { |
431 | struct udf_sb_info *sbi = UDF_SB(sb); | 431 | struct udf_sb_info *sbi = UDF_SB(sb); |
432 | uint32_t start, end; | 432 | uint32_t start, end; |
433 | uint32_t elen; | 433 | uint32_t elen; |
434 | kernel_lb_addr eloc; | 434 | struct kernel_lb_addr eloc; |
435 | struct extent_position oepos, epos; | 435 | struct extent_position oepos, epos; |
436 | int8_t etype; | 436 | int8_t etype; |
437 | int i; | 437 | int i; |
@@ -532,8 +532,8 @@ static void udf_table_free_blocks(struct super_block *sb, | |||
532 | */ | 532 | */ |
533 | 533 | ||
534 | int adsize; | 534 | int adsize; |
535 | short_ad *sad = NULL; | 535 | struct short_ad *sad = NULL; |
536 | long_ad *lad = NULL; | 536 | struct long_ad *lad = NULL; |
537 | struct allocExtDesc *aed; | 537 | struct allocExtDesc *aed; |
538 | 538 | ||
539 | eloc.logicalBlockNum = start; | 539 | eloc.logicalBlockNum = start; |
@@ -541,9 +541,9 @@ static void udf_table_free_blocks(struct super_block *sb, | |||
541 | (count << sb->s_blocksize_bits); | 541 | (count << sb->s_blocksize_bits); |
542 | 542 | ||
543 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) | 543 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) |
544 | adsize = sizeof(short_ad); | 544 | adsize = sizeof(struct short_ad); |
545 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) | 545 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) |
546 | adsize = sizeof(long_ad); | 546 | adsize = sizeof(struct long_ad); |
547 | else { | 547 | else { |
548 | brelse(oepos.bh); | 548 | brelse(oepos.bh); |
549 | brelse(epos.bh); | 549 | brelse(epos.bh); |
@@ -601,15 +601,15 @@ static void udf_table_free_blocks(struct super_block *sb, | |||
601 | if (sbi->s_udfrev >= 0x0200) | 601 | if (sbi->s_udfrev >= 0x0200) |
602 | udf_new_tag(epos.bh->b_data, TAG_IDENT_AED, | 602 | udf_new_tag(epos.bh->b_data, TAG_IDENT_AED, |
603 | 3, 1, epos.block.logicalBlockNum, | 603 | 3, 1, epos.block.logicalBlockNum, |
604 | sizeof(tag)); | 604 | sizeof(struct tag)); |
605 | else | 605 | else |
606 | udf_new_tag(epos.bh->b_data, TAG_IDENT_AED, | 606 | udf_new_tag(epos.bh->b_data, TAG_IDENT_AED, |
607 | 2, 1, epos.block.logicalBlockNum, | 607 | 2, 1, epos.block.logicalBlockNum, |
608 | sizeof(tag)); | 608 | sizeof(struct tag)); |
609 | 609 | ||
610 | switch (iinfo->i_alloc_type) { | 610 | switch (iinfo->i_alloc_type) { |
611 | case ICBTAG_FLAG_AD_SHORT: | 611 | case ICBTAG_FLAG_AD_SHORT: |
612 | sad = (short_ad *)sptr; | 612 | sad = (struct short_ad *)sptr; |
613 | sad->extLength = cpu_to_le32( | 613 | sad->extLength = cpu_to_le32( |
614 | EXT_NEXT_EXTENT_ALLOCDECS | | 614 | EXT_NEXT_EXTENT_ALLOCDECS | |
615 | sb->s_blocksize); | 615 | sb->s_blocksize); |
@@ -617,7 +617,7 @@ static void udf_table_free_blocks(struct super_block *sb, | |||
617 | cpu_to_le32(epos.block.logicalBlockNum); | 617 | cpu_to_le32(epos.block.logicalBlockNum); |
618 | break; | 618 | break; |
619 | case ICBTAG_FLAG_AD_LONG: | 619 | case ICBTAG_FLAG_AD_LONG: |
620 | lad = (long_ad *)sptr; | 620 | lad = (struct long_ad *)sptr; |
621 | lad->extLength = cpu_to_le32( | 621 | lad->extLength = cpu_to_le32( |
622 | EXT_NEXT_EXTENT_ALLOCDECS | | 622 | EXT_NEXT_EXTENT_ALLOCDECS | |
623 | sb->s_blocksize); | 623 | sb->s_blocksize); |
@@ -666,7 +666,7 @@ static int udf_table_prealloc_blocks(struct super_block *sb, | |||
666 | struct udf_sb_info *sbi = UDF_SB(sb); | 666 | struct udf_sb_info *sbi = UDF_SB(sb); |
667 | int alloc_count = 0; | 667 | int alloc_count = 0; |
668 | uint32_t elen, adsize; | 668 | uint32_t elen, adsize; |
669 | kernel_lb_addr eloc; | 669 | struct kernel_lb_addr eloc; |
670 | struct extent_position epos; | 670 | struct extent_position epos; |
671 | int8_t etype = -1; | 671 | int8_t etype = -1; |
672 | struct udf_inode_info *iinfo; | 672 | struct udf_inode_info *iinfo; |
@@ -677,9 +677,9 @@ static int udf_table_prealloc_blocks(struct super_block *sb, | |||
677 | 677 | ||
678 | iinfo = UDF_I(table); | 678 | iinfo = UDF_I(table); |
679 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) | 679 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) |
680 | adsize = sizeof(short_ad); | 680 | adsize = sizeof(struct short_ad); |
681 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) | 681 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) |
682 | adsize = sizeof(long_ad); | 682 | adsize = sizeof(struct long_ad); |
683 | else | 683 | else |
684 | return 0; | 684 | return 0; |
685 | 685 | ||
@@ -735,7 +735,7 @@ static int udf_table_new_block(struct super_block *sb, | |||
735 | uint32_t spread = 0xFFFFFFFF, nspread = 0xFFFFFFFF; | 735 | uint32_t spread = 0xFFFFFFFF, nspread = 0xFFFFFFFF; |
736 | uint32_t newblock = 0, adsize; | 736 | uint32_t newblock = 0, adsize; |
737 | uint32_t elen, goal_elen = 0; | 737 | uint32_t elen, goal_elen = 0; |
738 | kernel_lb_addr eloc, uninitialized_var(goal_eloc); | 738 | struct kernel_lb_addr eloc, uninitialized_var(goal_eloc); |
739 | struct extent_position epos, goal_epos; | 739 | struct extent_position epos, goal_epos; |
740 | int8_t etype; | 740 | int8_t etype; |
741 | struct udf_inode_info *iinfo = UDF_I(table); | 741 | struct udf_inode_info *iinfo = UDF_I(table); |
@@ -743,9 +743,9 @@ static int udf_table_new_block(struct super_block *sb, | |||
743 | *err = -ENOSPC; | 743 | *err = -ENOSPC; |
744 | 744 | ||
745 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) | 745 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) |
746 | adsize = sizeof(short_ad); | 746 | adsize = sizeof(struct short_ad); |
747 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) | 747 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) |
748 | adsize = sizeof(long_ad); | 748 | adsize = sizeof(struct long_ad); |
749 | else | 749 | else |
750 | return newblock; | 750 | return newblock; |
751 | 751 | ||
@@ -830,7 +830,7 @@ static int udf_table_new_block(struct super_block *sb, | |||
830 | 830 | ||
831 | inline void udf_free_blocks(struct super_block *sb, | 831 | inline void udf_free_blocks(struct super_block *sb, |
832 | struct inode *inode, | 832 | struct inode *inode, |
833 | kernel_lb_addr bloc, uint32_t offset, | 833 | struct kernel_lb_addr bloc, uint32_t offset, |
834 | uint32_t count) | 834 | uint32_t count) |
835 | { | 835 | { |
836 | uint16_t partition = bloc.partitionReferenceNum; | 836 | uint16_t partition = bloc.partitionReferenceNum; |
diff --git a/fs/udf/dir.c b/fs/udf/dir.c index 62dc270c69d1..19d3ae4e2ae2 100644 --- a/fs/udf/dir.c +++ b/fs/udf/dir.c | |||
@@ -51,7 +51,7 @@ static int do_udf_readdir(struct inode *dir, struct file *filp, | |||
51 | uint8_t lfi; | 51 | uint8_t lfi; |
52 | loff_t size = udf_ext0_offset(dir) + dir->i_size; | 52 | loff_t size = udf_ext0_offset(dir) + dir->i_size; |
53 | struct buffer_head *tmp, *bha[16]; | 53 | struct buffer_head *tmp, *bha[16]; |
54 | kernel_lb_addr eloc; | 54 | struct kernel_lb_addr eloc; |
55 | uint32_t elen; | 55 | uint32_t elen; |
56 | sector_t offset; | 56 | sector_t offset; |
57 | int i, num, ret = 0; | 57 | int i, num, ret = 0; |
@@ -83,10 +83,10 @@ static int do_udf_readdir(struct inode *dir, struct file *filp, | |||
83 | block = udf_get_lb_pblock(dir->i_sb, eloc, offset); | 83 | block = udf_get_lb_pblock(dir->i_sb, eloc, offset); |
84 | if ((++offset << dir->i_sb->s_blocksize_bits) < elen) { | 84 | if ((++offset << dir->i_sb->s_blocksize_bits) < elen) { |
85 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) | 85 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) |
86 | epos.offset -= sizeof(short_ad); | 86 | epos.offset -= sizeof(struct short_ad); |
87 | else if (iinfo->i_alloc_type == | 87 | else if (iinfo->i_alloc_type == |
88 | ICBTAG_FLAG_AD_LONG) | 88 | ICBTAG_FLAG_AD_LONG) |
89 | epos.offset -= sizeof(long_ad); | 89 | epos.offset -= sizeof(struct long_ad); |
90 | } else { | 90 | } else { |
91 | offset = 0; | 91 | offset = 0; |
92 | } | 92 | } |
@@ -161,7 +161,7 @@ static int do_udf_readdir(struct inode *dir, struct file *filp, | |||
161 | memcpy(fname, "..", flen); | 161 | memcpy(fname, "..", flen); |
162 | dt_type = DT_DIR; | 162 | dt_type = DT_DIR; |
163 | } else { | 163 | } else { |
164 | kernel_lb_addr tloc = lelb_to_cpu(cfi.icb.extLocation); | 164 | struct kernel_lb_addr tloc = lelb_to_cpu(cfi.icb.extLocation); |
165 | 165 | ||
166 | iblock = udf_get_lb_pblock(dir->i_sb, tloc, 0); | 166 | iblock = udf_get_lb_pblock(dir->i_sb, tloc, 0); |
167 | flen = udf_get_filename(dir->i_sb, nameptr, fname, lfi); | 167 | flen = udf_get_filename(dir->i_sb, nameptr, fname, lfi); |
diff --git a/fs/udf/directory.c b/fs/udf/directory.c index 2820f8fcf4cc..0ab251d3e94a 100644 --- a/fs/udf/directory.c +++ b/fs/udf/directory.c | |||
@@ -20,7 +20,7 @@ | |||
20 | 20 | ||
21 | #if 0 | 21 | #if 0 |
22 | static uint8_t *udf_filead_read(struct inode *dir, uint8_t *tmpad, | 22 | static uint8_t *udf_filead_read(struct inode *dir, uint8_t *tmpad, |
23 | uint8_t ad_size, kernel_lb_addr fe_loc, | 23 | uint8_t ad_size, struct kernel_lb_addr fe_loc, |
24 | int *pos, int *offset, struct buffer_head **bh, | 24 | int *pos, int *offset, struct buffer_head **bh, |
25 | int *error) | 25 | int *error) |
26 | { | 26 | { |
@@ -75,7 +75,7 @@ struct fileIdentDesc *udf_fileident_read(struct inode *dir, loff_t *nf_pos, | |||
75 | struct udf_fileident_bh *fibh, | 75 | struct udf_fileident_bh *fibh, |
76 | struct fileIdentDesc *cfi, | 76 | struct fileIdentDesc *cfi, |
77 | struct extent_position *epos, | 77 | struct extent_position *epos, |
78 | kernel_lb_addr *eloc, uint32_t *elen, | 78 | struct kernel_lb_addr *eloc, uint32_t *elen, |
79 | sector_t *offset) | 79 | sector_t *offset) |
80 | { | 80 | { |
81 | struct fileIdentDesc *fi; | 81 | struct fileIdentDesc *fi; |
@@ -249,9 +249,9 @@ struct fileIdentDesc *udf_get_fileident(void *buffer, int bufsize, int *offset) | |||
249 | } | 249 | } |
250 | 250 | ||
251 | #if 0 | 251 | #if 0 |
252 | static extent_ad *udf_get_fileextent(void *buffer, int bufsize, int *offset) | 252 | static struct extent_ad *udf_get_fileextent(void *buffer, int bufsize, int *offset) |
253 | { | 253 | { |
254 | extent_ad *ext; | 254 | struct extent_ad *ext; |
255 | struct fileEntry *fe; | 255 | struct fileEntry *fe; |
256 | uint8_t *ptr; | 256 | uint8_t *ptr; |
257 | 257 | ||
@@ -274,54 +274,54 @@ static extent_ad *udf_get_fileextent(void *buffer, int bufsize, int *offset) | |||
274 | if ((*offset > 0) && (*offset < le32_to_cpu(fe->lengthAllocDescs))) | 274 | if ((*offset > 0) && (*offset < le32_to_cpu(fe->lengthAllocDescs))) |
275 | ptr += *offset; | 275 | ptr += *offset; |
276 | 276 | ||
277 | ext = (extent_ad *)ptr; | 277 | ext = (struct extent_ad *)ptr; |
278 | 278 | ||
279 | *offset = *offset + sizeof(extent_ad); | 279 | *offset = *offset + sizeof(struct extent_ad); |
280 | return ext; | 280 | return ext; |
281 | } | 281 | } |
282 | #endif | 282 | #endif |
283 | 283 | ||
284 | short_ad *udf_get_fileshortad(uint8_t *ptr, int maxoffset, uint32_t *offset, | 284 | struct short_ad *udf_get_fileshortad(uint8_t *ptr, int maxoffset, uint32_t *offset, |
285 | int inc) | 285 | int inc) |
286 | { | 286 | { |
287 | short_ad *sa; | 287 | struct short_ad *sa; |
288 | 288 | ||
289 | if ((!ptr) || (!offset)) { | 289 | if ((!ptr) || (!offset)) { |
290 | printk(KERN_ERR "udf: udf_get_fileshortad() invalidparms\n"); | 290 | printk(KERN_ERR "udf: udf_get_fileshortad() invalidparms\n"); |
291 | return NULL; | 291 | return NULL; |
292 | } | 292 | } |
293 | 293 | ||
294 | if ((*offset + sizeof(short_ad)) > maxoffset) | 294 | if ((*offset + sizeof(struct short_ad)) > maxoffset) |
295 | return NULL; | 295 | return NULL; |
296 | else { | 296 | else { |
297 | sa = (short_ad *)ptr; | 297 | sa = (struct short_ad *)ptr; |
298 | if (sa->extLength == 0) | 298 | if (sa->extLength == 0) |
299 | return NULL; | 299 | return NULL; |
300 | } | 300 | } |
301 | 301 | ||
302 | if (inc) | 302 | if (inc) |
303 | *offset += sizeof(short_ad); | 303 | *offset += sizeof(struct short_ad); |
304 | return sa; | 304 | return sa; |
305 | } | 305 | } |
306 | 306 | ||
307 | long_ad *udf_get_filelongad(uint8_t *ptr, int maxoffset, uint32_t *offset, int inc) | 307 | struct long_ad *udf_get_filelongad(uint8_t *ptr, int maxoffset, uint32_t *offset, int inc) |
308 | { | 308 | { |
309 | long_ad *la; | 309 | struct long_ad *la; |
310 | 310 | ||
311 | if ((!ptr) || (!offset)) { | 311 | if ((!ptr) || (!offset)) { |
312 | printk(KERN_ERR "udf: udf_get_filelongad() invalidparms\n"); | 312 | printk(KERN_ERR "udf: udf_get_filelongad() invalidparms\n"); |
313 | return NULL; | 313 | return NULL; |
314 | } | 314 | } |
315 | 315 | ||
316 | if ((*offset + sizeof(long_ad)) > maxoffset) | 316 | if ((*offset + sizeof(struct long_ad)) > maxoffset) |
317 | return NULL; | 317 | return NULL; |
318 | else { | 318 | else { |
319 | la = (long_ad *)ptr; | 319 | la = (struct long_ad *)ptr; |
320 | if (la->extLength == 0) | 320 | if (la->extLength == 0) |
321 | return NULL; | 321 | return NULL; |
322 | } | 322 | } |
323 | 323 | ||
324 | if (inc) | 324 | if (inc) |
325 | *offset += sizeof(long_ad); | 325 | *offset += sizeof(struct long_ad); |
326 | return la; | 326 | return la; |
327 | } | 327 | } |
diff --git a/fs/udf/ecma_167.h b/fs/udf/ecma_167.h index a0974df82b31..4792b771aa80 100644 --- a/fs/udf/ecma_167.h +++ b/fs/udf/ecma_167.h | |||
@@ -38,10 +38,10 @@ | |||
38 | #define _ECMA_167_H 1 | 38 | #define _ECMA_167_H 1 |
39 | 39 | ||
40 | /* Character set specification (ECMA 167r3 1/7.2.1) */ | 40 | /* Character set specification (ECMA 167r3 1/7.2.1) */ |
41 | typedef struct { | 41 | struct charspec { |
42 | uint8_t charSetType; | 42 | uint8_t charSetType; |
43 | uint8_t charSetInfo[63]; | 43 | uint8_t charSetInfo[63]; |
44 | } __attribute__ ((packed)) charspec; | 44 | } __attribute__ ((packed)); |
45 | 45 | ||
46 | /* Character Set Type (ECMA 167r3 1/7.2.1.1) */ | 46 | /* Character Set Type (ECMA 167r3 1/7.2.1.1) */ |
47 | #define CHARSPEC_TYPE_CS0 0x00 /* (1/7.2.2) */ | 47 | #define CHARSPEC_TYPE_CS0 0x00 /* (1/7.2.2) */ |
@@ -57,7 +57,7 @@ typedef struct { | |||
57 | typedef uint8_t dstring; | 57 | typedef uint8_t dstring; |
58 | 58 | ||
59 | /* Timestamp (ECMA 167r3 1/7.3) */ | 59 | /* Timestamp (ECMA 167r3 1/7.3) */ |
60 | typedef struct { | 60 | struct timestamp { |
61 | __le16 typeAndTimezone; | 61 | __le16 typeAndTimezone; |
62 | __le16 year; | 62 | __le16 year; |
63 | uint8_t month; | 63 | uint8_t month; |
@@ -68,7 +68,7 @@ typedef struct { | |||
68 | uint8_t centiseconds; | 68 | uint8_t centiseconds; |
69 | uint8_t hundredsOfMicroseconds; | 69 | uint8_t hundredsOfMicroseconds; |
70 | uint8_t microseconds; | 70 | uint8_t microseconds; |
71 | } __attribute__ ((packed)) timestamp; | 71 | } __attribute__ ((packed)); |
72 | 72 | ||
73 | /* Type and Time Zone (ECMA 167r3 1/7.3.1) */ | 73 | /* Type and Time Zone (ECMA 167r3 1/7.3.1) */ |
74 | #define TIMESTAMP_TYPE_MASK 0xF000 | 74 | #define TIMESTAMP_TYPE_MASK 0xF000 |
@@ -78,11 +78,11 @@ typedef struct { | |||
78 | #define TIMESTAMP_TIMEZONE_MASK 0x0FFF | 78 | #define TIMESTAMP_TIMEZONE_MASK 0x0FFF |
79 | 79 | ||
80 | /* Entity identifier (ECMA 167r3 1/7.4) */ | 80 | /* Entity identifier (ECMA 167r3 1/7.4) */ |
81 | typedef struct { | 81 | struct regid { |
82 | uint8_t flags; | 82 | uint8_t flags; |
83 | uint8_t ident[23]; | 83 | uint8_t ident[23]; |
84 | uint8_t identSuffix[8]; | 84 | uint8_t identSuffix[8]; |
85 | } __attribute__ ((packed)) regid; | 85 | } __attribute__ ((packed)); |
86 | 86 | ||
87 | /* Flags (ECMA 167r3 1/7.4.1) */ | 87 | /* Flags (ECMA 167r3 1/7.4.1) */ |
88 | #define ENTITYID_FLAGS_DIRTY 0x00 | 88 | #define ENTITYID_FLAGS_DIRTY 0x00 |
@@ -126,38 +126,38 @@ struct terminatingExtendedAreaDesc { | |||
126 | 126 | ||
127 | /* Boot Descriptor (ECMA 167r3 2/9.4) */ | 127 | /* Boot Descriptor (ECMA 167r3 2/9.4) */ |
128 | struct bootDesc { | 128 | struct bootDesc { |
129 | uint8_t structType; | 129 | uint8_t structType; |
130 | uint8_t stdIdent[VSD_STD_ID_LEN]; | 130 | uint8_t stdIdent[VSD_STD_ID_LEN]; |
131 | uint8_t structVersion; | 131 | uint8_t structVersion; |
132 | uint8_t reserved1; | 132 | uint8_t reserved1; |
133 | regid archType; | 133 | struct regid archType; |
134 | regid bootIdent; | 134 | struct regid bootIdent; |
135 | __le32 bootExtLocation; | 135 | __le32 bootExtLocation; |
136 | __le32 bootExtLength; | 136 | __le32 bootExtLength; |
137 | __le64 loadAddress; | 137 | __le64 loadAddress; |
138 | __le64 startAddress; | 138 | __le64 startAddress; |
139 | timestamp descCreationDateAndTime; | 139 | struct timestamp descCreationDateAndTime; |
140 | __le16 flags; | 140 | __le16 flags; |
141 | uint8_t reserved2[32]; | 141 | uint8_t reserved2[32]; |
142 | uint8_t bootUse[1906]; | 142 | uint8_t bootUse[1906]; |
143 | } __attribute__ ((packed)); | 143 | } __attribute__ ((packed)); |
144 | 144 | ||
145 | /* Flags (ECMA 167r3 2/9.4.12) */ | 145 | /* Flags (ECMA 167r3 2/9.4.12) */ |
146 | #define BOOT_FLAGS_ERASE 0x01 | 146 | #define BOOT_FLAGS_ERASE 0x01 |
147 | 147 | ||
148 | /* Extent Descriptor (ECMA 167r3 3/7.1) */ | 148 | /* Extent Descriptor (ECMA 167r3 3/7.1) */ |
149 | typedef struct { | 149 | struct extent_ad { |
150 | __le32 extLength; | 150 | __le32 extLength; |
151 | __le32 extLocation; | 151 | __le32 extLocation; |
152 | } __attribute__ ((packed)) extent_ad; | 152 | } __attribute__ ((packed)); |
153 | 153 | ||
154 | typedef struct { | 154 | struct kernel_extent_ad { |
155 | uint32_t extLength; | 155 | uint32_t extLength; |
156 | uint32_t extLocation; | 156 | uint32_t extLocation; |
157 | } kernel_extent_ad; | 157 | }; |
158 | 158 | ||
159 | /* Descriptor Tag (ECMA 167r3 3/7.2) */ | 159 | /* Descriptor Tag (ECMA 167r3 3/7.2) */ |
160 | typedef struct { | 160 | struct tag { |
161 | __le16 tagIdent; | 161 | __le16 tagIdent; |
162 | __le16 descVersion; | 162 | __le16 descVersion; |
163 | uint8_t tagChecksum; | 163 | uint8_t tagChecksum; |
@@ -166,7 +166,7 @@ typedef struct { | |||
166 | __le16 descCRC; | 166 | __le16 descCRC; |
167 | __le16 descCRCLength; | 167 | __le16 descCRCLength; |
168 | __le32 tagLocation; | 168 | __le32 tagLocation; |
169 | } __attribute__ ((packed)) tag; | 169 | } __attribute__ ((packed)); |
170 | 170 | ||
171 | /* Tag Identifier (ECMA 167r3 3/7.2.1) */ | 171 | /* Tag Identifier (ECMA 167r3 3/7.2.1) */ |
172 | #define TAG_IDENT_PVD 0x0001 | 172 | #define TAG_IDENT_PVD 0x0001 |
@@ -190,28 +190,28 @@ struct NSRDesc { | |||
190 | 190 | ||
191 | /* Primary Volume Descriptor (ECMA 167r3 3/10.1) */ | 191 | /* Primary Volume Descriptor (ECMA 167r3 3/10.1) */ |
192 | struct primaryVolDesc { | 192 | struct primaryVolDesc { |
193 | tag descTag; | 193 | struct tag descTag; |
194 | __le32 volDescSeqNum; | 194 | __le32 volDescSeqNum; |
195 | __le32 primaryVolDescNum; | 195 | __le32 primaryVolDescNum; |
196 | dstring volIdent[32]; | 196 | dstring volIdent[32]; |
197 | __le16 volSeqNum; | 197 | __le16 volSeqNum; |
198 | __le16 maxVolSeqNum; | 198 | __le16 maxVolSeqNum; |
199 | __le16 interchangeLvl; | 199 | __le16 interchangeLvl; |
200 | __le16 maxInterchangeLvl; | 200 | __le16 maxInterchangeLvl; |
201 | __le32 charSetList; | 201 | __le32 charSetList; |
202 | __le32 maxCharSetList; | 202 | __le32 maxCharSetList; |
203 | dstring volSetIdent[128]; | 203 | dstring volSetIdent[128]; |
204 | charspec descCharSet; | 204 | struct charspec descCharSet; |
205 | charspec explanatoryCharSet; | 205 | struct charspec explanatoryCharSet; |
206 | extent_ad volAbstract; | 206 | struct extent_ad volAbstract; |
207 | extent_ad volCopyright; | 207 | struct extent_ad volCopyright; |
208 | regid appIdent; | 208 | struct regid appIdent; |
209 | timestamp recordingDateAndTime; | 209 | struct timestamp recordingDateAndTime; |
210 | regid impIdent; | 210 | struct regid impIdent; |
211 | uint8_t impUse[64]; | 211 | uint8_t impUse[64]; |
212 | __le32 predecessorVolDescSeqLocation; | 212 | __le32 predecessorVolDescSeqLocation; |
213 | __le16 flags; | 213 | __le16 flags; |
214 | uint8_t reserved[22]; | 214 | uint8_t reserved[22]; |
215 | } __attribute__ ((packed)); | 215 | } __attribute__ ((packed)); |
216 | 216 | ||
217 | /* Flags (ECMA 167r3 3/10.1.21) */ | 217 | /* Flags (ECMA 167r3 3/10.1.21) */ |
@@ -219,40 +219,40 @@ struct primaryVolDesc { | |||
219 | 219 | ||
220 | /* Anchor Volume Descriptor Pointer (ECMA 167r3 3/10.2) */ | 220 | /* Anchor Volume Descriptor Pointer (ECMA 167r3 3/10.2) */ |
221 | struct anchorVolDescPtr { | 221 | struct anchorVolDescPtr { |
222 | tag descTag; | 222 | struct tag descTag; |
223 | extent_ad mainVolDescSeqExt; | 223 | struct extent_ad mainVolDescSeqExt; |
224 | extent_ad reserveVolDescSeqExt; | 224 | struct extent_ad reserveVolDescSeqExt; |
225 | uint8_t reserved[480]; | 225 | uint8_t reserved[480]; |
226 | } __attribute__ ((packed)); | 226 | } __attribute__ ((packed)); |
227 | 227 | ||
228 | /* Volume Descriptor Pointer (ECMA 167r3 3/10.3) */ | 228 | /* Volume Descriptor Pointer (ECMA 167r3 3/10.3) */ |
229 | struct volDescPtr { | 229 | struct volDescPtr { |
230 | tag descTag; | 230 | struct tag descTag; |
231 | __le32 volDescSeqNum; | 231 | __le32 volDescSeqNum; |
232 | extent_ad nextVolDescSeqExt; | 232 | struct extent_ad nextVolDescSeqExt; |
233 | uint8_t reserved[484]; | 233 | uint8_t reserved[484]; |
234 | } __attribute__ ((packed)); | 234 | } __attribute__ ((packed)); |
235 | 235 | ||
236 | /* Implementation Use Volume Descriptor (ECMA 167r3 3/10.4) */ | 236 | /* Implementation Use Volume Descriptor (ECMA 167r3 3/10.4) */ |
237 | struct impUseVolDesc { | 237 | struct impUseVolDesc { |
238 | tag descTag; | 238 | struct tag descTag; |
239 | __le32 volDescSeqNum; | 239 | __le32 volDescSeqNum; |
240 | regid impIdent; | 240 | struct regid impIdent; |
241 | uint8_t impUse[460]; | 241 | uint8_t impUse[460]; |
242 | } __attribute__ ((packed)); | 242 | } __attribute__ ((packed)); |
243 | 243 | ||
244 | /* Partition Descriptor (ECMA 167r3 3/10.5) */ | 244 | /* Partition Descriptor (ECMA 167r3 3/10.5) */ |
245 | struct partitionDesc { | 245 | struct partitionDesc { |
246 | tag descTag; | 246 | struct tag descTag; |
247 | __le32 volDescSeqNum; | 247 | __le32 volDescSeqNum; |
248 | __le16 partitionFlags; | 248 | __le16 partitionFlags; |
249 | __le16 partitionNumber; | 249 | __le16 partitionNumber; |
250 | regid partitionContents; | 250 | struct regid partitionContents; |
251 | uint8_t partitionContentsUse[128]; | 251 | uint8_t partitionContentsUse[128]; |
252 | __le32 accessType; | 252 | __le32 accessType; |
253 | __le32 partitionStartingLocation; | 253 | __le32 partitionStartingLocation; |
254 | __le32 partitionLength; | 254 | __le32 partitionLength; |
255 | regid impIdent; | 255 | struct regid impIdent; |
256 | uint8_t impUse[128]; | 256 | uint8_t impUse[128]; |
257 | uint8_t reserved[156]; | 257 | uint8_t reserved[156]; |
258 | } __attribute__ ((packed)); | 258 | } __attribute__ ((packed)); |
@@ -278,19 +278,19 @@ struct partitionDesc { | |||
278 | 278 | ||
279 | /* Logical Volume Descriptor (ECMA 167r3 3/10.6) */ | 279 | /* Logical Volume Descriptor (ECMA 167r3 3/10.6) */ |
280 | struct logicalVolDesc { | 280 | struct logicalVolDesc { |
281 | tag descTag; | 281 | struct tag descTag; |
282 | __le32 volDescSeqNum; | 282 | __le32 volDescSeqNum; |
283 | charspec descCharSet; | 283 | struct charspec descCharSet; |
284 | dstring logicalVolIdent[128]; | 284 | dstring logicalVolIdent[128]; |
285 | __le32 logicalBlockSize; | 285 | __le32 logicalBlockSize; |
286 | regid domainIdent; | 286 | struct regid domainIdent; |
287 | uint8_t logicalVolContentsUse[16]; | 287 | uint8_t logicalVolContentsUse[16]; |
288 | __le32 mapTableLength; | 288 | __le32 mapTableLength; |
289 | __le32 numPartitionMaps; | 289 | __le32 numPartitionMaps; |
290 | regid impIdent; | 290 | struct regid impIdent; |
291 | uint8_t impUse[128]; | 291 | uint8_t impUse[128]; |
292 | extent_ad integritySeqExt; | 292 | struct extent_ad integritySeqExt; |
293 | uint8_t partitionMaps[0]; | 293 | uint8_t partitionMaps[0]; |
294 | } __attribute__ ((packed)); | 294 | } __attribute__ ((packed)); |
295 | 295 | ||
296 | /* Generic Partition Map (ECMA 167r3 3/10.7.1) */ | 296 | /* Generic Partition Map (ECMA 167r3 3/10.7.1) */ |
@@ -322,30 +322,30 @@ struct genericPartitionMap2 { | |||
322 | 322 | ||
323 | /* Unallocated Space Descriptor (ECMA 167r3 3/10.8) */ | 323 | /* Unallocated Space Descriptor (ECMA 167r3 3/10.8) */ |
324 | struct unallocSpaceDesc { | 324 | struct unallocSpaceDesc { |
325 | tag descTag; | 325 | struct tag descTag; |
326 | __le32 volDescSeqNum; | 326 | __le32 volDescSeqNum; |
327 | __le32 numAllocDescs; | 327 | __le32 numAllocDescs; |
328 | extent_ad allocDescs[0]; | 328 | struct extent_ad allocDescs[0]; |
329 | } __attribute__ ((packed)); | 329 | } __attribute__ ((packed)); |
330 | 330 | ||
331 | /* Terminating Descriptor (ECMA 167r3 3/10.9) */ | 331 | /* Terminating Descriptor (ECMA 167r3 3/10.9) */ |
332 | struct terminatingDesc { | 332 | struct terminatingDesc { |
333 | tag descTag; | 333 | struct tag descTag; |
334 | uint8_t reserved[496]; | 334 | uint8_t reserved[496]; |
335 | } __attribute__ ((packed)); | 335 | } __attribute__ ((packed)); |
336 | 336 | ||
337 | /* Logical Volume Integrity Descriptor (ECMA 167r3 3/10.10) */ | 337 | /* Logical Volume Integrity Descriptor (ECMA 167r3 3/10.10) */ |
338 | struct logicalVolIntegrityDesc { | 338 | struct logicalVolIntegrityDesc { |
339 | tag descTag; | 339 | struct tag descTag; |
340 | timestamp recordingDateAndTime; | 340 | struct timestamp recordingDateAndTime; |
341 | __le32 integrityType; | 341 | __le32 integrityType; |
342 | extent_ad nextIntegrityExt; | 342 | struct extent_ad nextIntegrityExt; |
343 | uint8_t logicalVolContentsUse[32]; | 343 | uint8_t logicalVolContentsUse[32]; |
344 | __le32 numOfPartitions; | 344 | __le32 numOfPartitions; |
345 | __le32 lengthOfImpUse; | 345 | __le32 lengthOfImpUse; |
346 | __le32 freeSpaceTable[0]; | 346 | __le32 freeSpaceTable[0]; |
347 | __le32 sizeTable[0]; | 347 | __le32 sizeTable[0]; |
348 | uint8_t impUse[0]; | 348 | uint8_t impUse[0]; |
349 | } __attribute__ ((packed)); | 349 | } __attribute__ ((packed)); |
350 | 350 | ||
351 | /* Integrity Type (ECMA 167r3 3/10.10.3) */ | 351 | /* Integrity Type (ECMA 167r3 3/10.10.3) */ |
@@ -353,50 +353,50 @@ struct logicalVolIntegrityDesc { | |||
353 | #define LVID_INTEGRITY_TYPE_CLOSE 0x00000001 | 353 | #define LVID_INTEGRITY_TYPE_CLOSE 0x00000001 |
354 | 354 | ||
355 | /* Recorded Address (ECMA 167r3 4/7.1) */ | 355 | /* Recorded Address (ECMA 167r3 4/7.1) */ |
356 | typedef struct { | 356 | struct lb_addr { |
357 | __le32 logicalBlockNum; | 357 | __le32 logicalBlockNum; |
358 | __le16 partitionReferenceNum; | 358 | __le16 partitionReferenceNum; |
359 | } __attribute__ ((packed)) lb_addr; | 359 | } __attribute__ ((packed)); |
360 | 360 | ||
361 | /* ... and its in-core analog */ | 361 | /* ... and its in-core analog */ |
362 | typedef struct { | 362 | struct kernel_lb_addr { |
363 | uint32_t logicalBlockNum; | 363 | uint32_t logicalBlockNum; |
364 | uint16_t partitionReferenceNum; | 364 | uint16_t partitionReferenceNum; |
365 | } kernel_lb_addr; | 365 | }; |
366 | 366 | ||
367 | /* Short Allocation Descriptor (ECMA 167r3 4/14.14.1) */ | 367 | /* Short Allocation Descriptor (ECMA 167r3 4/14.14.1) */ |
368 | typedef struct { | 368 | struct short_ad { |
369 | __le32 extLength; | 369 | __le32 extLength; |
370 | __le32 extPosition; | 370 | __le32 extPosition; |
371 | } __attribute__ ((packed)) short_ad; | 371 | } __attribute__ ((packed)); |
372 | 372 | ||
373 | /* Long Allocation Descriptor (ECMA 167r3 4/14.14.2) */ | 373 | /* Long Allocation Descriptor (ECMA 167r3 4/14.14.2) */ |
374 | typedef struct { | 374 | struct long_ad { |
375 | __le32 extLength; | 375 | __le32 extLength; |
376 | lb_addr extLocation; | 376 | struct lb_addr extLocation; |
377 | uint8_t impUse[6]; | 377 | uint8_t impUse[6]; |
378 | } __attribute__ ((packed)) long_ad; | 378 | } __attribute__ ((packed)); |
379 | 379 | ||
380 | typedef struct { | 380 | struct kernel_long_ad { |
381 | uint32_t extLength; | 381 | uint32_t extLength; |
382 | kernel_lb_addr extLocation; | 382 | struct kernel_lb_addr extLocation; |
383 | uint8_t impUse[6]; | 383 | uint8_t impUse[6]; |
384 | } kernel_long_ad; | 384 | }; |
385 | 385 | ||
386 | /* Extended Allocation Descriptor (ECMA 167r3 4/14.14.3) */ | 386 | /* Extended Allocation Descriptor (ECMA 167r3 4/14.14.3) */ |
387 | typedef struct { | 387 | struct ext_ad { |
388 | __le32 extLength; | 388 | __le32 extLength; |
389 | __le32 recordedLength; | 389 | __le32 recordedLength; |
390 | __le32 informationLength; | 390 | __le32 informationLength; |
391 | lb_addr extLocation; | 391 | struct lb_addr extLocation; |
392 | } __attribute__ ((packed)) ext_ad; | 392 | } __attribute__ ((packed)); |
393 | 393 | ||
394 | typedef struct { | 394 | struct kernel_ext_ad { |
395 | uint32_t extLength; | 395 | uint32_t extLength; |
396 | uint32_t recordedLength; | 396 | uint32_t recordedLength; |
397 | uint32_t informationLength; | 397 | uint32_t informationLength; |
398 | kernel_lb_addr extLocation; | 398 | struct kernel_lb_addr extLocation; |
399 | } kernel_ext_ad; | 399 | }; |
400 | 400 | ||
401 | /* Descriptor Tag (ECMA 167r3 4/7.2 - See 3/7.2) */ | 401 | /* Descriptor Tag (ECMA 167r3 4/7.2 - See 3/7.2) */ |
402 | 402 | ||
@@ -415,44 +415,44 @@ typedef struct { | |||
415 | 415 | ||
416 | /* File Set Descriptor (ECMA 167r3 4/14.1) */ | 416 | /* File Set Descriptor (ECMA 167r3 4/14.1) */ |
417 | struct fileSetDesc { | 417 | struct fileSetDesc { |
418 | tag descTag; | 418 | struct tag descTag; |
419 | timestamp recordingDateAndTime; | 419 | struct timestamp recordingDateAndTime; |
420 | __le16 interchangeLvl; | 420 | __le16 interchangeLvl; |
421 | __le16 maxInterchangeLvl; | 421 | __le16 maxInterchangeLvl; |
422 | __le32 charSetList; | 422 | __le32 charSetList; |
423 | __le32 maxCharSetList; | 423 | __le32 maxCharSetList; |
424 | __le32 fileSetNum; | 424 | __le32 fileSetNum; |
425 | __le32 fileSetDescNum; | 425 | __le32 fileSetDescNum; |
426 | charspec logicalVolIdentCharSet; | 426 | struct charspec logicalVolIdentCharSet; |
427 | dstring logicalVolIdent[128]; | 427 | dstring logicalVolIdent[128]; |
428 | charspec fileSetCharSet; | 428 | struct charspec fileSetCharSet; |
429 | dstring fileSetIdent[32]; | 429 | dstring fileSetIdent[32]; |
430 | dstring copyrightFileIdent[32]; | 430 | dstring copyrightFileIdent[32]; |
431 | dstring abstractFileIdent[32]; | 431 | dstring abstractFileIdent[32]; |
432 | long_ad rootDirectoryICB; | 432 | struct long_ad rootDirectoryICB; |
433 | regid domainIdent; | 433 | struct regid domainIdent; |
434 | long_ad nextExt; | 434 | struct long_ad nextExt; |
435 | long_ad streamDirectoryICB; | 435 | struct long_ad streamDirectoryICB; |
436 | uint8_t reserved[32]; | 436 | uint8_t reserved[32]; |
437 | } __attribute__ ((packed)); | 437 | } __attribute__ ((packed)); |
438 | 438 | ||
439 | /* Partition Header Descriptor (ECMA 167r3 4/14.3) */ | 439 | /* Partition Header Descriptor (ECMA 167r3 4/14.3) */ |
440 | struct partitionHeaderDesc { | 440 | struct partitionHeaderDesc { |
441 | short_ad unallocSpaceTable; | 441 | struct short_ad unallocSpaceTable; |
442 | short_ad unallocSpaceBitmap; | 442 | struct short_ad unallocSpaceBitmap; |
443 | short_ad partitionIntegrityTable; | 443 | struct short_ad partitionIntegrityTable; |
444 | short_ad freedSpaceTable; | 444 | struct short_ad freedSpaceTable; |
445 | short_ad freedSpaceBitmap; | 445 | struct short_ad freedSpaceBitmap; |
446 | uint8_t reserved[88]; | 446 | uint8_t reserved[88]; |
447 | } __attribute__ ((packed)); | 447 | } __attribute__ ((packed)); |
448 | 448 | ||
449 | /* File Identifier Descriptor (ECMA 167r3 4/14.4) */ | 449 | /* File Identifier Descriptor (ECMA 167r3 4/14.4) */ |
450 | struct fileIdentDesc { | 450 | struct fileIdentDesc { |
451 | tag descTag; | 451 | struct tag descTag; |
452 | __le16 fileVersionNum; | 452 | __le16 fileVersionNum; |
453 | uint8_t fileCharacteristics; | 453 | uint8_t fileCharacteristics; |
454 | uint8_t lengthFileIdent; | 454 | uint8_t lengthFileIdent; |
455 | long_ad icb; | 455 | struct long_ad icb; |
456 | __le16 lengthOfImpUse; | 456 | __le16 lengthOfImpUse; |
457 | uint8_t impUse[0]; | 457 | uint8_t impUse[0]; |
458 | uint8_t fileIdent[0]; | 458 | uint8_t fileIdent[0]; |
@@ -468,22 +468,22 @@ struct fileIdentDesc { | |||
468 | 468 | ||
469 | /* Allocation Ext Descriptor (ECMA 167r3 4/14.5) */ | 469 | /* Allocation Ext Descriptor (ECMA 167r3 4/14.5) */ |
470 | struct allocExtDesc { | 470 | struct allocExtDesc { |
471 | tag descTag; | 471 | struct tag descTag; |
472 | __le32 previousAllocExtLocation; | 472 | __le32 previousAllocExtLocation; |
473 | __le32 lengthAllocDescs; | 473 | __le32 lengthAllocDescs; |
474 | } __attribute__ ((packed)); | 474 | } __attribute__ ((packed)); |
475 | 475 | ||
476 | /* ICB Tag (ECMA 167r3 4/14.6) */ | 476 | /* ICB Tag (ECMA 167r3 4/14.6) */ |
477 | typedef struct { | 477 | struct icbtag { |
478 | __le32 priorRecordedNumDirectEntries; | 478 | __le32 priorRecordedNumDirectEntries; |
479 | __le16 strategyType; | 479 | __le16 strategyType; |
480 | __le16 strategyParameter; | 480 | __le16 strategyParameter; |
481 | __le16 numEntries; | 481 | __le16 numEntries; |
482 | uint8_t reserved; | 482 | uint8_t reserved; |
483 | uint8_t fileType; | 483 | uint8_t fileType; |
484 | lb_addr parentICBLocation; | 484 | struct lb_addr parentICBLocation; |
485 | __le16 flags; | 485 | __le16 flags; |
486 | } __attribute__ ((packed)) icbtag; | 486 | } __attribute__ ((packed)); |
487 | 487 | ||
488 | /* Strategy Type (ECMA 167r3 4/14.6.2) */ | 488 | /* Strategy Type (ECMA 167r3 4/14.6.2) */ |
489 | #define ICBTAG_STRATEGY_TYPE_UNDEF 0x0000 | 489 | #define ICBTAG_STRATEGY_TYPE_UNDEF 0x0000 |
@@ -528,41 +528,41 @@ typedef struct { | |||
528 | 528 | ||
529 | /* Indirect Entry (ECMA 167r3 4/14.7) */ | 529 | /* Indirect Entry (ECMA 167r3 4/14.7) */ |
530 | struct indirectEntry { | 530 | struct indirectEntry { |
531 | tag descTag; | 531 | struct tag descTag; |
532 | icbtag icbTag; | 532 | struct icbtag icbTag; |
533 | long_ad indirectICB; | 533 | struct long_ad indirectICB; |
534 | } __attribute__ ((packed)); | 534 | } __attribute__ ((packed)); |
535 | 535 | ||
536 | /* Terminal Entry (ECMA 167r3 4/14.8) */ | 536 | /* Terminal Entry (ECMA 167r3 4/14.8) */ |
537 | struct terminalEntry { | 537 | struct terminalEntry { |
538 | tag descTag; | 538 | struct tag descTag; |
539 | icbtag icbTag; | 539 | struct icbtag icbTag; |
540 | } __attribute__ ((packed)); | 540 | } __attribute__ ((packed)); |
541 | 541 | ||
542 | /* File Entry (ECMA 167r3 4/14.9) */ | 542 | /* File Entry (ECMA 167r3 4/14.9) */ |
543 | struct fileEntry { | 543 | struct fileEntry { |
544 | tag descTag; | 544 | struct tag descTag; |
545 | icbtag icbTag; | 545 | struct icbtag icbTag; |
546 | __le32 uid; | 546 | __le32 uid; |
547 | __le32 gid; | 547 | __le32 gid; |
548 | __le32 permissions; | 548 | __le32 permissions; |
549 | __le16 fileLinkCount; | 549 | __le16 fileLinkCount; |
550 | uint8_t recordFormat; | 550 | uint8_t recordFormat; |
551 | uint8_t recordDisplayAttr; | 551 | uint8_t recordDisplayAttr; |
552 | __le32 recordLength; | 552 | __le32 recordLength; |
553 | __le64 informationLength; | 553 | __le64 informationLength; |
554 | __le64 logicalBlocksRecorded; | 554 | __le64 logicalBlocksRecorded; |
555 | timestamp accessTime; | 555 | struct timestamp accessTime; |
556 | timestamp modificationTime; | 556 | struct timestamp modificationTime; |
557 | timestamp attrTime; | 557 | struct timestamp attrTime; |
558 | __le32 checkpoint; | 558 | __le32 checkpoint; |
559 | long_ad extendedAttrICB; | 559 | struct long_ad extendedAttrICB; |
560 | regid impIdent; | 560 | struct regid impIdent; |
561 | __le64 uniqueID; | 561 | __le64 uniqueID; |
562 | __le32 lengthExtendedAttr; | 562 | __le32 lengthExtendedAttr; |
563 | __le32 lengthAllocDescs; | 563 | __le32 lengthAllocDescs; |
564 | uint8_t extendedAttr[0]; | 564 | uint8_t extendedAttr[0]; |
565 | uint8_t allocDescs[0]; | 565 | uint8_t allocDescs[0]; |
566 | } __attribute__ ((packed)); | 566 | } __attribute__ ((packed)); |
567 | 567 | ||
568 | /* Permissions (ECMA 167r3 4/14.9.5) */ | 568 | /* Permissions (ECMA 167r3 4/14.9.5) */ |
@@ -604,7 +604,7 @@ struct fileEntry { | |||
604 | 604 | ||
605 | /* Extended Attribute Header Descriptor (ECMA 167r3 4/14.10.1) */ | 605 | /* Extended Attribute Header Descriptor (ECMA 167r3 4/14.10.1) */ |
606 | struct extendedAttrHeaderDesc { | 606 | struct extendedAttrHeaderDesc { |
607 | tag descTag; | 607 | struct tag descTag; |
608 | __le32 impAttrLocation; | 608 | __le32 impAttrLocation; |
609 | __le32 appAttrLocation; | 609 | __le32 appAttrLocation; |
610 | } __attribute__ ((packed)); | 610 | } __attribute__ ((packed)); |
@@ -687,7 +687,7 @@ struct impUseExtAttr { | |||
687 | uint8_t reserved[3]; | 687 | uint8_t reserved[3]; |
688 | __le32 attrLength; | 688 | __le32 attrLength; |
689 | __le32 impUseLength; | 689 | __le32 impUseLength; |
690 | regid impIdent; | 690 | struct regid impIdent; |
691 | uint8_t impUse[0]; | 691 | uint8_t impUse[0]; |
692 | } __attribute__ ((packed)); | 692 | } __attribute__ ((packed)); |
693 | 693 | ||
@@ -698,7 +698,7 @@ struct appUseExtAttr { | |||
698 | uint8_t reserved[3]; | 698 | uint8_t reserved[3]; |
699 | __le32 attrLength; | 699 | __le32 attrLength; |
700 | __le32 appUseLength; | 700 | __le32 appUseLength; |
701 | regid appIdent; | 701 | struct regid appIdent; |
702 | uint8_t appUse[0]; | 702 | uint8_t appUse[0]; |
703 | } __attribute__ ((packed)); | 703 | } __attribute__ ((packed)); |
704 | 704 | ||
@@ -712,15 +712,15 @@ struct appUseExtAttr { | |||
712 | 712 | ||
713 | /* Unallocated Space Entry (ECMA 167r3 4/14.11) */ | 713 | /* Unallocated Space Entry (ECMA 167r3 4/14.11) */ |
714 | struct unallocSpaceEntry { | 714 | struct unallocSpaceEntry { |
715 | tag descTag; | 715 | struct tag descTag; |
716 | icbtag icbTag; | 716 | struct icbtag icbTag; |
717 | __le32 lengthAllocDescs; | 717 | __le32 lengthAllocDescs; |
718 | uint8_t allocDescs[0]; | 718 | uint8_t allocDescs[0]; |
719 | } __attribute__ ((packed)); | 719 | } __attribute__ ((packed)); |
720 | 720 | ||
721 | /* Space Bitmap Descriptor (ECMA 167r3 4/14.12) */ | 721 | /* Space Bitmap Descriptor (ECMA 167r3 4/14.12) */ |
722 | struct spaceBitmapDesc { | 722 | struct spaceBitmapDesc { |
723 | tag descTag; | 723 | struct tag descTag; |
724 | __le32 numOfBits; | 724 | __le32 numOfBits; |
725 | __le32 numOfBytes; | 725 | __le32 numOfBytes; |
726 | uint8_t bitmap[0]; | 726 | uint8_t bitmap[0]; |
@@ -728,13 +728,13 @@ struct spaceBitmapDesc { | |||
728 | 728 | ||
729 | /* Partition Integrity Entry (ECMA 167r3 4/14.13) */ | 729 | /* Partition Integrity Entry (ECMA 167r3 4/14.13) */ |
730 | struct partitionIntegrityEntry { | 730 | struct partitionIntegrityEntry { |
731 | tag descTag; | 731 | struct tag descTag; |
732 | icbtag icbTag; | 732 | struct icbtag icbTag; |
733 | timestamp recordingDateAndTime; | 733 | struct timestamp recordingDateAndTime; |
734 | uint8_t integrityType; | 734 | uint8_t integrityType; |
735 | uint8_t reserved[175]; | 735 | uint8_t reserved[175]; |
736 | regid impIdent; | 736 | struct regid impIdent; |
737 | uint8_t impUse[256]; | 737 | uint8_t impUse[256]; |
738 | } __attribute__ ((packed)); | 738 | } __attribute__ ((packed)); |
739 | 739 | ||
740 | /* Short Allocation Descriptor (ECMA 167r3 4/14.14.1) */ | 740 | /* Short Allocation Descriptor (ECMA 167r3 4/14.14.1) */ |
@@ -765,32 +765,32 @@ struct pathComponent { | |||
765 | 765 | ||
766 | /* File Entry (ECMA 167r3 4/14.17) */ | 766 | /* File Entry (ECMA 167r3 4/14.17) */ |
767 | struct extendedFileEntry { | 767 | struct extendedFileEntry { |
768 | tag descTag; | 768 | struct tag descTag; |
769 | icbtag icbTag; | 769 | struct icbtag icbTag; |
770 | __le32 uid; | 770 | __le32 uid; |
771 | __le32 gid; | 771 | __le32 gid; |
772 | __le32 permissions; | 772 | __le32 permissions; |
773 | __le16 fileLinkCount; | 773 | __le16 fileLinkCount; |
774 | uint8_t recordFormat; | 774 | uint8_t recordFormat; |
775 | uint8_t recordDisplayAttr; | 775 | uint8_t recordDisplayAttr; |
776 | __le32 recordLength; | 776 | __le32 recordLength; |
777 | __le64 informationLength; | 777 | __le64 informationLength; |
778 | __le64 objectSize; | 778 | __le64 objectSize; |
779 | __le64 logicalBlocksRecorded; | 779 | __le64 logicalBlocksRecorded; |
780 | timestamp accessTime; | 780 | struct timestamp accessTime; |
781 | timestamp modificationTime; | 781 | struct timestamp modificationTime; |
782 | timestamp createTime; | 782 | struct timestamp createTime; |
783 | timestamp attrTime; | 783 | struct timestamp attrTime; |
784 | __le32 checkpoint; | 784 | __le32 checkpoint; |
785 | __le32 reserved; | 785 | __le32 reserved; |
786 | long_ad extendedAttrICB; | 786 | struct long_ad extendedAttrICB; |
787 | long_ad streamDirectoryICB; | 787 | struct long_ad streamDirectoryICB; |
788 | regid impIdent; | 788 | struct regid impIdent; |
789 | __le64 uniqueID; | 789 | __le64 uniqueID; |
790 | __le32 lengthExtendedAttr; | 790 | __le32 lengthExtendedAttr; |
791 | __le32 lengthAllocDescs; | 791 | __le32 lengthAllocDescs; |
792 | uint8_t extendedAttr[0]; | 792 | uint8_t extendedAttr[0]; |
793 | uint8_t allocDescs[0]; | 793 | uint8_t allocDescs[0]; |
794 | } __attribute__ ((packed)); | 794 | } __attribute__ ((packed)); |
795 | 795 | ||
796 | #endif /* _ECMA_167_H */ | 796 | #endif /* _ECMA_167_H */ |
diff --git a/fs/udf/inode.c b/fs/udf/inode.c index 30ebde490f7f..d086479a7d0e 100644 --- a/fs/udf/inode.c +++ b/fs/udf/inode.c | |||
@@ -55,15 +55,15 @@ static int udf_alloc_i_data(struct inode *inode, size_t size); | |||
55 | static struct buffer_head *inode_getblk(struct inode *, sector_t, int *, | 55 | static struct buffer_head *inode_getblk(struct inode *, sector_t, int *, |
56 | sector_t *, int *); | 56 | sector_t *, int *); |
57 | static int8_t udf_insert_aext(struct inode *, struct extent_position, | 57 | static int8_t udf_insert_aext(struct inode *, struct extent_position, |
58 | kernel_lb_addr, uint32_t); | 58 | struct kernel_lb_addr, uint32_t); |
59 | static void udf_split_extents(struct inode *, int *, int, int, | 59 | static void udf_split_extents(struct inode *, int *, int, int, |
60 | kernel_long_ad[EXTENT_MERGE_SIZE], int *); | 60 | struct kernel_long_ad[EXTENT_MERGE_SIZE], int *); |
61 | static void udf_prealloc_extents(struct inode *, int, int, | 61 | static void udf_prealloc_extents(struct inode *, int, int, |
62 | kernel_long_ad[EXTENT_MERGE_SIZE], int *); | 62 | struct kernel_long_ad[EXTENT_MERGE_SIZE], int *); |
63 | static void udf_merge_extents(struct inode *, | 63 | static void udf_merge_extents(struct inode *, |
64 | kernel_long_ad[EXTENT_MERGE_SIZE], int *); | 64 | struct kernel_long_ad[EXTENT_MERGE_SIZE], int *); |
65 | static void udf_update_extents(struct inode *, | 65 | static void udf_update_extents(struct inode *, |
66 | kernel_long_ad[EXTENT_MERGE_SIZE], int, int, | 66 | struct kernel_long_ad[EXTENT_MERGE_SIZE], int, int, |
67 | struct extent_position *); | 67 | struct extent_position *); |
68 | static int udf_get_block(struct inode *, sector_t, struct buffer_head *, int); | 68 | static int udf_get_block(struct inode *, sector_t, struct buffer_head *, int); |
69 | 69 | ||
@@ -200,7 +200,7 @@ struct buffer_head *udf_expand_dir_adinicb(struct inode *inode, int *block, | |||
200 | { | 200 | { |
201 | int newblock; | 201 | int newblock; |
202 | struct buffer_head *dbh = NULL; | 202 | struct buffer_head *dbh = NULL; |
203 | kernel_lb_addr eloc; | 203 | struct kernel_lb_addr eloc; |
204 | uint32_t elen; | 204 | uint32_t elen; |
205 | uint8_t alloctype; | 205 | uint8_t alloctype; |
206 | struct extent_position epos; | 206 | struct extent_position epos; |
@@ -359,12 +359,12 @@ static struct buffer_head *udf_getblk(struct inode *inode, long block, | |||
359 | 359 | ||
360 | /* Extend the file by 'blocks' blocks, return the number of extents added */ | 360 | /* Extend the file by 'blocks' blocks, return the number of extents added */ |
361 | int udf_extend_file(struct inode *inode, struct extent_position *last_pos, | 361 | int udf_extend_file(struct inode *inode, struct extent_position *last_pos, |
362 | kernel_long_ad *last_ext, sector_t blocks) | 362 | struct kernel_long_ad *last_ext, sector_t blocks) |
363 | { | 363 | { |
364 | sector_t add; | 364 | sector_t add; |
365 | int count = 0, fake = !(last_ext->extLength & UDF_EXTENT_LENGTH_MASK); | 365 | int count = 0, fake = !(last_ext->extLength & UDF_EXTENT_LENGTH_MASK); |
366 | struct super_block *sb = inode->i_sb; | 366 | struct super_block *sb = inode->i_sb; |
367 | kernel_lb_addr prealloc_loc = {}; | 367 | struct kernel_lb_addr prealloc_loc = {}; |
368 | int prealloc_len = 0; | 368 | int prealloc_len = 0; |
369 | struct udf_inode_info *iinfo; | 369 | struct udf_inode_info *iinfo; |
370 | 370 | ||
@@ -459,9 +459,9 @@ out: | |||
459 | 459 | ||
460 | /* last_pos should point to the last written extent... */ | 460 | /* last_pos should point to the last written extent... */ |
461 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) | 461 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) |
462 | last_pos->offset -= sizeof(short_ad); | 462 | last_pos->offset -= sizeof(struct short_ad); |
463 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) | 463 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) |
464 | last_pos->offset -= sizeof(long_ad); | 464 | last_pos->offset -= sizeof(struct long_ad); |
465 | else | 465 | else |
466 | return -1; | 466 | return -1; |
467 | 467 | ||
@@ -473,11 +473,11 @@ static struct buffer_head *inode_getblk(struct inode *inode, sector_t block, | |||
473 | { | 473 | { |
474 | static sector_t last_block; | 474 | static sector_t last_block; |
475 | struct buffer_head *result = NULL; | 475 | struct buffer_head *result = NULL; |
476 | kernel_long_ad laarr[EXTENT_MERGE_SIZE]; | 476 | struct kernel_long_ad laarr[EXTENT_MERGE_SIZE]; |
477 | struct extent_position prev_epos, cur_epos, next_epos; | 477 | struct extent_position prev_epos, cur_epos, next_epos; |
478 | int count = 0, startnum = 0, endnum = 0; | 478 | int count = 0, startnum = 0, endnum = 0; |
479 | uint32_t elen = 0, tmpelen; | 479 | uint32_t elen = 0, tmpelen; |
480 | kernel_lb_addr eloc, tmpeloc; | 480 | struct kernel_lb_addr eloc, tmpeloc; |
481 | int c = 1; | 481 | int c = 1; |
482 | loff_t lbcount = 0, b_off = 0; | 482 | loff_t lbcount = 0, b_off = 0; |
483 | uint32_t newblocknum, newblock; | 483 | uint32_t newblocknum, newblock; |
@@ -572,7 +572,7 @@ static struct buffer_head *inode_getblk(struct inode *inode, sector_t block, | |||
572 | } else { | 572 | } else { |
573 | /* Create a fake extent when there's not one */ | 573 | /* Create a fake extent when there's not one */ |
574 | memset(&laarr[0].extLocation, 0x00, | 574 | memset(&laarr[0].extLocation, 0x00, |
575 | sizeof(kernel_lb_addr)); | 575 | sizeof(struct kernel_lb_addr)); |
576 | laarr[0].extLength = EXT_NOT_RECORDED_NOT_ALLOCATED; | 576 | laarr[0].extLength = EXT_NOT_RECORDED_NOT_ALLOCATED; |
577 | /* Will udf_extend_file() create real extent from | 577 | /* Will udf_extend_file() create real extent from |
578 | a fake one? */ | 578 | a fake one? */ |
@@ -602,7 +602,7 @@ static struct buffer_head *inode_getblk(struct inode *inode, sector_t block, | |||
602 | laarr[c].extLength = EXT_NOT_RECORDED_NOT_ALLOCATED | | 602 | laarr[c].extLength = EXT_NOT_RECORDED_NOT_ALLOCATED | |
603 | inode->i_sb->s_blocksize; | 603 | inode->i_sb->s_blocksize; |
604 | memset(&laarr[c].extLocation, 0x00, | 604 | memset(&laarr[c].extLocation, 0x00, |
605 | sizeof(kernel_lb_addr)); | 605 | sizeof(struct kernel_lb_addr)); |
606 | count++; | 606 | count++; |
607 | endnum++; | 607 | endnum++; |
608 | } | 608 | } |
@@ -699,7 +699,7 @@ static struct buffer_head *inode_getblk(struct inode *inode, sector_t block, | |||
699 | 699 | ||
700 | static void udf_split_extents(struct inode *inode, int *c, int offset, | 700 | static void udf_split_extents(struct inode *inode, int *c, int offset, |
701 | int newblocknum, | 701 | int newblocknum, |
702 | kernel_long_ad laarr[EXTENT_MERGE_SIZE], | 702 | struct kernel_long_ad laarr[EXTENT_MERGE_SIZE], |
703 | int *endnum) | 703 | int *endnum) |
704 | { | 704 | { |
705 | unsigned long blocksize = inode->i_sb->s_blocksize; | 705 | unsigned long blocksize = inode->i_sb->s_blocksize; |
@@ -763,7 +763,7 @@ static void udf_split_extents(struct inode *inode, int *c, int offset, | |||
763 | } | 763 | } |
764 | 764 | ||
765 | static void udf_prealloc_extents(struct inode *inode, int c, int lastblock, | 765 | static void udf_prealloc_extents(struct inode *inode, int c, int lastblock, |
766 | kernel_long_ad laarr[EXTENT_MERGE_SIZE], | 766 | struct kernel_long_ad laarr[EXTENT_MERGE_SIZE], |
767 | int *endnum) | 767 | int *endnum) |
768 | { | 768 | { |
769 | int start, length = 0, currlength = 0, i; | 769 | int start, length = 0, currlength = 0, i; |
@@ -817,7 +817,7 @@ static void udf_prealloc_extents(struct inode *inode, int c, int lastblock, | |||
817 | inode->i_sb->s_blocksize_bits); | 817 | inode->i_sb->s_blocksize_bits); |
818 | else { | 818 | else { |
819 | memmove(&laarr[c + 2], &laarr[c + 1], | 819 | memmove(&laarr[c + 2], &laarr[c + 1], |
820 | sizeof(long_ad) * (*endnum - (c + 1))); | 820 | sizeof(struct long_ad) * (*endnum - (c + 1))); |
821 | (*endnum)++; | 821 | (*endnum)++; |
822 | laarr[c + 1].extLocation.logicalBlockNum = next; | 822 | laarr[c + 1].extLocation.logicalBlockNum = next; |
823 | laarr[c + 1].extLocation.partitionReferenceNum = | 823 | laarr[c + 1].extLocation.partitionReferenceNum = |
@@ -846,7 +846,7 @@ static void udf_prealloc_extents(struct inode *inode, int c, int lastblock, | |||
846 | if (*endnum > (i + 1)) | 846 | if (*endnum > (i + 1)) |
847 | memmove(&laarr[i], | 847 | memmove(&laarr[i], |
848 | &laarr[i + 1], | 848 | &laarr[i + 1], |
849 | sizeof(long_ad) * | 849 | sizeof(struct long_ad) * |
850 | (*endnum - (i + 1))); | 850 | (*endnum - (i + 1))); |
851 | i--; | 851 | i--; |
852 | (*endnum)--; | 852 | (*endnum)--; |
@@ -859,7 +859,7 @@ static void udf_prealloc_extents(struct inode *inode, int c, int lastblock, | |||
859 | } | 859 | } |
860 | 860 | ||
861 | static void udf_merge_extents(struct inode *inode, | 861 | static void udf_merge_extents(struct inode *inode, |
862 | kernel_long_ad laarr[EXTENT_MERGE_SIZE], | 862 | struct kernel_long_ad laarr[EXTENT_MERGE_SIZE], |
863 | int *endnum) | 863 | int *endnum) |
864 | { | 864 | { |
865 | int i; | 865 | int i; |
@@ -867,8 +867,8 @@ static void udf_merge_extents(struct inode *inode, | |||
867 | unsigned char blocksize_bits = inode->i_sb->s_blocksize_bits; | 867 | unsigned char blocksize_bits = inode->i_sb->s_blocksize_bits; |
868 | 868 | ||
869 | for (i = 0; i < (*endnum - 1); i++) { | 869 | for (i = 0; i < (*endnum - 1); i++) { |
870 | kernel_long_ad *li /*l[i]*/ = &laarr[i]; | 870 | struct kernel_long_ad *li /*l[i]*/ = &laarr[i]; |
871 | kernel_long_ad *lip1 /*l[i plus 1]*/ = &laarr[i + 1]; | 871 | struct kernel_long_ad *lip1 /*l[i plus 1]*/ = &laarr[i + 1]; |
872 | 872 | ||
873 | if (((li->extLength >> 30) == (lip1->extLength >> 30)) && | 873 | if (((li->extLength >> 30) == (lip1->extLength >> 30)) && |
874 | (((li->extLength >> 30) == | 874 | (((li->extLength >> 30) == |
@@ -902,7 +902,7 @@ static void udf_merge_extents(struct inode *inode, | |||
902 | blocksize - 1) & ~(blocksize - 1)); | 902 | blocksize - 1) & ~(blocksize - 1)); |
903 | if (*endnum > (i + 2)) | 903 | if (*endnum > (i + 2)) |
904 | memmove(&laarr[i + 1], &laarr[i + 2], | 904 | memmove(&laarr[i + 1], &laarr[i + 2], |
905 | sizeof(long_ad) * | 905 | sizeof(struct long_ad) * |
906 | (*endnum - (i + 2))); | 906 | (*endnum - (i + 2))); |
907 | i--; | 907 | i--; |
908 | (*endnum)--; | 908 | (*endnum)--; |
@@ -937,7 +937,7 @@ static void udf_merge_extents(struct inode *inode, | |||
937 | blocksize - 1) & ~(blocksize - 1)); | 937 | blocksize - 1) & ~(blocksize - 1)); |
938 | if (*endnum > (i + 2)) | 938 | if (*endnum > (i + 2)) |
939 | memmove(&laarr[i + 1], &laarr[i + 2], | 939 | memmove(&laarr[i + 1], &laarr[i + 2], |
940 | sizeof(long_ad) * | 940 | sizeof(struct long_ad) * |
941 | (*endnum - (i + 2))); | 941 | (*endnum - (i + 2))); |
942 | i--; | 942 | i--; |
943 | (*endnum)--; | 943 | (*endnum)--; |
@@ -959,12 +959,12 @@ static void udf_merge_extents(struct inode *inode, | |||
959 | } | 959 | } |
960 | 960 | ||
961 | static void udf_update_extents(struct inode *inode, | 961 | static void udf_update_extents(struct inode *inode, |
962 | kernel_long_ad laarr[EXTENT_MERGE_SIZE], | 962 | struct kernel_long_ad laarr[EXTENT_MERGE_SIZE], |
963 | int startnum, int endnum, | 963 | int startnum, int endnum, |
964 | struct extent_position *epos) | 964 | struct extent_position *epos) |
965 | { | 965 | { |
966 | int start = 0, i; | 966 | int start = 0, i; |
967 | kernel_lb_addr tmploc; | 967 | struct kernel_lb_addr tmploc; |
968 | uint32_t tmplen; | 968 | uint32_t tmplen; |
969 | 969 | ||
970 | if (startnum > endnum) { | 970 | if (startnum > endnum) { |
@@ -1102,7 +1102,7 @@ static void __udf_read_inode(struct inode *inode) | |||
1102 | &ident); | 1102 | &ident); |
1103 | if (ident == TAG_IDENT_IE && ibh) { | 1103 | if (ident == TAG_IDENT_IE && ibh) { |
1104 | struct buffer_head *nbh = NULL; | 1104 | struct buffer_head *nbh = NULL; |
1105 | kernel_lb_addr loc; | 1105 | struct kernel_lb_addr loc; |
1106 | struct indirectEntry *ie; | 1106 | struct indirectEntry *ie; |
1107 | 1107 | ||
1108 | ie = (struct indirectEntry *)ibh->b_data; | 1108 | ie = (struct indirectEntry *)ibh->b_data; |
@@ -1115,7 +1115,7 @@ static void __udf_read_inode(struct inode *inode) | |||
1115 | ident == TAG_IDENT_EFE) { | 1115 | ident == TAG_IDENT_EFE) { |
1116 | memcpy(&iinfo->i_location, | 1116 | memcpy(&iinfo->i_location, |
1117 | &loc, | 1117 | &loc, |
1118 | sizeof(kernel_lb_addr)); | 1118 | sizeof(struct kernel_lb_addr)); |
1119 | brelse(bh); | 1119 | brelse(bh); |
1120 | brelse(ibh); | 1120 | brelse(ibh); |
1121 | brelse(nbh); | 1121 | brelse(nbh); |
@@ -1416,13 +1416,13 @@ static int udf_update_inode(struct inode *inode, int do_sync) | |||
1416 | iinfo->i_ext.i_data, inode->i_sb->s_blocksize - | 1416 | iinfo->i_ext.i_data, inode->i_sb->s_blocksize - |
1417 | sizeof(struct unallocSpaceEntry)); | 1417 | sizeof(struct unallocSpaceEntry)); |
1418 | crclen = sizeof(struct unallocSpaceEntry) + | 1418 | crclen = sizeof(struct unallocSpaceEntry) + |
1419 | iinfo->i_lenAlloc - sizeof(tag); | 1419 | iinfo->i_lenAlloc - sizeof(struct tag); |
1420 | use->descTag.tagLocation = cpu_to_le32( | 1420 | use->descTag.tagLocation = cpu_to_le32( |
1421 | iinfo->i_location. | 1421 | iinfo->i_location. |
1422 | logicalBlockNum); | 1422 | logicalBlockNum); |
1423 | use->descTag.descCRCLength = cpu_to_le16(crclen); | 1423 | use->descTag.descCRCLength = cpu_to_le16(crclen); |
1424 | use->descTag.descCRC = cpu_to_le16(crc_itu_t(0, (char *)use + | 1424 | use->descTag.descCRC = cpu_to_le16(crc_itu_t(0, (char *)use + |
1425 | sizeof(tag), | 1425 | sizeof(struct tag), |
1426 | crclen)); | 1426 | crclen)); |
1427 | use->descTag.tagChecksum = udf_tag_checksum(&use->descTag); | 1427 | use->descTag.tagChecksum = udf_tag_checksum(&use->descTag); |
1428 | 1428 | ||
@@ -1459,23 +1459,23 @@ static int udf_update_inode(struct inode *inode, int do_sync) | |||
1459 | fe->informationLength = cpu_to_le64(inode->i_size); | 1459 | fe->informationLength = cpu_to_le64(inode->i_size); |
1460 | 1460 | ||
1461 | if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) { | 1461 | if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) { |
1462 | regid *eid; | 1462 | struct regid *eid; |
1463 | struct deviceSpec *dsea = | 1463 | struct deviceSpec *dsea = |
1464 | (struct deviceSpec *)udf_get_extendedattr(inode, 12, 1); | 1464 | (struct deviceSpec *)udf_get_extendedattr(inode, 12, 1); |
1465 | if (!dsea) { | 1465 | if (!dsea) { |
1466 | dsea = (struct deviceSpec *) | 1466 | dsea = (struct deviceSpec *) |
1467 | udf_add_extendedattr(inode, | 1467 | udf_add_extendedattr(inode, |
1468 | sizeof(struct deviceSpec) + | 1468 | sizeof(struct deviceSpec) + |
1469 | sizeof(regid), 12, 0x3); | 1469 | sizeof(struct regid), 12, 0x3); |
1470 | dsea->attrType = cpu_to_le32(12); | 1470 | dsea->attrType = cpu_to_le32(12); |
1471 | dsea->attrSubtype = 1; | 1471 | dsea->attrSubtype = 1; |
1472 | dsea->attrLength = cpu_to_le32( | 1472 | dsea->attrLength = cpu_to_le32( |
1473 | sizeof(struct deviceSpec) + | 1473 | sizeof(struct deviceSpec) + |
1474 | sizeof(regid)); | 1474 | sizeof(struct regid)); |
1475 | dsea->impUseLength = cpu_to_le32(sizeof(regid)); | 1475 | dsea->impUseLength = cpu_to_le32(sizeof(struct regid)); |
1476 | } | 1476 | } |
1477 | eid = (regid *)dsea->impUse; | 1477 | eid = (struct regid *)dsea->impUse; |
1478 | memset(eid, 0, sizeof(regid)); | 1478 | memset(eid, 0, sizeof(struct regid)); |
1479 | strcpy(eid->ident, UDF_ID_DEVELOPER); | 1479 | strcpy(eid->ident, UDF_ID_DEVELOPER); |
1480 | eid->identSuffix[0] = UDF_OS_CLASS_UNIX; | 1480 | eid->identSuffix[0] = UDF_OS_CLASS_UNIX; |
1481 | eid->identSuffix[1] = UDF_OS_ID_LINUX; | 1481 | eid->identSuffix[1] = UDF_OS_ID_LINUX; |
@@ -1494,7 +1494,7 @@ static int udf_update_inode(struct inode *inode, int do_sync) | |||
1494 | udf_time_to_disk_stamp(&fe->accessTime, inode->i_atime); | 1494 | udf_time_to_disk_stamp(&fe->accessTime, inode->i_atime); |
1495 | udf_time_to_disk_stamp(&fe->modificationTime, inode->i_mtime); | 1495 | udf_time_to_disk_stamp(&fe->modificationTime, inode->i_mtime); |
1496 | udf_time_to_disk_stamp(&fe->attrTime, inode->i_ctime); | 1496 | udf_time_to_disk_stamp(&fe->attrTime, inode->i_ctime); |
1497 | memset(&(fe->impIdent), 0, sizeof(regid)); | 1497 | memset(&(fe->impIdent), 0, sizeof(struct regid)); |
1498 | strcpy(fe->impIdent.ident, UDF_ID_DEVELOPER); | 1498 | strcpy(fe->impIdent.ident, UDF_ID_DEVELOPER); |
1499 | fe->impIdent.identSuffix[0] = UDF_OS_CLASS_UNIX; | 1499 | fe->impIdent.identSuffix[0] = UDF_OS_CLASS_UNIX; |
1500 | fe->impIdent.identSuffix[1] = UDF_OS_ID_LINUX; | 1500 | fe->impIdent.identSuffix[1] = UDF_OS_ID_LINUX; |
@@ -1533,7 +1533,7 @@ static int udf_update_inode(struct inode *inode, int do_sync) | |||
1533 | udf_time_to_disk_stamp(&efe->createTime, iinfo->i_crtime); | 1533 | udf_time_to_disk_stamp(&efe->createTime, iinfo->i_crtime); |
1534 | udf_time_to_disk_stamp(&efe->attrTime, inode->i_ctime); | 1534 | udf_time_to_disk_stamp(&efe->attrTime, inode->i_ctime); |
1535 | 1535 | ||
1536 | memset(&(efe->impIdent), 0, sizeof(regid)); | 1536 | memset(&(efe->impIdent), 0, sizeof(struct regid)); |
1537 | strcpy(efe->impIdent.ident, UDF_ID_DEVELOPER); | 1537 | strcpy(efe->impIdent.ident, UDF_ID_DEVELOPER); |
1538 | efe->impIdent.identSuffix[0] = UDF_OS_CLASS_UNIX; | 1538 | efe->impIdent.identSuffix[0] = UDF_OS_CLASS_UNIX; |
1539 | efe->impIdent.identSuffix[1] = UDF_OS_ID_LINUX; | 1539 | efe->impIdent.identSuffix[1] = UDF_OS_ID_LINUX; |
@@ -1584,9 +1584,9 @@ static int udf_update_inode(struct inode *inode, int do_sync) | |||
1584 | fe->descTag.tagLocation = cpu_to_le32( | 1584 | fe->descTag.tagLocation = cpu_to_le32( |
1585 | iinfo->i_location.logicalBlockNum); | 1585 | iinfo->i_location.logicalBlockNum); |
1586 | crclen += iinfo->i_lenEAttr + iinfo->i_lenAlloc - | 1586 | crclen += iinfo->i_lenEAttr + iinfo->i_lenAlloc - |
1587 | sizeof(tag); | 1587 | sizeof(struct tag); |
1588 | fe->descTag.descCRCLength = cpu_to_le16(crclen); | 1588 | fe->descTag.descCRCLength = cpu_to_le16(crclen); |
1589 | fe->descTag.descCRC = cpu_to_le16(crc_itu_t(0, (char *)fe + sizeof(tag), | 1589 | fe->descTag.descCRC = cpu_to_le16(crc_itu_t(0, (char *)fe + sizeof(struct tag), |
1590 | crclen)); | 1590 | crclen)); |
1591 | fe->descTag.tagChecksum = udf_tag_checksum(&fe->descTag); | 1591 | fe->descTag.tagChecksum = udf_tag_checksum(&fe->descTag); |
1592 | 1592 | ||
@@ -1606,7 +1606,7 @@ static int udf_update_inode(struct inode *inode, int do_sync) | |||
1606 | return err; | 1606 | return err; |
1607 | } | 1607 | } |
1608 | 1608 | ||
1609 | struct inode *udf_iget(struct super_block *sb, kernel_lb_addr ino) | 1609 | struct inode *udf_iget(struct super_block *sb, struct kernel_lb_addr ino) |
1610 | { | 1610 | { |
1611 | unsigned long block = udf_get_lb_pblock(sb, ino, 0); | 1611 | unsigned long block = udf_get_lb_pblock(sb, ino, 0); |
1612 | struct inode *inode = iget_locked(sb, block); | 1612 | struct inode *inode = iget_locked(sb, block); |
@@ -1615,7 +1615,7 @@ struct inode *udf_iget(struct super_block *sb, kernel_lb_addr ino) | |||
1615 | return NULL; | 1615 | return NULL; |
1616 | 1616 | ||
1617 | if (inode->i_state & I_NEW) { | 1617 | if (inode->i_state & I_NEW) { |
1618 | memcpy(&UDF_I(inode)->i_location, &ino, sizeof(kernel_lb_addr)); | 1618 | memcpy(&UDF_I(inode)->i_location, &ino, sizeof(struct kernel_lb_addr)); |
1619 | __udf_read_inode(inode); | 1619 | __udf_read_inode(inode); |
1620 | unlock_new_inode(inode); | 1620 | unlock_new_inode(inode); |
1621 | } | 1621 | } |
@@ -1639,11 +1639,11 @@ struct inode *udf_iget(struct super_block *sb, kernel_lb_addr ino) | |||
1639 | } | 1639 | } |
1640 | 1640 | ||
1641 | int8_t udf_add_aext(struct inode *inode, struct extent_position *epos, | 1641 | int8_t udf_add_aext(struct inode *inode, struct extent_position *epos, |
1642 | kernel_lb_addr eloc, uint32_t elen, int inc) | 1642 | struct kernel_lb_addr eloc, uint32_t elen, int inc) |
1643 | { | 1643 | { |
1644 | int adsize; | 1644 | int adsize; |
1645 | short_ad *sad = NULL; | 1645 | struct short_ad *sad = NULL; |
1646 | long_ad *lad = NULL; | 1646 | struct long_ad *lad = NULL; |
1647 | struct allocExtDesc *aed; | 1647 | struct allocExtDesc *aed; |
1648 | int8_t etype; | 1648 | int8_t etype; |
1649 | uint8_t *ptr; | 1649 | uint8_t *ptr; |
@@ -1657,9 +1657,9 @@ int8_t udf_add_aext(struct inode *inode, struct extent_position *epos, | |||
1657 | ptr = epos->bh->b_data + epos->offset; | 1657 | ptr = epos->bh->b_data + epos->offset; |
1658 | 1658 | ||
1659 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) | 1659 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) |
1660 | adsize = sizeof(short_ad); | 1660 | adsize = sizeof(struct short_ad); |
1661 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) | 1661 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) |
1662 | adsize = sizeof(long_ad); | 1662 | adsize = sizeof(struct long_ad); |
1663 | else | 1663 | else |
1664 | return -1; | 1664 | return -1; |
1665 | 1665 | ||
@@ -1667,7 +1667,7 @@ int8_t udf_add_aext(struct inode *inode, struct extent_position *epos, | |||
1667 | char *sptr, *dptr; | 1667 | char *sptr, *dptr; |
1668 | struct buffer_head *nbh; | 1668 | struct buffer_head *nbh; |
1669 | int err, loffset; | 1669 | int err, loffset; |
1670 | kernel_lb_addr obloc = epos->block; | 1670 | struct kernel_lb_addr obloc = epos->block; |
1671 | 1671 | ||
1672 | epos->block.logicalBlockNum = udf_new_block(inode->i_sb, NULL, | 1672 | epos->block.logicalBlockNum = udf_new_block(inode->i_sb, NULL, |
1673 | obloc.partitionReferenceNum, | 1673 | obloc.partitionReferenceNum, |
@@ -1712,20 +1712,20 @@ int8_t udf_add_aext(struct inode *inode, struct extent_position *epos, | |||
1712 | } | 1712 | } |
1713 | if (UDF_SB(inode->i_sb)->s_udfrev >= 0x0200) | 1713 | if (UDF_SB(inode->i_sb)->s_udfrev >= 0x0200) |
1714 | udf_new_tag(nbh->b_data, TAG_IDENT_AED, 3, 1, | 1714 | udf_new_tag(nbh->b_data, TAG_IDENT_AED, 3, 1, |
1715 | epos->block.logicalBlockNum, sizeof(tag)); | 1715 | epos->block.logicalBlockNum, sizeof(struct tag)); |
1716 | else | 1716 | else |
1717 | udf_new_tag(nbh->b_data, TAG_IDENT_AED, 2, 1, | 1717 | udf_new_tag(nbh->b_data, TAG_IDENT_AED, 2, 1, |
1718 | epos->block.logicalBlockNum, sizeof(tag)); | 1718 | epos->block.logicalBlockNum, sizeof(struct tag)); |
1719 | switch (iinfo->i_alloc_type) { | 1719 | switch (iinfo->i_alloc_type) { |
1720 | case ICBTAG_FLAG_AD_SHORT: | 1720 | case ICBTAG_FLAG_AD_SHORT: |
1721 | sad = (short_ad *)sptr; | 1721 | sad = (struct short_ad *)sptr; |
1722 | sad->extLength = cpu_to_le32(EXT_NEXT_EXTENT_ALLOCDECS | | 1722 | sad->extLength = cpu_to_le32(EXT_NEXT_EXTENT_ALLOCDECS | |
1723 | inode->i_sb->s_blocksize); | 1723 | inode->i_sb->s_blocksize); |
1724 | sad->extPosition = | 1724 | sad->extPosition = |
1725 | cpu_to_le32(epos->block.logicalBlockNum); | 1725 | cpu_to_le32(epos->block.logicalBlockNum); |
1726 | break; | 1726 | break; |
1727 | case ICBTAG_FLAG_AD_LONG: | 1727 | case ICBTAG_FLAG_AD_LONG: |
1728 | lad = (long_ad *)sptr; | 1728 | lad = (struct long_ad *)sptr; |
1729 | lad->extLength = cpu_to_le32(EXT_NEXT_EXTENT_ALLOCDECS | | 1729 | lad->extLength = cpu_to_le32(EXT_NEXT_EXTENT_ALLOCDECS | |
1730 | inode->i_sb->s_blocksize); | 1730 | inode->i_sb->s_blocksize); |
1731 | lad->extLocation = cpu_to_lelb(epos->block); | 1731 | lad->extLocation = cpu_to_lelb(epos->block); |
@@ -1769,12 +1769,12 @@ int8_t udf_add_aext(struct inode *inode, struct extent_position *epos, | |||
1769 | } | 1769 | } |
1770 | 1770 | ||
1771 | int8_t udf_write_aext(struct inode *inode, struct extent_position *epos, | 1771 | int8_t udf_write_aext(struct inode *inode, struct extent_position *epos, |
1772 | kernel_lb_addr eloc, uint32_t elen, int inc) | 1772 | struct kernel_lb_addr eloc, uint32_t elen, int inc) |
1773 | { | 1773 | { |
1774 | int adsize; | 1774 | int adsize; |
1775 | uint8_t *ptr; | 1775 | uint8_t *ptr; |
1776 | short_ad *sad; | 1776 | struct short_ad *sad; |
1777 | long_ad *lad; | 1777 | struct long_ad *lad; |
1778 | struct udf_inode_info *iinfo = UDF_I(inode); | 1778 | struct udf_inode_info *iinfo = UDF_I(inode); |
1779 | 1779 | ||
1780 | if (!epos->bh) | 1780 | if (!epos->bh) |
@@ -1786,17 +1786,17 @@ int8_t udf_write_aext(struct inode *inode, struct extent_position *epos, | |||
1786 | 1786 | ||
1787 | switch (iinfo->i_alloc_type) { | 1787 | switch (iinfo->i_alloc_type) { |
1788 | case ICBTAG_FLAG_AD_SHORT: | 1788 | case ICBTAG_FLAG_AD_SHORT: |
1789 | sad = (short_ad *)ptr; | 1789 | sad = (struct short_ad *)ptr; |
1790 | sad->extLength = cpu_to_le32(elen); | 1790 | sad->extLength = cpu_to_le32(elen); |
1791 | sad->extPosition = cpu_to_le32(eloc.logicalBlockNum); | 1791 | sad->extPosition = cpu_to_le32(eloc.logicalBlockNum); |
1792 | adsize = sizeof(short_ad); | 1792 | adsize = sizeof(struct short_ad); |
1793 | break; | 1793 | break; |
1794 | case ICBTAG_FLAG_AD_LONG: | 1794 | case ICBTAG_FLAG_AD_LONG: |
1795 | lad = (long_ad *)ptr; | 1795 | lad = (struct long_ad *)ptr; |
1796 | lad->extLength = cpu_to_le32(elen); | 1796 | lad->extLength = cpu_to_le32(elen); |
1797 | lad->extLocation = cpu_to_lelb(eloc); | 1797 | lad->extLocation = cpu_to_lelb(eloc); |
1798 | memset(lad->impUse, 0x00, sizeof(lad->impUse)); | 1798 | memset(lad->impUse, 0x00, sizeof(lad->impUse)); |
1799 | adsize = sizeof(long_ad); | 1799 | adsize = sizeof(struct long_ad); |
1800 | break; | 1800 | break; |
1801 | default: | 1801 | default: |
1802 | return -1; | 1802 | return -1; |
@@ -1823,7 +1823,7 @@ int8_t udf_write_aext(struct inode *inode, struct extent_position *epos, | |||
1823 | } | 1823 | } |
1824 | 1824 | ||
1825 | int8_t udf_next_aext(struct inode *inode, struct extent_position *epos, | 1825 | int8_t udf_next_aext(struct inode *inode, struct extent_position *epos, |
1826 | kernel_lb_addr *eloc, uint32_t *elen, int inc) | 1826 | struct kernel_lb_addr *eloc, uint32_t *elen, int inc) |
1827 | { | 1827 | { |
1828 | int8_t etype; | 1828 | int8_t etype; |
1829 | 1829 | ||
@@ -1845,13 +1845,13 @@ int8_t udf_next_aext(struct inode *inode, struct extent_position *epos, | |||
1845 | } | 1845 | } |
1846 | 1846 | ||
1847 | int8_t udf_current_aext(struct inode *inode, struct extent_position *epos, | 1847 | int8_t udf_current_aext(struct inode *inode, struct extent_position *epos, |
1848 | kernel_lb_addr *eloc, uint32_t *elen, int inc) | 1848 | struct kernel_lb_addr *eloc, uint32_t *elen, int inc) |
1849 | { | 1849 | { |
1850 | int alen; | 1850 | int alen; |
1851 | int8_t etype; | 1851 | int8_t etype; |
1852 | uint8_t *ptr; | 1852 | uint8_t *ptr; |
1853 | short_ad *sad; | 1853 | struct short_ad *sad; |
1854 | long_ad *lad; | 1854 | struct long_ad *lad; |
1855 | struct udf_inode_info *iinfo = UDF_I(inode); | 1855 | struct udf_inode_info *iinfo = UDF_I(inode); |
1856 | 1856 | ||
1857 | if (!epos->bh) { | 1857 | if (!epos->bh) { |
@@ -1900,9 +1900,9 @@ int8_t udf_current_aext(struct inode *inode, struct extent_position *epos, | |||
1900 | } | 1900 | } |
1901 | 1901 | ||
1902 | static int8_t udf_insert_aext(struct inode *inode, struct extent_position epos, | 1902 | static int8_t udf_insert_aext(struct inode *inode, struct extent_position epos, |
1903 | kernel_lb_addr neloc, uint32_t nelen) | 1903 | struct kernel_lb_addr neloc, uint32_t nelen) |
1904 | { | 1904 | { |
1905 | kernel_lb_addr oeloc; | 1905 | struct kernel_lb_addr oeloc; |
1906 | uint32_t oelen; | 1906 | uint32_t oelen; |
1907 | int8_t etype; | 1907 | int8_t etype; |
1908 | 1908 | ||
@@ -1921,7 +1921,7 @@ static int8_t udf_insert_aext(struct inode *inode, struct extent_position epos, | |||
1921 | } | 1921 | } |
1922 | 1922 | ||
1923 | int8_t udf_delete_aext(struct inode *inode, struct extent_position epos, | 1923 | int8_t udf_delete_aext(struct inode *inode, struct extent_position epos, |
1924 | kernel_lb_addr eloc, uint32_t elen) | 1924 | struct kernel_lb_addr eloc, uint32_t elen) |
1925 | { | 1925 | { |
1926 | struct extent_position oepos; | 1926 | struct extent_position oepos; |
1927 | int adsize; | 1927 | int adsize; |
@@ -1936,9 +1936,9 @@ int8_t udf_delete_aext(struct inode *inode, struct extent_position epos, | |||
1936 | 1936 | ||
1937 | iinfo = UDF_I(inode); | 1937 | iinfo = UDF_I(inode); |
1938 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) | 1938 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) |
1939 | adsize = sizeof(short_ad); | 1939 | adsize = sizeof(struct short_ad); |
1940 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) | 1940 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) |
1941 | adsize = sizeof(long_ad); | 1941 | adsize = sizeof(struct long_ad); |
1942 | else | 1942 | else |
1943 | adsize = 0; | 1943 | adsize = 0; |
1944 | 1944 | ||
@@ -1956,7 +1956,7 @@ int8_t udf_delete_aext(struct inode *inode, struct extent_position epos, | |||
1956 | oepos.offset = epos.offset - adsize; | 1956 | oepos.offset = epos.offset - adsize; |
1957 | } | 1957 | } |
1958 | } | 1958 | } |
1959 | memset(&eloc, 0x00, sizeof(kernel_lb_addr)); | 1959 | memset(&eloc, 0x00, sizeof(struct kernel_lb_addr)); |
1960 | elen = 0; | 1960 | elen = 0; |
1961 | 1961 | ||
1962 | if (epos.bh != oepos.bh) { | 1962 | if (epos.bh != oepos.bh) { |
@@ -2004,7 +2004,7 @@ int8_t udf_delete_aext(struct inode *inode, struct extent_position epos, | |||
2004 | } | 2004 | } |
2005 | 2005 | ||
2006 | int8_t inode_bmap(struct inode *inode, sector_t block, | 2006 | int8_t inode_bmap(struct inode *inode, sector_t block, |
2007 | struct extent_position *pos, kernel_lb_addr *eloc, | 2007 | struct extent_position *pos, struct kernel_lb_addr *eloc, |
2008 | uint32_t *elen, sector_t *offset) | 2008 | uint32_t *elen, sector_t *offset) |
2009 | { | 2009 | { |
2010 | unsigned char blocksize_bits = inode->i_sb->s_blocksize_bits; | 2010 | unsigned char blocksize_bits = inode->i_sb->s_blocksize_bits; |
@@ -2036,7 +2036,7 @@ int8_t inode_bmap(struct inode *inode, sector_t block, | |||
2036 | 2036 | ||
2037 | long udf_block_map(struct inode *inode, sector_t block) | 2037 | long udf_block_map(struct inode *inode, sector_t block) |
2038 | { | 2038 | { |
2039 | kernel_lb_addr eloc; | 2039 | struct kernel_lb_addr eloc; |
2040 | uint32_t elen; | 2040 | uint32_t elen; |
2041 | sector_t offset; | 2041 | sector_t offset; |
2042 | struct extent_position epos = {}; | 2042 | struct extent_position epos = {}; |
diff --git a/fs/udf/misc.c b/fs/udf/misc.c index 84bf0fd4a4f1..6e164c7b549a 100644 --- a/fs/udf/misc.c +++ b/fs/udf/misc.c | |||
@@ -134,10 +134,10 @@ struct genericFormat *udf_add_extendedattr(struct inode *inode, uint32_t size, | |||
134 | } | 134 | } |
135 | } | 135 | } |
136 | /* rewrite CRC + checksum of eahd */ | 136 | /* rewrite CRC + checksum of eahd */ |
137 | crclen = sizeof(struct extendedAttrHeaderDesc) - sizeof(tag); | 137 | crclen = sizeof(struct extendedAttrHeaderDesc) - sizeof(struct tag); |
138 | eahd->descTag.descCRCLength = cpu_to_le16(crclen); | 138 | eahd->descTag.descCRCLength = cpu_to_le16(crclen); |
139 | eahd->descTag.descCRC = cpu_to_le16(crc_itu_t(0, (char *)eahd + | 139 | eahd->descTag.descCRC = cpu_to_le16(crc_itu_t(0, (char *)eahd + |
140 | sizeof(tag), crclen)); | 140 | sizeof(struct tag), crclen)); |
141 | eahd->descTag.tagChecksum = udf_tag_checksum(&eahd->descTag); | 141 | eahd->descTag.tagChecksum = udf_tag_checksum(&eahd->descTag); |
142 | iinfo->i_lenEAttr += size; | 142 | iinfo->i_lenEAttr += size; |
143 | return (struct genericFormat *)&ea[offset]; | 143 | return (struct genericFormat *)&ea[offset]; |
@@ -202,7 +202,7 @@ struct genericFormat *udf_get_extendedattr(struct inode *inode, uint32_t type, | |||
202 | struct buffer_head *udf_read_tagged(struct super_block *sb, uint32_t block, | 202 | struct buffer_head *udf_read_tagged(struct super_block *sb, uint32_t block, |
203 | uint32_t location, uint16_t *ident) | 203 | uint32_t location, uint16_t *ident) |
204 | { | 204 | { |
205 | tag *tag_p; | 205 | struct tag *tag_p; |
206 | struct buffer_head *bh = NULL; | 206 | struct buffer_head *bh = NULL; |
207 | 207 | ||
208 | /* Read the block */ | 208 | /* Read the block */ |
@@ -216,7 +216,7 @@ struct buffer_head *udf_read_tagged(struct super_block *sb, uint32_t block, | |||
216 | return NULL; | 216 | return NULL; |
217 | } | 217 | } |
218 | 218 | ||
219 | tag_p = (tag *)(bh->b_data); | 219 | tag_p = (struct tag *)(bh->b_data); |
220 | 220 | ||
221 | *ident = le16_to_cpu(tag_p->tagIdent); | 221 | *ident = le16_to_cpu(tag_p->tagIdent); |
222 | 222 | ||
@@ -241,9 +241,9 @@ struct buffer_head *udf_read_tagged(struct super_block *sb, uint32_t block, | |||
241 | } | 241 | } |
242 | 242 | ||
243 | /* Verify the descriptor CRC */ | 243 | /* Verify the descriptor CRC */ |
244 | if (le16_to_cpu(tag_p->descCRCLength) + sizeof(tag) > sb->s_blocksize || | 244 | if (le16_to_cpu(tag_p->descCRCLength) + sizeof(struct tag) > sb->s_blocksize || |
245 | le16_to_cpu(tag_p->descCRC) == crc_itu_t(0, | 245 | le16_to_cpu(tag_p->descCRC) == crc_itu_t(0, |
246 | bh->b_data + sizeof(tag), | 246 | bh->b_data + sizeof(struct tag), |
247 | le16_to_cpu(tag_p->descCRCLength))) | 247 | le16_to_cpu(tag_p->descCRCLength))) |
248 | return bh; | 248 | return bh; |
249 | 249 | ||
@@ -255,7 +255,7 @@ error_out: | |||
255 | return NULL; | 255 | return NULL; |
256 | } | 256 | } |
257 | 257 | ||
258 | struct buffer_head *udf_read_ptagged(struct super_block *sb, kernel_lb_addr loc, | 258 | struct buffer_head *udf_read_ptagged(struct super_block *sb, struct kernel_lb_addr loc, |
259 | uint32_t offset, uint16_t *ident) | 259 | uint32_t offset, uint16_t *ident) |
260 | { | 260 | { |
261 | return udf_read_tagged(sb, udf_get_lb_pblock(sb, loc, offset), | 261 | return udf_read_tagged(sb, udf_get_lb_pblock(sb, loc, offset), |
@@ -264,18 +264,18 @@ struct buffer_head *udf_read_ptagged(struct super_block *sb, kernel_lb_addr loc, | |||
264 | 264 | ||
265 | void udf_update_tag(char *data, int length) | 265 | void udf_update_tag(char *data, int length) |
266 | { | 266 | { |
267 | tag *tptr = (tag *)data; | 267 | struct tag *tptr = (struct tag *)data; |
268 | length -= sizeof(tag); | 268 | length -= sizeof(struct tag); |
269 | 269 | ||
270 | tptr->descCRCLength = cpu_to_le16(length); | 270 | tptr->descCRCLength = cpu_to_le16(length); |
271 | tptr->descCRC = cpu_to_le16(crc_itu_t(0, data + sizeof(tag), length)); | 271 | tptr->descCRC = cpu_to_le16(crc_itu_t(0, data + sizeof(struct tag), length)); |
272 | tptr->tagChecksum = udf_tag_checksum(tptr); | 272 | tptr->tagChecksum = udf_tag_checksum(tptr); |
273 | } | 273 | } |
274 | 274 | ||
275 | void udf_new_tag(char *data, uint16_t ident, uint16_t version, uint16_t snum, | 275 | void udf_new_tag(char *data, uint16_t ident, uint16_t version, uint16_t snum, |
276 | uint32_t loc, int length) | 276 | uint32_t loc, int length) |
277 | { | 277 | { |
278 | tag *tptr = (tag *)data; | 278 | struct tag *tptr = (struct tag *)data; |
279 | tptr->tagIdent = cpu_to_le16(ident); | 279 | tptr->tagIdent = cpu_to_le16(ident); |
280 | tptr->descVersion = cpu_to_le16(version); | 280 | tptr->descVersion = cpu_to_le16(version); |
281 | tptr->tagSerialNum = cpu_to_le16(snum); | 281 | tptr->tagSerialNum = cpu_to_le16(snum); |
@@ -283,12 +283,12 @@ void udf_new_tag(char *data, uint16_t ident, uint16_t version, uint16_t snum, | |||
283 | udf_update_tag(data, length); | 283 | udf_update_tag(data, length); |
284 | } | 284 | } |
285 | 285 | ||
286 | u8 udf_tag_checksum(const tag *t) | 286 | u8 udf_tag_checksum(const struct tag *t) |
287 | { | 287 | { |
288 | u8 *data = (u8 *)t; | 288 | u8 *data = (u8 *)t; |
289 | u8 checksum = 0; | 289 | u8 checksum = 0; |
290 | int i; | 290 | int i; |
291 | for (i = 0; i < sizeof(tag); ++i) | 291 | for (i = 0; i < sizeof(struct tag); ++i) |
292 | if (i != 4) /* position of checksum */ | 292 | if (i != 4) /* position of checksum */ |
293 | checksum += data[i]; | 293 | checksum += data[i]; |
294 | return checksum; | 294 | return checksum; |
diff --git a/fs/udf/namei.c b/fs/udf/namei.c index f84bfaa8d941..76cfaf79d982 100644 --- a/fs/udf/namei.c +++ b/fs/udf/namei.c | |||
@@ -47,7 +47,7 @@ int udf_write_fi(struct inode *inode, struct fileIdentDesc *cfi, | |||
47 | struct fileIdentDesc *sfi, struct udf_fileident_bh *fibh, | 47 | struct fileIdentDesc *sfi, struct udf_fileident_bh *fibh, |
48 | uint8_t *impuse, uint8_t *fileident) | 48 | uint8_t *impuse, uint8_t *fileident) |
49 | { | 49 | { |
50 | uint16_t crclen = fibh->eoffset - fibh->soffset - sizeof(tag); | 50 | uint16_t crclen = fibh->eoffset - fibh->soffset - sizeof(struct tag); |
51 | uint16_t crc; | 51 | uint16_t crc; |
52 | int offset; | 52 | int offset; |
53 | uint16_t liu = le16_to_cpu(cfi->lengthOfImpUse); | 53 | uint16_t liu = le16_to_cpu(cfi->lengthOfImpUse); |
@@ -99,18 +99,18 @@ int udf_write_fi(struct inode *inode, struct fileIdentDesc *cfi, | |||
99 | memset(fibh->ebh->b_data, 0x00, padlen + offset); | 99 | memset(fibh->ebh->b_data, 0x00, padlen + offset); |
100 | } | 100 | } |
101 | 101 | ||
102 | crc = crc_itu_t(0, (uint8_t *)cfi + sizeof(tag), | 102 | crc = crc_itu_t(0, (uint8_t *)cfi + sizeof(struct tag), |
103 | sizeof(struct fileIdentDesc) - sizeof(tag)); | 103 | sizeof(struct fileIdentDesc) - sizeof(struct tag)); |
104 | 104 | ||
105 | if (fibh->sbh == fibh->ebh) { | 105 | if (fibh->sbh == fibh->ebh) { |
106 | crc = crc_itu_t(crc, (uint8_t *)sfi->impUse, | 106 | crc = crc_itu_t(crc, (uint8_t *)sfi->impUse, |
107 | crclen + sizeof(tag) - | 107 | crclen + sizeof(struct tag) - |
108 | sizeof(struct fileIdentDesc)); | 108 | sizeof(struct fileIdentDesc)); |
109 | } else if (sizeof(struct fileIdentDesc) >= -fibh->soffset) { | 109 | } else if (sizeof(struct fileIdentDesc) >= -fibh->soffset) { |
110 | crc = crc_itu_t(crc, fibh->ebh->b_data + | 110 | crc = crc_itu_t(crc, fibh->ebh->b_data + |
111 | sizeof(struct fileIdentDesc) + | 111 | sizeof(struct fileIdentDesc) + |
112 | fibh->soffset, | 112 | fibh->soffset, |
113 | crclen + sizeof(tag) - | 113 | crclen + sizeof(struct tag) - |
114 | sizeof(struct fileIdentDesc)); | 114 | sizeof(struct fileIdentDesc)); |
115 | } else { | 115 | } else { |
116 | crc = crc_itu_t(crc, (uint8_t *)sfi->impUse, | 116 | crc = crc_itu_t(crc, (uint8_t *)sfi->impUse, |
@@ -154,7 +154,7 @@ static struct fileIdentDesc *udf_find_entry(struct inode *dir, | |||
154 | uint8_t lfi; | 154 | uint8_t lfi; |
155 | uint16_t liu; | 155 | uint16_t liu; |
156 | loff_t size; | 156 | loff_t size; |
157 | kernel_lb_addr eloc; | 157 | struct kernel_lb_addr eloc; |
158 | uint32_t elen; | 158 | uint32_t elen; |
159 | sector_t offset; | 159 | sector_t offset; |
160 | struct extent_position epos = {}; | 160 | struct extent_position epos = {}; |
@@ -174,9 +174,9 @@ static struct fileIdentDesc *udf_find_entry(struct inode *dir, | |||
174 | block = udf_get_lb_pblock(dir->i_sb, eloc, offset); | 174 | block = udf_get_lb_pblock(dir->i_sb, eloc, offset); |
175 | if ((++offset << dir->i_sb->s_blocksize_bits) < elen) { | 175 | if ((++offset << dir->i_sb->s_blocksize_bits) < elen) { |
176 | if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) | 176 | if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) |
177 | epos.offset -= sizeof(short_ad); | 177 | epos.offset -= sizeof(struct short_ad); |
178 | else if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) | 178 | else if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) |
179 | epos.offset -= sizeof(long_ad); | 179 | epos.offset -= sizeof(struct long_ad); |
180 | } else | 180 | } else |
181 | offset = 0; | 181 | offset = 0; |
182 | 182 | ||
@@ -268,7 +268,7 @@ static struct dentry *udf_lookup(struct inode *dir, struct dentry *dentry, | |||
268 | #ifdef UDF_RECOVERY | 268 | #ifdef UDF_RECOVERY |
269 | /* temporary shorthand for specifying files by inode number */ | 269 | /* temporary shorthand for specifying files by inode number */ |
270 | if (!strncmp(dentry->d_name.name, ".B=", 3)) { | 270 | if (!strncmp(dentry->d_name.name, ".B=", 3)) { |
271 | kernel_lb_addr lb = { | 271 | struct kernel_lb_addr lb = { |
272 | .logicalBlockNum = 0, | 272 | .logicalBlockNum = 0, |
273 | .partitionReferenceNum = | 273 | .partitionReferenceNum = |
274 | simple_strtoul(dentry->d_name.name + 3, | 274 | simple_strtoul(dentry->d_name.name + 3, |
@@ -313,7 +313,7 @@ static struct fileIdentDesc *udf_add_entry(struct inode *dir, | |||
313 | uint8_t lfi; | 313 | uint8_t lfi; |
314 | uint16_t liu; | 314 | uint16_t liu; |
315 | int block; | 315 | int block; |
316 | kernel_lb_addr eloc; | 316 | struct kernel_lb_addr eloc; |
317 | uint32_t elen = 0; | 317 | uint32_t elen = 0; |
318 | sector_t offset; | 318 | sector_t offset; |
319 | struct extent_position epos = {}; | 319 | struct extent_position epos = {}; |
@@ -358,9 +358,9 @@ static struct fileIdentDesc *udf_add_entry(struct inode *dir, | |||
358 | block = udf_get_lb_pblock(dir->i_sb, eloc, offset); | 358 | block = udf_get_lb_pblock(dir->i_sb, eloc, offset); |
359 | if ((++offset << dir->i_sb->s_blocksize_bits) < elen) { | 359 | if ((++offset << dir->i_sb->s_blocksize_bits) < elen) { |
360 | if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) | 360 | if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) |
361 | epos.offset -= sizeof(short_ad); | 361 | epos.offset -= sizeof(struct short_ad); |
362 | else if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) | 362 | else if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) |
363 | epos.offset -= sizeof(long_ad); | 363 | epos.offset -= sizeof(struct long_ad); |
364 | } else | 364 | } else |
365 | offset = 0; | 365 | offset = 0; |
366 | 366 | ||
@@ -409,9 +409,9 @@ add: | |||
409 | if (dinfo->i_alloc_type != ICBTAG_FLAG_AD_IN_ICB && elen) { | 409 | if (dinfo->i_alloc_type != ICBTAG_FLAG_AD_IN_ICB && elen) { |
410 | elen = (elen + sb->s_blocksize - 1) & ~(sb->s_blocksize - 1); | 410 | elen = (elen + sb->s_blocksize - 1) & ~(sb->s_blocksize - 1); |
411 | if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) | 411 | if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) |
412 | epos.offset -= sizeof(short_ad); | 412 | epos.offset -= sizeof(struct short_ad); |
413 | else if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) | 413 | else if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) |
414 | epos.offset -= sizeof(long_ad); | 414 | epos.offset -= sizeof(struct long_ad); |
415 | udf_write_aext(dir, &epos, eloc, elen, 1); | 415 | udf_write_aext(dir, &epos, eloc, elen, 1); |
416 | } | 416 | } |
417 | f_pos += nfidlen; | 417 | f_pos += nfidlen; |
@@ -494,10 +494,10 @@ add: | |||
494 | memset(cfi, 0, sizeof(struct fileIdentDesc)); | 494 | memset(cfi, 0, sizeof(struct fileIdentDesc)); |
495 | if (UDF_SB(sb)->s_udfrev >= 0x0200) | 495 | if (UDF_SB(sb)->s_udfrev >= 0x0200) |
496 | udf_new_tag((char *)cfi, TAG_IDENT_FID, 3, 1, block, | 496 | udf_new_tag((char *)cfi, TAG_IDENT_FID, 3, 1, block, |
497 | sizeof(tag)); | 497 | sizeof(struct tag)); |
498 | else | 498 | else |
499 | udf_new_tag((char *)cfi, TAG_IDENT_FID, 2, 1, block, | 499 | udf_new_tag((char *)cfi, TAG_IDENT_FID, 2, 1, block, |
500 | sizeof(tag)); | 500 | sizeof(struct tag)); |
501 | cfi->fileVersionNum = cpu_to_le16(1); | 501 | cfi->fileVersionNum = cpu_to_le16(1); |
502 | cfi->lengthFileIdent = namelen; | 502 | cfi->lengthFileIdent = namelen; |
503 | cfi->lengthOfImpUse = cpu_to_le16(0); | 503 | cfi->lengthOfImpUse = cpu_to_le16(0); |
@@ -530,7 +530,7 @@ static int udf_delete_entry(struct inode *inode, struct fileIdentDesc *fi, | |||
530 | cfi->fileCharacteristics |= FID_FILE_CHAR_DELETED; | 530 | cfi->fileCharacteristics |= FID_FILE_CHAR_DELETED; |
531 | 531 | ||
532 | if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_STRICT)) | 532 | if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_STRICT)) |
533 | memset(&(cfi->icb), 0x00, sizeof(long_ad)); | 533 | memset(&(cfi->icb), 0x00, sizeof(struct long_ad)); |
534 | 534 | ||
535 | return udf_write_fi(inode, cfi, fi, fibh, NULL, NULL); | 535 | return udf_write_fi(inode, cfi, fi, fibh, NULL, NULL); |
536 | } | 536 | } |
@@ -710,7 +710,7 @@ static int empty_dir(struct inode *dir) | |||
710 | loff_t f_pos; | 710 | loff_t f_pos; |
711 | loff_t size = udf_ext0_offset(dir) + dir->i_size; | 711 | loff_t size = udf_ext0_offset(dir) + dir->i_size; |
712 | int block; | 712 | int block; |
713 | kernel_lb_addr eloc; | 713 | struct kernel_lb_addr eloc; |
714 | uint32_t elen; | 714 | uint32_t elen; |
715 | sector_t offset; | 715 | sector_t offset; |
716 | struct extent_position epos = {}; | 716 | struct extent_position epos = {}; |
@@ -727,9 +727,9 @@ static int empty_dir(struct inode *dir) | |||
727 | block = udf_get_lb_pblock(dir->i_sb, eloc, offset); | 727 | block = udf_get_lb_pblock(dir->i_sb, eloc, offset); |
728 | if ((++offset << dir->i_sb->s_blocksize_bits) < elen) { | 728 | if ((++offset << dir->i_sb->s_blocksize_bits) < elen) { |
729 | if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) | 729 | if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) |
730 | epos.offset -= sizeof(short_ad); | 730 | epos.offset -= sizeof(struct short_ad); |
731 | else if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) | 731 | else if (dinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) |
732 | epos.offset -= sizeof(long_ad); | 732 | epos.offset -= sizeof(struct long_ad); |
733 | } else | 733 | } else |
734 | offset = 0; | 734 | offset = 0; |
735 | 735 | ||
@@ -778,7 +778,7 @@ static int udf_rmdir(struct inode *dir, struct dentry *dentry) | |||
778 | struct inode *inode = dentry->d_inode; | 778 | struct inode *inode = dentry->d_inode; |
779 | struct udf_fileident_bh fibh; | 779 | struct udf_fileident_bh fibh; |
780 | struct fileIdentDesc *fi, cfi; | 780 | struct fileIdentDesc *fi, cfi; |
781 | kernel_lb_addr tloc; | 781 | struct kernel_lb_addr tloc; |
782 | 782 | ||
783 | retval = -ENOENT; | 783 | retval = -ENOENT; |
784 | lock_kernel(); | 784 | lock_kernel(); |
@@ -824,7 +824,7 @@ static int udf_unlink(struct inode *dir, struct dentry *dentry) | |||
824 | struct udf_fileident_bh fibh; | 824 | struct udf_fileident_bh fibh; |
825 | struct fileIdentDesc *fi; | 825 | struct fileIdentDesc *fi; |
826 | struct fileIdentDesc cfi; | 826 | struct fileIdentDesc cfi; |
827 | kernel_lb_addr tloc; | 827 | struct kernel_lb_addr tloc; |
828 | 828 | ||
829 | retval = -ENOENT; | 829 | retval = -ENOENT; |
830 | lock_kernel(); | 830 | lock_kernel(); |
@@ -897,7 +897,7 @@ static int udf_symlink(struct inode *dir, struct dentry *dentry, | |||
897 | inode->i_op = &page_symlink_inode_operations; | 897 | inode->i_op = &page_symlink_inode_operations; |
898 | 898 | ||
899 | if (iinfo->i_alloc_type != ICBTAG_FLAG_AD_IN_ICB) { | 899 | if (iinfo->i_alloc_type != ICBTAG_FLAG_AD_IN_ICB) { |
900 | kernel_lb_addr eloc; | 900 | struct kernel_lb_addr eloc; |
901 | uint32_t bsize; | 901 | uint32_t bsize; |
902 | 902 | ||
903 | block = udf_new_block(inode->i_sb, inode, | 903 | block = udf_new_block(inode->i_sb, inode, |
@@ -1108,7 +1108,7 @@ static int udf_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
1108 | struct fileIdentDesc ocfi, ncfi; | 1108 | struct fileIdentDesc ocfi, ncfi; |
1109 | struct buffer_head *dir_bh = NULL; | 1109 | struct buffer_head *dir_bh = NULL; |
1110 | int retval = -ENOENT; | 1110 | int retval = -ENOENT; |
1111 | kernel_lb_addr tloc; | 1111 | struct kernel_lb_addr tloc; |
1112 | struct udf_inode_info *old_iinfo = UDF_I(old_inode); | 1112 | struct udf_inode_info *old_iinfo = UDF_I(old_inode); |
1113 | 1113 | ||
1114 | lock_kernel(); | 1114 | lock_kernel(); |
@@ -1187,7 +1187,7 @@ static int udf_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
1187 | */ | 1187 | */ |
1188 | ncfi.fileVersionNum = ocfi.fileVersionNum; | 1188 | ncfi.fileVersionNum = ocfi.fileVersionNum; |
1189 | ncfi.fileCharacteristics = ocfi.fileCharacteristics; | 1189 | ncfi.fileCharacteristics = ocfi.fileCharacteristics; |
1190 | memcpy(&(ncfi.icb), &(ocfi.icb), sizeof(long_ad)); | 1190 | memcpy(&(ncfi.icb), &(ocfi.icb), sizeof(struct long_ad)); |
1191 | udf_write_fi(new_dir, &ncfi, nfi, &nfibh, NULL, NULL); | 1191 | udf_write_fi(new_dir, &ncfi, nfi, &nfibh, NULL, NULL); |
1192 | 1192 | ||
1193 | /* The old fid may have moved - find it again */ | 1193 | /* The old fid may have moved - find it again */ |
@@ -1272,7 +1272,7 @@ static struct dentry *udf_nfs_get_inode(struct super_block *sb, u32 block, | |||
1272 | u16 partref, __u32 generation) | 1272 | u16 partref, __u32 generation) |
1273 | { | 1273 | { |
1274 | struct inode *inode; | 1274 | struct inode *inode; |
1275 | kernel_lb_addr loc; | 1275 | struct kernel_lb_addr loc; |
1276 | 1276 | ||
1277 | if (block == 0) | 1277 | if (block == 0) |
1278 | return ERR_PTR(-ESTALE); | 1278 | return ERR_PTR(-ESTALE); |
@@ -1318,7 +1318,7 @@ static int udf_encode_fh(struct dentry *de, __u32 *fh, int *lenp, | |||
1318 | { | 1318 | { |
1319 | int len = *lenp; | 1319 | int len = *lenp; |
1320 | struct inode *inode = de->d_inode; | 1320 | struct inode *inode = de->d_inode; |
1321 | kernel_lb_addr location = UDF_I(inode)->i_location; | 1321 | struct kernel_lb_addr location = UDF_I(inode)->i_location; |
1322 | struct fid *fid = (struct fid *)fh; | 1322 | struct fid *fid = (struct fid *)fh; |
1323 | int type = FILEID_UDF_WITHOUT_PARENT; | 1323 | int type = FILEID_UDF_WITHOUT_PARENT; |
1324 | 1324 | ||
diff --git a/fs/udf/osta_udf.h b/fs/udf/osta_udf.h index 65ff47902bd2..fbff74654df2 100644 --- a/fs/udf/osta_udf.h +++ b/fs/udf/osta_udf.h | |||
@@ -85,7 +85,7 @@ struct appIdentSuffix { | |||
85 | /* Logical Volume Integrity Descriptor (UDF 2.50 2.2.6) */ | 85 | /* Logical Volume Integrity Descriptor (UDF 2.50 2.2.6) */ |
86 | /* Implementation Use (UDF 2.50 2.2.6.4) */ | 86 | /* Implementation Use (UDF 2.50 2.2.6.4) */ |
87 | struct logicalVolIntegrityDescImpUse { | 87 | struct logicalVolIntegrityDescImpUse { |
88 | regid impIdent; | 88 | struct regid impIdent; |
89 | __le32 numFiles; | 89 | __le32 numFiles; |
90 | __le32 numDirs; | 90 | __le32 numDirs; |
91 | __le16 minUDFReadRev; | 91 | __le16 minUDFReadRev; |
@@ -97,12 +97,12 @@ struct logicalVolIntegrityDescImpUse { | |||
97 | /* Implementation Use Volume Descriptor (UDF 2.50 2.2.7) */ | 97 | /* Implementation Use Volume Descriptor (UDF 2.50 2.2.7) */ |
98 | /* Implementation Use (UDF 2.50 2.2.7.2) */ | 98 | /* Implementation Use (UDF 2.50 2.2.7.2) */ |
99 | struct impUseVolDescImpUse { | 99 | struct impUseVolDescImpUse { |
100 | charspec LVICharset; | 100 | struct charspec LVICharset; |
101 | dstring logicalVolIdent[128]; | 101 | dstring logicalVolIdent[128]; |
102 | dstring LVInfo1[36]; | 102 | dstring LVInfo1[36]; |
103 | dstring LVInfo2[36]; | 103 | dstring LVInfo2[36]; |
104 | dstring LVInfo3[36]; | 104 | dstring LVInfo3[36]; |
105 | regid impIdent; | 105 | struct regid impIdent; |
106 | uint8_t impUse[128]; | 106 | uint8_t impUse[128]; |
107 | } __attribute__ ((packed)); | 107 | } __attribute__ ((packed)); |
108 | 108 | ||
@@ -110,7 +110,7 @@ struct udfPartitionMap2 { | |||
110 | uint8_t partitionMapType; | 110 | uint8_t partitionMapType; |
111 | uint8_t partitionMapLength; | 111 | uint8_t partitionMapLength; |
112 | uint8_t reserved1[2]; | 112 | uint8_t reserved1[2]; |
113 | regid partIdent; | 113 | struct regid partIdent; |
114 | __le16 volSeqNum; | 114 | __le16 volSeqNum; |
115 | __le16 partitionNum; | 115 | __le16 partitionNum; |
116 | } __attribute__ ((packed)); | 116 | } __attribute__ ((packed)); |
@@ -120,7 +120,7 @@ struct virtualPartitionMap { | |||
120 | uint8_t partitionMapType; | 120 | uint8_t partitionMapType; |
121 | uint8_t partitionMapLength; | 121 | uint8_t partitionMapLength; |
122 | uint8_t reserved1[2]; | 122 | uint8_t reserved1[2]; |
123 | regid partIdent; | 123 | struct regid partIdent; |
124 | __le16 volSeqNum; | 124 | __le16 volSeqNum; |
125 | __le16 partitionNum; | 125 | __le16 partitionNum; |
126 | uint8_t reserved2[24]; | 126 | uint8_t reserved2[24]; |
@@ -131,7 +131,7 @@ struct sparablePartitionMap { | |||
131 | uint8_t partitionMapType; | 131 | uint8_t partitionMapType; |
132 | uint8_t partitionMapLength; | 132 | uint8_t partitionMapLength; |
133 | uint8_t reserved1[2]; | 133 | uint8_t reserved1[2]; |
134 | regid partIdent; | 134 | struct regid partIdent; |
135 | __le16 volSeqNum; | 135 | __le16 volSeqNum; |
136 | __le16 partitionNum; | 136 | __le16 partitionNum; |
137 | __le16 packetLength; | 137 | __le16 packetLength; |
@@ -146,7 +146,7 @@ struct metadataPartitionMap { | |||
146 | uint8_t partitionMapType; | 146 | uint8_t partitionMapType; |
147 | uint8_t partitionMapLength; | 147 | uint8_t partitionMapLength; |
148 | uint8_t reserved1[2]; | 148 | uint8_t reserved1[2]; |
149 | regid partIdent; | 149 | struct regid partIdent; |
150 | __le16 volSeqNum; | 150 | __le16 volSeqNum; |
151 | __le16 partitionNum; | 151 | __le16 partitionNum; |
152 | __le32 metadataFileLoc; | 152 | __le32 metadataFileLoc; |
@@ -161,7 +161,7 @@ struct metadataPartitionMap { | |||
161 | /* Virtual Allocation Table (UDF 1.5 2.2.10) */ | 161 | /* Virtual Allocation Table (UDF 1.5 2.2.10) */ |
162 | struct virtualAllocationTable15 { | 162 | struct virtualAllocationTable15 { |
163 | __le32 VirtualSector[0]; | 163 | __le32 VirtualSector[0]; |
164 | regid vatIdent; | 164 | struct regid vatIdent; |
165 | __le32 previousVATICBLoc; | 165 | __le32 previousVATICBLoc; |
166 | } __attribute__ ((packed)); | 166 | } __attribute__ ((packed)); |
167 | 167 | ||
@@ -192,8 +192,8 @@ struct sparingEntry { | |||
192 | } __attribute__ ((packed)); | 192 | } __attribute__ ((packed)); |
193 | 193 | ||
194 | struct sparingTable { | 194 | struct sparingTable { |
195 | tag descTag; | 195 | struct tag descTag; |
196 | regid sparingIdent; | 196 | struct regid sparingIdent; |
197 | __le16 reallocationTableLen; | 197 | __le16 reallocationTableLen; |
198 | __le16 reserved; | 198 | __le16 reserved; |
199 | __le32 sequenceNum; | 199 | __le32 sequenceNum; |
@@ -206,7 +206,7 @@ struct sparingTable { | |||
206 | #define ICBTAG_FILE_TYPE_MIRROR 0xFB | 206 | #define ICBTAG_FILE_TYPE_MIRROR 0xFB |
207 | #define ICBTAG_FILE_TYPE_BITMAP 0xFC | 207 | #define ICBTAG_FILE_TYPE_BITMAP 0xFC |
208 | 208 | ||
209 | /* struct long_ad ICB - ADImpUse (UDF 2.50 2.2.4.3) */ | 209 | /* struct struct long_ad ICB - ADImpUse (UDF 2.50 2.2.4.3) */ |
210 | struct allocDescImpUse { | 210 | struct allocDescImpUse { |
211 | __le16 flags; | 211 | __le16 flags; |
212 | uint8_t impUse[4]; | 212 | uint8_t impUse[4]; |
diff --git a/fs/udf/partition.c b/fs/udf/partition.c index 96dfd207c3d6..4b540ee632d5 100644 --- a/fs/udf/partition.c +++ b/fs/udf/partition.c | |||
@@ -273,7 +273,7 @@ static uint32_t udf_try_read_meta(struct inode *inode, uint32_t block, | |||
273 | { | 273 | { |
274 | struct super_block *sb = inode->i_sb; | 274 | struct super_block *sb = inode->i_sb; |
275 | struct udf_part_map *map; | 275 | struct udf_part_map *map; |
276 | kernel_lb_addr eloc; | 276 | struct kernel_lb_addr eloc; |
277 | uint32_t elen; | 277 | uint32_t elen; |
278 | sector_t ext_offset; | 278 | sector_t ext_offset; |
279 | struct extent_position epos = {}; | 279 | struct extent_position epos = {}; |
diff --git a/fs/udf/super.c b/fs/udf/super.c index e25e7010627b..81b8adc86745 100644 --- a/fs/udf/super.c +++ b/fs/udf/super.c | |||
@@ -85,12 +85,12 @@ static void udf_write_super(struct super_block *); | |||
85 | static int udf_remount_fs(struct super_block *, int *, char *); | 85 | static int udf_remount_fs(struct super_block *, int *, char *); |
86 | static int udf_check_valid(struct super_block *, int, int); | 86 | static int udf_check_valid(struct super_block *, int, int); |
87 | static int udf_vrs(struct super_block *sb, int silent); | 87 | static int udf_vrs(struct super_block *sb, int silent); |
88 | static void udf_load_logicalvolint(struct super_block *, kernel_extent_ad); | 88 | static void udf_load_logicalvolint(struct super_block *, struct kernel_extent_ad); |
89 | static void udf_find_anchor(struct super_block *); | 89 | static void udf_find_anchor(struct super_block *); |
90 | static int udf_find_fileset(struct super_block *, kernel_lb_addr *, | 90 | static int udf_find_fileset(struct super_block *, struct kernel_lb_addr *, |
91 | kernel_lb_addr *); | 91 | struct kernel_lb_addr *); |
92 | static void udf_load_fileset(struct super_block *, struct buffer_head *, | 92 | static void udf_load_fileset(struct super_block *, struct buffer_head *, |
93 | kernel_lb_addr *); | 93 | struct kernel_lb_addr *); |
94 | static void udf_open_lvid(struct super_block *); | 94 | static void udf_open_lvid(struct super_block *); |
95 | static void udf_close_lvid(struct super_block *); | 95 | static void udf_close_lvid(struct super_block *); |
96 | static unsigned int udf_count_free(struct super_block *); | 96 | static unsigned int udf_count_free(struct super_block *); |
@@ -810,8 +810,8 @@ check_anchor: | |||
810 | } | 810 | } |
811 | 811 | ||
812 | static int udf_find_fileset(struct super_block *sb, | 812 | static int udf_find_fileset(struct super_block *sb, |
813 | kernel_lb_addr *fileset, | 813 | struct kernel_lb_addr *fileset, |
814 | kernel_lb_addr *root) | 814 | struct kernel_lb_addr *root) |
815 | { | 815 | { |
816 | struct buffer_head *bh = NULL; | 816 | struct buffer_head *bh = NULL; |
817 | long lastblock; | 817 | long lastblock; |
@@ -834,7 +834,7 @@ static int udf_find_fileset(struct super_block *sb, | |||
834 | sbi = UDF_SB(sb); | 834 | sbi = UDF_SB(sb); |
835 | if (!bh) { | 835 | if (!bh) { |
836 | /* Search backwards through the partitions */ | 836 | /* Search backwards through the partitions */ |
837 | kernel_lb_addr newfileset; | 837 | struct kernel_lb_addr newfileset; |
838 | 838 | ||
839 | /* --> cvg: FIXME - is it reasonable? */ | 839 | /* --> cvg: FIXME - is it reasonable? */ |
840 | return 1; | 840 | return 1; |
@@ -917,7 +917,7 @@ static int udf_load_pvoldesc(struct super_block *sb, sector_t block) | |||
917 | if (udf_disk_stamp_to_time(&UDF_SB(sb)->s_record_time, | 917 | if (udf_disk_stamp_to_time(&UDF_SB(sb)->s_record_time, |
918 | pvoldesc->recordingDateAndTime)) { | 918 | pvoldesc->recordingDateAndTime)) { |
919 | #ifdef UDFFS_DEBUG | 919 | #ifdef UDFFS_DEBUG |
920 | timestamp *ts = &pvoldesc->recordingDateAndTime; | 920 | struct timestamp *ts = &pvoldesc->recordingDateAndTime; |
921 | udf_debug("recording time %04u/%02u/%02u" | 921 | udf_debug("recording time %04u/%02u/%02u" |
922 | " %02u:%02u (%x)\n", | 922 | " %02u:%02u (%x)\n", |
923 | le16_to_cpu(ts->year), ts->month, ts->day, ts->hour, | 923 | le16_to_cpu(ts->year), ts->month, ts->day, ts->hour, |
@@ -946,7 +946,7 @@ static int udf_load_metadata_files(struct super_block *sb, int partition) | |||
946 | struct udf_sb_info *sbi = UDF_SB(sb); | 946 | struct udf_sb_info *sbi = UDF_SB(sb); |
947 | struct udf_part_map *map; | 947 | struct udf_part_map *map; |
948 | struct udf_meta_data *mdata; | 948 | struct udf_meta_data *mdata; |
949 | kernel_lb_addr addr; | 949 | struct kernel_lb_addr addr; |
950 | int fe_error = 0; | 950 | int fe_error = 0; |
951 | 951 | ||
952 | map = &sbi->s_partmaps[partition]; | 952 | map = &sbi->s_partmaps[partition]; |
@@ -1037,7 +1037,7 @@ error_exit: | |||
1037 | } | 1037 | } |
1038 | 1038 | ||
1039 | static void udf_load_fileset(struct super_block *sb, struct buffer_head *bh, | 1039 | static void udf_load_fileset(struct super_block *sb, struct buffer_head *bh, |
1040 | kernel_lb_addr *root) | 1040 | struct kernel_lb_addr *root) |
1041 | { | 1041 | { |
1042 | struct fileSetDesc *fset; | 1042 | struct fileSetDesc *fset; |
1043 | 1043 | ||
@@ -1119,7 +1119,7 @@ static int udf_fill_partdesc_info(struct super_block *sb, | |||
1119 | 1119 | ||
1120 | phd = (struct partitionHeaderDesc *)p->partitionContentsUse; | 1120 | phd = (struct partitionHeaderDesc *)p->partitionContentsUse; |
1121 | if (phd->unallocSpaceTable.extLength) { | 1121 | if (phd->unallocSpaceTable.extLength) { |
1122 | kernel_lb_addr loc = { | 1122 | struct kernel_lb_addr loc = { |
1123 | .logicalBlockNum = le32_to_cpu( | 1123 | .logicalBlockNum = le32_to_cpu( |
1124 | phd->unallocSpaceTable.extPosition), | 1124 | phd->unallocSpaceTable.extPosition), |
1125 | .partitionReferenceNum = p_index, | 1125 | .partitionReferenceNum = p_index, |
@@ -1154,7 +1154,7 @@ static int udf_fill_partdesc_info(struct super_block *sb, | |||
1154 | udf_debug("partitionIntegrityTable (part %d)\n", p_index); | 1154 | udf_debug("partitionIntegrityTable (part %d)\n", p_index); |
1155 | 1155 | ||
1156 | if (phd->freedSpaceTable.extLength) { | 1156 | if (phd->freedSpaceTable.extLength) { |
1157 | kernel_lb_addr loc = { | 1157 | struct kernel_lb_addr loc = { |
1158 | .logicalBlockNum = le32_to_cpu( | 1158 | .logicalBlockNum = le32_to_cpu( |
1159 | phd->freedSpaceTable.extPosition), | 1159 | phd->freedSpaceTable.extPosition), |
1160 | .partitionReferenceNum = p_index, | 1160 | .partitionReferenceNum = p_index, |
@@ -1192,7 +1192,7 @@ static int udf_load_vat(struct super_block *sb, int p_index, int type1_index) | |||
1192 | { | 1192 | { |
1193 | struct udf_sb_info *sbi = UDF_SB(sb); | 1193 | struct udf_sb_info *sbi = UDF_SB(sb); |
1194 | struct udf_part_map *map = &sbi->s_partmaps[p_index]; | 1194 | struct udf_part_map *map = &sbi->s_partmaps[p_index]; |
1195 | kernel_lb_addr ino; | 1195 | struct kernel_lb_addr ino; |
1196 | struct buffer_head *bh = NULL; | 1196 | struct buffer_head *bh = NULL; |
1197 | struct udf_inode_info *vati; | 1197 | struct udf_inode_info *vati; |
1198 | uint32_t pos; | 1198 | uint32_t pos; |
@@ -1322,7 +1322,7 @@ out_bh: | |||
1322 | } | 1322 | } |
1323 | 1323 | ||
1324 | static int udf_load_logicalvol(struct super_block *sb, sector_t block, | 1324 | static int udf_load_logicalvol(struct super_block *sb, sector_t block, |
1325 | kernel_lb_addr *fileset) | 1325 | struct kernel_lb_addr *fileset) |
1326 | { | 1326 | { |
1327 | struct logicalVolDesc *lvd; | 1327 | struct logicalVolDesc *lvd; |
1328 | int i, j, offset; | 1328 | int i, j, offset; |
@@ -1471,7 +1471,7 @@ static int udf_load_logicalvol(struct super_block *sb, sector_t block, | |||
1471 | } | 1471 | } |
1472 | 1472 | ||
1473 | if (fileset) { | 1473 | if (fileset) { |
1474 | long_ad *la = (long_ad *)&(lvd->logicalVolContentsUse[0]); | 1474 | struct long_ad *la = (struct long_ad *)&(lvd->logicalVolContentsUse[0]); |
1475 | 1475 | ||
1476 | *fileset = lelb_to_cpu(la->extLocation); | 1476 | *fileset = lelb_to_cpu(la->extLocation); |
1477 | udf_debug("FileSet found in LogicalVolDesc at block=%d, " | 1477 | udf_debug("FileSet found in LogicalVolDesc at block=%d, " |
@@ -1490,7 +1490,7 @@ out_bh: | |||
1490 | * udf_load_logicalvolint | 1490 | * udf_load_logicalvolint |
1491 | * | 1491 | * |
1492 | */ | 1492 | */ |
1493 | static void udf_load_logicalvolint(struct super_block *sb, kernel_extent_ad loc) | 1493 | static void udf_load_logicalvolint(struct super_block *sb, struct kernel_extent_ad loc) |
1494 | { | 1494 | { |
1495 | struct buffer_head *bh = NULL; | 1495 | struct buffer_head *bh = NULL; |
1496 | uint16_t ident; | 1496 | uint16_t ident; |
@@ -1533,7 +1533,7 @@ static void udf_load_logicalvolint(struct super_block *sb, kernel_extent_ad loc) | |||
1533 | * Written, tested, and released. | 1533 | * Written, tested, and released. |
1534 | */ | 1534 | */ |
1535 | static noinline int udf_process_sequence(struct super_block *sb, long block, | 1535 | static noinline int udf_process_sequence(struct super_block *sb, long block, |
1536 | long lastblock, kernel_lb_addr *fileset) | 1536 | long lastblock, struct kernel_lb_addr *fileset) |
1537 | { | 1537 | { |
1538 | struct buffer_head *bh = NULL; | 1538 | struct buffer_head *bh = NULL; |
1539 | struct udf_vds_record vds[VDS_POS_LENGTH]; | 1539 | struct udf_vds_record vds[VDS_POS_LENGTH]; |
@@ -1678,7 +1678,7 @@ static int udf_check_valid(struct super_block *sb, int novrs, int silent) | |||
1678 | return !block; | 1678 | return !block; |
1679 | } | 1679 | } |
1680 | 1680 | ||
1681 | static int udf_load_sequence(struct super_block *sb, kernel_lb_addr *fileset) | 1681 | static int udf_load_sequence(struct super_block *sb, struct kernel_lb_addr *fileset) |
1682 | { | 1682 | { |
1683 | struct anchorVolDescPtr *anchor; | 1683 | struct anchorVolDescPtr *anchor; |
1684 | uint16_t ident; | 1684 | uint16_t ident; |
@@ -1755,7 +1755,7 @@ static void udf_open_lvid(struct super_block *sb) | |||
1755 | lvid->integrityType = LVID_INTEGRITY_TYPE_OPEN; | 1755 | lvid->integrityType = LVID_INTEGRITY_TYPE_OPEN; |
1756 | 1756 | ||
1757 | lvid->descTag.descCRC = cpu_to_le16( | 1757 | lvid->descTag.descCRC = cpu_to_le16( |
1758 | crc_itu_t(0, (char *)lvid + sizeof(tag), | 1758 | crc_itu_t(0, (char *)lvid + sizeof(struct tag), |
1759 | le16_to_cpu(lvid->descTag.descCRCLength))); | 1759 | le16_to_cpu(lvid->descTag.descCRCLength))); |
1760 | 1760 | ||
1761 | lvid->descTag.tagChecksum = udf_tag_checksum(&lvid->descTag); | 1761 | lvid->descTag.tagChecksum = udf_tag_checksum(&lvid->descTag); |
@@ -1790,7 +1790,7 @@ static void udf_close_lvid(struct super_block *sb) | |||
1790 | lvid->integrityType = cpu_to_le32(LVID_INTEGRITY_TYPE_CLOSE); | 1790 | lvid->integrityType = cpu_to_le32(LVID_INTEGRITY_TYPE_CLOSE); |
1791 | 1791 | ||
1792 | lvid->descTag.descCRC = cpu_to_le16( | 1792 | lvid->descTag.descCRC = cpu_to_le16( |
1793 | crc_itu_t(0, (char *)lvid + sizeof(tag), | 1793 | crc_itu_t(0, (char *)lvid + sizeof(struct tag), |
1794 | le16_to_cpu(lvid->descTag.descCRCLength))); | 1794 | le16_to_cpu(lvid->descTag.descCRCLength))); |
1795 | 1795 | ||
1796 | lvid->descTag.tagChecksum = udf_tag_checksum(&lvid->descTag); | 1796 | lvid->descTag.tagChecksum = udf_tag_checksum(&lvid->descTag); |
@@ -1848,7 +1848,7 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent) | |||
1848 | int i; | 1848 | int i; |
1849 | struct inode *inode = NULL; | 1849 | struct inode *inode = NULL; |
1850 | struct udf_options uopt; | 1850 | struct udf_options uopt; |
1851 | kernel_lb_addr rootdir, fileset; | 1851 | struct kernel_lb_addr rootdir, fileset; |
1852 | struct udf_sb_info *sbi; | 1852 | struct udf_sb_info *sbi; |
1853 | 1853 | ||
1854 | uopt.flags = (1 << UDF_FLAG_USE_AD_IN_ICB) | (1 << UDF_FLAG_STRICT); | 1854 | uopt.flags = (1 << UDF_FLAG_USE_AD_IN_ICB) | (1 << UDF_FLAG_STRICT); |
@@ -1978,7 +1978,7 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent) | |||
1978 | } | 1978 | } |
1979 | 1979 | ||
1980 | if (!silent) { | 1980 | if (!silent) { |
1981 | timestamp ts; | 1981 | struct timestamp ts; |
1982 | udf_time_to_disk_stamp(&ts, sbi->s_record_time); | 1982 | udf_time_to_disk_stamp(&ts, sbi->s_record_time); |
1983 | udf_info("UDF: Mounting volume '%s', " | 1983 | udf_info("UDF: Mounting volume '%s', " |
1984 | "timestamp %04u/%02u/%02u %02u:%02u (%x)\n", | 1984 | "timestamp %04u/%02u/%02u %02u:%02u (%x)\n", |
@@ -2114,7 +2114,7 @@ static unsigned int udf_count_free_bitmap(struct super_block *sb, | |||
2114 | unsigned int accum = 0; | 2114 | unsigned int accum = 0; |
2115 | int index; | 2115 | int index; |
2116 | int block = 0, newblock; | 2116 | int block = 0, newblock; |
2117 | kernel_lb_addr loc; | 2117 | struct kernel_lb_addr loc; |
2118 | uint32_t bytes; | 2118 | uint32_t bytes; |
2119 | uint8_t *ptr; | 2119 | uint8_t *ptr; |
2120 | uint16_t ident; | 2120 | uint16_t ident; |
@@ -2170,7 +2170,7 @@ static unsigned int udf_count_free_table(struct super_block *sb, | |||
2170 | { | 2170 | { |
2171 | unsigned int accum = 0; | 2171 | unsigned int accum = 0; |
2172 | uint32_t elen; | 2172 | uint32_t elen; |
2173 | kernel_lb_addr eloc; | 2173 | struct kernel_lb_addr eloc; |
2174 | int8_t etype; | 2174 | int8_t etype; |
2175 | struct extent_position epos; | 2175 | struct extent_position epos; |
2176 | 2176 | ||
diff --git a/fs/udf/truncate.c b/fs/udf/truncate.c index 65e19b4f9424..f2fad30fd145 100644 --- a/fs/udf/truncate.c +++ b/fs/udf/truncate.c | |||
@@ -28,10 +28,10 @@ | |||
28 | #include "udf_sb.h" | 28 | #include "udf_sb.h" |
29 | 29 | ||
30 | static void extent_trunc(struct inode *inode, struct extent_position *epos, | 30 | static void extent_trunc(struct inode *inode, struct extent_position *epos, |
31 | kernel_lb_addr eloc, int8_t etype, uint32_t elen, | 31 | struct kernel_lb_addr eloc, int8_t etype, uint32_t elen, |
32 | uint32_t nelen) | 32 | uint32_t nelen) |
33 | { | 33 | { |
34 | kernel_lb_addr neloc = {}; | 34 | struct kernel_lb_addr neloc = {}; |
35 | int last_block = (elen + inode->i_sb->s_blocksize - 1) >> | 35 | int last_block = (elen + inode->i_sb->s_blocksize - 1) >> |
36 | inode->i_sb->s_blocksize_bits; | 36 | inode->i_sb->s_blocksize_bits; |
37 | int first_block = (nelen + inode->i_sb->s_blocksize - 1) >> | 37 | int first_block = (nelen + inode->i_sb->s_blocksize - 1) >> |
@@ -68,7 +68,7 @@ static void extent_trunc(struct inode *inode, struct extent_position *epos, | |||
68 | void udf_truncate_tail_extent(struct inode *inode) | 68 | void udf_truncate_tail_extent(struct inode *inode) |
69 | { | 69 | { |
70 | struct extent_position epos = {}; | 70 | struct extent_position epos = {}; |
71 | kernel_lb_addr eloc; | 71 | struct kernel_lb_addr eloc; |
72 | uint32_t elen, nelen; | 72 | uint32_t elen, nelen; |
73 | uint64_t lbcount = 0; | 73 | uint64_t lbcount = 0; |
74 | int8_t etype = -1, netype; | 74 | int8_t etype = -1, netype; |
@@ -83,9 +83,9 @@ void udf_truncate_tail_extent(struct inode *inode) | |||
83 | return; | 83 | return; |
84 | 84 | ||
85 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) | 85 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) |
86 | adsize = sizeof(short_ad); | 86 | adsize = sizeof(struct short_ad); |
87 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) | 87 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) |
88 | adsize = sizeof(long_ad); | 88 | adsize = sizeof(struct long_ad); |
89 | else | 89 | else |
90 | BUG(); | 90 | BUG(); |
91 | 91 | ||
@@ -124,7 +124,7 @@ void udf_truncate_tail_extent(struct inode *inode) | |||
124 | void udf_discard_prealloc(struct inode *inode) | 124 | void udf_discard_prealloc(struct inode *inode) |
125 | { | 125 | { |
126 | struct extent_position epos = { NULL, 0, {0, 0} }; | 126 | struct extent_position epos = { NULL, 0, {0, 0} }; |
127 | kernel_lb_addr eloc; | 127 | struct kernel_lb_addr eloc; |
128 | uint32_t elen; | 128 | uint32_t elen; |
129 | uint64_t lbcount = 0; | 129 | uint64_t lbcount = 0; |
130 | int8_t etype = -1, netype; | 130 | int8_t etype = -1, netype; |
@@ -136,9 +136,9 @@ void udf_discard_prealloc(struct inode *inode) | |||
136 | return; | 136 | return; |
137 | 137 | ||
138 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) | 138 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) |
139 | adsize = sizeof(short_ad); | 139 | adsize = sizeof(struct short_ad); |
140 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) | 140 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) |
141 | adsize = sizeof(long_ad); | 141 | adsize = sizeof(struct long_ad); |
142 | else | 142 | else |
143 | adsize = 0; | 143 | adsize = 0; |
144 | 144 | ||
@@ -200,7 +200,7 @@ static void udf_update_alloc_ext_desc(struct inode *inode, | |||
200 | void udf_truncate_extents(struct inode *inode) | 200 | void udf_truncate_extents(struct inode *inode) |
201 | { | 201 | { |
202 | struct extent_position epos; | 202 | struct extent_position epos; |
203 | kernel_lb_addr eloc, neloc = {}; | 203 | struct kernel_lb_addr eloc, neloc = {}; |
204 | uint32_t elen, nelen = 0, indirect_ext_len = 0, lenalloc; | 204 | uint32_t elen, nelen = 0, indirect_ext_len = 0, lenalloc; |
205 | int8_t etype; | 205 | int8_t etype; |
206 | struct super_block *sb = inode->i_sb; | 206 | struct super_block *sb = inode->i_sb; |
@@ -210,9 +210,9 @@ void udf_truncate_extents(struct inode *inode) | |||
210 | struct udf_inode_info *iinfo = UDF_I(inode); | 210 | struct udf_inode_info *iinfo = UDF_I(inode); |
211 | 211 | ||
212 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) | 212 | if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) |
213 | adsize = sizeof(short_ad); | 213 | adsize = sizeof(struct short_ad); |
214 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) | 214 | else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) |
215 | adsize = sizeof(long_ad); | 215 | adsize = sizeof(struct long_ad); |
216 | else | 216 | else |
217 | BUG(); | 217 | BUG(); |
218 | 218 | ||
@@ -278,7 +278,7 @@ void udf_truncate_extents(struct inode *inode) | |||
278 | udf_update_alloc_ext_desc(inode, &epos, lenalloc); | 278 | udf_update_alloc_ext_desc(inode, &epos, lenalloc); |
279 | } else if (inode->i_size) { | 279 | } else if (inode->i_size) { |
280 | if (byte_offset) { | 280 | if (byte_offset) { |
281 | kernel_long_ad extent; | 281 | struct kernel_long_ad extent; |
282 | 282 | ||
283 | /* | 283 | /* |
284 | * OK, there is not extent covering inode->i_size and | 284 | * OK, there is not extent covering inode->i_size and |
diff --git a/fs/udf/udf_i.h b/fs/udf/udf_i.h index 4f86b1d98a5d..e58d1de41073 100644 --- a/fs/udf/udf_i.h +++ b/fs/udf/udf_i.h | |||
@@ -4,7 +4,7 @@ | |||
4 | struct udf_inode_info { | 4 | struct udf_inode_info { |
5 | struct timespec i_crtime; | 5 | struct timespec i_crtime; |
6 | /* Physical address of inode */ | 6 | /* Physical address of inode */ |
7 | kernel_lb_addr i_location; | 7 | struct kernel_lb_addr i_location; |
8 | __u64 i_unique; | 8 | __u64 i_unique; |
9 | __u32 i_lenEAttr; | 9 | __u32 i_lenEAttr; |
10 | __u32 i_lenAlloc; | 10 | __u32 i_lenAlloc; |
@@ -17,8 +17,8 @@ struct udf_inode_info { | |||
17 | unsigned i_strat4096 : 1; | 17 | unsigned i_strat4096 : 1; |
18 | unsigned reserved : 26; | 18 | unsigned reserved : 26; |
19 | union { | 19 | union { |
20 | short_ad *i_sad; | 20 | struct short_ad *i_sad; |
21 | long_ad *i_lad; | 21 | struct long_ad *i_lad; |
22 | __u8 *i_data; | 22 | __u8 *i_data; |
23 | } i_ext; | 23 | } i_ext; |
24 | struct inode vfs_inode; | 24 | struct inode vfs_inode; |
diff --git a/fs/udf/udfdecl.h b/fs/udf/udfdecl.h index 8ec865de5f13..35f0b9bf7b0c 100644 --- a/fs/udf/udfdecl.h +++ b/fs/udf/udfdecl.h | |||
@@ -65,7 +65,7 @@ static inline size_t udf_ext0_offset(struct inode *inode) | |||
65 | #define udf_get_lb_pblock(sb,loc,offset) udf_get_pblock((sb), (loc).logicalBlockNum, (loc).partitionReferenceNum, (offset)) | 65 | #define udf_get_lb_pblock(sb,loc,offset) udf_get_pblock((sb), (loc).logicalBlockNum, (loc).partitionReferenceNum, (offset)) |
66 | 66 | ||
67 | /* computes tag checksum */ | 67 | /* computes tag checksum */ |
68 | u8 udf_tag_checksum(const tag *t); | 68 | u8 udf_tag_checksum(const struct tag *t); |
69 | 69 | ||
70 | struct dentry; | 70 | struct dentry; |
71 | struct inode; | 71 | struct inode; |
@@ -95,7 +95,7 @@ struct udf_vds_record { | |||
95 | }; | 95 | }; |
96 | 96 | ||
97 | struct generic_desc { | 97 | struct generic_desc { |
98 | tag descTag; | 98 | struct tag descTag; |
99 | __le32 volDescSeqNum; | 99 | __le32 volDescSeqNum; |
100 | }; | 100 | }; |
101 | 101 | ||
@@ -108,7 +108,7 @@ struct ustr { | |||
108 | struct extent_position { | 108 | struct extent_position { |
109 | struct buffer_head *bh; | 109 | struct buffer_head *bh; |
110 | uint32_t offset; | 110 | uint32_t offset; |
111 | kernel_lb_addr block; | 111 | struct kernel_lb_addr block; |
112 | }; | 112 | }; |
113 | 113 | ||
114 | /* super.c */ | 114 | /* super.c */ |
@@ -124,7 +124,7 @@ extern int udf_ioctl(struct inode *, struct file *, unsigned int, | |||
124 | unsigned long); | 124 | unsigned long); |
125 | 125 | ||
126 | /* inode.c */ | 126 | /* inode.c */ |
127 | extern struct inode *udf_iget(struct super_block *, kernel_lb_addr); | 127 | extern struct inode *udf_iget(struct super_block *, struct kernel_lb_addr); |
128 | extern int udf_sync_inode(struct inode *); | 128 | extern int udf_sync_inode(struct inode *); |
129 | extern void udf_expand_file_adinicb(struct inode *, int, int *); | 129 | extern void udf_expand_file_adinicb(struct inode *, int, int *); |
130 | extern struct buffer_head *udf_expand_dir_adinicb(struct inode *, int *, int *); | 130 | extern struct buffer_head *udf_expand_dir_adinicb(struct inode *, int *, int *); |
@@ -136,19 +136,19 @@ extern void udf_clear_inode(struct inode *); | |||
136 | extern int udf_write_inode(struct inode *, int); | 136 | extern int udf_write_inode(struct inode *, int); |
137 | extern long udf_block_map(struct inode *, sector_t); | 137 | extern long udf_block_map(struct inode *, sector_t); |
138 | extern int udf_extend_file(struct inode *, struct extent_position *, | 138 | extern int udf_extend_file(struct inode *, struct extent_position *, |
139 | kernel_long_ad *, sector_t); | 139 | struct kernel_long_ad *, sector_t); |
140 | extern int8_t inode_bmap(struct inode *, sector_t, struct extent_position *, | 140 | extern int8_t inode_bmap(struct inode *, sector_t, struct extent_position *, |
141 | kernel_lb_addr *, uint32_t *, sector_t *); | 141 | struct kernel_lb_addr *, uint32_t *, sector_t *); |
142 | extern int8_t udf_add_aext(struct inode *, struct extent_position *, | 142 | extern int8_t udf_add_aext(struct inode *, struct extent_position *, |
143 | kernel_lb_addr, uint32_t, int); | 143 | struct kernel_lb_addr, uint32_t, int); |
144 | extern int8_t udf_write_aext(struct inode *, struct extent_position *, | 144 | extern int8_t udf_write_aext(struct inode *, struct extent_position *, |
145 | kernel_lb_addr, uint32_t, int); | 145 | struct kernel_lb_addr, uint32_t, int); |
146 | extern int8_t udf_delete_aext(struct inode *, struct extent_position, | 146 | extern int8_t udf_delete_aext(struct inode *, struct extent_position, |
147 | kernel_lb_addr, uint32_t); | 147 | struct kernel_lb_addr, uint32_t); |
148 | extern int8_t udf_next_aext(struct inode *, struct extent_position *, | 148 | extern int8_t udf_next_aext(struct inode *, struct extent_position *, |
149 | kernel_lb_addr *, uint32_t *, int); | 149 | struct kernel_lb_addr *, uint32_t *, int); |
150 | extern int8_t udf_current_aext(struct inode *, struct extent_position *, | 150 | extern int8_t udf_current_aext(struct inode *, struct extent_position *, |
151 | kernel_lb_addr *, uint32_t *, int); | 151 | struct kernel_lb_addr *, uint32_t *, int); |
152 | 152 | ||
153 | /* misc.c */ | 153 | /* misc.c */ |
154 | extern struct buffer_head *udf_tgetblk(struct super_block *, int); | 154 | extern struct buffer_head *udf_tgetblk(struct super_block *, int); |
@@ -160,7 +160,7 @@ extern struct genericFormat *udf_get_extendedattr(struct inode *, uint32_t, | |||
160 | extern struct buffer_head *udf_read_tagged(struct super_block *, uint32_t, | 160 | extern struct buffer_head *udf_read_tagged(struct super_block *, uint32_t, |
161 | uint32_t, uint16_t *); | 161 | uint32_t, uint16_t *); |
162 | extern struct buffer_head *udf_read_ptagged(struct super_block *, | 162 | extern struct buffer_head *udf_read_ptagged(struct super_block *, |
163 | kernel_lb_addr, uint32_t, | 163 | struct kernel_lb_addr, uint32_t, |
164 | uint16_t *); | 164 | uint16_t *); |
165 | extern void udf_update_tag(char *, int); | 165 | extern void udf_update_tag(char *, int); |
166 | extern void udf_new_tag(char *, uint16_t, uint16_t, uint16_t, uint32_t, int); | 166 | extern void udf_new_tag(char *, uint16_t, uint16_t, uint16_t, uint32_t, int); |
@@ -200,7 +200,7 @@ extern void udf_truncate_extents(struct inode *); | |||
200 | 200 | ||
201 | /* balloc.c */ | 201 | /* balloc.c */ |
202 | extern void udf_free_blocks(struct super_block *, struct inode *, | 202 | extern void udf_free_blocks(struct super_block *, struct inode *, |
203 | kernel_lb_addr, uint32_t, uint32_t); | 203 | struct kernel_lb_addr, uint32_t, uint32_t); |
204 | extern int udf_prealloc_blocks(struct super_block *, struct inode *, uint16_t, | 204 | extern int udf_prealloc_blocks(struct super_block *, struct inode *, uint16_t, |
205 | uint32_t, uint32_t); | 205 | uint32_t, uint32_t); |
206 | extern int udf_new_block(struct super_block *, struct inode *, uint16_t, | 206 | extern int udf_new_block(struct super_block *, struct inode *, uint16_t, |
@@ -214,16 +214,16 @@ extern struct fileIdentDesc *udf_fileident_read(struct inode *, loff_t *, | |||
214 | struct udf_fileident_bh *, | 214 | struct udf_fileident_bh *, |
215 | struct fileIdentDesc *, | 215 | struct fileIdentDesc *, |
216 | struct extent_position *, | 216 | struct extent_position *, |
217 | kernel_lb_addr *, uint32_t *, | 217 | struct kernel_lb_addr *, uint32_t *, |
218 | sector_t *); | 218 | sector_t *); |
219 | extern struct fileIdentDesc *udf_get_fileident(void *buffer, int bufsize, | 219 | extern struct fileIdentDesc *udf_get_fileident(void *buffer, int bufsize, |
220 | int *offset); | 220 | int *offset); |
221 | extern long_ad *udf_get_filelongad(uint8_t *, int, uint32_t *, int); | 221 | extern struct long_ad *udf_get_filelongad(uint8_t *, int, uint32_t *, int); |
222 | extern short_ad *udf_get_fileshortad(uint8_t *, int, uint32_t *, int); | 222 | extern struct short_ad *udf_get_fileshortad(uint8_t *, int, uint32_t *, int); |
223 | 223 | ||
224 | /* udftime.c */ | 224 | /* udftime.c */ |
225 | extern struct timespec *udf_disk_stamp_to_time(struct timespec *dest, | 225 | extern struct timespec *udf_disk_stamp_to_time(struct timespec *dest, |
226 | timestamp src); | 226 | struct timestamp src); |
227 | extern timestamp *udf_time_to_disk_stamp(timestamp *dest, struct timespec src); | 227 | extern struct timestamp *udf_time_to_disk_stamp(struct timestamp *dest, struct timespec src); |
228 | 228 | ||
229 | #endif /* __UDF_DECL_H */ | 229 | #endif /* __UDF_DECL_H */ |
diff --git a/fs/udf/udfend.h b/fs/udf/udfend.h index 489f52fb428c..6a9f3a9cc428 100644 --- a/fs/udf/udfend.h +++ b/fs/udf/udfend.h | |||
@@ -4,9 +4,9 @@ | |||
4 | #include <asm/byteorder.h> | 4 | #include <asm/byteorder.h> |
5 | #include <linux/string.h> | 5 | #include <linux/string.h> |
6 | 6 | ||
7 | static inline kernel_lb_addr lelb_to_cpu(lb_addr in) | 7 | static inline struct kernel_lb_addr lelb_to_cpu(struct lb_addr in) |
8 | { | 8 | { |
9 | kernel_lb_addr out; | 9 | struct kernel_lb_addr out; |
10 | 10 | ||
11 | out.logicalBlockNum = le32_to_cpu(in.logicalBlockNum); | 11 | out.logicalBlockNum = le32_to_cpu(in.logicalBlockNum); |
12 | out.partitionReferenceNum = le16_to_cpu(in.partitionReferenceNum); | 12 | out.partitionReferenceNum = le16_to_cpu(in.partitionReferenceNum); |
@@ -14,9 +14,9 @@ static inline kernel_lb_addr lelb_to_cpu(lb_addr in) | |||
14 | return out; | 14 | return out; |
15 | } | 15 | } |
16 | 16 | ||
17 | static inline lb_addr cpu_to_lelb(kernel_lb_addr in) | 17 | static inline struct lb_addr cpu_to_lelb(struct kernel_lb_addr in) |
18 | { | 18 | { |
19 | lb_addr out; | 19 | struct lb_addr out; |
20 | 20 | ||
21 | out.logicalBlockNum = cpu_to_le32(in.logicalBlockNum); | 21 | out.logicalBlockNum = cpu_to_le32(in.logicalBlockNum); |
22 | out.partitionReferenceNum = cpu_to_le16(in.partitionReferenceNum); | 22 | out.partitionReferenceNum = cpu_to_le16(in.partitionReferenceNum); |
@@ -24,9 +24,9 @@ static inline lb_addr cpu_to_lelb(kernel_lb_addr in) | |||
24 | return out; | 24 | return out; |
25 | } | 25 | } |
26 | 26 | ||
27 | static inline short_ad lesa_to_cpu(short_ad in) | 27 | static inline struct short_ad lesa_to_cpu(struct short_ad in) |
28 | { | 28 | { |
29 | short_ad out; | 29 | struct short_ad out; |
30 | 30 | ||
31 | out.extLength = le32_to_cpu(in.extLength); | 31 | out.extLength = le32_to_cpu(in.extLength); |
32 | out.extPosition = le32_to_cpu(in.extPosition); | 32 | out.extPosition = le32_to_cpu(in.extPosition); |
@@ -34,9 +34,9 @@ static inline short_ad lesa_to_cpu(short_ad in) | |||
34 | return out; | 34 | return out; |
35 | } | 35 | } |
36 | 36 | ||
37 | static inline short_ad cpu_to_lesa(short_ad in) | 37 | static inline struct short_ad cpu_to_lesa(struct short_ad in) |
38 | { | 38 | { |
39 | short_ad out; | 39 | struct short_ad out; |
40 | 40 | ||
41 | out.extLength = cpu_to_le32(in.extLength); | 41 | out.extLength = cpu_to_le32(in.extLength); |
42 | out.extPosition = cpu_to_le32(in.extPosition); | 42 | out.extPosition = cpu_to_le32(in.extPosition); |
@@ -44,9 +44,9 @@ static inline short_ad cpu_to_lesa(short_ad in) | |||
44 | return out; | 44 | return out; |
45 | } | 45 | } |
46 | 46 | ||
47 | static inline kernel_long_ad lela_to_cpu(long_ad in) | 47 | static inline struct kernel_long_ad lela_to_cpu(struct long_ad in) |
48 | { | 48 | { |
49 | kernel_long_ad out; | 49 | struct kernel_long_ad out; |
50 | 50 | ||
51 | out.extLength = le32_to_cpu(in.extLength); | 51 | out.extLength = le32_to_cpu(in.extLength); |
52 | out.extLocation = lelb_to_cpu(in.extLocation); | 52 | out.extLocation = lelb_to_cpu(in.extLocation); |
@@ -54,9 +54,9 @@ static inline kernel_long_ad lela_to_cpu(long_ad in) | |||
54 | return out; | 54 | return out; |
55 | } | 55 | } |
56 | 56 | ||
57 | static inline long_ad cpu_to_lela(kernel_long_ad in) | 57 | static inline struct long_ad cpu_to_lela(struct kernel_long_ad in) |
58 | { | 58 | { |
59 | long_ad out; | 59 | struct long_ad out; |
60 | 60 | ||
61 | out.extLength = cpu_to_le32(in.extLength); | 61 | out.extLength = cpu_to_le32(in.extLength); |
62 | out.extLocation = cpu_to_lelb(in.extLocation); | 62 | out.extLocation = cpu_to_lelb(in.extLocation); |
@@ -64,9 +64,9 @@ static inline long_ad cpu_to_lela(kernel_long_ad in) | |||
64 | return out; | 64 | return out; |
65 | } | 65 | } |
66 | 66 | ||
67 | static inline kernel_extent_ad leea_to_cpu(extent_ad in) | 67 | static inline struct kernel_extent_ad leea_to_cpu(struct extent_ad in) |
68 | { | 68 | { |
69 | kernel_extent_ad out; | 69 | struct kernel_extent_ad out; |
70 | 70 | ||
71 | out.extLength = le32_to_cpu(in.extLength); | 71 | out.extLength = le32_to_cpu(in.extLength); |
72 | out.extLocation = le32_to_cpu(in.extLocation); | 72 | out.extLocation = le32_to_cpu(in.extLocation); |
diff --git a/fs/udf/udftime.c b/fs/udf/udftime.c index 5f811655c9b5..b8c828c4d200 100644 --- a/fs/udf/udftime.c +++ b/fs/udf/udftime.c | |||
@@ -85,7 +85,8 @@ extern struct timezone sys_tz; | |||
85 | #define SECS_PER_HOUR (60 * 60) | 85 | #define SECS_PER_HOUR (60 * 60) |
86 | #define SECS_PER_DAY (SECS_PER_HOUR * 24) | 86 | #define SECS_PER_DAY (SECS_PER_HOUR * 24) |
87 | 87 | ||
88 | struct timespec *udf_disk_stamp_to_time(struct timespec *dest, timestamp src) | 88 | struct timespec * |
89 | udf_disk_stamp_to_time(struct timespec *dest, struct timestamp src) | ||
89 | { | 90 | { |
90 | int yday; | 91 | int yday; |
91 | u16 typeAndTimezone = le16_to_cpu(src.typeAndTimezone); | 92 | u16 typeAndTimezone = le16_to_cpu(src.typeAndTimezone); |
@@ -116,7 +117,8 @@ struct timespec *udf_disk_stamp_to_time(struct timespec *dest, timestamp src) | |||
116 | return dest; | 117 | return dest; |
117 | } | 118 | } |
118 | 119 | ||
119 | timestamp *udf_time_to_disk_stamp(timestamp *dest, struct timespec ts) | 120 | struct timestamp * |
121 | udf_time_to_disk_stamp(struct timestamp *dest, struct timespec ts) | ||
120 | { | 122 | { |
121 | long int days, rem, y; | 123 | long int days, rem, y; |
122 | const unsigned short int *ip; | 124 | const unsigned short int *ip; |