diff options
Diffstat (limited to 'fs/nilfs2/segment.c')
| -rw-r--r-- | fs/nilfs2/segment.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c index 88e11fb346b6..a5752a589932 100644 --- a/fs/nilfs2/segment.c +++ b/fs/nilfs2/segment.c | |||
| @@ -189,7 +189,7 @@ int nilfs_transaction_begin(struct super_block *sb, | |||
| 189 | if (ret > 0) | 189 | if (ret > 0) |
| 190 | return 0; | 190 | return 0; |
| 191 | 191 | ||
| 192 | vfs_check_frozen(sb, SB_FREEZE_WRITE); | 192 | sb_start_intwrite(sb); |
| 193 | 193 | ||
| 194 | nilfs = sb->s_fs_info; | 194 | nilfs = sb->s_fs_info; |
| 195 | down_read(&nilfs->ns_segctor_sem); | 195 | down_read(&nilfs->ns_segctor_sem); |
| @@ -205,6 +205,7 @@ int nilfs_transaction_begin(struct super_block *sb, | |||
| 205 | current->journal_info = ti->ti_save; | 205 | current->journal_info = ti->ti_save; |
| 206 | if (ti->ti_flags & NILFS_TI_DYNAMIC_ALLOC) | 206 | if (ti->ti_flags & NILFS_TI_DYNAMIC_ALLOC) |
| 207 | kmem_cache_free(nilfs_transaction_cachep, ti); | 207 | kmem_cache_free(nilfs_transaction_cachep, ti); |
| 208 | sb_end_intwrite(sb); | ||
| 208 | return ret; | 209 | return ret; |
| 209 | } | 210 | } |
| 210 | 211 | ||
| @@ -246,6 +247,7 @@ int nilfs_transaction_commit(struct super_block *sb) | |||
| 246 | err = nilfs_construct_segment(sb); | 247 | err = nilfs_construct_segment(sb); |
| 247 | if (ti->ti_flags & NILFS_TI_DYNAMIC_ALLOC) | 248 | if (ti->ti_flags & NILFS_TI_DYNAMIC_ALLOC) |
| 248 | kmem_cache_free(nilfs_transaction_cachep, ti); | 249 | kmem_cache_free(nilfs_transaction_cachep, ti); |
| 250 | sb_end_intwrite(sb); | ||
| 249 | return err; | 251 | return err; |
| 250 | } | 252 | } |
| 251 | 253 | ||
| @@ -264,6 +266,7 @@ void nilfs_transaction_abort(struct super_block *sb) | |||
| 264 | current->journal_info = ti->ti_save; | 266 | current->journal_info = ti->ti_save; |
| 265 | if (ti->ti_flags & NILFS_TI_DYNAMIC_ALLOC) | 267 | if (ti->ti_flags & NILFS_TI_DYNAMIC_ALLOC) |
| 266 | kmem_cache_free(nilfs_transaction_cachep, ti); | 268 | kmem_cache_free(nilfs_transaction_cachep, ti); |
| 269 | sb_end_intwrite(sb); | ||
| 267 | } | 270 | } |
| 268 | 271 | ||
| 269 | void nilfs_relax_pressure_in_lock(struct super_block *sb) | 272 | void nilfs_relax_pressure_in_lock(struct super_block *sb) |
