diff options
author | Denis Karpov <ext-denis.2.karpov@nokia.com> | 2009-06-03 13:34:22 -0400 |
---|---|---|
committer | OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> | 2009-06-03 13:34:51 -0400 |
commit | 85c7859190c4197a7c34066db14c25903c401187 (patch) | |
tree | 9cf54e894f52eb1edfd35daeff66bfb5697b8360 /fs/fat/fat.h | |
parent | 9fa7eb283c5cdc2b0f4a8cfe6387ed82e5e9a3d3 (diff) |
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>
Diffstat (limited to 'fs/fat/fat.h')
-rw-r--r-- | fs/fat/fat.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/fat/fat.h b/fs/fat/fat.h index ea440d65819c..ed10896d5da5 100644 --- a/fs/fat/fat.h +++ b/fs/fat/fat.h | |||
@@ -17,6 +17,10 @@ | |||
17 | #define VFAT_SFN_CREATE_WIN95 0x0100 /* emulate win95 rule for create */ | 17 | #define VFAT_SFN_CREATE_WIN95 0x0100 /* emulate win95 rule for create */ |
18 | #define VFAT_SFN_CREATE_WINNT 0x0200 /* emulate winnt rule for create */ | 18 | #define VFAT_SFN_CREATE_WINNT 0x0200 /* emulate winnt rule for create */ |
19 | 19 | ||
20 | #define FAT_ERRORS_CONT 1 /* ignore error and continue */ | ||
21 | #define FAT_ERRORS_PANIC 2 /* panic on error */ | ||
22 | #define FAT_ERRORS_RO 3 /* remount r/o on error */ | ||
23 | |||
20 | struct fat_mount_options { | 24 | struct fat_mount_options { |
21 | uid_t fs_uid; | 25 | uid_t fs_uid; |
22 | gid_t fs_gid; | 26 | gid_t fs_gid; |
@@ -26,6 +30,7 @@ struct fat_mount_options { | |||
26 | char *iocharset; /* Charset used for filename input/display */ | 30 | char *iocharset; /* Charset used for filename input/display */ |
27 | unsigned short shortname; /* flags for shortname display/create rule */ | 31 | unsigned short shortname; /* flags for shortname display/create rule */ |
28 | unsigned char name_check; /* r = relaxed, n = normal, s = strict */ | 32 | unsigned char name_check; /* r = relaxed, n = normal, s = strict */ |
33 | unsigned char errors; /* On error: continue, panic, remount-ro */ | ||
29 | unsigned short allow_utime;/* permission for setting the [am]time */ | 34 | unsigned short allow_utime;/* permission for setting the [am]time */ |
30 | unsigned quiet:1, /* set = fake successful chmods and chowns */ | 35 | unsigned quiet:1, /* set = fake successful chmods and chowns */ |
31 | showexec:1, /* set = only set x bit for com/exe/bat */ | 36 | showexec:1, /* set = only set x bit for com/exe/bat */ |
@@ -310,7 +315,7 @@ extern int fat_fill_super(struct super_block *sb, void *data, int silent, | |||
310 | extern int fat_flush_inodes(struct super_block *sb, struct inode *i1, | 315 | extern int fat_flush_inodes(struct super_block *sb, struct inode *i1, |
311 | struct inode *i2); | 316 | struct inode *i2); |
312 | /* fat/misc.c */ | 317 | /* fat/misc.c */ |
313 | extern void fat_fs_panic(struct super_block *s, const char *fmt, ...) | 318 | extern void fat_fs_error(struct super_block *s, const char *fmt, ...) |
314 | __attribute__ ((format (printf, 2, 3))) __cold; | 319 | __attribute__ ((format (printf, 2, 3))) __cold; |
315 | extern void fat_clusters_flush(struct super_block *sb); | 320 | extern void fat_clusters_flush(struct super_block *sb); |
316 | extern int fat_chain_add(struct inode *inode, int new_dclus, int nr_cluster); | 321 | extern int fat_chain_add(struct inode *inode, int new_dclus, int nr_cluster); |