diff --git a/fs/bcachefs/bcachefs_format.h b/fs/bcachefs/bcachefs_format.h
index 0d5ac4184fbcef5a2b7ae618d6bdf81478f09530..a76036179238eeedae570214529643e2f10f1280 100644
--- a/fs/bcachefs/bcachefs_format.h
+++ b/fs/bcachefs/bcachefs_format.h
@@ -1149,6 +1149,7 @@ struct bch_snapshot {
 	__le32			tree;
 	__le32			depth;
 	__le32			skip[3];
+	bch_le128		btime;
 };
 
 LE32_BITMASK(BCH_SNAPSHOT_DELETED,	struct bch_snapshot, flags,  0,  1)
diff --git a/fs/bcachefs/snapshot.c b/fs/bcachefs/snapshot.c
index cdcff4e5ae5c38d8e0fe46e3d58a7a2ff9349caa..45f67e8b29eb67f188e5cfb32aa39e0b1ad1d625 100644
--- a/fs/bcachefs/snapshot.c
+++ b/fs/bcachefs/snapshot.c
@@ -1053,6 +1053,8 @@ static int create_snapids(struct btree_trans *trans, u32 parent, u32 tree,
 		n->v.subvol	= cpu_to_le32(snapshot_subvols[i]);
 		n->v.tree	= cpu_to_le32(tree);
 		n->v.depth	= cpu_to_le32(depth);
+		n->v.btime.lo	= cpu_to_le64(bch2_current_time(c));
+		n->v.btime.hi	= 0;
 
 		for (j = 0; j < ARRAY_SIZE(n->v.skip); j++)
 			n->v.skip[j] = cpu_to_le32(bch2_snapshot_skiplist_get(c, parent));