Re: [PATCH 6/6] vfs: introduce FMODE_NEG_OFFSET for allowing negative f_pos

From: OGAWA Hirofumi
Date: Sun Jan 17 2010 - 21:13:17 EST


KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> writes:

> On Mon, 18 Jan 2010 10:38:27 +0900
> OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx> wrote:
>
>> KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> writes:
>>
>> >> So, lseek() returns (uses) it?
>> >
>> > lseek can return negative value, as far as I know.
>>
>> Umm..., how do you know the difference of -EOVERFLOW and fpos == -75?
>>
>
> Ah, sorry. I read wrong.
>
> For /dev/mem, it uses its own lseek function which allows negative f_pos
> value. Other usual file system doesn't allow negative f_pos.
>
> It's ok not to return -EOVEFLOW for /dev/mem because there is no file end.

No, no. I think it has the problem.

E.g. /dev/mem returns -75 as fpos, so, lseek(2) returns -75 to
userland. Then the userland (e.g. glibc) convert it as
error. I.e. finally, errno == -75, and lseek(3) returns -1, right?

Thanks.
--
OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/