aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nilfs2/segment.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nilfs2/segment.c')
-rw-r--r--fs/nilfs2/segment.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
index 1f7881ca01c4..9e680a93b13a 100644
--- a/fs/nilfs2/segment.c
+++ b/fs/nilfs2/segment.c
@@ -2408,6 +2408,7 @@ static int nilfs_segctor_construct(struct nilfs_sc_info *sci, int mode)
2408{ 2408{
2409 struct nilfs_sb_info *sbi = sci->sc_sbi; 2409 struct nilfs_sb_info *sbi = sci->sc_sbi;
2410 struct the_nilfs *nilfs = sbi->s_nilfs; 2410 struct the_nilfs *nilfs = sbi->s_nilfs;
2411 struct nilfs_super_block **sbp;
2411 int err = 0; 2412 int err = 0;
2412 2413
2413 nilfs_segctor_accept(sci); 2414 nilfs_segctor_accept(sci);
@@ -2423,8 +2424,11 @@ static int nilfs_segctor_construct(struct nilfs_sc_info *sci, int mode)
2423 if (test_bit(NILFS_SC_SUPER_ROOT, &sci->sc_flags) && 2424 if (test_bit(NILFS_SC_SUPER_ROOT, &sci->sc_flags) &&
2424 nilfs_discontinued(nilfs)) { 2425 nilfs_discontinued(nilfs)) {
2425 down_write(&nilfs->ns_sem); 2426 down_write(&nilfs->ns_sem);
2426 err = nilfs_commit_super( 2427 err = -EIO;
2427 sbi, nilfs_altsb_need_update(nilfs)); 2428 sbp = nilfs_prepare_super(sbi);
2429 if (likely(sbp))
2430 err = nilfs_commit_super(
2431 sbi, nilfs_altsb_need_update(nilfs));
2428 up_write(&nilfs->ns_sem); 2432 up_write(&nilfs->ns_sem);
2429 } 2433 }
2430 } 2434 }