[linux-cifs-client] Re: [PATCH 3/3] [CIFS] Enable dfs submounts to
handle remote referrals.
Jeff Layton
jlayton at redhat.com
Fri Mar 27 16:43:05 GMT 2009
On Tue, 17 Mar 2009 19:44:32 +0300
Igor Mammedov <niallain at gmail.com> wrote:
> From 73352e0f001d32812f9b18ae85aec35026b7a194 Mon Sep 17 00:00:00 2001
> From: Igor Mammedov <niallain at gmail.com>
> Date: Tue, 17 Mar 2009 19:00:30 +0300
> Subject: [PATCH 3/3] [CIFS] 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: Igor Mammedov <niallain at gmail.com>
> ---
> fs/cifs/cifs_dfs_ref.c | 32 ++++++++++++++------------------
> 1 files changed, 14 insertions(+), 18 deletions(-)
>
> diff --git a/fs/cifs/cifs_dfs_ref.c b/fs/cifs/cifs_dfs_ref.c
> index 5fdbf8a..896b08f 100644
> --- a/fs/cifs/cifs_dfs_ref.c
> +++ b/fs/cifs/cifs_dfs_ref.c
> @@ -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 */
Looks fine, though obviously patch #2 needs to go in first.
--
Jeff Layton <jlayton at redhat.com>
More information about the linux-cifs-client
mailing list