From: Frank van Maarseveen <frankvm@frankvm.com>
To: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
Cc: Jan Harkes <jaharkes@cs.cmu.edu>, Pavel Machek <pavel@suse.cz>,
Arjan van de Ven <arjan@infradead.org>,
Miklos Szeredi <miklos@szeredi.hu>,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: Re: Finding hardlinks
Date: Wed, 3 Jan 2007 21:26:41 +0100 [thread overview]
Message-ID: <20070103202641.GA3510@janus> (raw)
In-Reply-To: <Pine.LNX.4.64.0701032027330.6871@artax.karlin.mff.cuni.cz>
On Wed, Jan 03, 2007 at 08:31:32PM +0100, Mikulas Patocka wrote:
> >>>>I didn't hardlink directories, I just patched stat, lstat and fstat to
> >>>>always return st_ino == 0 --- and I've seen those failures. These
> >>>>failures
> >>>>are going to happen on non-POSIX filesystems in real world too, very
> >>>>rarely.
> >>>
> >>>I don't want to spoil your day but testing with st_ino==0 is a bad choice
> >>>because it is a special number. Anyway, one can only find breakage,
> >>>not prove that all the other programs handle this correctly so this is
> >>>kind of pointless.
> >>>
> >>>On any decent filesystem st_ino should uniquely identify an object and
> >>>reliably provide hardlink information. The UNIX world has relied upon
> >>>this
> >>>for decades. A filesystem with st_ino collisions without being hardlinked
> >>>(or the other way around) needs a fix.
> >>
> >>... and that's the problem --- the UNIX world specified something that
> >>isn't implementable in real world.
> >
> >Sure it is. Numerous popular POSIX filesystems do that. There is a lot of
> >inode number space in 64 bit (of course it is a matter of time for it to
> >jump to 128 bit and more)
>
> If the filesystem was designed by someone not from Unix world (FAT, SMB,
> ...), then not. And users still want to access these filesystems.
They can. Hey, it's not perfect but who expects FAT/SMB to be "perfect" anyway?
>
> 64-bit inode numbers space is not yet implemented on Linux --- the problem
> is that if you return ino >= 2^32, programs compiled without
> -D_FILE_OFFSET_BITS=64 will fail with stat() returning -EOVERFLOW --- this
> failure is specified in POSIX, but not very useful.
hmm, checking iunique(), ino_t, __kernel_ino_t... I see. Pity. So at
some point in time we may need a sort of "ino64" mount option to be
able to switch to a 64 bit number space on mount basis. Or (conversely)
refuse to mount without that option if we know there are >32 bit st_ino
out there. And invent iunique64() and use that when "ino64" specified
for FAT/SMB/... when those filesystems haven't been replaced by a
successor by that time.
At that time probably all programs are either compiled with
-D_FILE_OFFSET_BITS=64 (most already are because of files bigger than 2G)
or completely 64 bit.
--
Frank
next prev parent reply other threads:[~2007-01-03 20:26 UTC|newest]
Thread overview: 138+ 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 9:06 ` Benny Halevy
2006-12-28 10:05 ` Arjan van de Ven
2006-12-28 15:24 ` Benny Halevy
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-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-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
2006-12-28 13:22 ` Jeff Layton
2006-12-28 15:12 ` Benny Halevy
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-28 20:07 ` Halevy, Benny
2006-12-29 10:28 ` [nfsv4] " Trond Myklebust
2006-12-31 21:25 ` Halevy, Benny
2006-12-31 21:25 ` Halevy, Benny
2007-01-02 23:21 ` [nfsv4] " Trond Myklebust
2007-01-02 23:21 ` Trond Myklebust
2007-01-03 12:35 ` [nfsv4] " Benny Halevy
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: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 [this message]
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
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=20070103202641.GA3510@janus \
--to=frankvm@frankvm.com \
--cc=arjan@infradead.org \
--cc=jaharkes@cs.cmu.edu \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=mikulas@artax.karlin.mff.cuni.cz \
--cc=pavel@suse.cz \
/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.