I've been encountered with a FAT panic, saying, ===================================== Filesystem panic (dev mmcblk0p1) fat_get_cluster: invalid cluster chain (i_pos 16021) File system has been set read-only ===================================== After tracking into kernel code, I find this is printed out by fat_get_cluster@fs/fat/cache.c , ===================================== nr = fat_access(sb, *dclus, -1); if (nr < 0) return nr; else if (nr == FAT_ENT_FREE) { fat_fs_panic(sb, "%s: invalid cluster chain" " (i_pos %lld)", __FUNCTION__, MSDOS_I(inode)->i_pos); return -EIO; } else if (nr == FAT_ENT_EOF) { fat_cache_add(inode, &cid); return FAT_ENT_EOF; } ===================================== Could you please help to explain what does FAT_ENT_FREE mean? and what condition will lead to (nr == FAT_ENT_FREE) to be true? Thank you very much! Sorry for these simple questions for you, since it's the first time for me to look into FAT code. Your kindly reply will be appreciated much, and will help me a lot. BTW, where could I find a documentation about Linux FAT? Thanks & Regards, Stephen - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html