Skip to contentSkip to conversation

2.4 raw devices don't do 64bit offset?

DISCUSSION [email protected] 2 participants 5 messages Apr 16, 2001 – Apr 17, 2001

lore
Share & tools
lore
#0 lore raw

Hi,
sorry if this was already discussed, but I couldn't find it in the archives. I'm trying to use xine (the linux dvd player) on linux-2.4.3-ac3 and can't watch the whole dvd. The reason is that as soon as the llseek sets a value in the offset_high field for sys_llseek, I get a EINVAL back from the seek. Is this intentional? Or simply still (only) a missing feature?

Klasu

Signature · 6 lines
------------------------------------------------------------------------ 
 Klaus Lichtenwalder, Dipl. Inform.,       http://www.webforum.de/Klaus/
 Fax +49-(0)89-91072699                            [email protected]
 NIC: KL2100, KL76-RIPE                     [email protected]
 PGP Key fingerprint = 2658 EA97 E1A1 2680 5ECA  0036 80F5 F250 3CF8
C2C7
#1 lore raw
Quoted 6 lines

sorry if this was already discussed, but I couldn't find it in the archives. I'm trying to use xine (the linux dvd player) on linux-2.4.3-ac3 and can't watch the whole dvd. The reason is that as soon as the llseek sets a value in the offset_high field for sys_llseek, I get a EINVAL back from the seek. Is this intentional? Or simply still (only) a missing feature?

Did you open the file with open64() ?

Alan

#2 lore raw
Quoted 9 lines · Alan Cox
Quoted 7 lines

sorry if this was already discussed, but I couldn't find it in the archives. I'm trying to use xine (the linux dvd player) on linux-2.4.3-ac3 and can't watch the whole dvd. The reason is that as soon as the llseek sets a value in the offset_high field for sys_llseek, I get a EINVAL back from the seek. Is this intentional? Or simply still (only) a missing feature?

Did you open the file with open64() ?

Sorry for being a bit clueless, but it's just the application I was using. I didn't check that further, because if I don't use the raw device, it's working fine... So let me check...
No it's using open(), but sets -D_FILE_OFFSET_BITS=64. Looks like this is not enough for the raw devices?

Klaus

Signature · 6 lines
------------------------------------------------------------------------- 
 Klaus Lichtenwalder, Dipl. Inform.,       http://www.webforum.de/Klaus/
 Fax +49-(0)89-91072699                            [email protected]
 NIC: KL2100, KL76-RIPE                     [email protected]
 PGP Key fingerprint = 2658 EA97 E1A1 2680 5ECA  0036 80F5 F250 3CF8
C2C7
#3 lore raw
In reply to Alan Cox
Quoted 10 lines · [email protected] wrote:
Quoted 8 lines · Alan Cox
Quoted 7 lines

sorry if this was already discussed, but I couldn't find it in the archives. I'm trying to use xine (the linux dvd player) on linux-2.4.3-ac3 and can't watch the whole dvd. The reason is that as soon as the llseek sets a value in the offset_high field for sys_llseek, I get a EINVAL back from the seek. Is this intentional? Or simply still (only) a missing feature?

Quoted 4 lines
Quoted 1 line

Did you open the file with open64() ?

No it's using open(), but sets -D_FILE_OFFSET_BITS=64. Looks like this is not enough for the raw devices?

Just to be on the right track I simply forced it to using open64 all along on this descriptor. It doesn't change anything. And, for the records, if I delete the raw device so that xine uses the block device, everything works fine.

Klaus

Signature · 6 lines
------------------------------------------------------------------------ 
 Klaus Lichtenwalder, Dipl. Inform.,       http://www.webforum.de/Klaus/
 Fax +49-(0)89-91072699                            [email protected]
 NIC: KL2100, KL76-RIPE                     [email protected]
 PGP Key fingerprint = 2658 EA97 E1A1 2680 5ECA  0036 80F5 F250 3CF8
C2C7
#4 lore raw
In reply to Alan Cox

Well, I looked a bit deeper into it. The limiting factor is the s_maxbytes value from the superblock. (If the offset is larger than s_maxbytes, default_llseek will return EINVAL, what I'm seeing), So, where does it inherit this value from? My fs is reiserfs, so there's a 4GB limit. But the raw device is bound to the dvd (maj 22, min 64)?

Klaus

Quoted 21 lines · [email protected] wrote:
Quoted 10 lines · [email protected] wrote:
Quoted 8 lines · Alan Cox
Quoted 7 lines

sorry if this was already discussed, but I couldn't find it in the archives. I'm trying to use xine (the linux dvd player) on linux-2.4.3-ac3 and can't watch the whole dvd. The reason is that as soon as the llseek sets a value in the offset_high field for sys_llseek, I get a EINVAL back from the seek. Is this intentional? Or simply still (only) a missing feature?

Quoted 4 lines
Quoted 1 line

Did you open the file with open64() ?

No it's using open(), but sets -D_FILE_OFFSET_BITS=64. Looks like this is not enough for the raw devices?

Just to be on the right track I simply forced it to using open64 all along on this descriptor. It doesn't change anything. And, for the records, if I delete the raw device so that xine uses the block device, everything works fine.

Signature · 6 lines
------------------------------------------------------------------------ 
 Klaus Lichtenwalder, Dipl. Inform.,       http://www.webforum.de/Klaus/
 Fax +49-(0)89-91072699                            [email protected]
 NIC: KL2100, KL76-RIPE                     [email protected]
 PGP Key fingerprint = 2658 EA97 E1A1 2680 5ECA  0036 80F5 F250 3CF8
C2C7