> Patch 3: switch ->readdir() to your "return anything non-null we got from
> callback". AFAICS, main callers will see no breakage, but in any case
> we have few enough of those to adjust them as needed first.
>
> Patch 4: get rid of ->error and its ilk; adjust callers in obvious ways
> (e.g. sys_gtedents() would bail out on negative from vfs_readdir() as
> it does now and treat 0 and 1 in the same way - put_user() ? -EFAULT : <how
> much did we copy). Callers can be taken care one by one. Again, no breakage
> and everything's bisectable.
>
> Patch 5 (maybe):
> #define READDIR_MORE INT_MAX
> Have ->readdir() instances that decide to stop once they'd done several
> filldir calls return it if there's still more left.
> Have vfs_readdir() loop calling ->readdir() as long as it gets READDIR_MORE.
> Get rid of weird loops in callers.
>
> I'm not sure that the last one is needed - we might be better off just by
> making the such instances loop themselves. In any case, loops in callers
> (nfsd, etc.) are begging for trouble...
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to
majordomo@vger.kernel.org
> More majordomo info at
http://vger.kernel.org/majordomo-info.html