Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ufs: bforget() indirect blocks before freeing them

right now it doesn't matter (lock_ufs() serializes everything),
but when we switch to per-inode locking, it will be needed.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro 4af7b2c0 493b4537

+3 -3
+3 -3
fs/ufs/truncate.c
··· 237 237 tmp = ufs_data_ptr_to_cpu(sb, p); 238 238 ufs_data_ptr_clear(uspi, p); 239 239 240 + ubh_bforget(ind_ubh); 240 241 ufs_free_blocks (inode, tmp, uspi->s_fpb); 241 242 mark_inode_dirty(inode); 242 - ubh_bforget(ind_ubh); 243 243 ind_ubh = NULL; 244 244 } 245 245 if (IS_SYNC(inode) && ind_ubh && ubh_buffer_dirty(ind_ubh)) ··· 299 299 tmp = ufs_data_ptr_to_cpu(sb, p); 300 300 ufs_data_ptr_clear(uspi, p); 301 301 302 + ubh_bforget(dind_bh); 302 303 ufs_free_blocks(inode, tmp, uspi->s_fpb); 303 304 mark_inode_dirty(inode); 304 - ubh_bforget(dind_bh); 305 305 dind_bh = NULL; 306 306 } 307 307 if (IS_SYNC(inode) && dind_bh && ubh_buffer_dirty(dind_bh)) ··· 357 357 tmp = ufs_data_ptr_to_cpu(sb, p); 358 358 ufs_data_ptr_clear(uspi, p); 359 359 360 + ubh_bforget(tind_bh); 360 361 ufs_free_blocks(inode, tmp, uspi->s_fpb); 361 362 mark_inode_dirty(inode); 362 - ubh_bforget(tind_bh); 363 363 tind_bh = NULL; 364 364 } 365 365 if (IS_SYNC(inode) && tind_bh && ubh_buffer_dirty(tind_bh))