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
disk-io.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2007 Oracle. 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 __DISKIO__
20
#define __DISKIO__
21
22
#define BTRFS_SUPER_INFO_OFFSET (64 * 1024)
23
#define BTRFS_SUPER_INFO_SIZE 4096
24
25
#define BTRFS_SUPER_MIRROR_MAX 3
26
#define BTRFS_SUPER_MIRROR_SHIFT 12
27
28
static
inline
u64
btrfs_sb_offset(
int
mirror
)
29
{
30
u64
start
= 16 * 1024;
31
if
(mirror)
32
return
start << (
BTRFS_SUPER_MIRROR_SHIFT
* mirror);
33
return
BTRFS_SUPER_INFO_OFFSET
;
34
}
35
36
struct
btrfs_device
;
37
struct
btrfs_fs_devices
;
38
39
struct
extent_buffer
*
read_tree_block
(
struct
btrfs_root
*root,
u64
bytenr
,
40
u32
blocksize,
u64
parent_transid);
41
int
readahead_tree_block
(
struct
btrfs_root
*root,
u64
bytenr
,
u32
blocksize,
42
u64
parent_transid);
43
int
reada_tree_block_flagged
(
struct
btrfs_root
*root,
u64
bytenr
,
u32
blocksize,
44
int
mirror_num,
struct
extent_buffer
**
eb
);
45
struct
extent_buffer
*
btrfs_find_create_tree_block
(
struct
btrfs_root
*root,
46
u64
bytenr
,
u32
blocksize);
47
void
clean_tree_block
(
struct
btrfs_trans_handle
*
trans
,
48
struct
btrfs_root
*root,
struct
extent_buffer
*
buf
);
49
int
open_ctree
(
struct
super_block
*
sb
,
50
struct
btrfs_fs_devices
*fs_devices,
51
char
*
options
);
52
int
close_ctree
(
struct
btrfs_root
*root);
53
int
write_ctree_super
(
struct
btrfs_trans_handle
*
trans
,
54
struct
btrfs_root
*root,
int
max_mirrors);
55
struct
buffer_head *
btrfs_read_dev_super
(
struct
block_device
*bdev);
56
int
btrfs_commit_super
(
struct
btrfs_root
*root);
57
void
btrfs_error_commit_super
(
struct
btrfs_root
*root);
58
struct
extent_buffer
*
btrfs_find_tree_block
(
struct
btrfs_root
*root,
59
u64
bytenr
,
u32
blocksize);
60
struct
btrfs_root
*
btrfs_read_fs_root_no_radix
(
struct
btrfs_root
*
tree_root
,
61
struct
btrfs_key
*
location
);
62
struct
btrfs_root
*
btrfs_read_fs_root_no_name
(
struct
btrfs_fs_info
*
fs_info
,
63
struct
btrfs_key
*
location
);
64
int
btrfs_cleanup_fs_roots
(
struct
btrfs_fs_info
*
fs_info
);
65
void
btrfs_btree_balance_dirty
(
struct
btrfs_root
*root,
unsigned
long
nr
);
66
void
__btrfs_btree_balance_dirty
(
struct
btrfs_root
*root,
unsigned
long
nr
);
67
void
btrfs_free_fs_root
(
struct
btrfs_fs_info
*
fs_info
,
struct
btrfs_root
*root);
68
void
btrfs_mark_buffer_dirty
(
struct
extent_buffer
*
buf
);
69
int
btrfs_buffer_uptodate
(
struct
extent_buffer
*
buf
,
u64
parent_transid,
70
int
atomic);
71
int
btrfs_set_buffer_uptodate
(
struct
extent_buffer
*
buf
);
72
int
btrfs_read_buffer
(
struct
extent_buffer
*
buf
,
u64
parent_transid);
73
u32
btrfs_csum_data
(
struct
btrfs_root
*root,
char
*
data
,
u32
seed,
size_t
len);
74
void
btrfs_csum_final
(
u32
crc
,
char
*
result
);
75
int
btrfs_bio_wq_end_io
(
struct
btrfs_fs_info
*
info
,
struct
bio *bio,
76
int
metadata);
77
int
btrfs_wq_submit_bio
(
struct
btrfs_fs_info
*
fs_info
,
struct
inode
*
inode
,
78
int
rw
,
struct
bio *bio,
int
mirror_num,
79
unsigned
long
bio_flags,
u64
bio_offset,
80
extent_submit_bio_hook_t
*submit_bio_start,
81
extent_submit_bio_hook_t
*submit_bio_done);
82
unsigned
long
btrfs_async_submit_limit
(
struct
btrfs_fs_info
*
info
);
83
int
btrfs_write_tree_block
(
struct
extent_buffer
*
buf
);
84
int
btrfs_wait_tree_block_writeback
(
struct
extent_buffer
*
buf
);
85
int
btrfs_init_log_root_tree
(
struct
btrfs_trans_handle
*
trans
,
86
struct
btrfs_fs_info
*
fs_info
);
87
int
btrfs_add_log_tree
(
struct
btrfs_trans_handle
*
trans
,
88
struct
btrfs_root
*root);
89
int
btrfs_cleanup_transaction
(
struct
btrfs_root
*root);
90
void
btrfs_cleanup_one_transaction
(
struct
btrfs_transaction
*
trans
,
91
struct
btrfs_root
*root);
92
void
btrfs_abort_devices
(
struct
btrfs_root
*root);
93
struct
btrfs_root
*
btrfs_create_tree
(
struct
btrfs_trans_handle
*
trans
,
94
struct
btrfs_fs_info
*
fs_info
,
95
u64
objectid
);
96
int
btree_lock_page_hook
(
struct
page
*
page
,
void
*
data
,
97
void
(*flush_fn)(
void
*));
98
int
btrfs_calc_num_tolerated_disk_barrier_failures
(
99
struct
btrfs_fs_info
*
fs_info
);
100
101
#ifdef CONFIG_DEBUG_LOCK_ALLOC
102
void
btrfs_init_lockdep(
void
);
103
void
btrfs_set_buffer_lockdep_class(
u64
objectid
,
104
struct
extent_buffer
*
eb
,
int
level
);
105
#else
106
static
inline
void
btrfs_init_lockdep(
void
)
107
{ }
108
static
inline
void
btrfs_set_buffer_lockdep_class(
u64
objectid
,
109
struct
extent_buffer
*
eb
,
int
level
)
110
{
111
}
112
#endif
113
#endif
Generated on Thu Jan 10 2013 14:45:26 for Linux Kernel by
1.8.2