On Wednesday, 8 November 2006 15:25, Alasdair G Kergon wrote: > On Wed, Nov 08, 2006 at 07:27:22PM +1100, David Chinner wrote: > > But it's trivial to detect this condition - if (sb->s_frozen != SB_UNFROZEN) > > then the filesystem is already frozen and you shouldn't try to freeze > > it again. It's simple to do, and the whole problem then just goes away.... > > So is that another vote in support of explicitly supporting multiple concurrent > freeze requests, letting them all succeed, and only thawing after the last one > has requested its thaw? (It's not enough just to check SB_UNFROZEN - also need > to track whether any other outstanding requests to avoid risk of it getting > unfrozen while something independent believes it still to be frozen.) So, I think, we need the following patch to fix freeze_filesystems(). Will it be enough to cover the interactions with dm? Rafael Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx> --- fs/buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: linux-2.6.19-rc5-mm1/fs/buffer.c =================================================================== --- linux-2.6.19-rc5-mm1.orig/fs/buffer.c +++ linux-2.6.19-rc5-mm1/fs/buffer.c @@ -264,7 +264,7 @@ void freeze_filesystems(void) */ list_for_each_entry_reverse(sb, &super_blocks, s_list) { if (!sb->s_root || !sb->s_bdev || - (sb->s_frozen == SB_FREEZE_TRANS) || + (sb->s_frozen != SB_UNFROZEN) || (sb->s_flags & MS_RDONLY) || (sb->s_flags & MS_FROZEN)) continue; -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel