Commit 1af28ceb authored by Igor Mammedov's avatar Igor Mammedov Committed by Steve French
Browse files

Enable dfs submounts to handle remote referrals.



Having remote dfs root support in cifs_mount, we can
afford to pass into it UNC that is remote.

Signed-off-by: default avatarIgor Mammedov <niallain@gmail.com>
Acked-by: default avatarJeff Layton <jlayton@redhat.com>
Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent 20418acd
Loading
Loading
Loading
Loading
+14 −18
Original line number Diff line number Diff line
@@ -341,8 +341,7 @@ cifs_dfs_follow_mountpoint(struct dentry *dentry, struct nameidata *nd)

	for (i = 0; i < num_referrals; i++) {
		dump_referral(referrals+i);
		/* connect to a storage node */
		if (referrals[i].flags & DFSREF_STORAGE_SERVER) {
		/* connect to a node */
		int len;
		len = strlen(referrals[i].node_name);
		if (len < 2) {
@@ -352,17 +351,14 @@ cifs_dfs_follow_mountpoint(struct dentry *dentry, struct nameidata *nd)
			goto out_err;
		}
		mnt = cifs_dfs_do_refmount(nd->path.mnt,
						nd->path.dentry,
						referrals + i);
			cFYI(1, ("%s: cifs_dfs_do_refmount:%s , mnt:%p",
					 __func__,
				nd->path.dentry, referrals + i);
		cFYI(1, ("%s: cifs_dfs_do_refmount:%s , mnt:%p", __func__,
					referrals[i].node_name, mnt));

		/* complete mount procedure if we accured submount */
		if (!IS_ERR(mnt))
			break;
	}
	}

	/* we need it cause for() above could exit without valid submount */
	rc = PTR_ERR(mnt);