39 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef _BCACHEFS_SUBVOLUME_TYPES_H3#define _BCACHEFS_SUBVOLUME_TYPES_H4 5#include "darray.h"6 7typedef DARRAY(u32) snapshot_id_list;8 9#define IS_ANCESTOR_BITMAP 12810 11struct snapshot_t {12 u32 parent;13 u32 skip[3];14 u32 depth;15 u32 children[2];16 u32 subvol; /* Nonzero only if a subvolume points to this node: */17 u32 tree;18 u32 equiv;19 unsigned long is_ancestor[BITS_TO_LONGS(IS_ANCESTOR_BITMAP)];20};21 22struct snapshot_table {23 struct rcu_head rcu;24 size_t nr;25#ifndef RUST_BINDGEN26 DECLARE_FLEX_ARRAY(struct snapshot_t, s);27#else28 struct snapshot_t s[0];29#endif30};31 32typedef struct {33 /* we can't have padding in this struct: */34 u64 subvol;35 u64 inum;36} subvol_inum;37 38#endif /* _BCACHEFS_SUBVOLUME_TYPES_H */39