am ebb46d76: Merge "fs_mgr: Don\'t run e2fsck inside SDK system images."

* commit 'ebb46d76e4bf4ee4f34b42709ea69cce07e3e322':
  fs_mgr: Don't run e2fsck inside SDK system images.
This commit is contained in:
David 'Digit' Turner 2014-02-25 08:19:12 +00:00 committed by Android Git Automerger
commit f936f66c2a

View file

@ -116,15 +116,24 @@ static void check_fs(char *blk_device, char *fs_type, char *target)
umount(target);
}
INFO("Running %s on %s\n", E2FSCK_BIN, blk_device);
/*
* Some system images do not have e2fsck for licensing reasons
* (e.g. recent SDK system images). Detect these and skip the check.
*/
if (access(E2FSCK_BIN, X_OK)) {
INFO("Not running %s on %s (executable not in system image)\n",
E2FSCK_BIN, blk_device);
} else {
INFO("Running %s on %s\n", E2FSCK_BIN, blk_device);
ret = android_fork_execvp_ext(ARRAY_SIZE(e2fsck_argv), e2fsck_argv,
&status, true, LOG_KLOG | LOG_FILE,
true, FSCK_LOG_FILE);
ret = android_fork_execvp_ext(ARRAY_SIZE(e2fsck_argv), e2fsck_argv,
&status, true, LOG_KLOG | LOG_FILE,
true, FSCK_LOG_FILE);
if (ret < 0) {
/* No need to check for error in fork, we can't really handle it now */
ERROR("Failed trying to run %s\n", E2FSCK_BIN);
if (ret < 0) {
/* No need to check for error in fork, we can't really handle it now */
ERROR("Failed trying to run %s\n", E2FSCK_BIN);
}
}
}