cvs commit: src/sys/kern vfs_subr.c src/sys/fs/devfs devfs_vnops.c

Scott Long scottl at samsco.org
Thu Nov 10 14:55:07 GMT 2005


Poul-Henning Kamp wrote:
> In message <437351BB.6000103 at samsco.org>, Scott Long writes:
> 
> 
>>Putting the cookie into the dirent means either changing the size of the
>>dirent struct and breaking the userland ABI (almost as bad as changing
>>the size of stat, but not quite), or making a 'kdirent' struct and then
>>manually shifting and copying it to a dirent struct.
> 
> 
> Not really that bad.
> 
> My idea was to make a 
> 	struct kdirent {
> 		struct dirent	foo;
> 		cookie stuff	bar;
> 	}
> 
> Filesystems would call vfs_read_dirent() with a struct kdirent and
> depending on the userland/kernel flag in the uio vfs_read_dirent()
> would copy either the entire kdirent or only the userspace dirent.
> 
> 
> 
>>What I really think this is is a ploy by PHK to get someone motivated to
>>fix it for him ;-)
> 
> 
> I'm generally in favour of people doing work so I don't have to but
> in this particular case that was not the motivation :-)
> 
> (At least you can't prove anything!)
> 
> Poul-Henning
> 

I still don't see how this is supposed to work.  VOP_READDIR() doesn't
return the dirent array to the caller, it's directly copied to the user
buffer.

Scott


More information about the cvs-src mailing list