diff options
Diffstat (limited to 'fs/nilfs2/segment.c')
-rw-r--r-- | fs/nilfs2/segment.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c index 9280b0f10792..ab439a7ef2d8 100644 --- a/fs/nilfs2/segment.c +++ b/fs/nilfs2/segment.c | |||
@@ -2875,8 +2875,15 @@ int nilfs_attach_segment_constructor(struct nilfs_sb_info *sbi) | |||
2875 | struct the_nilfs *nilfs = sbi->s_nilfs; | 2875 | struct the_nilfs *nilfs = sbi->s_nilfs; |
2876 | int err; | 2876 | int err; |
2877 | 2877 | ||
2878 | /* Each field of nilfs_segctor is cleared through the initialization | 2878 | if (NILFS_SC(sbi)) { |
2879 | of super-block info */ | 2879 | /* |
2880 | * This happens if the filesystem was remounted | ||
2881 | * read/write after nilfs_error degenerated it into a | ||
2882 | * read-only mount. | ||
2883 | */ | ||
2884 | nilfs_detach_segment_constructor(sbi); | ||
2885 | } | ||
2886 | |||
2880 | sbi->s_sc_info = nilfs_segctor_new(sbi); | 2887 | sbi->s_sc_info = nilfs_segctor_new(sbi); |
2881 | if (!sbi->s_sc_info) | 2888 | if (!sbi->s_sc_info) |
2882 | return -ENOMEM; | 2889 | return -ENOMEM; |