Re: [RFC] readdir mess | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] | |
On Tue, Aug 12, 2008 at 07:37:45PM +0100, Al Viro wrote: > FWIW, how about that sequence: > > Patch 1: > Turn all filldir(...) < 0 into filldir() != 0 in ->readdir() instances, > no changes other than that. Everything should keep working as-is. > > Patch 2: > Make fillonedir() return 1 on the second call; make filldir() et.al. > return 1 instead of -EINVAL if we have ->previous != NULL. Again, > should be no breakage. aargh... Patch 2.5: Fix braindead instances of ->readdir() that return odd crap on success (e.g. coda_readdir() returning the count of filldir calls that had returned zero). > 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@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
[Site Home] [Kernel Newbies] [UNIX Filesystems] [Share Photos] [Security] [Netfilter] [Bugtraq] [Rubini] [Photo] [Yosemite] [Yosemite News] [MIPS Linux] [ARM Linux] [Linux Security] [Linux Ext4 Filesystem] [Linux Cachefs] [Reiser Filesystem] [Linux RAID] [Samba] [Video 4 Linux] [Device Mapper] [Linux Resources]
![]() |