linux/fs/btrfs/raid-stripe-tree.h

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright (C) 2023 Western Digital Corporation or its affiliates.
 */

#ifndef BTRFS_RAID_STRIPE_TREE_H
#define BTRFS_RAID_STRIPE_TREE_H

#include <linux/types.h>
#include <uapi/linux/btrfs_tree.h>
#include "fs.h"

#define BTRFS_RST_SUPP_BLOCK_GROUP_MASK

struct btrfs_io_context;
struct btrfs_io_stripe;
struct btrfs_fs_info;
struct btrfs_ordered_extent;
struct btrfs_trans_handle;

int btrfs_delete_raid_extent(struct btrfs_trans_handle *trans, u64 start, u64 length);
int btrfs_get_raid_extent_offset(struct btrfs_fs_info *fs_info,
				 u64 logical, u64 *length, u64 map_type,
				 u32 stripe_index, struct btrfs_io_stripe *stripe);
int btrfs_insert_raid_extent(struct btrfs_trans_handle *trans,
			     struct btrfs_ordered_extent *ordered_extent);

static inline bool btrfs_need_stripe_tree_update(struct btrfs_fs_info *fs_info,
						 u64 map_type)
{}

static inline int btrfs_num_raid_stripes(u32 item_size)
{}

#endif