Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/vfs_bio.c
Show First 20 Lines • Show All 1,452 Lines • ▼ Show 20 Lines | if (nbusy) { | ||||
printf("Giving up on %d buffers\n", nbusy); | printf("Giving up on %d buffers\n", nbusy); | ||||
DELAY(5000000); /* 5 seconds */ | DELAY(5000000); /* 5 seconds */ | ||||
swapoff_all(); | swapoff_all(); | ||||
} else { | } else { | ||||
if (!first_buf_printf) | if (!first_buf_printf) | ||||
printf("Final sync complete\n"); | printf("Final sync complete\n"); | ||||
/* | /* | ||||
* Unmount filesystems. Swapoff before unmount, | * Unmount filesystems and perform swapoff, to quiesce | ||||
* because file-backed swap is non-operational after unmount | * the system as much as possible. In particular, no | ||||
* of the underlying filesystem. | * I/O should be initiated from top levels since it | ||||
* might be abruptly terminated by reset, or otherwise | |||||
* erronously handled because other parts of the | |||||
* system are disabled. | |||||
* | |||||
* Swapoff before unmount, because file-backed swap is | |||||
* non-operational after unmount of the underlying | |||||
* filesystem. | |||||
*/ | */ | ||||
if (!KERNEL_PANICKED()) { | if (!KERNEL_PANICKED()) { | ||||
swapoff_all(); | swapoff_all(); | ||||
vfs_unmountall(); | vfs_unmountall(); | ||||
} | } | ||||
} | } | ||||
DELAY(100000); /* wait for console output to finish */ | DELAY(100000); /* wait for console output to finish */ | ||||
} | } | ||||
▲ Show 20 Lines • Show All 4,091 Lines • Show Last 20 Lines |