No description
Find a file
Anton Hansson 03e31332a3 Close /dev/fuse FD before calling onClosed
This works around a deadlock when a bridge that is about to be closed
is reused for a new call to openFile. The call to open() ends up holding
the vold lock, waiting for appfuse to respond. The appfuse event loop
calls onClosed(), which ends up calling vold.unmountAppFuse(), which
cannot get the lock.

Closing this file descriptor causes any current calls to open() on its
mount path to fail with either ECONNABORTED or ENOTCONN, allowing the
event loop to make progress, call onClosed() and unmount the path.

Note that the failed call to open() will result in a retry, which
will create a new appfuse bridge. This is not ideal but not a new
problem -- the common case here is that that each call to
openProxyFileDescriptor creates a new bridge. This should ideally
be improved.

Bug: 132344997
Test: flick through info of photos with location info attached
Change-Id: I878e5cf86f18c5233f8505f52eb9db076bd72d01
Merged-In: I878e5cf86f18c5233f8505f52eb9db076bd72d01
2019-05-31 17:06:52 +01:00
adb Fix non-aio USB read issue for fastbootd 2019-05-29 23:10:50 +00:00
base Minor fixes on android::base::expected 2019-05-29 08:37:32 +09:00
bootstat Merge "recovery: report compliant reboot reason (Part Deux)" 2019-05-28 15:57:24 +00:00
cpio Switch from dist-for-goals to dist in Android.bp 2018-11-19 23:06:12 -08:00
debuggerd crash_dump: populate uid field. 2019-05-09 12:49:57 -07:00
demangle Include string.h for strcmp. 2019-05-17 19:49:26 +01:00
deprecated-adf adf: rename. 2019-02-14 16:30:24 -08:00
diagnose_usb Build adbd for recovery 2018-05-24 14:11:11 +09:00
fastboot fastboot: windows: fix Read function 2019-05-30 17:47:49 -07:00
fs_mgr Merge changes I55d0e1a8,I4d9a8776 2019-05-30 00:19:55 +00:00
gatekeeperd Use distinct GateKeeper userids when running a GSI. 2019-02-28 08:56:30 -08:00
healthd healthd: charger: shutdown timer configurable 2019-04-08 12:46:47 -07:00
include Move android_filesystem_config.h => fs_config.h 2017-08-02 16:31:19 -07:00
init init: Refactor service.h/cpp 2019-05-30 14:24:03 -07:00
janitors Add the two best build system janitors. 2019-03-25 10:25:13 -07:00
libappfuse Close /dev/fuse FD before calling onClosed 2019-05-31 17:06:52 +01:00
libasyncio Revert "Mark libs as double_loadable" 2019-03-11 14:10:34 +00:00
libbacktrace Enable native_bridge_support for libbacktrace_headers 2019-05-16 14:07:43 +02:00
libbinderwrapper Make libbinderwrapper available in /vendor partition 2018-04-06 08:41:21 +09:00
libcrypto_utils Convert more modules to Android.bp 2018-10-31 21:53:37 -07:00
libcutils Moving /odm/build.prop to /odm/etc/buid.prop 2019-05-22 06:03:34 +00:00
libdiskconfig Rename target.linux[_x86[_64]] to target.linux_glibc[_x86[_64]] 2017-10-02 10:44:29 -07:00
libgrallocusage Merge "Build both static and shared lib." 2018-09-25 22:29:31 +00:00
libion libion: convert a header file using update_all.py 2019-04-24 07:02:42 +00:00
libkeyutils mini-keyctl: fix key id parsing by "0x" prefix 2019-04-15 15:19:08 -07:00
liblog Enable native_bridge_support 2019-05-06 14:05:05 +02:00
libmeminfo procrank: do not keep process maps around 2019-04-17 12:11:50 -07:00
libmemtrack Revert "Mark libs as double_loadable" 2019-03-11 14:10:34 +00:00
libmemunreachable Merge "memunreachable_test: don't use write to escape addresses" 2019-05-25 00:20:24 +00:00
libmetricslogger DO NOT MERGE - Merge pie-platform-release (PPRL.181205.001) into master 2018-12-11 14:46:12 -08:00
libnativebridge Update OWNERS for libnativebridge 2019-02-13 19:20:59 +09:00
libnativeloader Fix nullpointer dereference in libnativeloader 2019-05-17 18:51:44 +09:00
libnetutils Refactor OWNERS files for Android Core Networking 2019-02-12 13:25:13 +08:00
libpackagelistparser Add versionCode parser for package list. 2019-03-19 17:04:46 +00:00
libpixelflinger Mark gglMulx and gglMulAddx as always_inline 2019-02-14 11:59:48 -08:00
libprocessgroup libprocessgroup: add flags to indicate when a controller failed to mount 2019-05-21 10:03:21 -07:00
libprocinfo Merge "Revert "Mark libs as double_loadable"" 2019-03-12 22:11:27 +00:00
libqtaguid Redirect qtaguid native call to netd fwmark client 2017-11-09 18:02:22 -08:00
libsparse Fix an unintialized return value. 2019-05-02 12:54:09 -07:00
libstats Merge "Report last atom tag of the failed stats log." 2019-04-02 23:18:14 +00:00
libsuspend Remove libsuspend from VNDK. 2018-08-14 13:39:55 -07:00
libsync Enable native_bridge_support for libsync 2019-05-15 12:40:33 +02:00
libsystem Enable native_bridge_support for libsystem_headers 2019-05-16 14:13:38 +02:00
libsysutils Enable clang-tidy for libsysutils. 2019-04-24 00:35:58 +09:00
libunwindstack Ignore memory from elf on /memfd: 2019-05-03 11:13:17 -07:00
libusbhost Revert "Mark libs as double_loadable" 2019-03-11 14:10:34 +00:00
libutils Enable native_bridge_support for libutils 2019-05-16 13:48:17 +02:00
libvndksupport Enable native_bridge_support for libvndksupport 2019-05-16 14:20:31 +02:00
libziparchive Add a std::string overload to Next. 2019-05-22 19:05:44 -07:00
llkd llkd: do not call sync() 2019-01-10 12:52:35 -08:00
lmkd Allow memory metrics on devices that use kernel LMK 2019-04-29 11:02:51 +00:00
logcat Logcatd: Add new properties control logcat file size and file count. 2019-05-24 07:23:22 +00:00
logd Logcatd: Add new properties control logcat file size and file count. 2019-05-24 07:23:22 +00:00
logwrapper Build adbd for recovery 2018-05-24 14:11:11 +09:00
mkbootimg Check DTB image size for boot image header version 2 and above 2019-05-17 16:49:56 -07:00
property_service init: ro.boottime.init.first_stage 2019-05-08 16:07:10 +00:00
qemu_pipe Build adbd for recovery 2018-05-24 14:11:11 +09:00
reboot reboot: only pause indefinitely for non-shutdown operations 2017-09-29 16:29:52 +00:00
rootdir Merge "Link the "runtime" namespace to more namespaces." 2019-05-21 02:29:46 +00:00
run-as run-as: improve diagnostics on failure. 2019-03-13 11:16:03 -07:00
sdcard Allow callers to pass a flag to not link obb dirs of multiple users. 2019-03-05 14:41:54 -08:00
shell_and_utilities introduce auditctl and use it to configure SELinux throttling 2019-04-09 13:19:08 -07:00
storaged Remove liblog's rate limiting 2019-01-16 10:37:14 -08:00
toolbox Remove r in R. 2019-04-04 10:45:12 -07:00
trusty Trusty Keymaster@4.0 2019-05-16 14:19:50 -07:00
usbd usbd: Do not join the thread pool 2018-10-24 01:43:06 +00:00
watchdogd Move watchdogd out of init 2018-08-02 12:25:58 -07:00
.clang-format Add a 2 width option of clang format. 2017-03-10 13:01:39 -08:00
.clang-format-2 Move clang-formats to build. 2019-01-18 14:26:33 -08:00
.clang-format-4 Move clang-formats to build. 2019-01-18 14:26:33 -08:00
.gitignore Ignore adb/*.pyc files 2015-08-11 12:59:58 -07:00
Android.bp Export android_filesystem_config.h as a filegroup 2017-01-17 18:20:28 -08:00
CleanSpec.mk Do not create /sbin 2019-04-16 15:22:33 -07:00
MODULE_LICENSE_APACHE2 auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
NOTICE Fix omission in NOTICE file. 2013-07-30 13:56:55 -07:00
OWNERS Move per-file OWNERS directives to their directories. 2018-06-06 11:49:40 +09:00
PREUPLOAD.cfg Add a PREUPLOAD.cfg file to run git-clang-format on every commit 2017-03-08 16:51:26 +08:00
TEST_MAPPING Hide most symbols in libmemunreachable 2019-05-20 15:18:03 -07:00