]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: create snapshot references in same commit as snapshot
authorSage Weil <sage@newdream.net>
Mon, 15 Mar 2010 17:27:13 +0000 (17:27 +0000)
committerChris Mason <chris.mason@oracle.com>
Mon, 5 Apr 2010 18:42:01 +0000 (14:42 -0400)
commitc3d3cfd8e69070303336b95f6fc46274dc3daf9f
tree39c25c85ddb1c2eecf7977e7e21a95f1c95ec21f
parentdff0fd0a92b1f542dd40080ae74d9edae60406c9
Btrfs: create snapshot references in same commit as snapshot

This creates the reference to a new snapshot in the same commit as the
snapshot itself.  This avoids the need for a second commit in order for a
snapshot to be persistent, and also avoids the problem of "leaking" a
new snapshot tree root if the host crashes before the second commit takes
place.

It is not at all clear to me why it wasn't always done this way.  If there
is still a reason for the two-stage {create,finish}_pending_snapshots()
approach I'm missing something!  :)

I've been running this for a couple weeks under pretty heavy usage (a few
snapshots per minute) without obvious problems.

Signed-off-by: Sage Weil <sage@newdream.net>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/transaction.c