char *bptr;
        int blen;
 
+       br_read_lock(&vfsmount_lock);
        rcu_read_lock();
 restart:
        bptr = *buffer;
                goto restart;
        }
        done_seqretry(&rename_lock, seq);
+       br_read_unlock(&vfsmount_lock);
 
        if (error >= 0 && bptr == *buffer) {
                if (--blen < 0)
        int error;
 
        prepend(&res, &buflen, "\0", 1);
-       br_read_lock(&vfsmount_lock);
        error = prepend_path(path, root, &res, &buflen);
-       br_read_unlock(&vfsmount_lock);
 
        if (error < 0)
                return ERR_PTR(error);
        int error;
 
        prepend(&res, &buflen, "\0", 1);
-       br_read_lock(&vfsmount_lock);
        error = prepend_path(path, &root, &res, &buflen);
-       br_read_unlock(&vfsmount_lock);
 
        if (error > 1)
                error = -EINVAL;
 
        rcu_read_lock();
        get_fs_root_rcu(current->fs, &root);
-       br_read_lock(&vfsmount_lock);
        error = path_with_deleted(path, &root, &res, &buflen);
-       br_read_unlock(&vfsmount_lock);
        rcu_read_unlock();
 
        if (error < 0)
        get_fs_root_and_pwd_rcu(current->fs, &root, &pwd);
 
        error = -ENOENT;
-       br_read_lock(&vfsmount_lock);
        if (!d_unlinked(pwd.dentry)) {
                unsigned long len;
                char *cwd = page + PATH_MAX;
 
                prepend(&cwd, &buflen, "\0", 1);
                error = prepend_path(&pwd, &root, &cwd, &buflen);
-               br_read_unlock(&vfsmount_lock);
                rcu_read_unlock();
 
                if (error < 0)
                                error = -EFAULT;
                }
        } else {
-               br_read_unlock(&vfsmount_lock);
                rcu_read_unlock();
        }