Messages in this thread | ![/](/images/icornerl.gif) | | Date | Wed, 20 Dec 2006 14:56:55 +0900 | From | "Jari Sundell" <> | Subject | Re: 2.6.19 file content corruption on ext3 |
| |
On 12/20/06, Linus Torvalds <torvalds@osdl.org> wrote: > On Tue, 19 Dec 2006, Linus Torvalds wrote: > > > > here's a totally new tangent on this: it's possible that user code is > > simply BUGGY. > > Btw, here's a simpler test-program that actually shows the difference > between 2.6.18 and 2.6.19 in action, and why it could explain why a > program like rtorrent might show corruption behavious that it didn't show > before.
Kinda late to the discussion, but I guess I could summarize what rtorrent actually does, or should be doing.
When downloading a new torrent, it will create the files and truncate them to the final size. It will never call truncate after this and the files will remain sparse until data is downloaded. A 'piece' is mapped to memory using MAP_SHARED, which will be page aligned on single file torrents but unlikely to be so on multi-file torrents.
So on multi-file torrents it'll often end up with two mappings overlapping with one page, each of which only write to their own part the page. These will then be sync'ed with MS_ASYNC, or MS_SYNC if low on disk space. After that it might be unmapped, then mapped as read-only.
I haven't thought of asking if single file torrents are ok.
Rakshasa - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |