25 #include <linux/string.h>
37 return sb_getblk(sb, block);
45 return sb_bread(sb, block);
64 offset = inode->
i_sb->s_blocksize - udf_file_entry_alloc_offset(inode) -
69 if (loc & 0x01 && offset >= size) {
108 memmove(&ea[offset - aal + size],
109 &ea[aal], offset - aal);
118 memmove(&ea[offset - ial + size],
119 &ea[ial], offset - ial);
124 }
else if (type < 65536) {
129 memmove(&ea[offset - aal + size],
130 &ea[aal], offset - aal);
140 sizeof(
struct tag), crclen));
174 else if (type < 65536)
206 struct buffer_head *bh =
NULL;
210 if (block == 0xFFFFFFFF)
215 udf_err(sb,
"read failed, block=%u, location=%d\n",
220 tag_p = (
struct tag *)(bh->b_data);
225 udf_debug(
"location mismatch block %u, tag %u != %u\n",
233 udf_err(sb,
"tag checksum failed, block %u: 0x%02x != 0x%02x\n",
241 udf_err(sb,
"tag version 0x%04x != 0x0002 || 0x0003, block %u\n",
249 bh->b_data +
sizeof(
struct tag),
253 udf_debug(
"Crc failure block %d: crc = %d, crclen = %d\n", block,
271 struct tag *tptr = (
struct tag *)data;
272 length -=
sizeof(
struct tag);
282 struct tag *tptr = (
struct tag *)data;
295 for (i = 0; i <
sizeof(
struct tag); ++
i)