From: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
To: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: Arjan van de Ven <arjan@infradead.org>,
Benny Halevy <bhalevy@panasas.com>,
Jan Harkes <jaharkes@cs.cmu.edu>,
Miklos Szeredi <miklos@szeredi.hu>,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
nfsv4@ietf.org
Subject: Re: Finding hardlinks
Date: Wed, 3 Jan 2007 00:50:33 +0100 (CET) [thread overview]
Message-ID: <Pine.LNX.4.64.0701030042080.10633@artax.karlin.mff.cuni.cz> (raw)
In-Reply-To: <1167779668.6090.95.camel@lade.trondhjem.org>
On Wed, 3 Jan 2007, Trond Myklebust wrote:
> On Sat, 2006-12-30 at 02:04 +0100, Mikulas Patocka wrote:
>>
>> On Fri, 29 Dec 2006, Trond Myklebust wrote:
>>
>>> On Thu, 2006-12-28 at 19:14 +0100, Mikulas Patocka wrote:
>>>> Why don't you rip off the support for colliding inode number from the
>>>> kernel at all (i.e. remove iget5_locked)?
>>>>
>>>> It's reasonable to have either no support for colliding ino_t or full
>>>> support for that (including syscalls that userspace can use to work with
>>>> such filesystem) --- but I don't see any point in having half-way support
>>>> in kernel as is right now.
>>>
>>> What would ino_t have to do with inode numbers? It is only used as a
>>> hash table lookup. The inode number is set in the ->getattr() callback.
>>
>> The question is: why does the kernel contain iget5 function that looks up
>> according to callback, if the filesystem cannot have more than 64-bit
>> inode identifier?
>
> Huh? The filesystem can have as large a damned identifier as it likes.
> NFSv4 uses 128-byte filehandles, for instance.
But then it needs some other syscall to let applications determine
hardlinks --- which was the initial topic in this thread.
> POSIX filesystems are another matter. They can only have 64-bit
> identifiers thanks to the requirement that inode numbers be 64-bit
> unique and permanently stored, however Linux caters for a whole
> truckload of filesystems which will never fit that label: look at all
> those users of iunique(), for one...
I see them. The bad thing is that many programmers read POSIX, write
programs as if POSIX specification was true and these programs break
randomly on non-POSIX filesystem. Each non-POSIX filesystem invents st_ino
on its own, trying to minimize hash collision, making the failure even
less probable and worse to find.
The current situation is (for example) that cp does stat(), open(),
fstat() and compares st_ino/st_dev --- if they mismatch, it writes error
and doesn't copy files --- so if kernel removes the inode from cache
between stat() and open() and filesystem uses iunique(), cp will fail.
What utilities should the user use on those non-POSIX filesystems, if not
cp?
Probably some file-handling guidelines should be specified and written to
Documentation/ as a form of standard that can appliaction programmers use.
Mikulas
> Trond
>
next prev parent reply other threads:[~2007-01-02 23:50 UTC|newest]
Thread overview: 127+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-20 9:03 Finding hardlinks Mikulas Patocka
2006-12-20 11:44 ` Miklos Szeredi
2006-12-20 16:36 ` Mikulas Patocka
2006-12-20 16:50 ` Miklos Szeredi
2006-12-20 19:54 ` Al Viro
2006-12-20 20:12 ` Mikulas Patocka
2006-12-31 15:02 ` Mikulas Patocka
2006-12-21 18:58 ` Jan Harkes
2006-12-21 23:49 ` Mikulas Patocka
2006-12-22 5:05 ` Jan Harkes
2006-12-23 10:18 ` Arjan van de Ven
2006-12-23 14:00 ` Mikulas Patocka
2006-12-28 9:06 ` Benny Halevy
2006-12-28 10:05 ` Arjan van de Ven
2006-12-28 15:24 ` Benny Halevy
2006-12-28 19:58 ` Miklos Szeredi
2006-12-29 0:51 ` Bryan Henderson
2007-01-02 19:15 ` Pavel Machek
2007-01-02 20:41 ` Miklos Szeredi
2007-01-02 20:50 ` Mikulas Patocka
2007-01-02 21:10 ` Miklos Szeredi
2007-01-02 21:37 ` Mikulas Patocka
2007-01-03 11:56 ` Pavel Machek
2007-01-03 12:33 ` Miklos Szeredi
2007-01-03 12:42 ` Pavel Machek
2007-01-11 23:43 ` Denis Vlasenko
2007-01-03 12:45 ` Martin Mares
2007-01-03 13:54 ` Matthew Wilcox
2007-01-03 15:51 ` Miklos Szeredi
2007-01-03 19:04 ` Mikulas Patocka
2007-01-04 22:59 ` Pavel Machek
2007-01-05 8:43 ` Miklos Szeredi
2007-01-05 13:12 ` Pavel Machek
2007-01-05 13:55 ` Miklos Szeredi
2007-01-05 14:08 ` Mikulas Patocka
2007-01-05 15:09 ` Miklos Szeredi
2007-01-05 15:15 ` Miklos Szeredi
2007-01-08 11:27 ` Pavel Machek
2007-01-08 5:57 ` Mikulas Patocka
2007-01-08 8:49 ` Miklos Szeredi
2007-01-08 11:29 ` Pavel Machek
2007-01-08 12:00 ` Miklos Szeredi
2007-01-08 13:26 ` Martin Mares
2007-01-08 13:39 ` Miklos Szeredi
2007-01-09 16:26 ` Steven Rostedt
2007-01-09 19:53 ` Frank van Maarseveen
2007-01-09 20:11 ` Steven Rostedt
2007-01-11 10:07 ` Pádraig Brady
2007-01-09 23:43 ` Bryan Henderson
2007-01-09 23:46 ` Pavel Machek
2007-01-10 0:02 ` Matthew Wilcox
2007-01-10 17:30 ` Bryan Henderson
2007-01-10 17:38 ` Symbolic links vs hard links Bryan Henderson
2007-01-10 17:42 ` Matthew Wilcox
2007-01-11 20:03 ` Bryan Henderson
2007-01-10 19:33 ` Mikulas Patocka
2007-01-10 1:30 ` Finding hardlinks Steven Rostedt
2007-01-05 17:30 ` Frank van Maarseveen
2006-12-28 18:14 ` Mikulas Patocka
2006-12-29 10:34 ` Trond Myklebust
2006-12-30 1:04 ` Mikulas Patocka
2007-01-01 2:30 ` Nikita Danilov
2007-01-01 22:58 ` Mikulas Patocka
2007-01-01 23:05 ` Nikita Danilov
2007-01-01 23:22 ` Mikulas Patocka
2007-01-04 13:59 ` Nikita Danilov
2007-01-02 23:14 ` Trond Myklebust
2007-01-02 23:50 ` Mikulas Patocka [this message]
2006-12-28 13:22 ` Jeff Layton
2006-12-28 15:12 ` Benny Halevy
2006-12-28 15:54 ` Jeff Layton
2006-12-28 16:26 ` Jan Engelhardt
2006-12-28 18:15 ` Bryan Henderson
2006-12-28 18:43 ` Arjan van de Ven
2006-12-29 0:44 ` Bryan Henderson
2006-12-29 3:03 ` Phillip Lougher
2006-12-29 8:41 ` Arjan van de Ven
2006-12-29 15:12 ` Phillip Lougher
2006-12-29 15:43 ` Arjan van de Ven
2006-12-29 8:36 ` Arjan van de Ven
2006-12-29 18:08 ` Bryan Henderson
2006-12-29 18:18 ` Arjan van de Ven
2006-12-29 21:36 ` Bryan Henderson
2006-12-29 22:36 ` Arjan van de Ven
2006-12-28 18:17 ` Mikulas Patocka
2006-12-28 20:07 ` Halevy, Benny
2006-12-29 10:28 ` [nfsv4] " Trond Myklebust
2006-12-31 21:25 ` Halevy, Benny
2007-01-02 23:21 ` Trond Myklebust
2007-01-03 12:35 ` Benny Halevy
2007-01-04 0:43 ` [nfsv4] " Trond Myklebust
2007-01-04 8:36 ` Trond Myklebust
2007-01-04 10:04 ` Benny Halevy
2007-01-04 10:47 ` [nfsv4] " Trond Myklebust
2007-01-04 18:12 ` Bryan Henderson
2007-01-04 18:26 ` Peter Staubach
2007-01-05 8:28 ` Benny Halevy
2007-01-05 10:29 ` Trond Myklebust
2007-01-05 16:40 ` Nicolas Williams
2007-01-05 16:56 ` Trond Myklebust
2007-01-06 7:44 ` Halevy, Benny
2007-01-10 13:04 ` Benny Halevy
2006-12-29 10:12 ` Trond Myklebust
2006-12-31 21:19 ` Halevy, Benny
2007-01-02 23:20 ` Trond Myklebust
2007-01-02 23:46 ` Trond Myklebust
2006-12-28 17:58 ` Bryan Henderson
2006-12-28 18:13 ` Shaya Potter
2006-12-28 22:50 ` Halevy, Benny
2007-01-11 23:35 ` Denis Vlasenko
2006-12-29 10:02 ` Pavel Machek
2007-01-01 22:47 ` Mikulas Patocka
2007-01-01 23:53 ` Jan Harkes
2007-01-02 0:04 ` Mikulas Patocka
2007-01-03 18:58 ` Frank van Maarseveen
2007-01-03 19:17 ` Mikulas Patocka
2007-01-03 19:26 ` Frank van Maarseveen
2007-01-03 19:31 ` Mikulas Patocka
2007-01-03 20:26 ` Frank van Maarseveen
2007-01-12 0:00 ` Denis Vlasenko
2007-01-03 22:30 ` Pavel Machek
2007-01-03 21:09 ` Bryan Henderson
2007-01-03 22:01 ` Frank van Maarseveen
2007-01-03 23:43 ` Mikulas Patocka
2007-01-04 0:12 ` Frank van Maarseveen
2007-01-08 6:19 ` Mikulas Patocka
[not found] <7x5mR-2wX-3@gated-at.bofh.it>
[not found] ` <7x9Ad-18O-35@gated-at.bofh.it>
[not found] ` <7yXEy-UI-39@gated-at.bofh.it>
[not found] ` <7yYKa-2Ds-3@gated-at.bofh.it>
[not found] ` <7zcWP-7ET-5@gated-at.bofh.it>
[not found] ` <7zdzA-jc-27@gated-at.bofh.it>
[not found] ` <7zeP5-2ic-15@gated-at.bofh.it>
[not found] ` <7zgH9-5my-17@gated-at.bofh.it>
[not found] ` <7zJSM-14t-9@gated-at.bofh.it>
[not found] ` <7zSW5-6cj-9@gated-at.bofh.it>
[not found] ` <7zX9l-4rS-7@gated-at.bofh.it>
[not found] ` <7zXMb-5g5-27@gated-at.bofh.it>
2007-01-05 23:54 ` Bodo Eggert
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=Pine.LNX.4.64.0701030042080.10633@artax.karlin.mff.cuni.cz \
--to=mikulas@artax.karlin.mff.cuni.cz \
--cc=arjan@infradead.org \
--cc=bhalevy@panasas.com \
--cc=jaharkes@cs.cmu.edu \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=nfsv4@ietf.org \
--cc=trond.myklebust@fys.uio.no \
/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).