From: Anton Altaparmakov <aia21@cam.ac.uk>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: aaranya@cs.sunysb.edu, linux-fsdevel@vger.kernel.org
Subject: Re: Expected getdents behaviour
Date: Thu, 15 Sep 2005 16:17:40 +0100 [thread overview]
Message-ID: <1126797460.1676.23.camel@imp.csi.cam.ac.uk> (raw)
In-Reply-To: <E1EFuzO-00037w-00@dorka.pomaz.szeredi.hu>
On Thu, 2005-09-15 at 16:45 +0200, Miklos Szeredi wrote:
> > Oops. I forgot to answer your question. Yes, the filesystem needs to
> > consider the offset value in the second readdir to still be valid. You
> > cannot keep rewinding back to zero every time you make a modification or
> > you would keep returning entries you have already returned and never
> > make any progress if e.g. some user does this in a loop at the same
> > time:
> >
> > while 1; do
> > touch blah
> > rm blah
> > done
> >
> > It would be a very effective DOS that any user can trigger.
> >
> > Bonnie++'s code is just complete crap... It is the author's fault that
> > it will not work on filesystems where the directory entries are not in
> > fixed locations...
>
> Why is it crap? 'rm -rf' does exactly the same.
Then that is broken, too. But have you ever looked? I just did and you
are partially wrong. It especially handles the case correctly by doing
a "rewinddir()" on the directory before doing another readdir() after it
has done an unlike. However you are right in that it only enables this
code at ./configure time so on most Linux systems will not have it
enabled in which case it will indeed be broken on filesystems like ntfs.
> It's up to the filesystem to keep track of the file position in the
> directory, regardless of any deletions or additions.
That is completely untrue. It is up to the user. The file position in
a directory is completely up to the caller and in particular when a
directory is modified the file position in that directory is not changed
by the filesystem. Doing this would in fact be impossible since the
creation/deletion in the kernel has no access to all the "struct file"s
with which a directory has been opened.
Best regards,
Anton
--
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer / IRC: #ntfs on irc.freenode.net
WWW: http://linux-ntfs.sf.net/ & http://www-stu.christs.cam.ac.uk/~aia21/
next prev parent reply other threads:[~2005-09-15 15:17 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-15 13:57 Expected getdents behaviour Akshat Aranya
2005-09-15 14:03 ` Peter Staubach
2005-09-15 14:07 ` Anton Altaparmakov
2005-09-15 14:12 ` Anton Altaparmakov
2005-09-15 14:45 ` Miklos Szeredi
2005-09-15 15:17 ` Anton Altaparmakov [this message]
2005-09-15 16:41 ` Jan Blunck
2005-09-15 17:46 ` Jörn Engel
2005-09-15 18:19 ` Theodore Ts'o
2005-09-15 21:04 ` Anton Altaparmakov
2005-09-16 7:50 ` Nikita Danilov
2005-09-15 21:47 ` Jörn Engel
2005-09-16 7:29 ` Nikita Danilov
2005-09-16 11:58 ` Theodore Ts'o
2005-09-15 21:00 ` Anton Altaparmakov
2005-09-15 21:15 ` Charles P. Wright
2005-09-15 21:19 ` Anton Altaparmakov
2005-09-15 20:28 ` Anton Altaparmakov
2005-09-15 16:51 ` Miklos Szeredi
2005-09-15 21:17 ` Anton Altaparmakov
2005-09-15 15:51 ` Theodore Ts'o
2005-09-15 16:52 ` Bryan Henderson
2005-09-15 16:57 ` Jeremy Allison
2005-09-15 20:51 ` Anton Altaparmakov
2005-09-15 20:50 ` Anton Altaparmakov
2005-09-15 23:41 ` Bryan Henderson
2005-09-15 20:25 ` Anton Altaparmakov
2005-09-16 3:39 ` Theodore Ts'o
2005-09-16 11:57 ` Dave Kleikamp
2005-09-15 18:08 ` Nikita Danilov
2005-09-16 11:23 ` Miklos Szeredi
2005-09-16 1:28 ` tridge
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=1126797460.1676.23.camel@imp.csi.cam.ac.uk \
--to=aia21@cam.ac.uk \
--cc=aaranya@cs.sunysb.edu \
--cc=linux-fsdevel@vger.kernel.org \
--cc=miklos@szeredi.hu \
/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).