lkml.org 
[lkml]   [2001]   [Jan]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: nfs client problem in kernel 2.4.0
    Trond Myklebust wrote:
    >
    > >>>>> " " == Mogens Kjaer <mk@crc.dk> writes:
    > >> getdents64(3, /* 6 entries */, 65536) = 160 lseek(3,
    > >> 1547825467, SEEK_SET) = 1547825467 ... getdents64(3, /* 1
    > >> entries */, 65536) = 32
    >
    > BTW: there does in any case seem to be a bug in your version of
    > glibc. getdents64() is returning 64-bit file offsets, so they're not
    > going to fit with ordinary lseek().

    This turned out to be more difficult than I thought...

    I suspect glibc-2.2-12 being the reason, but I'm not quite sure yet:

    The problem is, that the 64-bit dirent's are converted to 32-bit
    dirent's
    and a sanity check is performed, if the inodes or offsets don't fit into
    32 bits.

    The offset of the last entry is 4294967295 (no, not -1),
    this won't fit in a signed 32 bit number.

    Does this number come from the SGI or from the NFS stuff in the Linux
    kernel?

    Mogens
    --
    Mogens Kjaer, Carlsberg Laboratory, Dept. of Chemistry
    Gamle Carlsberg Vej 10, DK-2500 Valby, Denmark
    Phone: +45 33 27 53 25, Fax: +45 33 27 47 08
    Email: mk@crc.dk Homepage: http://www.crc.dk
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:25    [W:0.032 / U:118.476 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site