Messages in this thread | ![/](/images/icornerl.gif) | | Subject | Re: [patch] fix race in __block_prepare_write (again) | From | Anton Altaparmakov <> | Date | Fri, 22 Apr 2005 16:50:06 +0100 |
| |
On Fri, 2005-04-22 at 19:10 +0400, Nikita Danilov wrote: > Anton Altaparmakov writes: > > mm/filemap.c::file_buffered_write(): > > > > - It calls fault_in_pages_readable() which is completely bogus if > > @nr_segs > 1. It needs to be replaced by a to be written > > "fault_in_pages_readable_iovec()". > > Which will be only marginally less bogus, because page(s) can be evicted > from the memory between fault_in_pages_readable*() and > __grab_cache_page() anyway.
That is true. But it does make the race condition smaller.
A better approach would be to lock the pages into memory via set page reserved or something. Of course they will need unmarking straight after and we would need to be careful to not unmark pages that were marked reserved to start with.
Comments?
Best regards,
Anton -- Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @) Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK Linux NTFS maintainer / IRC: #ntfs on irc.freenode.net WWW: http://linux-ntfs.sf.net/ & http://www-stu.christs.cam.ac.uk/~aia21/
- 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) |