diff options
Diffstat (limited to 'fs/nilfs2/segment.c')
-rw-r--r-- | fs/nilfs2/segment.c | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c index 90e3130303a3..afe4f2183454 100644 --- a/fs/nilfs2/segment.c +++ b/fs/nilfs2/segment.c | |||
@@ -191,7 +191,7 @@ int nilfs_transaction_begin(struct super_block *sb, | |||
191 | 191 | ||
192 | vfs_check_frozen(sb, SB_FREEZE_WRITE); | 192 | vfs_check_frozen(sb, SB_FREEZE_WRITE); |
193 | 193 | ||
194 | nilfs = NILFS_SB(sb)->s_nilfs; | 194 | nilfs = sb->s_fs_info; |
195 | down_read(&nilfs->ns_segctor_sem); | 195 | down_read(&nilfs->ns_segctor_sem); |
196 | if (vacancy_check && nilfs_near_disk_full(nilfs)) { | 196 | if (vacancy_check && nilfs_near_disk_full(nilfs)) { |
197 | up_read(&nilfs->ns_segctor_sem); | 197 | up_read(&nilfs->ns_segctor_sem); |
@@ -222,7 +222,7 @@ int nilfs_transaction_begin(struct super_block *sb, | |||
222 | int nilfs_transaction_commit(struct super_block *sb) | 222 | int nilfs_transaction_commit(struct super_block *sb) |
223 | { | 223 | { |
224 | struct nilfs_transaction_info *ti = current->journal_info; | 224 | struct nilfs_transaction_info *ti = current->journal_info; |
225 | struct the_nilfs *nilfs = NILFS_SB(sb)->s_nilfs; | 225 | struct the_nilfs *nilfs = sb->s_fs_info; |
226 | int err = 0; | 226 | int err = 0; |
227 | 227 | ||
228 | BUG_ON(ti == NULL || ti->ti_magic != NILFS_TI_MAGIC); | 228 | BUG_ON(ti == NULL || ti->ti_magic != NILFS_TI_MAGIC); |
@@ -252,13 +252,14 @@ int nilfs_transaction_commit(struct super_block *sb) | |||
252 | void nilfs_transaction_abort(struct super_block *sb) | 252 | void nilfs_transaction_abort(struct super_block *sb) |
253 | { | 253 | { |
254 | struct nilfs_transaction_info *ti = current->journal_info; | 254 | struct nilfs_transaction_info *ti = current->journal_info; |
255 | struct the_nilfs *nilfs = sb->s_fs_info; | ||
255 | 256 | ||
256 | BUG_ON(ti == NULL || ti->ti_magic != NILFS_TI_MAGIC); | 257 | BUG_ON(ti == NULL || ti->ti_magic != NILFS_TI_MAGIC); |
257 | if (ti->ti_count > 0) { | 258 | if (ti->ti_count > 0) { |
258 | ti->ti_count--; | 259 | ti->ti_count--; |
259 | return; | 260 | return; |
260 | } | 261 | } |
261 | up_read(&NILFS_SB(sb)->s_nilfs->ns_segctor_sem); | 262 | up_read(&nilfs->ns_segctor_sem); |
262 | 263 | ||
263 | current->journal_info = ti->ti_save; | 264 | current->journal_info = ti->ti_save; |
264 | if (ti->ti_flags & NILFS_TI_DYNAMIC_ALLOC) | 265 | if (ti->ti_flags & NILFS_TI_DYNAMIC_ALLOC) |
@@ -267,7 +268,7 @@ void nilfs_transaction_abort(struct super_block *sb) | |||
267 | 268 | ||
268 | void nilfs_relax_pressure_in_lock(struct super_block *sb) | 269 | void nilfs_relax_pressure_in_lock(struct super_block *sb) |
269 | { | 270 | { |
270 | struct the_nilfs *nilfs = NILFS_SB(sb)->s_nilfs; | 271 | struct the_nilfs *nilfs = sb->s_fs_info; |
271 | struct nilfs_sc_info *sci = nilfs->ns_writer; | 272 | struct nilfs_sc_info *sci = nilfs->ns_writer; |
272 | 273 | ||
273 | if (!sci || !sci->sc_flush_request) | 274 | if (!sci || !sci->sc_flush_request) |
@@ -293,7 +294,7 @@ static void nilfs_transaction_lock(struct super_block *sb, | |||
293 | int gcflag) | 294 | int gcflag) |
294 | { | 295 | { |
295 | struct nilfs_transaction_info *cur_ti = current->journal_info; | 296 | struct nilfs_transaction_info *cur_ti = current->journal_info; |
296 | struct the_nilfs *nilfs = NILFS_SB(sb)->s_nilfs; | 297 | struct the_nilfs *nilfs = sb->s_fs_info; |
297 | struct nilfs_sc_info *sci = nilfs->ns_writer; | 298 | struct nilfs_sc_info *sci = nilfs->ns_writer; |
298 | 299 | ||
299 | WARN_ON(cur_ti); | 300 | WARN_ON(cur_ti); |
@@ -321,7 +322,7 @@ static void nilfs_transaction_lock(struct super_block *sb, | |||
321 | static void nilfs_transaction_unlock(struct super_block *sb) | 322 | static void nilfs_transaction_unlock(struct super_block *sb) |
322 | { | 323 | { |
323 | struct nilfs_transaction_info *ti = current->journal_info; | 324 | struct nilfs_transaction_info *ti = current->journal_info; |
324 | struct the_nilfs *nilfs = NILFS_SB(sb)->s_nilfs; | 325 | struct the_nilfs *nilfs = sb->s_fs_info; |
325 | 326 | ||
326 | BUG_ON(ti == NULL || ti->ti_magic != NILFS_TI_MAGIC); | 327 | BUG_ON(ti == NULL || ti->ti_magic != NILFS_TI_MAGIC); |
327 | BUG_ON(ti->ti_count > 0); | 328 | BUG_ON(ti->ti_count > 0); |
@@ -770,7 +771,7 @@ static int nilfs_segctor_clean(struct nilfs_sc_info *sci) | |||
770 | 771 | ||
771 | static int nilfs_segctor_confirm(struct nilfs_sc_info *sci) | 772 | static int nilfs_segctor_confirm(struct nilfs_sc_info *sci) |
772 | { | 773 | { |
773 | struct the_nilfs *nilfs = NILFS_SB(sci->sc_super)->s_nilfs; | 774 | struct the_nilfs *nilfs = sci->sc_super->s_fs_info; |
774 | int ret = 0; | 775 | int ret = 0; |
775 | 776 | ||
776 | if (nilfs_test_metadata_dirty(nilfs, sci->sc_root)) | 777 | if (nilfs_test_metadata_dirty(nilfs, sci->sc_root)) |
@@ -786,7 +787,7 @@ static int nilfs_segctor_confirm(struct nilfs_sc_info *sci) | |||
786 | 787 | ||
787 | static void nilfs_segctor_clear_metadata_dirty(struct nilfs_sc_info *sci) | 788 | static void nilfs_segctor_clear_metadata_dirty(struct nilfs_sc_info *sci) |
788 | { | 789 | { |
789 | struct the_nilfs *nilfs = NILFS_SB(sci->sc_super)->s_nilfs; | 790 | struct the_nilfs *nilfs = sci->sc_super->s_fs_info; |
790 | 791 | ||
791 | nilfs_mdt_clear_dirty(sci->sc_root->ifile); | 792 | nilfs_mdt_clear_dirty(sci->sc_root->ifile); |
792 | nilfs_mdt_clear_dirty(nilfs->ns_cpfile); | 793 | nilfs_mdt_clear_dirty(nilfs->ns_cpfile); |
@@ -796,7 +797,7 @@ static void nilfs_segctor_clear_metadata_dirty(struct nilfs_sc_info *sci) | |||
796 | 797 | ||
797 | static int nilfs_segctor_create_checkpoint(struct nilfs_sc_info *sci) | 798 | static int nilfs_segctor_create_checkpoint(struct nilfs_sc_info *sci) |
798 | { | 799 | { |
799 | struct the_nilfs *nilfs = NILFS_SB(sci->sc_super)->s_nilfs; | 800 | struct the_nilfs *nilfs = sci->sc_super->s_fs_info; |
800 | struct buffer_head *bh_cp; | 801 | struct buffer_head *bh_cp; |
801 | struct nilfs_checkpoint *raw_cp; | 802 | struct nilfs_checkpoint *raw_cp; |
802 | int err; | 803 | int err; |
@@ -820,7 +821,7 @@ static int nilfs_segctor_create_checkpoint(struct nilfs_sc_info *sci) | |||
820 | 821 | ||
821 | static int nilfs_segctor_fill_in_checkpoint(struct nilfs_sc_info *sci) | 822 | static int nilfs_segctor_fill_in_checkpoint(struct nilfs_sc_info *sci) |
822 | { | 823 | { |
823 | struct the_nilfs *nilfs = NILFS_SB(sci->sc_super)->s_nilfs; | 824 | struct the_nilfs *nilfs = sci->sc_super->s_fs_info; |
824 | struct buffer_head *bh_cp; | 825 | struct buffer_head *bh_cp; |
825 | struct nilfs_checkpoint *raw_cp; | 826 | struct nilfs_checkpoint *raw_cp; |
826 | int err; | 827 | int err; |
@@ -1044,7 +1045,7 @@ static int nilfs_segctor_scan_file_dsync(struct nilfs_sc_info *sci, | |||
1044 | 1045 | ||
1045 | static int nilfs_segctor_collect_blocks(struct nilfs_sc_info *sci, int mode) | 1046 | static int nilfs_segctor_collect_blocks(struct nilfs_sc_info *sci, int mode) |
1046 | { | 1047 | { |
1047 | struct the_nilfs *nilfs = NILFS_SB(sci->sc_super)->s_nilfs; | 1048 | struct the_nilfs *nilfs = sci->sc_super->s_fs_info; |
1048 | struct list_head *head; | 1049 | struct list_head *head; |
1049 | struct nilfs_inode_info *ii; | 1050 | struct nilfs_inode_info *ii; |
1050 | size_t ndone; | 1051 | size_t ndone; |
@@ -1853,7 +1854,7 @@ static void nilfs_segctor_complete_write(struct nilfs_sc_info *sci) | |||
1853 | { | 1854 | { |
1854 | struct nilfs_segment_buffer *segbuf; | 1855 | struct nilfs_segment_buffer *segbuf; |
1855 | struct page *bd_page = NULL, *fs_page = NULL; | 1856 | struct page *bd_page = NULL, *fs_page = NULL; |
1856 | struct the_nilfs *nilfs = NILFS_SB(sci->sc_super)->s_nilfs; | 1857 | struct the_nilfs *nilfs = sci->sc_super->s_fs_info; |
1857 | int update_sr = false; | 1858 | int update_sr = false; |
1858 | 1859 | ||
1859 | list_for_each_entry(segbuf, &sci->sc_write_logs, sb_list) { | 1860 | list_for_each_entry(segbuf, &sci->sc_write_logs, sb_list) { |
@@ -2024,7 +2025,7 @@ static void nilfs_segctor_drop_written_files(struct nilfs_sc_info *sci, | |||
2024 | */ | 2025 | */ |
2025 | static int nilfs_segctor_do_construct(struct nilfs_sc_info *sci, int mode) | 2026 | static int nilfs_segctor_do_construct(struct nilfs_sc_info *sci, int mode) |
2026 | { | 2027 | { |
2027 | struct the_nilfs *nilfs = NILFS_SB(sci->sc_super)->s_nilfs; | 2028 | struct the_nilfs *nilfs = sci->sc_super->s_fs_info; |
2028 | struct page *failed_page; | 2029 | struct page *failed_page; |
2029 | int err; | 2030 | int err; |
2030 | 2031 | ||
@@ -2162,7 +2163,7 @@ static void nilfs_segctor_do_flush(struct nilfs_sc_info *sci, int bn) | |||
2162 | */ | 2163 | */ |
2163 | void nilfs_flush_segment(struct super_block *sb, ino_t ino) | 2164 | void nilfs_flush_segment(struct super_block *sb, ino_t ino) |
2164 | { | 2165 | { |
2165 | struct the_nilfs *nilfs = NILFS_SB(sb)->s_nilfs; | 2166 | struct the_nilfs *nilfs = sb->s_fs_info; |
2166 | struct nilfs_sc_info *sci = nilfs->ns_writer; | 2167 | struct nilfs_sc_info *sci = nilfs->ns_writer; |
2167 | 2168 | ||
2168 | if (!sci || nilfs_doing_construction()) | 2169 | if (!sci || nilfs_doing_construction()) |
@@ -2252,7 +2253,7 @@ static void nilfs_segctor_wakeup(struct nilfs_sc_info *sci, int err) | |||
2252 | */ | 2253 | */ |
2253 | int nilfs_construct_segment(struct super_block *sb) | 2254 | int nilfs_construct_segment(struct super_block *sb) |
2254 | { | 2255 | { |
2255 | struct the_nilfs *nilfs = NILFS_SB(sb)->s_nilfs; | 2256 | struct the_nilfs *nilfs = sb->s_fs_info; |
2256 | struct nilfs_sc_info *sci = nilfs->ns_writer; | 2257 | struct nilfs_sc_info *sci = nilfs->ns_writer; |
2257 | struct nilfs_transaction_info *ti; | 2258 | struct nilfs_transaction_info *ti; |
2258 | int err; | 2259 | int err; |
@@ -2290,7 +2291,7 @@ int nilfs_construct_segment(struct super_block *sb) | |||
2290 | int nilfs_construct_dsync_segment(struct super_block *sb, struct inode *inode, | 2291 | int nilfs_construct_dsync_segment(struct super_block *sb, struct inode *inode, |
2291 | loff_t start, loff_t end) | 2292 | loff_t start, loff_t end) |
2292 | { | 2293 | { |
2293 | struct the_nilfs *nilfs = NILFS_SB(sb)->s_nilfs; | 2294 | struct the_nilfs *nilfs = sb->s_fs_info; |
2294 | struct nilfs_sc_info *sci = nilfs->ns_writer; | 2295 | struct nilfs_sc_info *sci = nilfs->ns_writer; |
2295 | struct nilfs_inode_info *ii; | 2296 | struct nilfs_inode_info *ii; |
2296 | struct nilfs_transaction_info ti; | 2297 | struct nilfs_transaction_info ti; |
@@ -2381,7 +2382,7 @@ static void nilfs_segctor_notify(struct nilfs_sc_info *sci, int mode, int err) | |||
2381 | */ | 2382 | */ |
2382 | static int nilfs_segctor_construct(struct nilfs_sc_info *sci, int mode) | 2383 | static int nilfs_segctor_construct(struct nilfs_sc_info *sci, int mode) |
2383 | { | 2384 | { |
2384 | struct the_nilfs *nilfs = NILFS_SB(sci->sc_super)->s_nilfs; | 2385 | struct the_nilfs *nilfs = sci->sc_super->s_fs_info; |
2385 | struct nilfs_super_block **sbp; | 2386 | struct nilfs_super_block **sbp; |
2386 | int err = 0; | 2387 | int err = 0; |
2387 | 2388 | ||
@@ -2436,7 +2437,7 @@ nilfs_remove_written_gcinodes(struct the_nilfs *nilfs, struct list_head *head) | |||
2436 | int nilfs_clean_segments(struct super_block *sb, struct nilfs_argv *argv, | 2437 | int nilfs_clean_segments(struct super_block *sb, struct nilfs_argv *argv, |
2437 | void **kbufs) | 2438 | void **kbufs) |
2438 | { | 2439 | { |
2439 | struct the_nilfs *nilfs = NILFS_SB(sb)->s_nilfs; | 2440 | struct the_nilfs *nilfs = sb->s_fs_info; |
2440 | struct nilfs_sc_info *sci = nilfs->ns_writer; | 2441 | struct nilfs_sc_info *sci = nilfs->ns_writer; |
2441 | struct nilfs_transaction_info ti; | 2442 | struct nilfs_transaction_info ti; |
2442 | int err; | 2443 | int err; |
@@ -2552,7 +2553,7 @@ static int nilfs_segctor_flush_mode(struct nilfs_sc_info *sci) | |||
2552 | static int nilfs_segctor_thread(void *arg) | 2553 | static int nilfs_segctor_thread(void *arg) |
2553 | { | 2554 | { |
2554 | struct nilfs_sc_info *sci = (struct nilfs_sc_info *)arg; | 2555 | struct nilfs_sc_info *sci = (struct nilfs_sc_info *)arg; |
2555 | struct the_nilfs *nilfs = NILFS_SB(sci->sc_super)->s_nilfs; | 2556 | struct the_nilfs *nilfs = sci->sc_super->s_fs_info; |
2556 | int timeout = 0; | 2557 | int timeout = 0; |
2557 | 2558 | ||
2558 | sci->sc_timer.data = (unsigned long)current; | 2559 | sci->sc_timer.data = (unsigned long)current; |
@@ -2666,7 +2667,7 @@ static void nilfs_segctor_kill_thread(struct nilfs_sc_info *sci) | |||
2666 | static struct nilfs_sc_info *nilfs_segctor_new(struct super_block *sb, | 2667 | static struct nilfs_sc_info *nilfs_segctor_new(struct super_block *sb, |
2667 | struct nilfs_root *root) | 2668 | struct nilfs_root *root) |
2668 | { | 2669 | { |
2669 | struct the_nilfs *nilfs = NILFS_SB(sb)->s_nilfs; | 2670 | struct the_nilfs *nilfs = sb->s_fs_info; |
2670 | struct nilfs_sc_info *sci; | 2671 | struct nilfs_sc_info *sci; |
2671 | 2672 | ||
2672 | sci = kzalloc(sizeof(*sci), GFP_KERNEL); | 2673 | sci = kzalloc(sizeof(*sci), GFP_KERNEL); |
@@ -2726,7 +2727,7 @@ static void nilfs_segctor_write_out(struct nilfs_sc_info *sci) | |||
2726 | */ | 2727 | */ |
2727 | static void nilfs_segctor_destroy(struct nilfs_sc_info *sci) | 2728 | static void nilfs_segctor_destroy(struct nilfs_sc_info *sci) |
2728 | { | 2729 | { |
2729 | struct the_nilfs *nilfs = NILFS_SB(sci->sc_super)->s_nilfs; | 2730 | struct the_nilfs *nilfs = sci->sc_super->s_fs_info; |
2730 | int flag; | 2731 | int flag; |
2731 | 2732 | ||
2732 | up_write(&nilfs->ns_segctor_sem); | 2733 | up_write(&nilfs->ns_segctor_sem); |
@@ -2774,7 +2775,7 @@ static void nilfs_segctor_destroy(struct nilfs_sc_info *sci) | |||
2774 | */ | 2775 | */ |
2775 | int nilfs_attach_log_writer(struct super_block *sb, struct nilfs_root *root) | 2776 | int nilfs_attach_log_writer(struct super_block *sb, struct nilfs_root *root) |
2776 | { | 2777 | { |
2777 | struct the_nilfs *nilfs = NILFS_SB(sb)->s_nilfs; | 2778 | struct the_nilfs *nilfs = sb->s_fs_info; |
2778 | int err; | 2779 | int err; |
2779 | 2780 | ||
2780 | if (nilfs->ns_writer) { | 2781 | if (nilfs->ns_writer) { |
@@ -2807,7 +2808,7 @@ int nilfs_attach_log_writer(struct super_block *sb, struct nilfs_root *root) | |||
2807 | */ | 2808 | */ |
2808 | void nilfs_detach_log_writer(struct super_block *sb) | 2809 | void nilfs_detach_log_writer(struct super_block *sb) |
2809 | { | 2810 | { |
2810 | struct the_nilfs *nilfs = NILFS_SB(sb)->s_nilfs; | 2811 | struct the_nilfs *nilfs = sb->s_fs_info; |
2811 | LIST_HEAD(garbage_list); | 2812 | LIST_HEAD(garbage_list); |
2812 | 2813 | ||
2813 | down_write(&nilfs->ns_segctor_sem); | 2814 | down_write(&nilfs->ns_segctor_sem); |