OSDN Git Service

Acknowledge the 'nofail' fs_mgr flag and skip the expected failure.
authorP.Adarsh Reddy <quic_padarshr@quicinc.com>
Thu, 16 Apr 2020 16:16:08 +0000 (21:46 +0530)
committerAdarsh Reddy <quic_padarshr@quicinc.com>
Wed, 6 May 2020 16:45:23 +0000 (16:45 +0000)
fs_mgr supports 'nofail' flag, which is used if we do not want to
error-out incase the mounting/setup fails for a partition tagged with
nofail flag in fstab.

Recently added code in vold misses this handling, i.e. it aborts even
for a nofail partition upon encountering an expected failure.

Test: Add a non-existing logical partition fstab entry with 'nofail'
      flag. Init's first stage mount acks this and doesn't crash.
      Vold aborts (as it doesn't handle it), and device doesn't boot.
      With this change, device boots up.

Change-Id: I2b1904a9c648c31bcc05b2e7e77480db236ff66e

main.cpp

index 402ba0a..1f85fb5 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -242,7 +242,8 @@ static int process_config(VolumeManager* vm, VoldConfigs* configs) {
         }
 
         /* Make sure logical partitions have an updated blk_device. */
-        if (entry.fs_mgr_flags.logical && !fs_mgr_update_logical_partition(&entry)) {
+        if (entry.fs_mgr_flags.logical && !fs_mgr_update_logical_partition(&entry) &&
+            !entry.fs_mgr_flags.no_fail) {
             PLOG(FATAL) << "could not find logical partition " << entry.blk_device;
         }