diff options
author | liubo <liubo2009@cn.fujitsu.com> | 2011-01-06 19:30:25 +0800 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2011-01-17 15:13:08 -0500 |
commit | acce952b0263825da32cf10489413dec78053347 (patch) | |
tree | d934881f247484d7b6917bebc40828600bb6b76c /fs/btrfs/disk-io.h | |
parent | 6f88a4403def422bd8e276ddf6863d6ac71435d2 (diff) | |
download | kernel_goldelico_gta04-acce952b0263825da32cf10489413dec78053347.zip kernel_goldelico_gta04-acce952b0263825da32cf10489413dec78053347.tar.gz kernel_goldelico_gta04-acce952b0263825da32cf10489413dec78053347.tar.bz2 |
Btrfs: forced readonly mounts on errors
This patch comes from "Forced readonly mounts on errors" ideas.
As we know, this is the first step in being more fault tolerant of disk
corruptions instead of just using BUG() statements.
The major content:
- add a framework for generating errors that should result in filesystems
going readonly.
- keep FS state in disk super block.
- make sure that all of resource will be freed and released at umount time.
- make sure that fter FS is forced readonly on error, there will be no more
disk change before FS is corrected. For this, we should stop write operation.
After this patch is applied, the conversion from BUG() to such a framework can
happen incrementally.
Signed-off-by: Liu Bo <liubo2009@cn.fujitsu.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/disk-io.h')
-rw-r--r-- | fs/btrfs/disk-io.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/btrfs/disk-io.h b/fs/btrfs/disk-io.h index 88e825a..07b20dc 100644 --- a/fs/btrfs/disk-io.h +++ b/fs/btrfs/disk-io.h @@ -52,6 +52,7 @@ int write_ctree_super(struct btrfs_trans_handle *trans, struct btrfs_root *root, int max_mirrors); struct buffer_head *btrfs_read_dev_super(struct block_device *bdev); int btrfs_commit_super(struct btrfs_root *root); +int btrfs_error_commit_super(struct btrfs_root *root); struct extent_buffer *btrfs_find_tree_block(struct btrfs_root *root, u64 bytenr, u32 blocksize); struct btrfs_root *btrfs_lookup_fs_root(struct btrfs_fs_info *fs_info, |