Lines Matching refs:uspi
62 #define DIRECT_BLOCK ((inode->i_size + uspi->s_bsize - 1) >> uspi->s_bshift)
63 #define DIRECT_FRAGMENT ((inode->i_size + uspi->s_fsize - 1) >> uspi->s_fshift)
70 struct ufs_sb_private_info * uspi; in ufs_trunc_direct() local
80 uspi = UFS_SB(sb)->s_uspi; in ufs_trunc_direct()
88 frag2 = ((frag1 & uspi->s_fpbmask) ? ((frag1 | uspi->s_fpbmask) + 1) : frag1); in ufs_trunc_direct()
89 frag3 = frag4 & ~uspi->s_fpbmask; in ufs_trunc_direct()
111 p = ufs_get_direct_data_ptr(uspi, ufsi, ufs_fragstoblks(frag1)); in ufs_trunc_direct()
127 p = ufs_get_direct_data_ptr(uspi, ufsi, i); in ufs_trunc_direct()
131 ufs_data_ptr_clear(uspi, p); in ufs_trunc_direct()
135 free_count = uspi->s_fpb; in ufs_trunc_direct()
137 free_count += uspi->s_fpb; in ufs_trunc_direct()
141 free_count = uspi->s_fpb; in ufs_trunc_direct()
155 p = ufs_get_direct_data_ptr(uspi, ufsi, ufs_fragstoblks(frag3)); in ufs_trunc_direct()
160 ufs_data_ptr_clear(uspi, p); in ufs_trunc_direct()
174 struct ufs_sb_private_info * uspi; in ufs_trunc_indirect() local
187 uspi = UFS_SB(sb)->s_uspi; in ufs_trunc_indirect()
196 ind_ubh = ubh_bread(sb, tmp, uspi->s_bsize); in ufs_trunc_indirect()
202 ufs_data_ptr_clear(uspi, p); in ufs_trunc_indirect()
207 for (i = indirect_block; i < uspi->s_apb; i++) { in ufs_trunc_indirect()
208 ind = ubh_get_data_ptr(uspi, ind_ubh, i); in ufs_trunc_indirect()
213 ufs_data_ptr_clear(uspi, ind); in ufs_trunc_indirect()
217 free_count = uspi->s_fpb; in ufs_trunc_indirect()
219 free_count += uspi->s_fpb; in ufs_trunc_indirect()
223 free_count = uspi->s_fpb; in ufs_trunc_indirect()
232 for (i = 0; i < uspi->s_apb; i++) in ufs_trunc_indirect()
233 if (!ufs_is_data_ptr_zero(uspi, in ufs_trunc_indirect()
234 ubh_get_data_ptr(uspi, ind_ubh, i))) in ufs_trunc_indirect()
236 if (i >= uspi->s_apb) { in ufs_trunc_indirect()
238 ufs_data_ptr_clear(uspi, p); in ufs_trunc_indirect()
240 ufs_free_blocks (inode, tmp, uspi->s_fpb); in ufs_trunc_indirect()
257 struct ufs_sb_private_info * uspi; in ufs_trunc_dindirect() local
266 uspi = UFS_SB(sb)->s_uspi; in ufs_trunc_dindirect()
269 ? ((DIRECT_BLOCK - offset) >> uspi->s_apbshift) : 0; in ufs_trunc_dindirect()
275 dind_bh = ubh_bread(sb, tmp, uspi->s_bsize); in ufs_trunc_dindirect()
281 ufs_data_ptr_clear(uspi, p); in ufs_trunc_dindirect()
285 for (i = dindirect_block ; i < uspi->s_apb ; i++) { in ufs_trunc_dindirect()
286 dind = ubh_get_data_ptr(uspi, dind_bh, i); in ufs_trunc_dindirect()
290 retry |= ufs_trunc_indirect (inode, offset + (i << uspi->s_apbshift), dind); in ufs_trunc_dindirect()
294 for (i = 0; i < uspi->s_apb; i++) in ufs_trunc_dindirect()
295 if (!ufs_is_data_ptr_zero(uspi, in ufs_trunc_dindirect()
296 ubh_get_data_ptr(uspi, dind_bh, i))) in ufs_trunc_dindirect()
298 if (i >= uspi->s_apb) { in ufs_trunc_dindirect()
300 ufs_data_ptr_clear(uspi, p); in ufs_trunc_dindirect()
302 ufs_free_blocks(inode, tmp, uspi->s_fpb); in ufs_trunc_dindirect()
319 struct ufs_sb_private_info *uspi = UFS_SB(sb)->s_uspi; in ufs_trunc_tindirect() local
330 tindirect_block = (DIRECT_BLOCK > (UFS_NDADDR + uspi->s_apb + uspi->s_2apb)) in ufs_trunc_tindirect()
331 ? ((DIRECT_BLOCK - UFS_NDADDR - uspi->s_apb - uspi->s_2apb) >> uspi->s_2apbshift) : 0; in ufs_trunc_tindirect()
333 p = ufs_get_direct_data_ptr(uspi, ufsi, UFS_TIND_BLOCK); in ufs_trunc_tindirect()
336 tind_bh = ubh_bread (sb, tmp, uspi->s_bsize); in ufs_trunc_tindirect()
342 ufs_data_ptr_clear(uspi, p); in ufs_trunc_tindirect()
346 for (i = tindirect_block ; i < uspi->s_apb ; i++) { in ufs_trunc_tindirect()
347 tind = ubh_get_data_ptr(uspi, tind_bh, i); in ufs_trunc_tindirect()
349 uspi->s_apb + ((i + 1) << uspi->s_2apbshift), tind); in ufs_trunc_tindirect()
352 for (i = 0; i < uspi->s_apb; i++) in ufs_trunc_tindirect()
353 if (!ufs_is_data_ptr_zero(uspi, in ufs_trunc_tindirect()
354 ubh_get_data_ptr(uspi, tind_bh, i))) in ufs_trunc_tindirect()
356 if (i >= uspi->s_apb) { in ufs_trunc_tindirect()
358 ufs_data_ptr_clear(uspi, p); in ufs_trunc_tindirect()
360 ufs_free_blocks(inode, tmp, uspi->s_fpb); in ufs_trunc_tindirect()
378 struct ufs_sb_private_info *uspi = UFS_SB(sb)->s_uspi; in ufs_alloc_lastblock() local
385 lastfrag = (i_size_read(inode) + uspi->s_fsize - 1) >> uspi->s_fshift; in ufs_alloc_lastblock()
424 end = uspi->s_fpb - ufs_fragnum(lastfrag) - 1; in ufs_alloc_lastblock()
447 struct ufs_sb_private_info *uspi = UFS_SB(sb)->s_uspi; in ufs_truncate() local
472 ufs_get_direct_data_ptr(uspi, ufsi, in ufs_truncate()
474 retry |= ufs_trunc_dindirect(inode, UFS_IND_BLOCK + uspi->s_apb, in ufs_truncate()
475 ufs_get_direct_data_ptr(uspi, ufsi, in ufs_truncate()