FAT: add 'errors' mount option
On severe errors FAT remounts itself in read-only mode. Allow to specify FAT fs desired behavior through 'errors' mount option: panic, continue or remount read-only. `mount -t [fat|vfat] -o errors=[panic,remount-ro,continue] \ <bdev> <mount point>` This is analog to ext2 fs 'errors' mount option. Signed-off-by: Denis Karpov <ext-denis.2.karpov@nokia.com> Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
This commit is contained in:
committed by
OGAWA Hirofumi
parent
9fa7eb283c
commit
85c7859190
@ -241,7 +241,7 @@ int fat_get_cluster(struct inode *inode, int cluster, int *fclus, int *dclus)
|
||||
while (*fclus < cluster) {
|
||||
/* prevent the infinite loop of cluster chain */
|
||||
if (*fclus > limit) {
|
||||
fat_fs_panic(sb, "%s: detected the cluster chain loop"
|
||||
fat_fs_error(sb, "%s: detected the cluster chain loop"
|
||||
" (i_pos %lld)", __func__,
|
||||
MSDOS_I(inode)->i_pos);
|
||||
nr = -EIO;
|
||||
@ -252,7 +252,7 @@ int fat_get_cluster(struct inode *inode, int cluster, int *fclus, int *dclus)
|
||||
if (nr < 0)
|
||||
goto out;
|
||||
else if (nr == FAT_ENT_FREE) {
|
||||
fat_fs_panic(sb, "%s: invalid cluster chain"
|
||||
fat_fs_error(sb, "%s: invalid cluster chain"
|
||||
" (i_pos %lld)", __func__,
|
||||
MSDOS_I(inode)->i_pos);
|
||||
nr = -EIO;
|
||||
@ -285,7 +285,7 @@ static int fat_bmap_cluster(struct inode *inode, int cluster)
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
else if (ret == FAT_ENT_EOF) {
|
||||
fat_fs_panic(sb, "%s: request beyond EOF (i_pos %lld)",
|
||||
fat_fs_error(sb, "%s: request beyond EOF (i_pos %lld)",
|
||||
__func__, MSDOS_I(inode)->i_pos);
|
||||
return -EIO;
|
||||
}
|
||||
|
Reference in New Issue
Block a user