From 78183bddffc53b6ee8f8bfaeeba11b97a841ee3f Mon Sep 17 00:00:00 2001 From: Thomas Veerman Date: Fri, 26 Aug 2011 15:14:55 +0000 Subject: [PATCH] Let FSes exit themselves upon system shutdown During shutdown all processes are semi-exited and FSes are unmounted. This semi-exit causes trouble for FUSE mounts as they still need access to file descriptors and working directory in order to unmount. --- servers/avfs/misc.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/servers/avfs/misc.c b/servers/avfs/misc.c index 53b19b533..0aee50600 100644 --- a/servers/avfs/misc.c +++ b/servers/avfs/misc.c @@ -344,14 +344,17 @@ PUBLIC void pm_reboot() * will tell us about it). */ for (i = 0; i < NR_PROCS; i++) { + rfp = &fproc[i]; + if (rfp->fp_endpoint == NONE) continue; + + /* Let FSes exit themselves */ + if (find_vmnt(rfp->fp_endpoint) != NULL) continue; + /* Don't just free the proc right away, but let it finish what it was * doing first */ - rfp = &fproc[i]; - if (rfp->fp_endpoint != NONE) { - lock_proc(rfp, 0); - free_proc(rfp, 0); - unlock_proc(rfp); - } + lock_proc(rfp, 0); + free_proc(rfp, 0); + unlock_proc(rfp); } do_sync();