diff options
author | Thomas Bushnell <thomas@gnu.org> | 2000-07-25 21:30:01 +0000 |
---|---|---|
committer | Thomas Bushnell <thomas@gnu.org> | 2000-07-25 21:30:01 +0000 |
commit | 3296b371bab2a87359323a405ed1fa51a00397c9 (patch) | |
tree | 748f33a3172e628100d62c33724cd2ca795463e3 /ext2fs | |
parent | 2f7e8f040f18b7f9bce6879d4b077094aa7d01c0 (diff) |
2000-07-25 Thomas Bushnell, BSG <tb@mit.edu>
* truncate.c (trunc_indirect): Before freeing an indirect block,
remove it from the disk pager's kernel cache.
Diffstat (limited to 'ext2fs')
-rw-r--r-- | ext2fs/ChangeLog | 5 | ||||
-rw-r--r-- | ext2fs/truncate.c | 5 |
2 files changed, 9 insertions, 1 deletions
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 <tb@mit.edu> + + * truncate.c (trunc_indirect): Before freeing an indirect block, + remove it from the disk pager's kernel cache. + 2000-03-09 Roland McGrath <roland@baalperazim.frob.com> * 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); } |