Subject: Re: problem with tmpfs and linux emulation?
To: Bill Studenmund <>
From: Matt Thomas <>
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 <>,
>>	Matt Thomas <> 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:
3am Software Foundry              www:
Cupertino, CA              disclaimer: I avow all knowledge of this message.