[prev in list] [next in list] [prev in thread] [next in thread] 

List:       netbsd-tech-kern
Subject:    sys/compat/common/compat_30_sys_getdents oddity/bug?
From:       Reinoud Zandijk <reinoud () NetBSD ! org>
Date:       2005-12-31 18:10:08
Message-ID: 20051231181007.GA12074 () rangerover ! 13thmonkey ! org
[Download RAW message or body]


Dear folks,

i've been puzzled a bit by a wierd offset i get in UDF's VOP_READDIR() that 
specific calls to getdents() generate when used by shells for globbing etc.

A breakpoint tracked it back to compat_30_sys_getdents. There i read that 
the value of `ncookies' as returned by the VOP_READDIR() is not used at 
all. Also the function *demands* NFS support or a dirent stream to be 
called again by the sum of all dirent lengths.

Since my UDF implementation doesn't grok NFS yet it got bitten by that. Now 
i dont know why this assumption is made for the VOP_READDIR itself updates 
the uio with the new offset to be callable again wich normally goes OK.

So should the compat's getdents code
1) honour the ncookies returned?
2) use the auio.uio_offset for the next call/batch ?

With regards,
Reinoud


[Attachment #3 (application/pgp-signature)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic