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