Merge "Unmount public sdcard filesystems before killing the fuse process." into nyc-dev
am: a4330be
* commit 'a4330beb482c3b5decf6a6fc966e5589210130eb':
Unmount public sdcard filesystems before killing the fuse process.
Change-Id: I294d46bb27fb6d8ac83f1041e849fd366134b6ee
This commit is contained in:
commit
a54cd8739c
1 changed files with 10 additions and 6 deletions
|
@ -194,12 +194,10 @@ status_t PublicVolume::doMount() {
|
|||
}
|
||||
|
||||
status_t PublicVolume::doUnmount() {
|
||||
if (mFusePid > 0) {
|
||||
kill(mFusePid, SIGTERM);
|
||||
TEMP_FAILURE_RETRY(waitpid(mFusePid, nullptr, 0));
|
||||
mFusePid = 0;
|
||||
}
|
||||
|
||||
// Unmount the storage before we kill the FUSE process. If we kill
|
||||
// the FUSE process first, most file system operations will return
|
||||
// ENOTCONN until the unmount completes. This is an exotic and unusual
|
||||
// error code and might cause broken behaviour in applications.
|
||||
KillProcessesUsingPath(getPath());
|
||||
|
||||
ForceUnmount(kAsecPath);
|
||||
|
@ -209,6 +207,12 @@ status_t PublicVolume::doUnmount() {
|
|||
ForceUnmount(mFuseWrite);
|
||||
ForceUnmount(mRawPath);
|
||||
|
||||
if (mFusePid > 0) {
|
||||
kill(mFusePid, SIGTERM);
|
||||
TEMP_FAILURE_RETRY(waitpid(mFusePid, nullptr, 0));
|
||||
mFusePid = 0;
|
||||
}
|
||||
|
||||
rmdir(mFuseDefault.c_str());
|
||||
rmdir(mFuseRead.c_str());
|
||||
rmdir(mFuseWrite.c_str());
|
||||
|
|
Loading…
Reference in a new issue