btrfs-progs: add dev stats on-disk structure
authorDavid Sterba <dsterba@suse.com>
Wed, 2 Nov 2016 01:10:52 +0000 (02:10 +0100)
committerDavid Sterba <dsterba@suse.com>
Wed, 9 Nov 2016 12:47:30 +0000 (13:47 +0100)
Signed-off-by: David Sterba <dsterba@suse.com>
ctree.h

diff --git a/ctree.h b/ctree.h
index a591765..7f25d1e 100644 (file)
--- a/ctree.h
+++ b/ctree.h
@@ -919,6 +919,14 @@ struct btrfs_file_extent_item {
 
 } __attribute__ ((__packed__));
 
+struct btrfs_dev_stats_item {
+        /*
+         * grow this item struct at the end for future enhancements and keep
+         * the existing values unchanged
+         */
+        __le64 values[BTRFS_DEV_STAT_VALUES_MAX];
+} __attribute__ ((__packed__));
+
 struct btrfs_csum_item {
        u8 csum;
 } __attribute__ ((__packed__));
@@ -2334,6 +2342,19 @@ static inline struct btrfs_disk_balance_args* btrfs_balance_item_sys(
 }
 
 /*
+ * btrfs_dev_stats_item helper, returns pointer to the raw array, do the
+ * endiannes conversion, @dsi is offset to eb data
+ */
+static inline __le64* btrfs_dev_stats_values(struct extent_buffer *eb,
+               struct btrfs_dev_stats_item *dsi)
+{
+       unsigned long offset = (unsigned long)dsi;
+       struct btrfs_dev_stats_item *p;
+       p = (struct btrfs_dev_stats_item *)(eb->data + offset);
+       return p->values;
+}
+
+/*
  * this returns the number of bytes used by the item on disk, minus the
  * size of any extent headers.  If a file is compressed on disk, this is
  * the compressed size