Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a52d9a80 authored by Chris Mason's avatar Chris Mason Committed by David Woodhouse
Browse files

Btrfs: Extent based page cache code. This uses an rbtree of extents and tests


instead of buffer heads.

Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent 83df7c1d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -4,7 +4,8 @@ ifneq ($(KERNELRELEASE),)
obj-m  := btrfs.o
btrfs-y := super.o ctree.o extent-tree.o print-tree.o root-tree.o dir-item.o \
	   hash.o file-item.o inode-item.o inode-map.o disk-io.o \
	   transaction.o bit-radix.o inode.o file.o tree-defrag.o
	   transaction.o bit-radix.o inode.o file.o tree-defrag.o \
	   extent_map.o

#btrfs-y := ctree.o disk-io.o radix-tree.o extent-tree.o print-tree.o \
#	  root-tree.o dir-item.o hash.o file-item.o inode-item.o \
+3 −0
Original line number Diff line number Diff line
@@ -19,11 +19,14 @@
#ifndef __BTRFS_I__
#define __BTRFS_I__

#include "extent_map.h"

/* in memory btrfs inode */
struct btrfs_inode {
	struct btrfs_root *root;
	struct btrfs_block_group_cache *block_group;
	struct btrfs_key location;
	struct extent_map_tree extent_tree;
	struct inode vfs_inode;

	/*
+7 −0
Original line number Diff line number Diff line
@@ -1176,7 +1176,14 @@ int btrfs_commit_write(struct file *file, struct page *page,
		       unsigned from, unsigned to);
int btrfs_get_block(struct inode *inode, sector_t iblock,
		    struct buffer_head *result, int create);
struct extent_map *btrfs_get_extent(struct inode *inode, struct page *page,
				    size_t page_offset, u64 start, u64 end,
				    int create);
int btrfs_update_inode(struct btrfs_trans_handle *trans,
			      struct btrfs_root *root,
			      struct inode *inode);
/* file.c */
int btrfs_drop_extent_cache(struct inode *inode, u64 start, u64 end);
extern struct file_operations btrfs_file_operations;
int btrfs_drop_extents(struct btrfs_trans_handle *trans,
		       struct btrfs_root *root, struct inode *inode,
+0 −1
Original line number Diff line number Diff line
@@ -77,7 +77,6 @@ int btrfs_insert_dev_radix(struct btrfs_root *root,
			   u64 num_blocks);
int btrfs_map_bh_to_logical(struct btrfs_root *root, struct buffer_head *bh,
			     u64 logical);
int btrfs_releasepage(struct page *page, gfp_t flags);
void btrfs_btree_balance_dirty(struct btrfs_root *root);
int btrfs_free_fs_root(struct btrfs_fs_info *fs_info, struct btrfs_root *root);
void btrfs_mark_buffer_dirty(struct buffer_head *bh);

fs/btrfs/extent_map.c

0 → 100644
+1656 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading