linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Al Viro <viro@ZenIV.linux.org.uk>
To: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	Alexey Dobriyan <adobriyan@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Pavel Emelyanov <xemul@parallels.com>,
	James Bottomley <jbottomley@parallels.com>,
	Matthew Helsley <matt.helsley@gmail.com>,
	aneesh.kumar@linux.vnet.ibm.com, bfields@fieldses.org
Subject: Re: [patch 1/9] procfs: Move /proc/pid/fd[info] handling code to fd.[ch]
Date: Sat, 25 Aug 2012 22:52:39 +0100	[thread overview]
Message-ID: <20120825215239.GW23464@ZenIV.linux.org.uk> (raw)
In-Reply-To: <20120825194325.GG19184@moon>

On Sat, Aug 25, 2012 at 11:43:25PM +0400, Cyrill Gorcunov wrote:

> Would the patch below improve the code? Look, I've not dropped
> find_inode_number call since it's a bit unclear for me what
> would happen if !child case hit
> 
> 	child = d_lookup(dir, &qname);
> 	if (!child) {
> 		struct dentry *new = d_alloc(dir, &qname);
> 		if (new) {
> 			child = instantiate(dir->d_inode, new, task, ptr);
> 			if (child)
> 				dput(new);
> 			else
> 				child = new;
> 		}
> 	}
> 
> can we be sure that i_ino won't be zero here?

First of all, ->i_ino is not going to be zero for any procfs inode.
As for !child case, that's possible only if d_lookup() returns NULL
*and* d_alloc() fails.  In that case find_inode_number() will call
d_hash_and_lookup(), which will call d_lookup(), get NULL from it and
return NULL to find_inode_number().  Which will return 0 to the
caller.

AFAICS, if find_inode_number() is called there at all, it will return 0.
IOW, this if (!ino) ino = find_inode_number(...); is a no-op.

  reply	other threads:[~2012-08-25 21:52 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-23 10:43 [patch 0/9] extended fdinfo via procfs series, v7 Cyrill Gorcunov
2012-08-23 10:43 ` [patch 1/9] procfs: Move /proc/pid/fd[info] handling code to fd.[ch] Cyrill Gorcunov
2012-08-25 17:16   ` Al Viro
2012-08-25 17:39     ` Cyrill Gorcunov
2012-08-25 17:55       ` Al Viro
2012-08-25 18:58         ` Cyrill Gorcunov
2012-08-25 19:12           ` Al Viro
2012-08-25 19:43             ` Cyrill Gorcunov
2012-08-25 21:52               ` Al Viro [this message]
2012-08-25 23:19     ` Al Viro
2012-08-23 10:43 ` [patch 2/9] procfs: Convert /proc/pid/fdinfo/ handling routines to seq-file v2 Cyrill Gorcunov
2012-08-26  2:46   ` Al Viro
2012-08-26  8:13     ` Cyrill Gorcunov
2012-08-26 14:28     ` Cyrill Gorcunov
2012-08-26 15:05       ` Al Viro
2012-08-26 15:10         ` Cyrill Gorcunov
2012-08-23 10:43 ` [patch 3/9] procfs: Add ability to plug in auxiliary fdinfo providers Cyrill Gorcunov
2012-08-23 10:43 ` [patch 4/9] fs, exportfs: Fix nil dereference if no s_export_op present Cyrill Gorcunov
2012-08-23 12:12   ` J. Bruce Fields
2012-08-23 12:34     ` Cyrill Gorcunov
2012-08-23 15:22       ` J. Bruce Fields
2012-08-23 10:43 ` [patch 5/9] fs, notify: Add file handle entry into inotify_inode_mark Cyrill Gorcunov
2012-08-23 10:43 ` [patch 6/9] fs, notify: Add procfs fdinfo helper v4 Cyrill Gorcunov
2012-08-23 10:43 ` [patch 7/9] fs, eventfd: Add procfs fdinfo helper Cyrill Gorcunov
2012-08-23 10:43 ` [patch 8/9] fs, epoll: Add procfs fdinfo helper v2 Cyrill Gorcunov
2012-08-23 10:43 ` [patch 9/9] fdinfo: Show sigmask for signalfd fd v2 Cyrill Gorcunov
2012-08-23 12:23 ` [patch 0/9] extended fdinfo via procfs series, v7 J. Bruce Fields
2012-08-23 12:44   ` Cyrill Gorcunov
2012-08-23 13:52     ` J. Bruce Fields
2012-08-23 13:56       ` Cyrill Gorcunov
2012-08-23 15:25         ` J. Bruce Fields
2012-08-23 17:02           ` Cyrill Gorcunov
2012-08-23 17:59             ` J. Bruce Fields
2012-08-23 18:03               ` Cyrill Gorcunov
2012-08-23 17:28     ` Cyrill Gorcunov

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=20120825215239.GW23464@ZenIV.linux.org.uk \
    --to=viro@zeniv.linux.org.uk \
    --cc=adobriyan@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=bfields@fieldses.org \
    --cc=gorcunov@openvz.org \
    --cc=jbottomley@parallels.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt.helsley@gmail.com \
    --cc=xemul@parallels.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).