Prev: [PATCH 2/2] init, mount: export the name_to_dev_t symbol
Next: [PATCH 2/2] ring-buffer: Move zeroing out excess in page to ring buffer code
From: Nick Piggin on 25 May 2010 12:10 Hi, I couldn't find where this patch (49bbd815fd8) was discussed, so I'll make my own thread. Adding a few lists to cc because it might be of interest to driver and filesystem writers. The old ->page_mkwrite calling convention was causing problems exactly because of this race, and we solved it by allowing page_mkwrite to return with the page locked, and the lock will be held until the pte is marked dirty. See commit b827e496c893de0c0f142abfaeb8730a2fd6b37f. I hope that should provide a more elegant solution to your problem. I would really like you to take a look at that, because we already have filesystem code (NFS) relying on it, and more code we have relying on this synchronization, the more chance we would find a subtle problem with it (also it should be just nicer). Thanks, Nick -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Albert Herranz on 25 May 2010 18:20
On 05/25/2010 08:47 PM, Nick Piggin wrote: >>> I hope that should provide a more elegant solution to your problem. I >>> would really like you to take a look at that, because we already have >>> filesystem code (NFS) relying on it, and more code we have relying on >>> this synchronization, the more chance we would find a subtle problem >>> with it (also it should be just nicer). >> >> So if I undestand it correctly, using the "new" calling convention I should just lock the page on fb_deferred_io_mkwrite() and return VM_FAULT_LOCKED to fix the described race for fb_defio. > > As far as I can see from quick reading of the fb_defio code, yes > that should solve it (provided you lock the page inside the mutex, > of course). > Ok, thanks. I'm posting a new version as RFT. Cheers, Albert -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |