diff --git a/fs_mgr/libsnapshot/snapuserd/Android.bp b/fs_mgr/libsnapshot/snapuserd/Android.bp index 93b0f7c28..4d8600782 100644 --- a/fs_mgr/libsnapshot/snapuserd/Android.bp +++ b/fs_mgr/libsnapshot/snapuserd/Android.bp @@ -61,12 +61,12 @@ cc_defaults { "dm-snapshot-merge/snapuserd_worker.cpp", "dm-snapshot-merge/snapuserd_readahead.cpp", "snapuserd_daemon.cpp", - "snapuserd_buffer.cpp", - "user-space-merge/snapuserd_core.cpp", - "user-space-merge/snapuserd_dm_user.cpp", - "user-space-merge/snapuserd_merge.cpp", - "user-space-merge/snapuserd_readahead.cpp", - "user-space-merge/snapuserd_transitions.cpp", + "snapuserd_buffer.cpp", + "user-space-merge/snapuserd_core.cpp", + "user-space-merge/snapuserd_dm_user.cpp", + "user-space-merge/snapuserd_merge.cpp", + "user-space-merge/snapuserd_readahead.cpp", + "user-space-merge/snapuserd_transitions.cpp", "user-space-merge/snapuserd_server.cpp", ], @@ -95,7 +95,14 @@ cc_binary { init_rc: [ "snapuserd.rc", ], + + // snapuserd is started during early boot by first-stage init. At that + // point, /system is mounted using the "dm-user" device-mapper kernel + // module. dm-user routes all I/O to userspace to be handled by + // snapuserd, which would lead to deadlock if we had to handle page + // faults for its code pages. static_executable: true, + system_shared_libs: [], ramdisk_available: true, vendor_ramdisk_available: true, @@ -111,7 +118,7 @@ cc_test { "dm-snapshot-merge/cow_snapuserd_test.cpp", "dm-snapshot-merge/snapuserd.cpp", "dm-snapshot-merge/snapuserd_worker.cpp", - "snapuserd_buffer.cpp", + "snapuserd_buffer.cpp", ], cflags: [ "-Wall",