On Wed 31-10-12 12:36:52, Darrick J. Wong wrote: > On Wed, Oct 31, 2012 at 12:56:14PM +0100, Jan Kara wrote: > > I'd like to keep things simple. It's not hard to make all filesystems > > support stable pages so let's just do that to remove one variable from the > > picture. Then we are in the situation where storage can request stable > > pages by setting bdi bit and filesystem will obey. Also filesystem itself can > > request stable pages by setting the bit and generic functions in mm will > > take that into account. No need for two flags... > > > > You are right that we need a mechanism to push the flags from the devices > > through various storage layers up into the bdi filesystem sees to make > > things reliable. > > md/dm will call blk_integrity_register, so pushing the "stable page writes > required" flag through the various layers is already taken care of. If devices > and filesystems can both indicate that they want stable page writes, I'll have > to keep track of however many users there are. Oh, right. When the device is partitioned and more filesystems are used, it would be reasonable to clear the flag when there are no stable-page users. Actually, thinking more about this case, two flags would make things more transparent. One flag will be in bdi and one in superblock. When device needs stable pages, it sets bdi flag. If filesystem needs stable pages, it sets the sb flag. This way we don't have to track any users. I was thinking about transferring the flag from bdi to sb on mount so that we can check only sb flag but that actually won't work because of writes directly to the block device (all block device inodes share one superblock). Thoughts? Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html