Size difference reported by /proc/partitions and lseek(SEEK_END) on block device

Corinna Vinschen
Wed Dec 7 18:13:00 GMT 2005

On Dec  7 11:17, Loh, Joe wrote:
> We just installed the cygwin-inst-20051207.tar.bz2 snapshot.  The output
> in //proc/partitions is the same as the Cygwin Kernel 1.5.18.  However,
> the lseek(SEEK_END) no longer works.  When I rerun the "C" program it
> gave the following error. I even recompiled with the new snapshot just
> to make sure, still the same error.  I have also attached the strace
> output for the lseekend.
> $ ./lseekend.exe /dev/sda
> lseek: Invalid argument

Ouch.  Thanks for the report.  I have fixed a buggy condition which
only allowed to seek to 1 byte below EOM in CVS.  You should see the
change in the next developers snapshot.

> Here's the output from the snapshot:
> major minor  #blocks  name
>     8     0  78124095 sda
>     8     1  15358108 sda1
>     8     2    104422 sda2
>     8     3  16386300 sda3

The reason that /proc/partition contains wrong information is that
the /proc/partition information uses an old, deprecated IOCTL call
to evaluate the disk size by # of cylinders, # of tracks per sektor,
etc.  I didn't fix that so far but it's not overly complicated, so
stay tuned.

Thanks again,

Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat, Inc.

Unsubscribe info:
Problem reports:

More information about the Cygwin mailing list