From: "Q (Igor Mammedov)" <qwerty0987654321@mail.ru>
To: Christoph Hellwig <hch@infradead.org>
Cc: linux-fsdevel <linux-fsdevel@vger.kernel.org>,
Steve French <smfrench@gmail.com>,
dhowells@redhat.com, linux-cifs-client@lists.samba.org
Subject: Re: review 4, was Re: projected date for mount.cifs to support DFS junction points
Date: Mon, 14 Jan 2008 16:15:05 +0300 [thread overview]
Message-ID: <478B6059.2000204@mail.ru> (raw)
In-Reply-To: <20080113201903.GA24573@infradead.org>
Christoph Hellwig wrote:
> [David, any chance you could look at the suggestion below to refactor
> the automount from ->follow_link code into a common helper now that
> we've grown a second copy from it]
>
>
> +cifs_dfs_follow_mountpoint(struct dentry *dentry, struct nameidata *nd)
> +{
> + struct dfs_info3_param *referrals = NULL;
> + unsigned int num_referrals = 0;
> + struct cifs_sb_info *cifs_sb;
> + struct cifsSesInfo *ses;
> + char *full_path = NULL;
> + int xid, i;
> + int rc = 0;
> + struct vfsmount *mnt = ERR_PTR(-ENOENT);
> +
> + cFYI(1, ("in %s", __FUNCTION__));
> + BUG_ON(IS_ROOT(dentry));
> +
> + xid = GetXid();
> +
> + dput(nd->dentry);
> + nd->dentry = dget(dentry);
> + if (d_mountpoint(nd->dentry))
> + goto out_follow;
>
> A link should never be a mountpoint.
why link? after patch 5 are applied DFS junction point becomes directory
instead of link. That is what has been done in NFS code.
> + if (IS_ERR(mnt))
> + goto out_err;
> +
> + mntget(mnt);
> + rc = do_add_mount(mnt, nd, nd->mnt->mnt_flags,
> + &cifs_dfs_automount_list);
> + if (rc < 0) {
> + mntput(mnt);
> + if (rc == -EBUSY)
> + goto out_follow;
> + goto out_err;
> + }
> + mntput(nd->mnt);
> + dput(nd->dentry);
> + nd->mnt = mnt;
> + nd->dentry = dget(mnt->mnt_root);
>
> the version of the code in afs that you copy & pasted from in afs
> with the switch statement looked more readable. In fact it would
> probably be useful if most of this could be split into a common
> helper.
Actually I copy & pasted it from NFS code ...
fs/nfs/namespace.c:nfs_follow_mountpoint
I've tried to do submount/referral machinery in NFS code way.
--
Best regards,
-------------------------
Igor Mammedov,
niallain "at" gmail.com
next prev parent reply other threads:[~2008-01-14 13:15 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1199988975.7483.3.camel@gn2.draper.com>
2008-01-10 20:28 ` projected date for mount.cifs to support DFS junction points Steve French
2008-01-11 9:07 ` Christoph Hellwig
2008-01-11 16:05 ` Steve French
2008-01-13 19:40 ` review 1, was " Christoph Hellwig
2008-01-13 21:26 ` Steve French
2008-01-13 19:48 ` review 2, " Christoph Hellwig
2008-01-13 21:35 ` Steve French
2008-01-13 19:50 ` review 3, " Christoph Hellwig
2008-01-13 20:19 ` review 4, " Christoph Hellwig
2008-01-14 13:15 ` Q (Igor Mammedov) [this message]
2008-01-14 21:53 ` [linux-cifs-client] " Christoph Hellwig
2008-01-13 20:21 ` review 5, " Christoph Hellwig
2008-02-15 16:37 ` Q (Igor Mammedov)
2008-02-15 17:05 ` [linux-cifs-client] " Christoph Hellwig
2008-02-15 21:02 ` Steve French
2008-02-15 22:11 ` [linux-cifs-client] " Christoph Hellwig
2008-02-19 4:51 ` Steve French
2008-02-25 20:25 ` Steve French
2008-03-08 18:43 ` Christoph Hellwig
2008-03-11 3:34 ` Steve French
2008-03-11 12:39 ` Jeff Layton
2008-03-17 3:14 ` [linux-cifs-client] " simo
2008-02-16 8:51 ` Re[2]: " Q
2008-02-16 13:32 ` Christoph Hellwig
2008-03-04 12:38 ` Q (Igor Mammedov)
2008-03-08 18:41 ` [linux-cifs-client] " Christoph Hellwig
2008-03-08 22:21 ` Q (Igor Mammedov)
2008-03-09 3:49 ` [linux-cifs-client] " Steve French
2008-03-10 6:14 ` Christoph Hellwig
2008-03-10 16:20 ` Steve French
2008-03-11 9:41 ` Q (Igor Mammedov)
2008-03-11 22:14 ` Steve French
2008-03-12 9:28 ` Q (Igor Mammedov)
2008-03-22 22:48 ` [linux-cifs-client] " Steve French
2008-04-18 16:40 ` Igor Mammedov
2008-02-06 4:07 ` Christoph Hellwig
2008-02-06 13:43 ` Steve French
2008-02-07 18:25 ` Christoph Hellwig
2008-02-07 23:30 ` Steve French
2008-02-08 5:27 ` Steve French
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=478B6059.2000204@mail.ru \
--to=qwerty0987654321@mail.ru \
--cc=dhowells@redhat.com \
--cc=hch@infradead.org \
--cc=linux-cifs-client@lists.samba.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=smfrench@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).