Loading vold/volmgr_vfat.c +49 −22 Original line number Diff line number Diff line Loading @@ -51,6 +51,8 @@ int vfat_check(blkdev_t *dev) return 0; } int pass = 1; do { char *args[5]; args[0] = FSCK_MSDOS_PATH; args[1] = "-p"; Loading @@ -66,6 +68,15 @@ int vfat_check(blkdev_t *dev) } else if (rc == 2) { LOG_VOL("Filesystem check failed (not a FAT filesystem)"); return -ENODATA; } else if (rc == 4) { if (pass++ <= 3) { LOG_VOL("Filesystem modified - rechecking (pass %d)", pass); continue; } else { LOG_VOL("Failing check after too many rechecks"); return -EIO; } } else if (rc == -11) { LOG_VOL("Filesystem check crashed"); return -EIO; Loading @@ -73,6 +84,7 @@ int vfat_check(blkdev_t *dev) LOG_VOL("Filesystem check failed (unknown exit code %d)", rc); return -EIO; } } while (0); return 0; } Loading Loading @@ -113,6 +125,21 @@ int vfat_mount(blkdev_t *dev, volume_t *vol, boolean safe_mode) "utf8,uid=1000,gid=1015,fmask=702,dmask=702,shortname=mixed"); } if (rc == 0) { char *lost_path; asprintf(&lost_path, "%s/LOST.DIR", vol->mount_point); if (access(lost_path, F_OK)) { /* * Create a LOST.DIR in the root so we have somewhere to put * lost cluster chains (fsck_msdos doesn't currently do this) */ if (mkdir(lost_path, 0755)) { LOGE("Unable to create LOST.DIR (%s)", strerror(errno)); } } free(lost_path); } #if VFAT_DEBUG LOG_VOL("vfat_mount(%s, %d:%d): mount rc = %d", dev->major,k dev->minor, vol->mount_point, rc); Loading Loading
vold/volmgr_vfat.c +49 −22 Original line number Diff line number Diff line Loading @@ -51,6 +51,8 @@ int vfat_check(blkdev_t *dev) return 0; } int pass = 1; do { char *args[5]; args[0] = FSCK_MSDOS_PATH; args[1] = "-p"; Loading @@ -66,6 +68,15 @@ int vfat_check(blkdev_t *dev) } else if (rc == 2) { LOG_VOL("Filesystem check failed (not a FAT filesystem)"); return -ENODATA; } else if (rc == 4) { if (pass++ <= 3) { LOG_VOL("Filesystem modified - rechecking (pass %d)", pass); continue; } else { LOG_VOL("Failing check after too many rechecks"); return -EIO; } } else if (rc == -11) { LOG_VOL("Filesystem check crashed"); return -EIO; Loading @@ -73,6 +84,7 @@ int vfat_check(blkdev_t *dev) LOG_VOL("Filesystem check failed (unknown exit code %d)", rc); return -EIO; } } while (0); return 0; } Loading Loading @@ -113,6 +125,21 @@ int vfat_mount(blkdev_t *dev, volume_t *vol, boolean safe_mode) "utf8,uid=1000,gid=1015,fmask=702,dmask=702,shortname=mixed"); } if (rc == 0) { char *lost_path; asprintf(&lost_path, "%s/LOST.DIR", vol->mount_point); if (access(lost_path, F_OK)) { /* * Create a LOST.DIR in the root so we have somewhere to put * lost cluster chains (fsck_msdos doesn't currently do this) */ if (mkdir(lost_path, 0755)) { LOGE("Unable to create LOST.DIR (%s)", strerror(errno)); } } free(lost_path); } #if VFAT_DEBUG LOG_VOL("vfat_mount(%s, %d:%d): mount rc = %d", dev->major,k dev->minor, vol->mount_point, rc); Loading