Subject: Re: problem with tmpfs and linux emulation?
To: Bill Studenmund <wrstuden@netbsd.org>
From: Matt Thomas <matt@3am-software.com>
List: current-users
Date: 11/12/2005 10:43:46
Bill Studenmund wrote:
> On Thu, Nov 10, 2005 at 10:50:07PM +0000, Matthias Scheler wrote:
>
>>In article <43722C24.7020308@3am-software.com>,
>> Matt Thomas <matt@3am-software.com> writes:
>>
>>>This implies that the linux_sys_read syscall (and friends) needs to know
>>>if it's reading from a directory, and if so, do the getdents dance itself.
>>
>>Yes, indeed.
>>
>>
>>>This would be filesystem independent. And ugly as hell.
>>
>>Why? Figuring out that it is a directory can be done by looking on the vnode.
>
>
> I think the problem is that the layering doesn't make this convenient. The
> level that can easily see the vnode, the vn layer, is deep past the place
> where we abstract away the emulation. So we either add a hook to determine
> emulation, teach all emulations how to read directories, or cook up a way
> so that linux opens of directories get a different vn vector which will do
> the right thing.
I don't see the problem. Instead of using sys_read, linux would have its
linux_sys_read. It would look up the fd, see if it's a DTYPE_VNODE, and if so
check to see if it's a directory. It's only a problem is you are relying on the
standard sys_read routine.
--
Matt Thomas email: matt@3am-software.com
3am Software Foundry www: http://3am-software.com/bio/matt/
Cupertino, CA disclaimer: I avow all knowledge of this message.