On Wed, Nov 28, 2012 at 10:37:27PM -0800, Linus Torvalds wrote: > On Wed, Nov 28, 2012 at 10:30 PM, Al Viro <v...@zeniv.linux.org.uk> wrote: > > > > Note that sync_blockdev() a few lines prior to that is good only if we > > have no other processes doing write(2) (or dirtying the mmapped pages, > > for that matter). The window isn't too wide, but... > > So with Mikulas' patches, the write actually would block (at write > level) due to the locking. The mmap'ed patches may be around and > flushed, but the logic to not allow currently *active* mmaps (with the > rather nasty random -EBUSY return value) should mean that there is no > race. > > Or rather, there's a race, but it results in that EBUSY thing.
Same as with fs mounted on it, or the sucker having been claimed for RAID array, etc. Frankly, I'm more than slightly tempted to make bdev mmap() just claim the sodding device exclusive for as long as it's mmapped... In principle, I agree, but... I still have nightmares from mmap/truncate races way back. You are stepping into what used to be a really nasty minefield. I'll look into that, but it's *definitely* not -rc8 fodder. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/