Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
fs
btrfs
backref.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2011 STRATO. All rights reserved.
3
*
4
* This program is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU General Public
6
* License v2 as published by the Free Software Foundation.
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
* General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public
14
* License along with this program; if not, write to the
15
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16
* Boston, MA 021110-1307, USA.
17
*/
18
19
#ifndef __BTRFS_BACKREF__
20
#define __BTRFS_BACKREF__
21
22
#include "
ioctl.h
"
23
#include "
ulist.h
"
24
#include "
extent_io.h
"
25
26
#define BTRFS_BACKREF_SEARCH_COMMIT_ROOT ((struct btrfs_trans_handle *)0)
27
28
struct
inode_fs_paths
{
29
struct
btrfs_path
*
btrfs_path
;
30
struct
btrfs_root
*
fs_root
;
31
struct
btrfs_data_container
*
fspath
;
32
};
33
34
typedef
int
(
iterate_extent_inodes_t
)(
u64
inum
,
u64
offset
,
u64
root
,
35
void
*
ctx
);
36
37
int
inode_item_info
(
u64
inum
,
u64
ioff,
struct
btrfs_root
*
fs_root
,
38
struct
btrfs_path
*
path
);
39
40
int
extent_from_logical
(
struct
btrfs_fs_info
*
fs_info
,
u64
logical,
41
struct
btrfs_path
*
path
,
struct
btrfs_key
*found_key,
42
u64
*
flags
);
43
44
int
tree_backref_for_extent
(
unsigned
long
*
ptr
,
struct
extent_buffer
*
eb
,
45
struct
btrfs_extent_item
*ei,
u32
item_size
,
46
u64
*out_root,
u8
*
out_level
);
47
48
int
iterate_extent_inodes
(
struct
btrfs_fs_info
*
fs_info
,
49
u64
extent_item_objectid,
50
u64
extent_offset,
int
search_commit_root,
51
iterate_extent_inodes_t
*iterate,
void
*
ctx
);
52
53
int
iterate_inodes_from_logical
(
u64
logical,
struct
btrfs_fs_info
*
fs_info
,
54
struct
btrfs_path
*
path
,
55
iterate_extent_inodes_t
*iterate,
void
*
ctx
);
56
57
int
paths_from_inode
(
u64
inum
,
struct
inode_fs_paths
*ipath);
58
59
int
btrfs_find_all_roots
(
struct
btrfs_trans_handle
*
trans
,
60
struct
btrfs_fs_info
*
fs_info
,
u64
bytenr
,
61
u64
time_seq,
struct
ulist
**roots);
62
char
*
btrfs_iref_to_path
(
struct
btrfs_root
*
fs_root
,
struct
btrfs_path
*
path
,
63
struct
btrfs_inode_ref
*iref,
struct
extent_buffer
*
eb
,
64
u64
parent,
char
*
dest
,
u32
size
);
65
char
*
btrfs_ref_to_path
(
struct
btrfs_root
*
fs_root
,
struct
btrfs_path
*
path
,
66
u32
name_len
,
unsigned
long
name_off,
67
struct
extent_buffer
*eb_in,
u64
parent,
68
char
*
dest
,
u32
size
);
69
70
struct
btrfs_data_container
*
init_data_container
(
u32
total_bytes
);
71
struct
inode_fs_paths
*
init_ipath
(
s32
total_bytes
,
struct
btrfs_root
*
fs_root
,
72
struct
btrfs_path
*
path
);
73
void
free_ipath
(
struct
inode_fs_paths
*ipath);
74
75
int
btrfs_find_one_extref
(
struct
btrfs_root
*root,
u64
inode_objectid,
76
u64
start_off,
struct
btrfs_path
*
path
,
77
struct
btrfs_inode_extref
**ret_extref,
78
u64
*found_off);
79
80
#endif
Generated on Thu Jan 10 2013 14:45:18 for Linux Kernel by
1.8.2