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: If9f7acd5bc77ee4ecf9eed7375881b5554e85b9a
gugelfrei
John Cormie 8 years ago committed by android-build-merger
commit c1428a51c3

@ -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…
Cancel
Save