__ufs_truncate(); find cutoff distances into branches by offsets[] array
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
7bad5939fc
commit
7a4fdda724
|
@ -1324,12 +1324,16 @@ static void __ufs_truncate_blocks(struct inode *inode)
|
|||
ufs_trunc_tindirect(inode, 0);
|
||||
break;
|
||||
case 3:
|
||||
ufs_trunc_dindirect(inode, DIRECT_BLOCK - UFS_IND_BLOCK - uspi->s_apb,
|
||||
ufs_trunc_dindirect(inode,
|
||||
(offsets[1] << uspi->s_apbshift) + offsets[2],
|
||||
ufs_get_direct_data_ptr(uspi, ufsi, UFS_DIND_BLOCK));
|
||||
ufs_trunc_tindirect(inode, 0);
|
||||
break;
|
||||
case 4:
|
||||
ufs_trunc_tindirect(inode, DIRECT_BLOCK - UFS_NDADDR - uspi->s_apb - uspi->s_2apb);
|
||||
ufs_trunc_tindirect(inode,
|
||||
(offsets[1] << uspi->s_2apbshift) +
|
||||
(offsets[2] << uspi->s_apbshift) +
|
||||
offsets[3]);
|
||||
}
|
||||
ufsi->i_lastfrag = DIRECT_FRAGMENT;
|
||||
mutex_unlock(&ufsi->truncate_mutex);
|
||||
|
|
Loading…
Reference in New Issue