Signed-off-by: NeilBrown <neilb@suse.de>
LAFSI(ino)->type != TypeDir)
goto out;
fs = fs_from_sb(sb);
+ down_write(&sb->s_umount);
mutex_lock(&ino->i_mutex);
err = 0;
if (LAFSI(ino)->type == TypeDir) {
if (IS_ERR(root))
err = PTR_ERR(root);
else {
- mnt->mnt_sb = fs->prime_sb;
+ mnt->mnt_sb = root->d_sb;
atomic_inc(&mnt->mnt_sb->s_active);
mnt->mnt_root = root;
}
out_unlock:
mutex_unlock(&ino->i_mutex);
+ if (err)
+ up_write(&ino->i_sb->s_umount);
out:
path_put(&nd.path);
out_noput: