lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 13 Nov 2017 17:54:39 +0800 From: Chao Yu <yuchao0@...wei.com> To: <jaegeuk@...nel.org> CC: <linux-f2fs-devel@...ts.sourceforge.net>, <linux-kernel@...r.kernel.org>, <chao@...nel.org>, Chao Yu <yuchao0@...wei.com> Subject: [PATCH] f2fs: check sit bitmap under sentry_lock This patch protects sit bitmap accessing in __check_sit_bitmap with sentry_lock, meanwhile, in allocate_data_block, f2fs_wait_discard_bio will not access/update sit cache, let's exclude it from sentry_lock's region. Signed-off-by: Chao Yu <yuchao0@...wei.com> --- fs/f2fs/segment.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index c117e0913f2a..464696b1612a 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -894,6 +894,8 @@ void __check_sit_bitmap(struct f2fs_sb_info *sbi, unsigned long offset, size, max_blocks = sbi->blocks_per_seg; unsigned long *map; + down_read(&SIT_I(sbi)->sentry_lock); + while (blk < end) { segno = GET_SEGNO(sbi, blk); sentry = get_seg_entry(sbi, segno); @@ -908,6 +910,8 @@ void __check_sit_bitmap(struct f2fs_sb_info *sbi, f2fs_bug_on(sbi, offset != size); blk = START_BLOCK(sbi, segno + 1); } + + up_read(&SIT_I(sbi)->sentry_lock); #endif } @@ -2527,12 +2531,13 @@ void allocate_data_block(struct f2fs_sb_info *sbi, struct page *page, down_read(&SM_I(sbi)->curseg_lock); mutex_lock(&curseg->curseg_mutex); - down_write(&sit_i->sentry_lock); *new_blkaddr = NEXT_FREE_BLKADDR(sbi, curseg); f2fs_wait_discard_bio(sbi, *new_blkaddr); + down_write(&sit_i->sentry_lock); + /* * __add_sum_entry should be resided under the curseg_mutex * because, this function updates a summary entry in the -- 2.15.0.55.gc2ece9dc4de6
Powered by blists - more mailing lists