Loading fs/cifs/cifs_dfs_ref.c +11 −17 Original line number Diff line number Diff line Loading @@ -230,28 +230,22 @@ char *cifs_compose_mount_options(const char *sb_mountdata, goto compose_mount_options_out; } static struct vfsmount *cifs_dfs_do_refmount(const struct vfsmount *mnt_parent, struct dentry *dentry, const struct dfs_info3_param *ref) /** * cifs_dfs_do_refmount - mounts specified path using provided refferal * @cifs_sb: parent/root superblock * @fullpath: full path in UNC format * @ref: server's referral */ static struct vfsmount *cifs_dfs_do_refmount(struct cifs_sb_info *cifs_sb, const char *fullpath, const struct dfs_info3_param *ref) { struct cifs_sb_info *cifs_sb; struct vfsmount *mnt; char *mountdata; char *devname = NULL; char *fullpath; cifs_sb = CIFS_SB(dentry->d_inode->i_sb); /* * this function gives us a path with a double backslash prefix. We * require a single backslash for DFS. */ fullpath = build_path_from_dentry(dentry); if (!fullpath) return ERR_PTR(-ENOMEM); /* strip first '\' from fullpath */ mountdata = cifs_compose_mount_options(cifs_sb->mountdata, fullpath + 1, ref, &devname); kfree(fullpath); if (IS_ERR(mountdata)) return (struct vfsmount *)mountdata; Loading Loading @@ -357,8 +351,8 @@ cifs_dfs_follow_mountpoint(struct dentry *dentry, struct nameidata *nd) rc = -EINVAL; goto out_err; } mnt = cifs_dfs_do_refmount(nd->path.mnt, nd->path.dentry, referrals + i); mnt = cifs_dfs_do_refmount(cifs_sb, full_path, referrals + i); cFYI(1, "%s: cifs_dfs_do_refmount:%s , mnt:%p", __func__, referrals[i].node_name, mnt); Loading Loading
fs/cifs/cifs_dfs_ref.c +11 −17 Original line number Diff line number Diff line Loading @@ -230,28 +230,22 @@ char *cifs_compose_mount_options(const char *sb_mountdata, goto compose_mount_options_out; } static struct vfsmount *cifs_dfs_do_refmount(const struct vfsmount *mnt_parent, struct dentry *dentry, const struct dfs_info3_param *ref) /** * cifs_dfs_do_refmount - mounts specified path using provided refferal * @cifs_sb: parent/root superblock * @fullpath: full path in UNC format * @ref: server's referral */ static struct vfsmount *cifs_dfs_do_refmount(struct cifs_sb_info *cifs_sb, const char *fullpath, const struct dfs_info3_param *ref) { struct cifs_sb_info *cifs_sb; struct vfsmount *mnt; char *mountdata; char *devname = NULL; char *fullpath; cifs_sb = CIFS_SB(dentry->d_inode->i_sb); /* * this function gives us a path with a double backslash prefix. We * require a single backslash for DFS. */ fullpath = build_path_from_dentry(dentry); if (!fullpath) return ERR_PTR(-ENOMEM); /* strip first '\' from fullpath */ mountdata = cifs_compose_mount_options(cifs_sb->mountdata, fullpath + 1, ref, &devname); kfree(fullpath); if (IS_ERR(mountdata)) return (struct vfsmount *)mountdata; Loading Loading @@ -357,8 +351,8 @@ cifs_dfs_follow_mountpoint(struct dentry *dentry, struct nameidata *nd) rc = -EINVAL; goto out_err; } mnt = cifs_dfs_do_refmount(nd->path.mnt, nd->path.dentry, referrals + i); mnt = cifs_dfs_do_refmount(cifs_sb, full_path, referrals + i); cFYI(1, "%s: cifs_dfs_do_refmount:%s , mnt:%p", __func__, referrals[i].node_name, mnt); Loading