From bcefbb1dfb6b02a12d08c77b036bc225a4650368 Mon Sep 17 00:00:00 2001 From: Guo Weichao Date: Wed, 26 May 2021 11:12:11 +0800 Subject: [PATCH] init: fix to set sd device label correctly for FS The sysfs node of sd blk_device is /sys/fs/f2fs/sd-, we shouldn't skip partition number at this time. Bug: 189257443 Test: access sd- sysfs correctly Signed-off-by: Guo Weichao Signed-off-by: Huang Jianan Change-Id: Ibcd7bb265f8fca9cd26f8770403f1bafad433acb --- init/mount_handler.cpp | 12 +++++++++--- rootdir/init.rc | 4 ++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/init/mount_handler.cpp b/init/mount_handler.cpp index 46f833104..f0d8d4569 100644 --- a/init/mount_handler.cpp +++ b/init/mount_handler.cpp @@ -90,12 +90,18 @@ void SetMountProperty(const MountHandlerEntry& entry, bool add) { auto mount_prop = entry.mount_point; if (mount_prop == "/") mount_prop = "/root"; std::replace(mount_prop.begin(), mount_prop.end(), '/', '.'); - mount_prop = "dev.mnt.blk" + mount_prop; + auto blk_mount_prop = "dev.mnt.blk" + mount_prop; + auto dev_mount_prop = "dev.mnt.dev" + mount_prop; // Set property even if its value does not change to trigger 'on property:' // handling, except for clearing non-existent or already clear property. // Goal is reduction of empty properties and associated triggers. - if (value.empty() && android::base::GetProperty(mount_prop, "").empty()) return; - android::base::SetProperty(mount_prop, value); + if (value.empty() && android::base::GetProperty(blk_mount_prop, "").empty()) return; + android::base::SetProperty(blk_mount_prop, value); + if (!value.empty()) { + android::base::SetProperty(dev_mount_prop, entry.blk_device.substr(strlen(devblock))); + } else { + android::base::SetProperty(dev_mount_prop, ""); + } } } // namespace diff --git a/rootdir/init.rc b/rootdir/init.rc index 7ba476bcb..76a9ba8c8 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc @@ -1030,11 +1030,11 @@ on boot # to access F2FS sysfs on dm- directly mkdir /dev/sys/fs/by-name 0755 system system - symlink /sys/fs/f2fs/${dev.mnt.blk.data} /dev/sys/fs/by-name/userdata + symlink /sys/fs/f2fs/${dev.mnt.dev.data} /dev/sys/fs/by-name/userdata # to access dm- sysfs mkdir /dev/sys/block/by-name 0755 system system - symlink /sys/devices/virtual/block/${dev.mnt.blk.data} /dev/sys/block/by-name/userdata + symlink /sys/devices/virtual/block/${dev.mnt.dev.data} /dev/sys/block/by-name/userdata # F2FS tuning. Set cp_interval larger than dirty_expire_centisecs, 30 secs, # to avoid power consumption when system becomes mostly idle. Be careful