From 3296b371bab2a87359323a405ed1fa51a00397c9 Mon Sep 17 00:00:00 2001 From: Thomas Bushnell Date: Tue, 25 Jul 2000 21:30:01 +0000 Subject: 2000-07-25 Thomas Bushnell, BSG * truncate.c (trunc_indirect): Before freeing an indirect block, remove it from the disk pager's kernel cache. --- ext2fs/ChangeLog | 5 +++++ ext2fs/truncate.c | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ext2fs/ChangeLog b/ext2fs/ChangeLog index 760b9a80..65afa548 100644 --- a/ext2fs/ChangeLog +++ b/ext2fs/ChangeLog @@ -1,3 +1,8 @@ +2000-07-25 Thomas Bushnell, BSG + + * truncate.c (trunc_indirect): Before freeing an indirect block, + remove it from the disk pager's kernel cache. + 2000-03-09 Roland McGrath * balloc.c (ext2_free_blocks, ext2_new_block): Fix formats to avoid diff --git a/ext2fs/truncate.c b/ext2fs/truncate.c index f3063e37..5653cbe6 100644 --- a/ext2fs/truncate.c +++ b/ext2fs/truncate.c @@ -138,7 +138,10 @@ trunc_indirect (struct node *node, block_t end, } if (first == 0 && all_freed) - free_block_run_free_ptr (fbr, p); + { + pager_flush_some (diskfs_disk_pager, boffs (*p), block_size); + free_block_run_free_ptr (fbr, p); + } else if (modified) record_indir_poke (node, ind_bh); } -- cgit v1.2.3