All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dipankar Sarma <dipankar@in.ibm.com>
To: Manfred Spraul <manfred@colorfullife.com>
Cc: Linus Torvalds <torvalds@osdl.org>, Andrew Morton <akpm@osdl.org>,
	davej@redhat.com, wli@holomorphy.com,
	Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Maneesh Soni <maneesh@in.ibm.com>
Subject: Re: dentry bloat.
Date: Sun, 9 May 2004 21:03:16 +0530	[thread overview]
Message-ID: <20040509153316.GE4007@in.ibm.com> (raw)
In-Reply-To: <409DDDAE.3090700@colorfullife.com>

On Sun, May 09, 2004 at 09:28:46AM +0200, Manfred Spraul wrote:
> What's the prupose of d_move_count?
> AFAICS it protects against a double rename: first to different bucket, 
> then back to original bucket. This changes the position of the dentry in 
> the hash chain and a concurrent lookup would skip entries.
> d_lock wouldn't prevent that.

Actually, what may happen is that since the dentries are added
in the front, a double move like that would result in hash chain
traversal looping. Timing dependent and unlikely, but d_move_count
avoided that theoritical possibility. It is not about skipping
dentries which is safe because a miss would result in a real_lookup()
anyway. If we do the comparison within d_lock, then atleast
we are guaranteed to get the right file. The remaining question
is whether we violate POSIX rename semantics in some twisted way.


> But I think d_bucket could be removed: for __d_lookup the test appears 
> to be redundant with the d_move_count test. The remaining users are not 
> performance critical, they could recalculate the bucket from d_parent 
> and d_name.hash.

Yes, afaics, d_move_count can effectively be used to work around
the possibility of the dentry moving to a different hash bucket.

Thanks
Dipankar

  reply	other threads:[~2004-05-09 15:36 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20040506200027.GC26679@redhat.com>
     [not found] ` <20040506150944.126bb409.akpm@osdl.org>
     [not found]   ` <409B1511.6010500@colorfullife.com>
2004-05-08  8:23     ` dentry bloat Andrew Morton
2004-05-08  9:23       ` Andrew Morton
2004-05-08 10:11         ` Andrew Morton
2004-05-08 10:12           ` Andrew Morton
2004-05-08 10:28           ` viro
2004-05-08 10:41             ` Andrew Morton
2004-05-08 10:52             ` Andrew Morton
2004-05-08 10:31           ` Manfred Spraul
2004-05-08 17:28           ` Linus Torvalds
2004-05-08 18:19             ` David S. Miller
2004-05-08 19:01             ` Andrew Morton
2004-05-08 19:13               ` Linus Torvalds
2004-05-08 19:27                 ` Andrew Morton
2004-05-08 19:27                 ` Linus Torvalds
2004-05-08 20:42                   ` Dipankar Sarma
2004-05-08 20:55                     ` Andrew Morton
2004-05-08 21:19                       ` Dipankar Sarma
2004-05-09  0:10                         ` Andrew Morton
2004-05-09  2:55                           ` Linus Torvalds
2004-05-09  3:12                             ` David S. Miller
2004-05-09  3:53                               ` Linus Torvalds
2004-05-09 21:03                                 ` Matt Mackall
2004-05-10  8:27                                   ` Helge Hafting
2004-05-10  8:32                                     ` Arjan van de Ven
2004-05-10  9:46                                       ` Andrew Morton
2004-05-10 14:54                                         ` Matt Mackall
2004-05-10 16:26                                           ` Paul E. McKenney
2004-05-10 18:34                                             ` Dipankar Sarma
2004-05-09  4:12                             ` Andrew Morton
2004-05-09  4:25                               ` Linus Torvalds
2004-05-09  4:36                                 ` Andrew Morton
2004-05-09  5:14                                   ` Linus Torvalds
2004-05-09  7:36                                     ` Rodolfo Guluarte Hale
2004-05-09  9:10                                     ` Guennadi Liakhovetski
2004-05-09  9:23                                       ` viro
2004-05-09 15:35                                       ` Linus Torvalds
2004-05-09 18:11                                         ` Matt Mackall
2004-05-09 22:08                                           ` Francois Romieu
2004-05-09 23:51                                           ` Paul Jackson
2004-05-10  7:17                                         ` Florian Weimer
2004-05-10 14:12                                         ` Rik van Riel
2004-05-09  4:43                                 ` Linus Torvalds
2004-05-09  7:28                     ` Manfred Spraul
2004-05-09 15:33                       ` Dipankar Sarma [this message]
2004-05-09 22:17                         ` viro
2004-05-09 22:27                           ` Andrew Morton
2004-05-11  5:26                             ` Maneesh Soni
2004-05-10 18:39                           ` Dipankar Sarma
2004-05-11  5:17                             ` Maneesh Soni
2004-05-08 20:13                 ` Dipankar Sarma
2004-10-06 12:58                   ` Maneesh Soni
2004-05-11 20:22                     ` Andrew Morton
2004-05-14 10:33                       ` Raghavan
2004-05-14 10:50                         ` Paul Jackson
2004-05-14 11:04                           ` Jens Axboe
2004-05-14 11:14                             ` Paul Jackson
2004-05-14 11:24                               ` Dipankar Sarma
2004-05-14 11:24                               ` Jens Axboe
2004-05-14 11:30                                 ` Paul Jackson
2004-05-14 11:18                         ` Dipankar Sarma
2004-05-14 14:44                           ` Linus Torvalds
2004-05-08 21:00               ` Dipankar Sarma

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=20040509153316.GE4007@in.ibm.com \
    --to=dipankar@in.ibm.com \
    --cc=akpm@osdl.org \
    --cc=davej@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maneesh@in.ibm.com \
    --cc=manfred@colorfullife.com \
    --cc=torvalds@osdl.org \
    --cc=wli@holomorphy.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.