Re: fixing compat_12 getdents

2012-12-10 Thread Mouse
>> Then people get upset because they say "function foo() isn't allowed >> to set errno to 'bar'". > Then how do you sanely write error handling routines? The error > returns form part of the interface and should be documented as such. There are two kinds of error returns. There are error return

Re: fixing compat_12 getdents

2012-12-10 Thread Brett Lymn
On Mon, Dec 10, 2012 at 09:23:15PM +, David Laight wrote: > > Then people get upset because they say "function foo() isn't allowed > to set errno to 'bar'". > It is rather a shame that posix tries to list all errno a function > can return, not just those for explicit 'likely' (ie normal) > non

Re: fixing compat_12 getdents

2012-12-10 Thread David Laight
On Mon, Dec 10, 2012 at 09:53:46PM +0200, Alan Barrett wrote: > >also, EINVAL doesn't seem like a great error code for this > >condition. it's not an input parameter that's causing the > >error, but rather that the required output format cannot express > >the data to be returned. I think solar

Re: fixing compat_12 getdents

2012-12-10 Thread Christos Zoulas
In article <20121210195346.ga8...@apb-laptoy.apb.alt.za>, Alan Barrett wrote: >> also, EINVAL doesn't seem like a great error code for this >> condition. it's not an input parameter that's causing the >> error, but rather that the required output format cannot express >> the data to be return

Re: fixing compat_12 getdents

2012-12-10 Thread Alan Barrett
also, EINVAL doesn't seem like a great error code for this condition. it's not an input parameter that's causing the error, but rather that the required output format cannot express the data to be returned. I think solaris uses EOVERFLOW for this kind of situation, and ERANGE doesn't seem too

Re: fixing compat_12 getdents

2012-12-10 Thread David Laight
On Mon, Dec 10, 2012 at 08:09:19AM -0800, Chuck Silvers wrote: > + odp = (struct dirent12 *)(void *)buf; > + ndp = (struct dirent *)(void *)buf; > + endp = (struct dirent *)(void *)&buf[*donep]; > + > + /* > + * In-place conversion. This works because odp > + * is smaller

Re: fixing compat_12 getdents

2012-12-10 Thread David Holland
On Mon, Dec 10, 2012 at 08:09:19AM -0800, Chuck Silvers wrote: > the last problem I found with running the i386 1.0 "ls" on > i386/amd64 is that some of the compat wrappers for > getdents/getdirentries don't actually translate the data to the old > format. the attached patch fixes that, but I'

fixing compat_12 getdents

2012-12-10 Thread Chuck Silvers
the last problem I found with running the i386 1.0 "ls" on i386/amd64 is that some of the compat wrappers for getdents/getdirentries don't actually translate the data to the old format. the attached patch fixes that, but I'm wondering about one aspect of the translation. the current version of co