From: Andreas Dilger <adilger@clusterfs.com>
To: Tomaz Susnik <tomaz.susnik@hermes.si>
Cc: linux-kernel@vger.kernel.org
Subject: Re: 2.4.18 kernel lseek() bug
Date: Fri, 14 Jun 2002 21:37:24 -0600 [thread overview]
Message-ID: <20020615033724.GA14468@clusterfs.com> (raw)
In-Reply-To: <FED7EB450413D511ABC100B0D0211732064F7725@hal9000.hermes.si>
On Jun 14, 2002 15:07 +0200, Tomaz Susnik wrote:
> [1] Problem description
> ----------------------------------
>
> a call to lseek() fails with EINVAL under the following conditions:
> - it is called on a disk device file
> - required offset is larger than the target disk device size
Is this behaviour mandated in a standard, or is it just different from
previous behaviour? I'm not saying it _isn't_ a bug, but I don't see
how seeking past the end of a block device is very useful.
> Attempting to seek through file /dev/hda3
>
> lseek(6 Gb ): errno = 0 ret = 6442450944
> lseek(7 Gb ): errno = 0 ret = 7516192768
> lseek(8 Gb ): errno = 0 ret = 8589934592
> lseek(9 Gb ): errno = 0 ret = 9663676416
>
>
> Sample output on the same machine, but booted with kernel 2.4.18:
>
> Attempting to seek through file /dev/hda3
>
> lseek(6 Gb ): errno = 0 ret = 6442450944
> lseek(7 Gb ): errno = 0 ret = 7516192768
> lseek(8 Gb ): errno = 22 ret = -1
> lseek(9 Gb ): errno = 22 ret = -1
>
> [6] Reason for reporting this problem
> ---------------------------------------------------
> Our multi-platform backup product relies on proper behaviour of the
> lseek() command to calculate a rawdisk size.
Well, e2fsprogs has a similar test that it uses if the BLKGETSZ ioctl
fails, but I don't see how this new behaviour is a real problem. All you
have to do is check if _either_ lseek(offset) fails or read() from that
offset fails to know you are past the end of the block device. It hardly
changes the algorithm at all.
Cheers, Andreas
--
Andreas Dilger
http://www-mddsp.enel.ucalgary.ca/People/adilger/
http://sourceforge.net/projects/ext2resize/
next prev parent reply other threads:[~2002-06-15 3:39 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-06-14 13:07 2.4.18 kernel lseek() bug Tomaz Susnik
2002-06-15 3:37 ` Andreas Dilger [this message]
-- strict thread matches above, loose matches on Subject: below --
2002-06-15 14:20 Andries.Brouwer
2002-06-17 8:02 Tomaz Susnik
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=20020615033724.GA14468@clusterfs.com \
--to=adilger@clusterfs.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tomaz.susnik@hermes.si \
/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.