首页 > 代码库 > 文件是怎么写入磁盘的?

文件是怎么写入磁盘的?

最近有个FAT文件系统非正常umount导致sdcard挂载异常,进入errors处理,remount-ro了。

<4>[ 7993.545483] c0 FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.<3>[ 7999.739501] c0 FAT-fs (mmcblk0p1): error, clusters badly computed (721 != 673)<3>[ 7999.739521] c0 FAT-fs (mmcblk0p1): Filesystem has been set read-only

我们可以看到mount的参数“errors=remount-ro”

/dev/block/vold/179:33 /mnt/media_rw/sdcard0 vfat ro,dirsync,nosuid,nodev,noexec,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

挂载失败,执行error选项在“kernel/fs/fat/misc.c +33”中会有相应的处理。

而错误检测则在“kernel/fs/fat/misc.c +158”中有处理。

在“kernel/fs/fat/inode.c +520”我们可以看到那句警告的出处,应该是sbi出了问题了。

----

以上是背景,我现在就想弄明白,我打开一个文件,然后写文件,这期间是怎么将数据写到磁盘的。