[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1.1 19/22] block: implement is_allocated for raw
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 1.1 19/22] block: implement is_allocated for raw |
Date: |
Wed, 09 May 2012 16:05:15 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120425 Thunderbird/12.0 |
Il 09/05/2012 15:40, Kevin Wolf ha scritto:
>> > +#ifndef SEEK_DATA
>> > +#define SEEK_DATA 3
>> > +#endif
>> > +#ifndef SEEK_HOLE
>> > +#define SEEK_HOLE 4
>> > +#endif
> How is that going to be portable? You assume that on non-Linux you'll
> get -EINVAL, but what does guarantee that 3 or 4 aren't already used for
> the standard SEEK_* constants or for a different non-standard extension?
While SEEK_* is not guaranteed by POSIX to be 0/1/2, the values is so
old that there may still exist programs that hard-code the values
(similar to O_RDONLY/O_WRONLY/O_RDWR, though probably not any other O_*
constant). It would be quite unwise to define them to something else.
Even MS-DOS reused the values!
AFAIK this is the only extension of lseek that's ever been added. It
was done on Solaris first and then in Linux and the BSDs. It used 3/4
there too, see for example http://bugs.python.org/msg119551 (Solaris)
and http://mail-index.netbsd.org/tech-kern/2011/08/17/msg011231.html
(NetBSD).
Paolo
- [Qemu-devel] [PATCH 1.1 20/22] stream: tweak usage of bdrv_co_is_allocated, (continued)
- [Qemu-devel] [PATCH 1.1 20/22] stream: tweak usage of bdrv_co_is_allocated, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 21/22] stream: move is_allocated_above to block.c, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 22/22] stream: move rate limiting to a separate header file, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 11/22] qemu-io: correctly print non-integer values as decimals, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 19/22] block: implement is_allocated for raw, Paolo Bonzini, 2012/05/08
[Qemu-devel] [PATCH 1.1 12/22] qemu-io: fix the alloc command, Paolo Bonzini, 2012/05/08