diff options
-rw-r--r-- | ext2fs/pager.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/ext2fs/pager.c b/ext2fs/pager.c index 4d31cf12..2c6b6eab 100644 --- a/ext2fs/pager.c +++ b/ext2fs/pager.c @@ -781,9 +781,7 @@ diskfs_get_filemap_pager_struct (struct node *node) return node->dn->pager; } -static struct ext2_super_block final_sblock; - -/* Shutdown all the pagers. */ +/* Shutdown all the pagers (except the disk pager). */ void diskfs_shutdown_pager () { @@ -797,13 +795,13 @@ diskfs_shutdown_pager () write_all_disknodes (); - /* Because the superblock lives in the disk pager, we copy out the last - known value just before we shut it down. */ - bcopy (sblock, &final_sblock, sizeof (final_sblock)); - sblock = &final_sblock; - ports_bucket_iterate (pager_bucket, shutdown_one); - pager_shutdown (disk_pager); + + /* Sync everything on the the disk pager. */ + sync_global (1); + + /* Despite the name of this function, we never actually shutdown the disk + pager, just make sure it's synced. */ } /* Sync all the pagers. */ @@ -822,7 +820,7 @@ diskfs_sync_everything (int wait) ports_bucket_iterate (pager_bucket, sync_one); /* Do things on the the disk pager. */ - pokel_sync (&global_pokel, wait); + sync_global (wait); } /* ---------------------------------------------------------------- */ |