Enable dfs submounts to handle remote referrals.
authorIgor Mammedov <niallain@gmail.com>
Tue, 17 Mar 2009 16:00:30 +0000 (19:00 +0300)
committerSteve French <sfrench@us.ibm.com>
Thu, 30 Apr 2009 17:24:00 +0000 (17:24 +0000)
Having remote dfs root support in cifs_mount, we can
afford to pass into it UNC that is remote.

Signed-off-by: Igor Mammedov <niallain@gmail.com>
Acked-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
fs/cifs/cifs_dfs_ref.c

index 5fdbf8a..896b08f 100644 (file)
@@ -341,27 +341,23 @@ 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) {
-                       int len;
-                       len = strlen(referrals[i].node_name);
-                       if (len < 2) {
-                               cERROR(1, ("%s: Net Address path too short: %s",
+               /* connect to a node */
+               int len;
+               len = strlen(referrals[i].node_name);
+               if (len < 2) {
+                       cERROR(1, ("%s: Net Address path too short: %s",
                                        __func__, referrals[i].node_name));
-                               rc = -EINVAL;
-                               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__,
+                       rc = -EINVAL;
+                       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__,
                                        referrals[i].node_name, mnt));
 
-                       /* complete mount procedure if we accured submount */
-                       if (!IS_ERR(mnt))
-                               break;
-               }
+               /* complete mount procedure if we accured submount */
+               if (!IS_ERR(mnt))
+                       break;
        }
 
        /* we need it cause for() above could exit without valid submount */