Lines Matching defs:epos
75 brelse(iinfo->cached_extent.epos.bh);
102 memcpy(pos, &iinfo->cached_extent.epos,
123 memcpy(&iinfo->cached_extent.epos, pos, sizeof(*pos));
127 iinfo->cached_extent.epos.offset -= sizeof(struct short_ad);
130 iinfo->cached_extent.epos.offset -= sizeof(struct long_ad);
421 struct extent_position epos = {};
424 if (inode_bmap(inode, map->lblk, &epos, &eloc, &elen, &offset)
431 brelse(epos.bh);
636 struct extent_position epos;
663 etype = inode_bmap(inode, first_block, &epos, &eloc, &elen, &offset);
669 if ((!epos.bh && epos.offset == udf_file_entry_alloc_offset(inode)) ||
670 (epos.bh && epos.offset == sizeof(struct allocExtDesc))) {
677 epos.offset -= adsize;
678 etype = udf_next_aext(inode, &epos, &extent.extLocation,
691 udf_do_extend_final_block(inode, &epos, &extent, new_elen);
693 err = udf_do_extend_file(inode, &epos, &extent, new_elen);
700 brelse(epos.bh);
1171 struct extent_position *epos)
1180 udf_delete_aext(inode, *epos);
1183 err = udf_insert_aext(inode, *epos,
1193 udf_next_aext(inode, epos, &laarr[i].extLocation,
1200 udf_next_aext(inode, epos, &tmploc, &tmplen, 0);
1201 udf_write_aext(inode, epos, &laarr[i].extLocation,
1950 struct extent_position *epos)
1967 neloc.partitionReferenceNum = epos->block.partitionReferenceNum;
1981 cpu_to_le32(epos->block.logicalBlockNum);
1999 if (epos->offset + adsize > sb->s_blocksize) {
2004 epos->offset -= adsize;
2005 cp_type = udf_current_aext(inode, epos, &cp_loc, &cp_len, 0);
2009 udf_write_aext(inode, epos, &nepos.block,
2012 __udf_add_aext(inode, epos, &nepos.block,
2016 brelse(epos->bh);
2017 *epos = nepos;
2027 int __udf_add_aext(struct inode *inode, struct extent_position *epos,
2041 if (!epos->bh) {
2043 epos->offset - udf_file_entry_alloc_offset(inode));
2045 aed = (struct allocExtDesc *)epos->bh->b_data;
2047 epos->offset - sizeof(struct allocExtDesc));
2048 WARN_ON(epos->offset + adsize > inode->i_sb->s_blocksize);
2051 udf_write_aext(inode, epos, eloc, elen, inc);
2053 if (!epos->bh) {
2057 aed = (struct allocExtDesc *)epos->bh->b_data;
2061 udf_update_tag(epos->bh->b_data,
2062 epos->offset + (inc ? 0 : adsize));
2064 udf_update_tag(epos->bh->b_data,
2066 mark_buffer_dirty_inode(epos->bh, inode);
2076 int udf_add_aext(struct inode *inode, struct extent_position *epos,
2089 if (epos->offset + (2 * adsize) > sb->s_blocksize) {
2094 epos->block.partitionReferenceNum,
2095 epos->block.logicalBlockNum, &err);
2099 err = udf_setup_indirect_aext(inode, new_block, epos);
2104 return __udf_add_aext(inode, epos, eloc, elen, inc);
2107 void udf_write_aext(struct inode *inode, struct extent_position *epos,
2116 if (!epos->bh)
2117 ptr = iinfo->i_data + epos->offset -
2121 ptr = epos->bh->b_data + epos->offset;
2141 if (epos->bh) {
2145 (struct allocExtDesc *)epos->bh->b_data;
2146 udf_update_tag(epos->bh->b_data,
2150 mark_buffer_dirty_inode(epos->bh, inode);
2156 epos->offset += adsize;
2165 int8_t udf_next_aext(struct inode *inode, struct extent_position *epos,
2171 while ((etype = udf_current_aext(inode, epos, eloc, elen, inc)) ==
2182 epos->block = *eloc;
2183 epos->offset = sizeof(struct allocExtDesc);
2184 brelse(epos->bh);
2185 block = udf_get_lb_pblock(inode->i_sb, &epos->block, 0);
2186 epos->bh = sb_bread(inode->i_sb, block);
2187 if (!epos->bh) {
2196 int8_t udf_current_aext(struct inode *inode, struct extent_position *epos,
2206 if (!epos->bh) {
2207 if (!epos->offset)
2208 epos->offset = udf_file_entry_alloc_offset(inode);
2209 ptr = iinfo->i_data + epos->offset -
2215 if (!epos->offset)
2216 epos->offset = sizeof(struct allocExtDesc);
2217 ptr = epos->bh->b_data + epos->offset;
2219 le32_to_cpu(((struct allocExtDesc *)epos->bh->b_data)->
2225 sad = udf_get_fileshortad(ptr, alen, &epos->offset, inc);
2235 lad = udf_get_filelongad(ptr, alen, &epos->offset, inc);
2250 static int udf_insert_aext(struct inode *inode, struct extent_position epos,
2258 if (epos.bh)
2259 get_bh(epos.bh);
2261 while ((etype = udf_next_aext(inode, &epos, &oeloc, &oelen, 0)) != -1) {
2262 udf_write_aext(inode, &epos, &neloc, nelen, 1);
2266 err = udf_add_aext(inode, &epos, &neloc, nelen, 1);
2267 brelse(epos.bh);
2272 int8_t udf_delete_aext(struct inode *inode, struct extent_position epos)
2282 if (epos.bh) {
2283 get_bh(epos.bh);
2284 get_bh(epos.bh);
2295 oepos = epos;
2296 if (udf_next_aext(inode, &epos, &eloc, &elen, 1) == -1)
2299 while ((etype = udf_next_aext(inode, &epos, &eloc, &elen, 1)) != -1) {
2301 if (oepos.bh != epos.bh) {
2302 oepos.block = epos.block;
2304 get_bh(epos.bh);
2305 oepos.bh = epos.bh;
2306 oepos.offset = epos.offset - adsize;
2312 if (epos.bh != oepos.bh) {
2313 udf_free_blocks(inode->i_sb, inode, &epos.block, 0, 1);
2342 epos.offset - adsize);
2350 brelse(epos.bh);