On Sat, Feb 01, 2014 at 10:43:01PM +0000, Al Viro wrote: > * WTF bother passing 'pos' separately? It's the same mistake that was > made with ->aio_read/->aio_write and just as with those, *all* callers > provably have pos == iocb->ki_pos. I think this landed with the initial aio support, which planned for allowing AIO retries for a workqueue with a partially incremented pos. None of this ever got merged, probably because it was too ugly to live. > * We *definitely* want a variant structure with tag - unsigned long thing > was just plain insane. I see at least two variants - array of iovecs > and array of (at least) triples <page, offset, length>. Quite possibly - > quadruples, with "here's how to try to steal this page" thrown in, if > we want that as replacement for ->splice_write() as well (it looks like > the few instances that do steal on pipe-to-file splices could be dealt > with the same way as the dumb ones, provided that ->write_iter or whatever > we end up calling it is allowed to try and steal pages). Possibly more > variants on the read side of things... FWIW, I'm not sure that bio_vec > makes a lot of sense here. bio_vec just is one of the many page+offset+len containers we have, I guess Dave took it because loop uses it. We could either invent a new one here or finally have a common one for the different uses all over the kernel. _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs