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
gfs2
bmap.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3
* Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4
*
5
* This copyrighted material is made available to anyone wishing to use,
6
* modify, copy, or redistribute it subject to the terms and conditions
7
* of the GNU General Public License version 2.
8
*/
9
10
#ifndef __BMAP_DOT_H__
11
#define __BMAP_DOT_H__
12
13
#include "
inode.h
"
14
15
struct
inode
;
16
struct
gfs2_inode
;
17
struct
page
;
18
19
29
static
inline
void
gfs2_write_calc_reserv(
const
struct
gfs2_inode
*
ip
,
30
unsigned
int
len,
31
unsigned
int
*data_blocks,
32
unsigned
int
*ind_blocks)
33
{
34
const
struct
gfs2_sbd
*sdp = GFS2_SB(&ip->
i_inode
);
35
unsigned
int
tmp
;
36
37
BUG_ON
(gfs2_is_dir(ip));
38
*data_blocks = (len >> sdp->
sd_sb
.sb_bsize_shift) + 3;
39
*ind_blocks = 3 * (sdp->
sd_max_height
- 1);
40
41
for
(tmp = *data_blocks; tmp > sdp->
sd_diptrs
;) {
42
tmp =
DIV_ROUND_UP
(tmp, sdp->
sd_inptrs
);
43
*ind_blocks +=
tmp
;
44
}
45
}
46
47
extern
int
gfs2_unstuff_dinode
(
struct
gfs2_inode
*ip,
struct
page
*
page
);
48
extern
int
gfs2_block_map
(
struct
inode
*
inode
,
sector_t
lblock,
49
struct
buffer_head *bh,
int
create
);
50
extern
int
gfs2_extent_map
(
struct
inode
*
inode
,
u64
lblock,
int
*
new
,
51
u64
*
dblock
,
unsigned
*extlen);
52
extern
int
gfs2_setattr_size
(
struct
inode
*
inode
,
u64
size
);
53
extern
void
gfs2_trim_blocks
(
struct
inode
*
inode
);
54
extern
int
gfs2_truncatei_resume
(
struct
gfs2_inode
*ip);
55
extern
int
gfs2_file_dealloc
(
struct
gfs2_inode
*ip);
56
extern
int
gfs2_write_alloc_required
(
struct
gfs2_inode
*ip,
u64
offset
,
57
unsigned
int
len);
58
59
#endif
/* __BMAP_DOT_H__ */
Generated on Thu Jan 10 2013 14:47:12 for Linux Kernel by
1.8.2