Lines Matching refs:iinfo

66 	struct udf_inode_info *iinfo = UDF_I(inode);  in __udf_clear_extent_cache()  local
68 if (iinfo->cached_extent.lstart != -1) { in __udf_clear_extent_cache()
69 brelse(iinfo->cached_extent.epos.bh); in __udf_clear_extent_cache()
70 iinfo->cached_extent.lstart = -1; in __udf_clear_extent_cache()
77 struct udf_inode_info *iinfo = UDF_I(inode); in udf_clear_extent_cache() local
79 spin_lock(&iinfo->i_extent_cache_lock); in udf_clear_extent_cache()
81 spin_unlock(&iinfo->i_extent_cache_lock); in udf_clear_extent_cache()
88 struct udf_inode_info *iinfo = UDF_I(inode); in udf_read_extent_cache() local
91 spin_lock(&iinfo->i_extent_cache_lock); in udf_read_extent_cache()
92 if ((iinfo->cached_extent.lstart <= bcount) && in udf_read_extent_cache()
93 (iinfo->cached_extent.lstart != -1)) { in udf_read_extent_cache()
95 *lbcount = iinfo->cached_extent.lstart; in udf_read_extent_cache()
96 memcpy(pos, &iinfo->cached_extent.epos, in udf_read_extent_cache()
102 spin_unlock(&iinfo->i_extent_cache_lock); in udf_read_extent_cache()
110 struct udf_inode_info *iinfo = UDF_I(inode); in udf_update_extent_cache() local
112 spin_lock(&iinfo->i_extent_cache_lock); in udf_update_extent_cache()
117 memcpy(&iinfo->cached_extent.epos, pos, sizeof(*pos)); in udf_update_extent_cache()
118 iinfo->cached_extent.lstart = estart; in udf_update_extent_cache()
119 switch (iinfo->i_alloc_type) { in udf_update_extent_cache()
121 iinfo->cached_extent.epos.offset -= sizeof(struct short_ad); in udf_update_extent_cache()
124 iinfo->cached_extent.epos.offset -= sizeof(struct long_ad); in udf_update_extent_cache()
127 spin_unlock(&iinfo->i_extent_cache_lock); in udf_update_extent_cache()
132 struct udf_inode_info *iinfo = UDF_I(inode); in udf_evict_inode() local
143 if (iinfo->i_alloc_type != ICBTAG_FLAG_AD_IN_ICB && in udf_evict_inode()
144 inode->i_size != iinfo->i_lenExtents) { in udf_evict_inode()
148 (unsigned long long)iinfo->i_lenExtents); in udf_evict_inode()
150 kfree(iinfo->i_ext.i_data); in udf_evict_inode()
151 iinfo->i_ext.i_data = NULL; in udf_evict_inode()
161 struct udf_inode_info *iinfo = UDF_I(inode); in udf_write_failed() local
166 if (iinfo->i_alloc_type != ICBTAG_FLAG_AD_IN_ICB) { in udf_write_failed()
167 down_write(&iinfo->i_data_sem); in udf_write_failed()
170 up_write(&iinfo->i_data_sem); in udf_write_failed()
249 struct udf_inode_info *iinfo = UDF_I(inode); in udf_expand_file_adinicb() local
257 if (!iinfo->i_lenAlloc) { in udf_expand_file_adinicb()
259 iinfo->i_alloc_type = ICBTAG_FLAG_AD_SHORT; in udf_expand_file_adinicb()
261 iinfo->i_alloc_type = ICBTAG_FLAG_AD_LONG; in udf_expand_file_adinicb()
264 up_write(&iinfo->i_data_sem); in udf_expand_file_adinicb()
272 up_write(&iinfo->i_data_sem); in udf_expand_file_adinicb()
280 memset(kaddr + iinfo->i_lenAlloc, 0x00, in udf_expand_file_adinicb()
281 PAGE_SIZE - iinfo->i_lenAlloc); in udf_expand_file_adinicb()
282 memcpy(kaddr, iinfo->i_ext.i_data + iinfo->i_lenEAttr, in udf_expand_file_adinicb()
283 iinfo->i_lenAlloc); in udf_expand_file_adinicb()
288 down_write(&iinfo->i_data_sem); in udf_expand_file_adinicb()
289 memset(iinfo->i_ext.i_data + iinfo->i_lenEAttr, 0x00, in udf_expand_file_adinicb()
290 iinfo->i_lenAlloc); in udf_expand_file_adinicb()
291 iinfo->i_lenAlloc = 0; in udf_expand_file_adinicb()
293 iinfo->i_alloc_type = ICBTAG_FLAG_AD_SHORT; in udf_expand_file_adinicb()
295 iinfo->i_alloc_type = ICBTAG_FLAG_AD_LONG; in udf_expand_file_adinicb()
298 up_write(&iinfo->i_data_sem); in udf_expand_file_adinicb()
303 down_write(&iinfo->i_data_sem); in udf_expand_file_adinicb()
305 memcpy(iinfo->i_ext.i_data + iinfo->i_lenEAttr, kaddr, in udf_expand_file_adinicb()
309 iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB; in udf_expand_file_adinicb()
311 up_write(&iinfo->i_data_sem); in udf_expand_file_adinicb()
332 struct udf_inode_info *iinfo = UDF_I(inode); in udf_expand_dir_adinicb() local
340 iinfo->i_alloc_type = alloctype; in udf_expand_dir_adinicb()
347 iinfo->i_location.partitionReferenceNum, in udf_expand_dir_adinicb()
348 iinfo->i_location.logicalBlockNum, err); in udf_expand_dir_adinicb()
352 iinfo->i_location.partitionReferenceNum, in udf_expand_dir_adinicb()
371 iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB; in udf_expand_dir_adinicb()
378 iinfo->i_alloc_type = alloctype; in udf_expand_dir_adinicb()
386 iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB; in udf_expand_dir_adinicb()
393 memset(iinfo->i_ext.i_data + iinfo->i_lenEAttr, 0, in udf_expand_dir_adinicb()
394 iinfo->i_lenAlloc); in udf_expand_dir_adinicb()
395 iinfo->i_lenAlloc = 0; in udf_expand_dir_adinicb()
398 iinfo->i_location.partitionReferenceNum; in udf_expand_dir_adinicb()
399 iinfo->i_lenExtents = inode->i_size; in udf_expand_dir_adinicb()
401 epos.block = iinfo->i_location; in udf_expand_dir_adinicb()
416 struct udf_inode_info *iinfo; in udf_get_block() local
427 iinfo = UDF_I(inode); in udf_get_block()
429 down_write(&iinfo->i_data_sem); in udf_get_block()
430 if (block == iinfo->i_next_alloc_block + 1) { in udf_get_block()
431 iinfo->i_next_alloc_block++; in udf_get_block()
432 iinfo->i_next_alloc_goal++; in udf_get_block()
445 up_write(&iinfo->i_data_sem); in udf_get_block()
484 struct udf_inode_info *iinfo; in udf_do_extend_file() local
492 iinfo = UDF_I(inode); in udf_do_extend_file()
499 iinfo->i_lenExtents = in udf_do_extend_file()
500 (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 udf_pblk_t goal = 0, pgoal = iinfo->i_location.logicalBlockNum; in inode_getblk()
677 prev_epos.block = iinfo->i_location; in inode_getblk()
818 if (iinfo->i_next_alloc_block == block) in inode_getblk()
819 goal = iinfo->i_next_alloc_goal; in inode_getblk()
823 goal = iinfo->i_location.logicalBlockNum + 1; in inode_getblk()
827 iinfo->i_location.partitionReferenceNum, in inode_getblk()
835 iinfo->i_lenExtents += inode->i_sb->s_blocksize; in inode_getblk()
860 iinfo->i_location.partitionReferenceNum, 0); in inode_getblk()
866 iinfo->i_next_alloc_block = block; in inode_getblk()
867 iinfo->i_next_alloc_goal = newblocknum; in inode_getblk()
1194 struct udf_inode_info *iinfo; in udf_setsize() local
1203 iinfo = UDF_I(inode); in udf_setsize()
1205 down_write(&iinfo->i_data_sem); in udf_setsize()
1206 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { in udf_setsize()
1212 down_write(&iinfo->i_data_sem); in udf_setsize()
1214 iinfo->i_lenAlloc = newsize; in udf_setsize()
1220 up_write(&iinfo->i_data_sem); in udf_setsize()
1224 up_write(&iinfo->i_data_sem); in udf_setsize()
1227 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { in udf_setsize()
1228 down_write(&iinfo->i_data_sem); in udf_setsize()
1230 memset(iinfo->i_ext.i_data + iinfo->i_lenEAttr + newsize, in udf_setsize()
1233 iinfo->i_lenAlloc = newsize; in udf_setsize()
1235 up_write(&iinfo->i_data_sem); in udf_setsize()
1243 down_write(&iinfo->i_data_sem); in udf_setsize()
1246 up_write(&iinfo->i_data_sem); in udf_setsize()
1270 struct udf_inode_info *iinfo = UDF_I(inode); in udf_read_inode() local
1272 struct kernel_lb_addr *iloc = &iinfo->i_location; in udf_read_inode()
1334 memcpy(&iinfo->i_location, &loc, in udf_read_inode()
1354 iinfo->i_strat4096 = 0; in udf_read_inode()
1356 iinfo->i_strat4096 = 1; in udf_read_inode()
1358 iinfo->i_alloc_type = le16_to_cpu(fe->icbTag.flags) & in udf_read_inode()
1360 iinfo->i_unique = 0; in udf_read_inode()
1361 iinfo->i_lenEAttr = 0; in udf_read_inode()
1362 iinfo->i_lenExtents = 0; in udf_read_inode()
1363 iinfo->i_lenAlloc = 0; in udf_read_inode()
1364 iinfo->i_next_alloc_block = 0; in udf_read_inode()
1365 iinfo->i_next_alloc_goal = 0; in udf_read_inode()
1367 iinfo->i_efe = 1; in udf_read_inode()
1368 iinfo->i_use = 0; in udf_read_inode()
1373 memcpy(iinfo->i_ext.i_data, in udf_read_inode()
1377 iinfo->i_efe = 0; in udf_read_inode()
1378 iinfo->i_use = 0; in udf_read_inode()
1382 memcpy(iinfo->i_ext.i_data, in udf_read_inode()
1386 iinfo->i_efe = 0; in udf_read_inode()
1387 iinfo->i_use = 1; in udf_read_inode()
1388 iinfo->i_lenAlloc = le32_to_cpu( in udf_read_inode()
1395 memcpy(iinfo->i_ext.i_data, in udf_read_inode()
1439 iinfo->i_lenExtents = inode->i_size; in udf_read_inode()
1441 if (iinfo->i_efe == 0) { in udf_read_inode()
1449 iinfo->i_unique = le64_to_cpu(fe->uniqueID); in udf_read_inode()
1450 iinfo->i_lenEAttr = le32_to_cpu(fe->lengthExtendedAttr); in udf_read_inode()
1451 iinfo->i_lenAlloc = le32_to_cpu(fe->lengthAllocDescs); in udf_read_inode()
1452 iinfo->i_checkpoint = le32_to_cpu(fe->checkpoint); in udf_read_inode()
1459 udf_disk_stamp_to_time(&iinfo->i_crtime, efe->createTime); in udf_read_inode()
1462 iinfo->i_unique = le64_to_cpu(efe->uniqueID); in udf_read_inode()
1463 iinfo->i_lenEAttr = le32_to_cpu(efe->lengthExtendedAttr); in udf_read_inode()
1464 iinfo->i_lenAlloc = le32_to_cpu(efe->lengthAllocDescs); in udf_read_inode()
1465 iinfo->i_checkpoint = le32_to_cpu(efe->checkpoint); in udf_read_inode()
1467 inode->i_generation = iinfo->i_unique; in udf_read_inode()
1473 if (iinfo->i_lenEAttr > bs || iinfo->i_lenAlloc > bs) in udf_read_inode()
1476 if (udf_file_entry_alloc_offset(inode) + iinfo->i_lenAlloc > bs) in udf_read_inode()
1479 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { in udf_read_inode()
1484 if (iinfo->i_lenAlloc != inode->i_size) in udf_read_inode()
1502 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) in udf_read_inode()
1561 struct udf_inode_info *iinfo = UDF_I(inode); in udf_alloc_i_data() local
1562 iinfo->i_ext.i_data = kmalloc(size, GFP_KERNEL); in udf_alloc_i_data()
1563 if (!iinfo->i_ext.i_data) in udf_alloc_i_data()
1597 static void udf_adjust_time(struct udf_inode_info *iinfo, struct timespec64 time) in udf_adjust_time() argument
1599 if (iinfo->i_crtime.tv_sec > time.tv_sec || in udf_adjust_time()
1600 (iinfo->i_crtime.tv_sec == time.tv_sec && in udf_adjust_time()
1601 iinfo->i_crtime.tv_nsec > time.tv_nsec)) in udf_adjust_time()
1602 iinfo->i_crtime = time; in udf_adjust_time()
1617 struct udf_inode_info *iinfo = UDF_I(inode); in udf_update_inode() local
1620 udf_get_lb_pblock(inode->i_sb, &iinfo->i_location, 0)); in udf_update_inode()
1631 if (iinfo->i_use) { in udf_update_inode()
1635 use->lengthAllocDescs = cpu_to_le32(iinfo->i_lenAlloc); in udf_update_inode()
1637 iinfo->i_ext.i_data, inode->i_sb->s_blocksize - in udf_update_inode()
1697 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) in udf_update_inode()
1704 if (iinfo->i_efe == 0) { in udf_update_inode()
1706 iinfo->i_ext.i_data, in udf_update_inode()
1717 fe->uniqueID = cpu_to_le64(iinfo->i_unique); in udf_update_inode()
1718 fe->lengthExtendedAttr = cpu_to_le32(iinfo->i_lenEAttr); in udf_update_inode()
1719 fe->lengthAllocDescs = cpu_to_le32(iinfo->i_lenAlloc); in udf_update_inode()
1720 fe->checkpoint = cpu_to_le32(iinfo->i_checkpoint); in udf_update_inode()
1725 iinfo->i_ext.i_data, in udf_update_inode()
1731 udf_adjust_time(iinfo, inode->i_atime); in udf_update_inode()
1732 udf_adjust_time(iinfo, inode->i_mtime); in udf_update_inode()
1733 udf_adjust_time(iinfo, inode->i_ctime); in udf_update_inode()
1737 udf_time_to_disk_stamp(&efe->createTime, iinfo->i_crtime); in udf_update_inode()
1744 efe->uniqueID = cpu_to_le64(iinfo->i_unique); in udf_update_inode()
1745 efe->lengthExtendedAttr = cpu_to_le32(iinfo->i_lenEAttr); in udf_update_inode()
1746 efe->lengthAllocDescs = cpu_to_le32(iinfo->i_lenAlloc); in udf_update_inode()
1747 efe->checkpoint = cpu_to_le32(iinfo->i_checkpoint); in udf_update_inode()
1753 if (iinfo->i_strat4096) { in udf_update_inode()
1762 if (iinfo->i_use) in udf_update_inode()
1779 icbflags = iinfo->i_alloc_type | in udf_update_inode()
1794 iinfo->i_location.logicalBlockNum); in udf_update_inode()
1795 crclen += iinfo->i_lenEAttr + iinfo->i_lenAlloc - sizeof(struct tag); in udf_update_inode()
1924 struct udf_inode_info *iinfo = UDF_I(inode); in __udf_add_aext() local
1928 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) in __udf_add_aext()
1930 else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) in __udf_add_aext()
1936 WARN_ON(iinfo->i_lenAlloc != in __udf_add_aext()
1948 iinfo->i_lenAlloc += adsize; in __udf_add_aext()
2008 struct udf_inode_info *iinfo = UDF_I(inode); in udf_write_aext() local
2011 ptr = iinfo->i_ext.i_data + epos->offset - in udf_write_aext()
2013 iinfo->i_lenEAttr; in udf_write_aext()
2017 switch (iinfo->i_alloc_type) { in udf_write_aext()
2098 struct udf_inode_info *iinfo = UDF_I(inode); in udf_current_aext() local
2103 ptr = iinfo->i_ext.i_data + epos->offset - in udf_current_aext()
2105 iinfo->i_lenEAttr; in udf_current_aext()
2107 iinfo->i_lenAlloc; in udf_current_aext()
2117 switch (iinfo->i_alloc_type) { in udf_current_aext()
2125 iinfo->i_location.partitionReferenceNum; in udf_current_aext()
2137 udf_debug("alloc_type = %u unsupported\n", iinfo->i_alloc_type); in udf_current_aext()
2171 struct udf_inode_info *iinfo; in udf_delete_aext() local
2180 iinfo = UDF_I(inode); in udf_delete_aext()
2181 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) in udf_delete_aext()
2183 else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) in udf_delete_aext()
2210 iinfo->i_lenAlloc -= (adsize * 2); in udf_delete_aext()
2227 iinfo->i_lenAlloc -= adsize; in udf_delete_aext()
2256 struct udf_inode_info *iinfo; in inode_bmap() local
2258 iinfo = UDF_I(inode); in inode_bmap()
2261 pos->block = iinfo->i_location; in inode_bmap()
2269 iinfo->i_lenExtents = lbcount; in inode_bmap()