segment.c (79963d967b492876fa17c8c2c2c17b7438683d9b) | segment.c (f608c38c59c6020bfde14af88630b8d7817003f9) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * fs/f2fs/segment.c 4 * 5 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 6 * http://www.samsung.com/ 7 */ 8#include <linux/fs.h> --- 3101 unchanged lines hidden (view full) --- 3110 else 3111 fio->temp = COLD; 3112 return type; 3113} 3114 3115void f2fs_allocate_data_block(struct f2fs_sb_info *sbi, struct page *page, 3116 block_t old_blkaddr, block_t *new_blkaddr, 3117 struct f2fs_summary *sum, int type, | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * fs/f2fs/segment.c 4 * 5 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 6 * http://www.samsung.com/ 7 */ 8#include <linux/fs.h> --- 3101 unchanged lines hidden (view full) --- 3110 else 3111 fio->temp = COLD; 3112 return type; 3113} 3114 3115void f2fs_allocate_data_block(struct f2fs_sb_info *sbi, struct page *page, 3116 block_t old_blkaddr, block_t *new_blkaddr, 3117 struct f2fs_summary *sum, int type, |
3118 struct f2fs_io_info *fio, bool add_list) | 3118 struct f2fs_io_info *fio) |
3119{ 3120 struct sit_info *sit_i = SIT_I(sbi); 3121 struct curseg_info *curseg = CURSEG_I(sbi, type); 3122 bool put_pin_sem = false; 3123 3124 if (type == CURSEG_COLD_DATA) { 3125 /* GC during CURSEG_COLD_DATA_PINNED allocation */ 3126 if (down_read_trylock(&sbi->pin_sem)) { --- 51 unchanged lines hidden (view full) --- 3178 fill_node_footer_blkaddr(page, NEXT_FREE_BLKADDR(sbi, curseg)); 3179 3180 f2fs_inode_chksum_set(sbi, page); 3181 } 3182 3183 if (F2FS_IO_ALIGNED(sbi)) 3184 fio->retry = false; 3185 | 3119{ 3120 struct sit_info *sit_i = SIT_I(sbi); 3121 struct curseg_info *curseg = CURSEG_I(sbi, type); 3122 bool put_pin_sem = false; 3123 3124 if (type == CURSEG_COLD_DATA) { 3125 /* GC during CURSEG_COLD_DATA_PINNED allocation */ 3126 if (down_read_trylock(&sbi->pin_sem)) { --- 51 unchanged lines hidden (view full) --- 3178 fill_node_footer_blkaddr(page, NEXT_FREE_BLKADDR(sbi, curseg)); 3179 3180 f2fs_inode_chksum_set(sbi, page); 3181 } 3182 3183 if (F2FS_IO_ALIGNED(sbi)) 3184 fio->retry = false; 3185 |
3186 if (add_list) { | 3186 if (fio) { |
3187 struct f2fs_bio_info *io; 3188 3189 INIT_LIST_HEAD(&fio->list); 3190 fio->in_list = true; 3191 io = sbi->write_io[fio->type] + fio->temp; 3192 spin_lock(&io->io_lock); 3193 list_add_tail(&fio->list, &io->io_list); 3194 spin_unlock(&io->io_lock); --- 32 unchanged lines hidden (view full) --- 3227{ 3228 int type = __get_segment_type(fio); 3229 bool keep_order = (f2fs_lfs_mode(fio->sbi) && type == CURSEG_COLD_DATA); 3230 3231 if (keep_order) 3232 down_read(&fio->sbi->io_order_lock); 3233reallocate: 3234 f2fs_allocate_data_block(fio->sbi, fio->page, fio->old_blkaddr, | 3187 struct f2fs_bio_info *io; 3188 3189 INIT_LIST_HEAD(&fio->list); 3190 fio->in_list = true; 3191 io = sbi->write_io[fio->type] + fio->temp; 3192 spin_lock(&io->io_lock); 3193 list_add_tail(&fio->list, &io->io_list); 3194 spin_unlock(&io->io_lock); --- 32 unchanged lines hidden (view full) --- 3227{ 3228 int type = __get_segment_type(fio); 3229 bool keep_order = (f2fs_lfs_mode(fio->sbi) && type == CURSEG_COLD_DATA); 3230 3231 if (keep_order) 3232 down_read(&fio->sbi->io_order_lock); 3233reallocate: 3234 f2fs_allocate_data_block(fio->sbi, fio->page, fio->old_blkaddr, |
3235 &fio->new_blkaddr, sum, type, fio, true); | 3235 &fio->new_blkaddr, sum, type, fio); |
3236 if (GET_SEGNO(fio->sbi, fio->old_blkaddr) != NULL_SEGNO) 3237 invalidate_mapping_pages(META_MAPPING(fio->sbi), 3238 fio->old_blkaddr, fio->old_blkaddr); 3239 3240 /* writeout dirty page into bdev */ 3241 f2fs_submit_page_write(fio); 3242 if (fio->retry) { 3243 fio->old_blkaddr = fio->new_blkaddr; --- 1691 unchanged lines hidden --- | 3236 if (GET_SEGNO(fio->sbi, fio->old_blkaddr) != NULL_SEGNO) 3237 invalidate_mapping_pages(META_MAPPING(fio->sbi), 3238 fio->old_blkaddr, fio->old_blkaddr); 3239 3240 /* writeout dirty page into bdev */ 3241 f2fs_submit_page_write(fio); 3242 if (fio->retry) { 3243 fio->old_blkaddr = fio->new_blkaddr; --- 1691 unchanged lines hidden --- |