Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1154ecbd authored by Zhang Qiang's avatar Zhang Qiang Committed by Ryusuke Konishi
Browse files

nilfs2: missing a read lock for segment writer in nilfs_attach_checkpoint()



'ns_cno' of structure 'the_nilfs' must be protected from segment
writer, in other words, the caller of nilfs_get_checkpoint should hold
read lock for nilfs->ns_segctor_sem.  This patch adds the lock/unlock
operations in nilfs_attach_checkpoint() when calling
nilfs_cpfile_get_checkpoint().

Signed-off-by: default avatarZhang Qiang <zhangqiang.buaa@gmail.com>
Signed-off-by: default avatarRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
parent 64f1607f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -416,8 +416,10 @@ int nilfs_attach_checkpoint(struct nilfs_sb_info *sbi, __u64 cno)
	if (unlikely(err))
		goto failed;

	down_read(&nilfs->ns_segctor_sem);
	err = nilfs_cpfile_get_checkpoint(nilfs->ns_cpfile, cno, 0, &raw_cp,
					  &bh_cp);
	up_read(&nilfs->ns_segctor_sem);
	if (unlikely(err)) {
		if (err == -ENOENT || err == -EINVAL) {
			printk(KERN_ERR