From: Kefeng Wang <wangkefeng.wang@huawei.com>
To: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: John McCutchan <john@johnmccutchan.com>,
"J. Bruce Fields" <bfields@fieldses.org>,
Eric Paris <eparis@redhat.com>, Robert Love <rlove@rlove.org>,
<linux-kernel@vger.kernel.org>, <linux-fsdevel@vger.kernel.org>,
<linux-nfs@vger.kernel.org>
Subject: [PATCH 1/3] fs: use path_equal() and path_put() to simplify code
Date: Mon, 14 Oct 2013 20:26:00 +0800 [thread overview]
Message-ID: <1381753562-47884-2-git-send-email-wangkefeng.wang@huawei.com> (raw)
In-Reply-To: <1381753562-47884-1-git-send-email-wangkefeng.wang@huawei.com>
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
fs/namei.c | 20 ++++++--------------
1 file changed, 6 insertions(+), 14 deletions(-)
diff --git a/fs/namei.c b/fs/namei.c
index 645268f..1a6c139 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -918,9 +918,8 @@ int follow_up(struct path *path)
mntget(&parent->mnt);
mountpoint = dget(mnt->mnt_mountpoint);
br_read_unlock(&vfsmount_lock);
- dput(path->dentry);
+ path_put(path);
path->dentry = mountpoint;
- mntput(path->mnt);
path->mnt = &parent->mnt;
return 1;
}
@@ -1077,8 +1076,7 @@ int follow_down_one(struct path *path)
mounted = lookup_mnt(path);
if (mounted) {
- dput(path->dentry);
- mntput(path->mnt);
+ path_put(path);
path->mnt = mounted;
path->dentry = dget(mounted->mnt_root);
return 1;
@@ -1146,10 +1144,8 @@ static int follow_dotdot_rcu(struct nameidata *nd)
set_root_rcu(nd);
while (1) {
- if (nd->path.dentry == nd->root.dentry &&
- nd->path.mnt == nd->root.mnt) {
+ if (path_equal(&nd->path, &nd->root))
break;
- }
if (nd->path.dentry != nd->path.mnt->mnt_root) {
struct dentry *old = nd->path.dentry;
struct dentry *parent = old->d_parent;
@@ -1214,8 +1210,7 @@ int follow_down(struct path *path)
struct vfsmount *mounted = lookup_mnt(path);
if (!mounted)
break;
- dput(path->dentry);
- mntput(path->mnt);
+ path_put(path);
path->mnt = mounted;
path->dentry = dget(mounted->mnt_root);
continue;
@@ -1236,8 +1231,7 @@ static void follow_mount(struct path *path)
struct vfsmount *mounted = lookup_mnt(path);
if (!mounted)
break;
- dput(path->dentry);
- mntput(path->mnt);
+ path_put(path);
path->mnt = mounted;
path->dentry = dget(mounted->mnt_root);
}
@@ -1250,10 +1244,8 @@ static void follow_dotdot(struct nameidata *nd)
while(1) {
struct dentry *old = nd->path.dentry;
- if (nd->path.dentry == nd->root.dentry &&
- nd->path.mnt == nd->root.mnt) {
+ if (path_equal(&nd->path, &nd->root))
break;
- }
if (nd->path.dentry != nd->path.mnt->mnt_root) {
/* rare case of legitimate dget_parent()... */
nd->path.dentry = dget_parent(nd->path.dentry);
--
1.8.2.1
next prev parent reply other threads:[~2013-10-14 12:26 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-14 12:25 [PATCH 0/3] fs: use helper function path_foo() to simpily code Kefeng Wang
2013-10-14 12:26 ` Kefeng Wang [this message]
2013-10-14 12:26 ` [PATCH 2/3] fs: nfsd: use path_equal() to simply code Kefeng Wang
2013-10-14 12:26 ` [PATCH 3/3] fs: notify: " Kefeng Wang
2013-10-26 10:42 ` [PATCH 0/3] fs: use helper function path_foo() to simpily code Kefeng Wang
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=1381753562-47884-2-git-send-email-wangkefeng.wang@huawei.com \
--to=wangkefeng.wang@huawei.com \
--cc=bfields@fieldses.org \
--cc=eparis@redhat.com \
--cc=john@johnmccutchan.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=rlove@rlove.org \
--cc=viro@zeniv.linux.org.uk \
/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).