Drop caches after installing key policy to avoid cache clashes

Note that this is an ugly workaround for a kernel bug.

Bug: 28373400
Change-Id: Iec1ae53f4e18f06e41e8cf1fcc3ab03fc9848632
This commit is contained in:
Paul Lawrence 2016-04-26 12:50:53 -07:00
parent a54cd8739c
commit 85e3d8cd50

View file

@ -176,6 +176,14 @@ static bool install_key(const std::string& key, std::string* raw_ref) {
}
LOG(DEBUG) << "Added key " << key_id << " (" << ref << ") to keyring " << device_keyring
<< " in process " << getpid();
// *TODO* Remove this code when kernel is fixed - see b/28373400
// Kernel preserves caches across a key insertion with ext4ice, which leads
// to contradictory dirents
if (!android::base::WriteStringToFile("3", "/proc/sys/vm/drop_caches")) {
PLOG(ERROR) << "Failed to drop_caches";
}
return true;
}