summaryrefslogtreecommitdiff
path: root/ext2fs
diff options
context:
space:
mode:
authorThomas Bushnell <thomas@gnu.org>2000-07-25 21:30:01 +0000
committerThomas Bushnell <thomas@gnu.org>2000-07-25 21:30:01 +0000
commit3296b371bab2a87359323a405ed1fa51a00397c9 (patch)
tree748f33a3172e628100d62c33724cd2ca795463e3 /ext2fs
parent2f7e8f040f18b7f9bce6879d4b077094aa7d01c0 (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/ChangeLog5
-rw-r--r--ext2fs/truncate.c5
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);
}