This function marks error state and write it on super blocks.  This is
a preparation for making super block writeback alternately.

Signed-off-by: Ryusuke Konishi <[email protected]>
---
 fs/nilfs2/super.c |   24 ++++++++++++++----------
 1 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/fs/nilfs2/super.c b/fs/nilfs2/super.c
index f23a31b..4a85dfb 100644
--- a/fs/nilfs2/super.c
+++ b/fs/nilfs2/super.c
@@ -74,6 +74,19 @@ struct kmem_cache *nilfs_btree_path_cache;
 
 static int nilfs_remount(struct super_block *sb, int *flags, char *data);
 
+static void nilfs_set_error(struct nilfs_sb_info *sbi)
+{
+       struct the_nilfs *nilfs = sbi->s_nilfs;
+
+       down_write(&nilfs->ns_sem);
+       if (!(nilfs->ns_mount_state & NILFS_ERROR_FS)) {
+               nilfs->ns_mount_state |= NILFS_ERROR_FS;
+               nilfs->ns_sbp[0]->s_state |= cpu_to_le16(NILFS_ERROR_FS);
+               nilfs_commit_super(sbi, 1);
+       }
+       up_write(&nilfs->ns_sem);
+}
+
 /**
  * nilfs_error() - report failure condition on a filesystem
  *
@@ -99,16 +112,7 @@ void nilfs_error(struct super_block *sb, const char 
*function,
        va_end(args);
 
        if (!(sb->s_flags & MS_RDONLY)) {
-               struct the_nilfs *nilfs = sbi->s_nilfs;
-
-               down_write(&nilfs->ns_sem);
-               if (!(nilfs->ns_mount_state & NILFS_ERROR_FS)) {
-                       nilfs->ns_mount_state |= NILFS_ERROR_FS;
-                       nilfs->ns_sbp[0]->s_state |=
-                               cpu_to_le16(NILFS_ERROR_FS);
-                       nilfs_commit_super(sbi, 1);
-               }
-               up_write(&nilfs->ns_sem);
+               nilfs_set_error(sbi);
 
                if (nilfs_test_opt(sbi, ERRORS_RO)) {
                        printk(KERN_CRIT "Remounting filesystem read-only\n");
-- 
1.6.3.4

--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to