diff options
| author | San Mehat <san@google.com> | 2009-06-24 17:56:03 -0700 |
|---|---|---|
| committer | San Mehat <san@google.com> | 2009-06-24 19:27:48 -0700 |
| commit | e7f444f32986f975b788ecf3962cb2cce27828e8 (patch) | |
| tree | ecb5d554ee197a2b79f418798163d90b8ef9a33d /vold | |
| parent | d6c6796670a5e566977b13d542020fb8cc88e6cf (diff) | |
| download | system_core-e7f444f32986f975b788ecf3962cb2cce27828e8.zip system_core-e7f444f32986f975b788ecf3962cb2cce27828e8.tar.gz system_core-e7f444f32986f975b788ecf3962cb2cce27828e8.tar.bz2 | |
vold: Switch vfat fsck tools
Signed-off-by: San Mehat <san@google.com>
Diffstat (limited to 'vold')
| -rw-r--r-- | vold/volmgr_vfat.c | 66 |
1 files changed, 20 insertions, 46 deletions
diff --git a/vold/volmgr_vfat.c b/vold/volmgr_vfat.c index 7833222..835b71d 100644 --- a/vold/volmgr_vfat.c +++ b/vold/volmgr_vfat.c @@ -26,7 +26,7 @@ #define VFAT_DEBUG 0 -static char FSCK_MSDOS_PATH[] = "/system/bin/dosfsck"; +static char FSCK_MSDOS_PATH[] = "/system/bin/fsck_msdos"; int vfat_identify(blkdev_t *dev) { @@ -51,51 +51,25 @@ int vfat_check(blkdev_t *dev) return 0; } - do { - - char *args[6]; - args[0] = FSCK_MSDOS_PATH; - args[1] = "-v"; - - if (rw) { - args[2] = "-w"; - args[3] = "-p"; - args[4] = blkdev_get_devpath(dev); - args[5] = NULL; - rc = logwrap(5, args, 1); - free(args[4]); - } else { - args[2] = "-n"; - args[3] = blkdev_get_devpath(dev); - args[4] = NULL; - rc = logwrap(4, args, 1); - free(args[3]); - } - - if (rc == 0) { - LOG_VOL("Filesystem check completed OK"); - return 0; - } else if (rc == 1) { - LOG_VOL("Filesystem check failed (general failure)"); - return -EINVAL; - } else if (rc == 2) { - LOG_VOL("Filesystem check failed (invalid usage)"); - return -EIO; - } else if (rc == 4) { - LOG_VOL("Filesystem check completed (errors fixed)"); - } else if (rc == 6) { - LOG_VOL("Filesystem read-only - retrying check RO"); - rw = false; - continue; - } else if (rc == 8) { - LOG_VOL("Filesystem check failed (not a FAT filesystem)"); - return -ENODATA; - } else { - LOG_VOL("Filesystem check failed (unknown exit code %d)", rc); - return -EIO; - } - } while (0); - + char *args[5]; + args[0] = FSCK_MSDOS_PATH; + args[1] = "-p"; + args[2] = "-f"; + args[3] = blkdev_get_devpath(dev); + args[4] = NULL; + rc = logwrap(4, args, 1); + free(args[3]); + + if (rc == 0) { + LOG_VOL("Filesystem check completed OK"); + return 0; + } else if (rc == 2) { + LOG_VOL("Filesystem check failed (not a FAT filesystem)"); + return -ENODATA; + } else { + LOG_VOL("Filesystem check failed (unknown exit code %d)", rc); + return -EIO; + } return 0; } |
