Btrfs: add generation field to file extent
Signed-off-by: Chris Mason <chris.mason@oracle.com>
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index a4ad39b5..c3fa12a 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -192,6 +192,7 @@
} __attribute__ ((__packed__));
struct btrfs_file_extent_item {
+ __le64 generation;
/*
* disk space consumed by the extent, checksum blocks are included
* in these numbers
@@ -764,6 +765,18 @@
e->disk_blocknr = cpu_to_le64(val);
}
+static inline u64 btrfs_file_extent_generation(struct btrfs_file_extent_item *e)
+{
+ return le64_to_cpu(e->generation);
+}
+
+static inline void btrfs_set_file_extent_generation(struct
+ btrfs_file_extent_item *e,
+ u64 val)
+{
+ e->generation = cpu_to_le64(val);
+}
+
static inline u64 btrfs_file_extent_disk_num_blocks(struct
btrfs_file_extent_item *e)
{
diff --git a/fs/btrfs/file-item.c b/fs/btrfs/file-item.c
index 4a0367d..09de270 100644
--- a/fs/btrfs/file-item.c
+++ b/fs/btrfs/file-item.c
@@ -32,6 +32,7 @@
btrfs_set_file_extent_disk_num_blocks(item, ins.offset);
btrfs_set_file_extent_offset(item, 0);
btrfs_set_file_extent_num_blocks(item, ins.offset);
+ btrfs_set_file_extent_generation(item, trans->transid);
mark_buffer_dirty(path.nodes[0]);
*result = ins.objectid;
btrfs_release_path(root, &path);