Snap for 13219462 from 937d02a17d67f3c8f1bbb2b0107e1d16ee4b407b to 25Q2-release
Change-Id: I5618f5c12d4b3f05469b4b11d4ec9f241effbbed
diff --git a/fs_mgr/libsnapshot/include/libsnapshot/snapshot_stats.h b/fs_mgr/libsnapshot/include/libsnapshot/snapshot_stats.h
index 8a70400..79443b2 100644
--- a/fs_mgr/libsnapshot/include/libsnapshot/snapshot_stats.h
+++ b/fs_mgr/libsnapshot/include/libsnapshot/snapshot_stats.h
@@ -64,6 +64,7 @@
public:
// Not thread safe.
static SnapshotMergeStats* GetInstance(SnapshotManager& manager);
+ SnapshotMergeStats(const std::string& path);
// ISnapshotMergeStats overrides
bool Start() override;
@@ -88,7 +89,6 @@
private:
bool ReadState();
bool DeleteState();
- SnapshotMergeStats(const std::string& path);
std::string path_;
SnapshotMergeReport report_;
diff --git a/fs_mgr/libsnapshot/snapshot_stats.cpp b/fs_mgr/libsnapshot/snapshot_stats.cpp
index 8e9d9c5..e684d87 100644
--- a/fs_mgr/libsnapshot/snapshot_stats.cpp
+++ b/fs_mgr/libsnapshot/snapshot_stats.cpp
@@ -24,9 +24,12 @@
namespace snapshot {
SnapshotMergeStats* SnapshotMergeStats::GetInstance(SnapshotManager& parent) {
- static SnapshotMergeStats g_instance(parent.GetMergeStateFilePath());
- CHECK_EQ(g_instance.path_, parent.GetMergeStateFilePath());
- return &g_instance;
+ static std::unique_ptr<SnapshotMergeStats> g_instance;
+
+ if (!g_instance || g_instance->path_ != parent.GetMergeStateFilePath()) {
+ g_instance = std::make_unique<SnapshotMergeStats>(parent.GetMergeStateFilePath());
+ }
+ return g_instance.get();
}
SnapshotMergeStats::SnapshotMergeStats(const std::string& path) : path_(path), running_(false) {}
diff --git a/rootdir/init.rc b/rootdir/init.rc
index 1545d09..c25a9ac 100644
--- a/rootdir/init.rc
+++ b/rootdir/init.rc
@@ -1233,7 +1233,7 @@
# and chown/chmod does not work for /proc/sys/ entries.
# So proxy writes through init.
on property:sys.sysctl.extra_free_kbytes=*
- exec -- /system/bin/extra_free_kbytes.sh ${sys.sysctl.extra_free_kbytes}
+ exec_background -- /system/bin/extra_free_kbytes.sh ${sys.sysctl.extra_free_kbytes}
# Allow users to drop caches
on property:perf.drop_caches=3