diff --git a/Ext4Crypt.cpp b/Ext4Crypt.cpp index 309a1f2..eaac26a 100644 --- a/Ext4Crypt.cpp +++ b/Ext4Crypt.cpp @@ -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; }