patch: llseek for raw devices

2001-04-18 Thread k . lichtenwalder
Hi, this is my try for implementing the llseek operation on raw devices. The reason is that lseek does a check on the limits of the undlying filesystem and thus tends to err where the real device lies. Lseek check takes the /dev/raw/rawX filesystem as limiting factor, not the device that is bound

patch: llseek for raw devices

2001-04-18 Thread k . lichtenwalder
Hi, this is my try for implementing the llseek operation on raw devices. The reason is that lseek does a check on the limits of the undlying filesystem and thus tends to err where the real device lies. Lseek check takes the /dev/raw/rawX filesystem as limiting factor, not the device that is bound

Re: [xine-user] Re: why raw devices don't seek above 4GB (sometimes)

2001-04-17 Thread k . lichtenwalder
Alan Cox wrote: > > > I set up a raw device: raw /dev/raw/raw1 /dev/hdd > > with /dev/hdd being my DVD drive. > > Xine then does repeated llseeks on /dev/raw/raw1 until it gets above 4G. > > Because /dev/raw/raw1 and the associated /dev/hdd both are on reiserfs, > > and reiserfs has a 4G limit,

why raw devices don't seek above 4GB (sometimes)

2001-04-17 Thread k . lichtenwalder
ok, I found my problem. As previously said, I'm on reiser. Which (obviously) has a file size limit of 4GB set in the superblock. Llseek only allows seek offsets which are smaller than the allowed file size. What happens is: I set up a raw device: raw /dev/raw/raw1 /dev/hdd with /dev/hdd being my

Re: 2.4 raw devices don't do 64bit offset?

2001-04-17 Thread k . lichtenwalder
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

Re: 2.4 raw devices don't do 64bit offset?

2001-04-17 Thread k . lichtenwalder
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

why raw devices don't seek above 4GB (sometimes)

2001-04-17 Thread k . lichtenwalder
ok, I found my problem. As previously said, I'm on reiser. Which (obviously) has a file size limit of 4GB set in the superblock. Llseek only allows seek offsets which are smaller than the allowed file size. What happens is: I set up a raw device: raw /dev/raw/raw1 /dev/hdd with /dev/hdd being my

Re: [xine-user] Re: why raw devices don't seek above 4GB (sometimes)

2001-04-17 Thread k . lichtenwalder
Alan Cox wrote: I set up a raw device: raw /dev/raw/raw1 /dev/hdd with /dev/hdd being my DVD drive. Xine then does repeated llseeks on /dev/raw/raw1 until it gets above 4G. Because /dev/raw/raw1 and the associated /dev/hdd both are on reiserfs, and reiserfs has a 4G limit, llseek

Re: 2.4 raw devices don't do 64bit offset?

2001-04-16 Thread k . lichtenwalder
[EMAIL PROTECTED] wrote: > > Alan Cox wrote: > > > > > 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

Re: 2.4 raw devices don't do 64bit offset?

2001-04-16 Thread k . lichtenwalder
Alan Cox wrote: > > > 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

2.4 raw devices don't do 64bit offset?

2001-04-16 Thread k . lichtenwalder
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

2.4 raw devices don't do 64bit offset?

2001-04-16 Thread k . lichtenwalder
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

Re: 2.4 raw devices don't do 64bit offset?

2001-04-16 Thread k . lichtenwalder
Alan Cox wrote: 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

Re: 2.4 raw devices don't do 64bit offset?

2001-04-16 Thread k . lichtenwalder
[EMAIL PROTECTED] wrote: Alan Cox wrote: 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