nilfs2: get rid of bd_mount_sem use from nilfs
This will remove every bd_mount_sem use in nilfs. The intended exclusion control was replaced by the previous patch ("nilfs2: correct exclusion control in nilfs_remount function") for nilfs_remount(), and this patch will replace remains with a new mutex that this inserts in nilfs object. Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> Cc: Christoph Hellwig <hch@infradead.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -864,11 +864,11 @@ int nilfs_cpfile_change_cpmode(struct inode *cpfile, __u64 cno, int mode)
|
||||
case NILFS_CHECKPOINT:
|
||||
/*
|
||||
* Check for protecting existing snapshot mounts:
|
||||
* bd_mount_sem is used to make this operation atomic and
|
||||
* ns_mount_mutex is used to make this operation atomic and
|
||||
* exclusive with a new mount job. Though it doesn't cover
|
||||
* umount, it's enough for the purpose.
|
||||
*/
|
||||
down(&nilfs->ns_bdev->bd_mount_sem);
|
||||
mutex_lock(&nilfs->ns_mount_mutex);
|
||||
if (nilfs_checkpoint_is_mounted(nilfs, cno, 1)) {
|
||||
/* Current implementation does not have to protect
|
||||
plain read-only mounts since they are exclusive
|
||||
@@ -877,7 +877,7 @@ int nilfs_cpfile_change_cpmode(struct inode *cpfile, __u64 cno, int mode)
|
||||
ret = -EBUSY;
|
||||
} else
|
||||
ret = nilfs_cpfile_clear_snapshot(cpfile, cno);
|
||||
up(&nilfs->ns_bdev->bd_mount_sem);
|
||||
mutex_unlock(&nilfs->ns_mount_mutex);
|
||||
return ret;
|
||||
case NILFS_SNAPSHOT:
|
||||
return nilfs_cpfile_set_snapshot(cpfile, cno);
|
||||
|
Reference in New Issue
Block a user