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.c47
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,
222int nilfs_transaction_commit(struct super_block *sb) 222int 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)
252void nilfs_transaction_abort(struct super_block *sb) 252void 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
268void nilfs_relax_pressure_in_lock(struct super_block *sb) 269void 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,
321static void nilfs_transaction_unlock(struct super_block *sb) 322static 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
771static int nilfs_segctor_confirm(struct nilfs_sc_info *sci) 772static 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
787static void nilfs_segctor_clear_metadata_dirty(struct nilfs_sc_info *sci) 788static 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
797static int nilfs_segctor_create_checkpoint(struct nilfs_sc_info *sci) 798static 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
821static int nilfs_segctor_fill_in_checkpoint(struct nilfs_sc_info *sci) 822static 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
1045static int nilfs_segctor_collect_blocks(struct nilfs_sc_info *sci, int mode) 1046static 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 */
2025static int nilfs_segctor_do_construct(struct nilfs_sc_info *sci, int mode) 2026static 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 */
2163void nilfs_flush_segment(struct super_block *sb, ino_t ino) 2164void 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 */
2253int nilfs_construct_segment(struct super_block *sb) 2254int 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)
2290int nilfs_construct_dsync_segment(struct super_block *sb, struct inode *inode, 2291int 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 */
2382static int nilfs_segctor_construct(struct nilfs_sc_info *sci, int mode) 2383static 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)
2436int nilfs_clean_segments(struct super_block *sb, struct nilfs_argv *argv, 2437int 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)
2552static int nilfs_segctor_thread(void *arg) 2553static 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)
2666static struct nilfs_sc_info *nilfs_segctor_new(struct super_block *sb, 2667static 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 */
2727static void nilfs_segctor_destroy(struct nilfs_sc_info *sci) 2728static 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 */
2775int nilfs_attach_log_writer(struct super_block *sb, struct nilfs_root *root) 2776int 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 */
2808void nilfs_detach_log_writer(struct super_block *sb) 2809void 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);