lkml.org 
[lkml]   [1999]   [Dec]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Ok, making ready for pre-2.4 and code-freeze..
Reiserfs now has a 2GB limit. We will have 64 bit offsets in 2.3.

Hans

tytso@mit.edu wrote:

> Date: Tue, 21 Dec 1999 23:50:24 +0100 (MET)
> From: R.E.Wolff@bitwizard.nl (Rogier Wolff)
>
> Yes, lseek takes a signed as an argument: You need to be able to seek
> to "10 bytes before where i'm now." and things like that.
>
> lseek returns the resulting offset from the beginning of the file.
>
> So, in this case it should return 0xc481ad8c, which is a negative number.
> So the library would set errno to 3b7e5274 and return -1. My guess is that
> lseek returns 0 in that case. So lseek is no longer conforming to the
> manpage which states that it will return the offset from the
> beginning.
>
> This is why the Ext2 filesystem in 2.2 limits file sizes to 2 Gig in
> order to achieve POSIX compatibility. You aren't allowed to create a
> file bigger than 2 Gigs since that would sometimes force lseek() to
> return a negative value, which would cause a POSIX violation. Reiserfs
> ignored this constraint, which is why they could offer 4 gig support ---
> if you try to create file that big, though, the results could violate
> POSIX if you called lseek() with a big file, and your application might
> do something surprising as a result. (This issue goes away in 2.4 since
> the 64 bit LFS support is finally in the kernel.)
>
> Linux is "breaking the rules" a bit to provide useful functionality. But
> in reality, it is not posix-compliant.
>
> Well, ext2 doesn't allow you to "break the rules", since doing so
> definitely breaks POSIX compatibility and could break some
> applications. But you're right that it's on a per-filesystem basis, and
> some special devices, such as /dev/mem, do let you "break the rules".
> Fortunately the Posix Compliance Test Suite doesn't test lseek() on
> special device files. :-)
>
> - Ted
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.rutgers.edu
> Please read the FAQ at http://www.tux.org/lkml/

--
Get Linux (http://www.kernel.org) plus ReiserFS
(http://devlinux.org/namesys). If you sell an OS or
internet appliance, buy a port of ReiserFS! If you
need customizations and industrial grade support, we sell them.




-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:55    [W:0.063 / U:0.052 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site