Retry unmounts in ext4 encryption
Bug: 18151196 Change-Id: I52ca23b2ce3adcff44bd003d4a12243a0bd6ac34
This commit is contained in:
parent
4571383cbf
commit
29b54aab8e
3 changed files with 6 additions and 5 deletions
|
@ -381,16 +381,14 @@ int e4crypt_restart(const char* path)
|
|||
|
||||
std::string tmp_path = std::string() + path + "/tmp_mnt";
|
||||
|
||||
// ext4enc:TODO add retry logic
|
||||
rc = umount(tmp_path.c_str());
|
||||
rc = wait_and_unmount(tmp_path.c_str(), true);
|
||||
if (rc) {
|
||||
SLOGE("umount %s failed with rc %d, msg %s",
|
||||
tmp_path.c_str(), rc, strerror(errno));
|
||||
return rc;
|
||||
}
|
||||
|
||||
// ext4enc:TODO add retry logic
|
||||
rc = umount(path);
|
||||
rc = wait_and_unmount(path, true);
|
||||
if (rc) {
|
||||
SLOGE("umount %s failed with rc %d, msg %s",
|
||||
path, rc, strerror(errno));
|
||||
|
|
|
@ -1446,7 +1446,7 @@ static int create_encrypted_random_key(char *passwd, unsigned char *master_key,
|
|||
return encrypt_master_key(passwd, salt, key_buf, master_key, crypt_ftr);
|
||||
}
|
||||
|
||||
static int wait_and_unmount(char *mountpoint, bool kill)
|
||||
int wait_and_unmount(const char *mountpoint, bool kill)
|
||||
{
|
||||
int i, err, rc;
|
||||
#define WAIT_UNMOUNT_COUNT 20
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
* partition.
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <cutils/properties.h>
|
||||
|
||||
/* The current cryptfs version */
|
||||
|
@ -225,6 +226,8 @@ struct volume_info {
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
int wait_and_unmount(const char *mountpoint, bool kill);
|
||||
|
||||
typedef int (*kdf_func)(const char *passwd, const unsigned char *salt,
|
||||
unsigned char *ikey, void *params);
|
||||
|
||||
|
|
Loading…
Reference in a new issue