2.4 raw devices don't do 64bit offset?
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
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_highfield forsys_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
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_highfield forsys_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
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_highfield forsys_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
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_highfield forsys_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