From: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
To: Frank van Maarseveen <frankvm@frankvm.com>
Cc: Bryan Henderson <hbryan@us.ibm.com>,
Arjan van de Ven <arjan@infradead.org>,
Jan Harkes <jaharkes@cs.cmu.edu>,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
Miklos Szeredi <miklos@szeredi.hu>, Pavel Machek <pavel@suse.cz>
Subject: Re: Finding hardlinks
Date: Thu, 4 Jan 2007 00:43:20 +0100 (CET) [thread overview]
Message-ID: <Pine.LNX.4.64.0701040032460.31506@artax.karlin.mff.cuni.cz> (raw)
In-Reply-To: <20070103220129.GA4788@janus>
On Wed, 3 Jan 2007, Frank van Maarseveen wrote:
> On Wed, Jan 03, 2007 at 01:09:41PM -0800, Bryan Henderson wrote:
>>> 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.
>>
>> But for at least the last of those decades, filesystems that could not do
>> that were not uncommon. They had to present 32 bit inode numbers and
>> either allowed more than 4G files or just didn't have the means of
>> assigning inode numbers with the proper uniqueness to files. And the sky
>> did not fall. I don't have an explanation why,
>
> I think it's mostly high end use and high end users tend to understand
> more. But we're going to see more really large filesystems in "normal"
> use so..
>
> Currently, large file support is already necessary to handle dvd and
> video. It's also useful for images for virtualization. So the failing stat()
> calls should already be a thing of the past with modern distributions.
As long as glibc compiles by default with 32-bit ino_t, the problem exists
and is severe --- programs handling large files, such as coreutils, tar,
mc, mplayer, already compile with 64-bit ino_t and off_t, but the user (or
script) may type something like:
cat >file.c <<EOF
#include <sys/types.h>
#include <sys/stat.h>
main()
{
int h;
struct stat st;
if ((h = creat("foo", 0600)) < 0) perror("creat"), exit(1);
if (fstat(h, &st)) perror("stat"), exit(1);
close(h);
return 0;
}
EOF
gcc file.c; ./a.out
--- and you certainly do not want this to fail (unless you are out of disk
space).
The difference is, that with 32-bit program and 64-bit off_t, you get
deterministic failure on large files, with 32-bit program and 64-bit
ino_t, you get random failures.
Mikulas
next prev parent reply other threads:[~2007-01-03 23:43 UTC|newest]
Thread overview: 100+ 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
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-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
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: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 ` Trond Myklebust
2007-01-04 8:36 ` Trond Myklebust
2007-01-04 10:04 ` Benny Halevy
2007-01-04 10:47 ` Trond Myklebust
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
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 [this message]
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.0701040032460.31506@artax.karlin.mff.cuni.cz \
--to=mikulas@artax.karlin.mff.cuni.cz \
--cc=arjan@infradead.org \
--cc=frankvm@frankvm.com \
--cc=hbryan@us.ibm.com \
--cc=jaharkes@cs.cmu.edu \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--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 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).