|
@@ -182,7 +182,7 @@ static int nilfs_ioctl_change_cpmode(struct inode *inode, struct file *filp,
|
|
|
if (copy_from_user(&cpmode, argp, sizeof(cpmode)))
|
|
|
goto out;
|
|
|
|
|
|
- down_read(&inode->i_sb->s_umount);
|
|
|
+ mutex_lock(&nilfs->ns_snapshot_mount_mutex);
|
|
|
|
|
|
nilfs_transaction_begin(inode->i_sb, &ti, 0);
|
|
|
ret = nilfs_cpfile_change_cpmode(
|
|
@@ -192,7 +192,7 @@ static int nilfs_ioctl_change_cpmode(struct inode *inode, struct file *filp,
|
|
|
else
|
|
|
nilfs_transaction_commit(inode->i_sb); /* never fails */
|
|
|
|
|
|
- up_read(&inode->i_sb->s_umount);
|
|
|
+ mutex_unlock(&nilfs->ns_snapshot_mount_mutex);
|
|
|
out:
|
|
|
mnt_drop_write_file(filp);
|
|
|
return ret;
|