Lines Matching refs:iinfo
71 struct udf_inode_info *iinfo = UDF_I(inode); in __udf_clear_extent_cache() local
73 if (iinfo->cached_extent.lstart != -1) { in __udf_clear_extent_cache()
74 brelse(iinfo->cached_extent.epos.bh); in __udf_clear_extent_cache()
75 iinfo->cached_extent.lstart = -1; in __udf_clear_extent_cache()
82 struct udf_inode_info *iinfo = UDF_I(inode); in udf_clear_extent_cache() local
84 spin_lock(&iinfo->i_extent_cache_lock); in udf_clear_extent_cache()
86 spin_unlock(&iinfo->i_extent_cache_lock); in udf_clear_extent_cache()
93 struct udf_inode_info *iinfo = UDF_I(inode); in udf_read_extent_cache() local
96 spin_lock(&iinfo->i_extent_cache_lock); in udf_read_extent_cache()
97 if ((iinfo->cached_extent.lstart <= bcount) && in udf_read_extent_cache()
98 (iinfo->cached_extent.lstart != -1)) { in udf_read_extent_cache()
100 *lbcount = iinfo->cached_extent.lstart; in udf_read_extent_cache()
101 memcpy(pos, &iinfo->cached_extent.epos, in udf_read_extent_cache()
107 spin_unlock(&iinfo->i_extent_cache_lock); in udf_read_extent_cache()
115 struct udf_inode_info *iinfo = UDF_I(inode); in udf_update_extent_cache() local
117 spin_lock(&iinfo->i_extent_cache_lock); in udf_update_extent_cache()
122 memcpy(&iinfo->cached_extent.epos, pos, in udf_update_extent_cache()
124 iinfo->cached_extent.lstart = estart; in udf_update_extent_cache()
126 switch (iinfo->i_alloc_type) { in udf_update_extent_cache()
128 iinfo->cached_extent.epos.offset -= in udf_update_extent_cache()
132 iinfo->cached_extent.epos.offset -= in udf_update_extent_cache()
135 spin_unlock(&iinfo->i_extent_cache_lock); in udf_update_extent_cache()
140 struct udf_inode_info *iinfo = UDF_I(inode); in udf_evict_inode() local
151 if (iinfo->i_alloc_type != ICBTAG_FLAG_AD_IN_ICB && in udf_evict_inode()
152 inode->i_size != iinfo->i_lenExtents) { in udf_evict_inode()
156 (unsigned long long)iinfo->i_lenExtents); in udf_evict_inode()
158 kfree(iinfo->i_ext.i_data); in udf_evict_inode()
159 iinfo->i_ext.i_data = NULL; in udf_evict_inode()
169 struct udf_inode_info *iinfo = UDF_I(inode); in udf_write_failed() local
174 if (iinfo->i_alloc_type != ICBTAG_FLAG_AD_IN_ICB) { in udf_write_failed()
175 down_write(&iinfo->i_data_sem); in udf_write_failed()
178 up_write(&iinfo->i_data_sem); in udf_write_failed()
258 struct udf_inode_info *iinfo = UDF_I(inode); in udf_expand_file_adinicb() local
266 if (!iinfo->i_lenAlloc) { in udf_expand_file_adinicb()
268 iinfo->i_alloc_type = ICBTAG_FLAG_AD_SHORT; in udf_expand_file_adinicb()
270 iinfo->i_alloc_type = ICBTAG_FLAG_AD_LONG; in udf_expand_file_adinicb()
273 up_write(&iinfo->i_data_sem); in udf_expand_file_adinicb()
281 up_write(&iinfo->i_data_sem); in udf_expand_file_adinicb()
289 memset(kaddr + iinfo->i_lenAlloc, 0x00, in udf_expand_file_adinicb()
290 PAGE_CACHE_SIZE - iinfo->i_lenAlloc); in udf_expand_file_adinicb()
291 memcpy(kaddr, iinfo->i_ext.i_data + iinfo->i_lenEAttr, in udf_expand_file_adinicb()
292 iinfo->i_lenAlloc); in udf_expand_file_adinicb()
297 down_write(&iinfo->i_data_sem); in udf_expand_file_adinicb()
298 memset(iinfo->i_ext.i_data + iinfo->i_lenEAttr, 0x00, in udf_expand_file_adinicb()
299 iinfo->i_lenAlloc); in udf_expand_file_adinicb()
300 iinfo->i_lenAlloc = 0; in udf_expand_file_adinicb()
302 iinfo->i_alloc_type = ICBTAG_FLAG_AD_SHORT; in udf_expand_file_adinicb()
304 iinfo->i_alloc_type = ICBTAG_FLAG_AD_LONG; in udf_expand_file_adinicb()
307 up_write(&iinfo->i_data_sem); in udf_expand_file_adinicb()
313 down_write(&iinfo->i_data_sem); in udf_expand_file_adinicb()
314 memcpy(iinfo->i_ext.i_data + iinfo->i_lenEAttr, kaddr, in udf_expand_file_adinicb()
318 iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB; in udf_expand_file_adinicb()
320 up_write(&iinfo->i_data_sem); in udf_expand_file_adinicb()
341 struct udf_inode_info *iinfo = UDF_I(inode); in udf_expand_dir_adinicb() local
349 iinfo->i_alloc_type = alloctype; in udf_expand_dir_adinicb()
356 iinfo->i_location.partitionReferenceNum, in udf_expand_dir_adinicb()
357 iinfo->i_location.logicalBlockNum, err); in udf_expand_dir_adinicb()
361 iinfo->i_location.partitionReferenceNum, in udf_expand_dir_adinicb()
380 iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB; in udf_expand_dir_adinicb()
387 iinfo->i_alloc_type = alloctype; in udf_expand_dir_adinicb()
395 iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB; in udf_expand_dir_adinicb()
402 memset(iinfo->i_ext.i_data + iinfo->i_lenEAttr, 0, in udf_expand_dir_adinicb()
403 iinfo->i_lenAlloc); in udf_expand_dir_adinicb()
404 iinfo->i_lenAlloc = 0; in udf_expand_dir_adinicb()
407 iinfo->i_location.partitionReferenceNum; in udf_expand_dir_adinicb()
408 iinfo->i_lenExtents = inode->i_size; in udf_expand_dir_adinicb()
410 epos.block = iinfo->i_location; in udf_expand_dir_adinicb()
425 struct udf_inode_info *iinfo; in udf_get_block() local
436 iinfo = UDF_I(inode); in udf_get_block()
438 down_write(&iinfo->i_data_sem); in udf_get_block()
439 if (block == iinfo->i_next_alloc_block + 1) { in udf_get_block()
440 iinfo->i_next_alloc_block++; in udf_get_block()
441 iinfo->i_next_alloc_goal++; in udf_get_block()
454 up_write(&iinfo->i_data_sem); in udf_get_block()
493 struct udf_inode_info *iinfo; in udf_do_extend_file() local
501 iinfo = UDF_I(inode); in udf_do_extend_file()
508 iinfo->i_lenExtents = in udf_do_extend_file()
509 (iinfo->i_lenExtents + sb->s_blocksize - 1) & in udf_do_extend_file()
589 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) in udf_do_extend_file()
591 else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) in udf_do_extend_file()
609 struct udf_inode_info *iinfo = UDF_I(inode); in udf_extend_file() local
613 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) in udf_extend_file()
615 else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) in udf_extend_file()
650 iinfo->i_lenExtents = newsize; in udf_extend_file()
669 struct udf_inode_info *iinfo = UDF_I(inode); in inode_getblk() local
670 int goal = 0, pgoal = iinfo->i_location.logicalBlockNum; in inode_getblk()
677 prev_epos.block = iinfo->i_location; in inode_getblk()
823 if (iinfo->i_next_alloc_block == block) in inode_getblk()
824 goal = iinfo->i_next_alloc_goal; in inode_getblk()
828 goal = iinfo->i_location.logicalBlockNum + 1; in inode_getblk()
832 iinfo->i_location.partitionReferenceNum, in inode_getblk()
842 iinfo->i_lenExtents += inode->i_sb->s_blocksize; in inode_getblk()
873 iinfo->i_location.partitionReferenceNum, 0); in inode_getblk()
879 iinfo->i_next_alloc_block = block; in inode_getblk()
880 iinfo->i_next_alloc_goal = newblocknum; in inode_getblk()
1208 struct udf_inode_info *iinfo; in udf_setsize() local
1217 iinfo = UDF_I(inode); in udf_setsize()
1219 down_write(&iinfo->i_data_sem); in udf_setsize()
1220 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { in udf_setsize()
1226 down_write(&iinfo->i_data_sem); in udf_setsize()
1228 iinfo->i_lenAlloc = newsize; in udf_setsize()
1234 up_write(&iinfo->i_data_sem); in udf_setsize()
1239 up_write(&iinfo->i_data_sem); in udf_setsize()
1241 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { in udf_setsize()
1242 down_write(&iinfo->i_data_sem); in udf_setsize()
1244 memset(iinfo->i_ext.i_data + iinfo->i_lenEAttr + newsize, in udf_setsize()
1247 iinfo->i_lenAlloc = newsize; in udf_setsize()
1249 up_write(&iinfo->i_data_sem); in udf_setsize()
1256 down_write(&iinfo->i_data_sem); in udf_setsize()
1260 up_write(&iinfo->i_data_sem); in udf_setsize()
1284 struct udf_inode_info *iinfo = UDF_I(inode); in udf_read_inode() local
1286 struct kernel_lb_addr *iloc = &iinfo->i_location; in udf_read_inode()
1341 memcpy(&iinfo->i_location, &loc, in udf_read_inode()
1361 iinfo->i_strat4096 = 0; in udf_read_inode()
1363 iinfo->i_strat4096 = 1; in udf_read_inode()
1365 iinfo->i_alloc_type = le16_to_cpu(fe->icbTag.flags) & in udf_read_inode()
1367 iinfo->i_unique = 0; in udf_read_inode()
1368 iinfo->i_lenEAttr = 0; in udf_read_inode()
1369 iinfo->i_lenExtents = 0; in udf_read_inode()
1370 iinfo->i_lenAlloc = 0; in udf_read_inode()
1371 iinfo->i_next_alloc_block = 0; in udf_read_inode()
1372 iinfo->i_next_alloc_goal = 0; in udf_read_inode()
1374 iinfo->i_efe = 1; in udf_read_inode()
1375 iinfo->i_use = 0; in udf_read_inode()
1380 memcpy(iinfo->i_ext.i_data, in udf_read_inode()
1384 iinfo->i_efe = 0; in udf_read_inode()
1385 iinfo->i_use = 0; in udf_read_inode()
1389 memcpy(iinfo->i_ext.i_data, in udf_read_inode()
1393 iinfo->i_efe = 0; in udf_read_inode()
1394 iinfo->i_use = 1; in udf_read_inode()
1395 iinfo->i_lenAlloc = le32_to_cpu( in udf_read_inode()
1402 memcpy(iinfo->i_ext.i_data, in udf_read_inode()
1444 iinfo->i_lenExtents = inode->i_size; in udf_read_inode()
1446 if (iinfo->i_efe == 0) { in udf_read_inode()
1460 iinfo->i_unique = le64_to_cpu(fe->uniqueID); in udf_read_inode()
1461 iinfo->i_lenEAttr = le32_to_cpu(fe->lengthExtendedAttr); in udf_read_inode()
1462 iinfo->i_lenAlloc = le32_to_cpu(fe->lengthAllocDescs); in udf_read_inode()
1463 iinfo->i_checkpoint = le32_to_cpu(fe->checkpoint); in udf_read_inode()
1475 if (!udf_disk_stamp_to_time(&iinfo->i_crtime, efe->createTime)) in udf_read_inode()
1476 iinfo->i_crtime = sbi->s_record_time; in udf_read_inode()
1481 iinfo->i_unique = le64_to_cpu(efe->uniqueID); in udf_read_inode()
1482 iinfo->i_lenEAttr = le32_to_cpu(efe->lengthExtendedAttr); in udf_read_inode()
1483 iinfo->i_lenAlloc = le32_to_cpu(efe->lengthAllocDescs); in udf_read_inode()
1484 iinfo->i_checkpoint = le32_to_cpu(efe->checkpoint); in udf_read_inode()
1486 inode->i_generation = iinfo->i_unique; in udf_read_inode()
1492 if (iinfo->i_lenEAttr > bs || iinfo->i_lenAlloc > bs) in udf_read_inode()
1495 if (udf_file_entry_alloc_offset(inode) + iinfo->i_lenAlloc > bs) in udf_read_inode()
1498 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { in udf_read_inode()
1503 if (iinfo->i_lenAlloc != inode->i_size) in udf_read_inode()
1521 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) in udf_read_inode()
1579 struct udf_inode_info *iinfo = UDF_I(inode); in udf_alloc_i_data() local
1580 iinfo->i_ext.i_data = kmalloc(size, GFP_KERNEL); in udf_alloc_i_data()
1582 if (!iinfo->i_ext.i_data) { in udf_alloc_i_data()
1632 struct udf_inode_info *iinfo = UDF_I(inode); in udf_update_inode() local
1635 udf_get_lb_pblock(inode->i_sb, &iinfo->i_location, 0)); in udf_update_inode()
1646 if (iinfo->i_use) { in udf_update_inode()
1650 use->lengthAllocDescs = cpu_to_le32(iinfo->i_lenAlloc); in udf_update_inode()
1652 iinfo->i_ext.i_data, inode->i_sb->s_blocksize - in udf_update_inode()
1712 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) in udf_update_inode()
1719 if (iinfo->i_efe == 0) { in udf_update_inode()
1721 iinfo->i_ext.i_data, in udf_update_inode()
1732 fe->uniqueID = cpu_to_le64(iinfo->i_unique); in udf_update_inode()
1733 fe->lengthExtendedAttr = cpu_to_le32(iinfo->i_lenEAttr); in udf_update_inode()
1734 fe->lengthAllocDescs = cpu_to_le32(iinfo->i_lenAlloc); in udf_update_inode()
1735 fe->checkpoint = cpu_to_le32(iinfo->i_checkpoint); in udf_update_inode()
1740 iinfo->i_ext.i_data, in udf_update_inode()
1746 if (iinfo->i_crtime.tv_sec > inode->i_atime.tv_sec || in udf_update_inode()
1747 (iinfo->i_crtime.tv_sec == inode->i_atime.tv_sec && in udf_update_inode()
1748 iinfo->i_crtime.tv_nsec > inode->i_atime.tv_nsec)) in udf_update_inode()
1749 iinfo->i_crtime = inode->i_atime; in udf_update_inode()
1751 if (iinfo->i_crtime.tv_sec > inode->i_mtime.tv_sec || in udf_update_inode()
1752 (iinfo->i_crtime.tv_sec == inode->i_mtime.tv_sec && in udf_update_inode()
1753 iinfo->i_crtime.tv_nsec > inode->i_mtime.tv_nsec)) in udf_update_inode()
1754 iinfo->i_crtime = inode->i_mtime; in udf_update_inode()
1756 if (iinfo->i_crtime.tv_sec > inode->i_ctime.tv_sec || in udf_update_inode()
1757 (iinfo->i_crtime.tv_sec == inode->i_ctime.tv_sec && in udf_update_inode()
1758 iinfo->i_crtime.tv_nsec > inode->i_ctime.tv_nsec)) in udf_update_inode()
1759 iinfo->i_crtime = inode->i_ctime; in udf_update_inode()
1763 udf_time_to_disk_stamp(&efe->createTime, iinfo->i_crtime); in udf_update_inode()
1770 efe->uniqueID = cpu_to_le64(iinfo->i_unique); in udf_update_inode()
1771 efe->lengthExtendedAttr = cpu_to_le32(iinfo->i_lenEAttr); in udf_update_inode()
1772 efe->lengthAllocDescs = cpu_to_le32(iinfo->i_lenAlloc); in udf_update_inode()
1773 efe->checkpoint = cpu_to_le32(iinfo->i_checkpoint); in udf_update_inode()
1779 if (iinfo->i_strat4096) { in udf_update_inode()
1788 if (iinfo->i_use) in udf_update_inode()
1805 icbflags = iinfo->i_alloc_type | in udf_update_inode()
1820 iinfo->i_location.logicalBlockNum); in udf_update_inode()
1821 crclen += iinfo->i_lenEAttr + iinfo->i_lenAlloc - sizeof(struct tag); in udf_update_inode()
1877 struct udf_inode_info *iinfo = UDF_I(inode); in udf_add_aext() local
1880 ptr = iinfo->i_ext.i_data + epos->offset - in udf_add_aext()
1882 iinfo->i_lenEAttr; in udf_add_aext()
1886 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) in udf_add_aext()
1888 else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) in udf_add_aext()
1936 iinfo->i_lenAlloc += adsize; in udf_add_aext()
1946 switch (iinfo->i_alloc_type) { in udf_add_aext()
1980 iinfo->i_lenAlloc += adsize; in udf_add_aext()
2005 struct udf_inode_info *iinfo = UDF_I(inode); in udf_write_aext() local
2008 ptr = iinfo->i_ext.i_data + epos->offset - in udf_write_aext()
2010 iinfo->i_lenEAttr; in udf_write_aext()
2014 switch (iinfo->i_alloc_type) { in udf_write_aext()
2095 struct udf_inode_info *iinfo = UDF_I(inode); in udf_current_aext() local
2100 ptr = iinfo->i_ext.i_data + epos->offset - in udf_current_aext()
2102 iinfo->i_lenEAttr; in udf_current_aext()
2104 iinfo->i_lenAlloc; in udf_current_aext()
2114 switch (iinfo->i_alloc_type) { in udf_current_aext()
2122 iinfo->i_location.partitionReferenceNum; in udf_current_aext()
2134 udf_debug("alloc_type = %d unsupported\n", iinfo->i_alloc_type); in udf_current_aext()
2169 struct udf_inode_info *iinfo; in udf_delete_aext() local
2176 iinfo = UDF_I(inode); in udf_delete_aext()
2177 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) in udf_delete_aext()
2179 else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) in udf_delete_aext()
2206 iinfo->i_lenAlloc -= (adsize * 2); in udf_delete_aext()
2223 iinfo->i_lenAlloc -= adsize; in udf_delete_aext()
2253 struct udf_inode_info *iinfo; in inode_bmap() local
2255 iinfo = UDF_I(inode); in inode_bmap()
2258 pos->block = iinfo->i_location; in inode_bmap()
2266 iinfo->i_lenExtents = lbcount; in inode_bmap()