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: Tue, 20 Apr 2021 09:52:47 +0800 From: Chao Yu <yuchao0@...wei.com> To: Jaegeuk Kim <jaegeuk@...nel.org> CC: <linux-f2fs-devel@...ts.sourceforge.net>, <linux-kernel@...r.kernel.org>, <chao@...nel.org> Subject: Re: [PATCH] f2fs: fix to cover allocate_segment() with lock On 2021/4/20 0:57, Jaegeuk Kim wrote: > On 04/14, Chao Yu wrote: >> As we did for other cases, in fix_curseg_write_pointer(), let's >> change as below: >> - use callback function s_ops->allocate_segment() instead of >> raw function allocate_segment_by_default(); >> - cover allocate_segment() with curseg_lock and sentry_lock. >> >> 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 b2ee6b7791b0..daf9531ec58f 100644 >> --- a/fs/f2fs/segment.c >> +++ b/fs/f2fs/segment.c >> @@ -4848,7 +4848,12 @@ static int fix_curseg_write_pointer(struct f2fs_sb_info *sbi, int type) >> >> f2fs_notice(sbi, "Assign new section to curseg[%d]: " >> "curseg[0x%x,0x%x]", type, cs->segno, cs->next_blkoff); >> - allocate_segment_by_default(sbi, type, true); >> + >> + down_read(&SM_I(sbi)->curseg_lock); >> + down_write(&SIT_I(sbi)->sentry_lock); >> + SIT_I(sbi)->s_ops->allocate_segment(sbi, type, true); >> + up_write(&SIT_I(sbi)->sentry_lock); >> + up_read(&SM_I(sbi)->curseg_lock); > > Seems f2fs_allocate_new_section()? f2fs_allocate_new_section() will allocate new section only when current section has been initialized and has valid block/ckpt_block. It looks fix_curseg_write_pointer() wants to force migrating current segment to new section whenever write pointer and curseg->next_blkoff is inconsistent. So how about adding a parameter to force f2fs_allocate_new_section() to allocate new section? Thanks, > >> >> /* check consistency of the zone curseg pointed to */ >> if (check_zone_write_pointer(sbi, zbd, &zone)) >> -- >> 2.29.2 > . >
Powered by blists - more mailing lists