diff options
Diffstat (limited to 'cmds/installd/utils.c')
| -rw-r--r-- | cmds/installd/utils.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/cmds/installd/utils.c b/cmds/installd/utils.c index 625a35e..154a2f8 100644 --- a/cmds/installd/utils.c +++ b/cmds/installd/utils.c @@ -362,7 +362,11 @@ int lookup_media_dir(char basepath[PATH_MAX], const char *dir) int64_t data_disk_free() { struct statfs sfs; - if (statfs(android_data_dir.path, &sfs) == 0) { + /* Scanning /data/data because on some devices, it's on a different partition + * and scanning /data will yield the incorrect result. (This function is only + * used for freeing space on /data/data so it is okay to be more specific.) + */ + if (statfs(android_datadata_dir.path, &sfs) == 0) { return sfs.f_bavail * sfs.f_bsize; } else { ALOGE("Couldn't statfs %s: %s\n", android_data_dir.path, strerror(errno)); |
