system/core
修訂 | a24f3a00d33cd10fc9623787af4b866e203f200b (tree) |
---|---|
時間 | 2010-04-14 19:19:54 |
作者 | Chih-Wei Huang <cwhuang@linu...> |
Commiter | Chih-Wei Huang |
vold: add fat partition type detection, and fix a crash bug
@@ -1157,7 +1157,7 @@ static int _volmgr_start(volume_t *vol, blkdev_t *dev) | ||
1157 | 1157 | break; |
1158 | 1158 | } |
1159 | 1159 | |
1160 | - if (!fs) { | |
1160 | + if (!fs->name) { | |
1161 | 1161 | LOGE("No supported filesystems on %d:%d", dev->major, dev->minor); |
1162 | 1162 | volume_setstate(vol, volstate_nofs); |
1163 | 1163 | return -ENODATA; |
@@ -36,7 +36,18 @@ int vfat_identify(blkdev_t *dev) | ||
36 | 36 | #if VFAT_DEBUG |
37 | 37 | LOG_VOL("vfat_identify(%d:%d):", dev->major, dev->minor); |
38 | 38 | #endif |
39 | - return 0; // XXX: Implement | |
39 | + switch (dev->part_type) { | |
40 | + case 0x1: | |
41 | + case 0x4: | |
42 | + case 0x6: | |
43 | + case 0xb: | |
44 | + case 0xc: | |
45 | + case 0xe: | |
46 | + case 0xf: | |
47 | + return 0; | |
48 | + default: | |
49 | + return -ENODATA; | |
50 | + } | |
40 | 51 | } |
41 | 52 | |
42 | 53 | const char *vfat_parttype(blkdev_t *dev) |
@@ -164,8 +175,8 @@ int vfat_mount(blkdev_t *dev, volume_t *vol, boolean safe_mode) | ||
164 | 175 | } |
165 | 176 | |
166 | 177 | #if VFAT_DEBUG |
167 | - LOG_VOL("vfat_mount(%s, %d:%d): mount rc = %d", dev->major,k dev->minor, | |
168 | - vol->mount_point, rc); | |
178 | + LOG_VOL("vfat_mount(%s, %d:%d): mount rc = %d", vol->mount_point, | |
179 | + dev->major, dev->minor, rc); | |
169 | 180 | #endif |
170 | 181 | free (devpath); |
171 | 182 | return rc; |