'ns_cno' of structure 'the_nilfs' must be protected from segment writer, in other words, the caller of nilfs_get_check_point 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: Zhang Qiang <[email protected]> --- fs/nilfs2/super.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/fs/nilfs2/super.c b/fs/nilfs2/super.c index 05174c5..55f3d6b 100644 --- a/fs/nilfs2/super.c +++ b/fs/nilfs2/super.c @@ -371,8 +371,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 -- 1.6.0.6 _______________________________________________ users mailing list [email protected] https://www.nilfs.org/mailman/listinfo/users
