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)
commit6bdb72ded1e281cd8844918c39d00cdd0e59f655
tree39c25c85ddb1c2eecf7977e7e21a95f1c95ec21f
parentb5cb160084fad438c513d0952849e597ffe9e3d9
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