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
efs
file.c
Go to the documentation of this file.
1
/*
2
* file.c
3
*
4
* Copyright (c) 1999 Al Smith
5
*
6
* Portions derived from work (c) 1995,1996 Christian Vogelgsang.
7
*/
8
9
#include <
linux/buffer_head.h
>
10
#include "
efs.h
"
11
12
int
efs_get_block
(
struct
inode
*
inode
,
sector_t
iblock,
13
struct
buffer_head *bh_result,
int
create
)
14
{
15
int
error
= -
EROFS
;
16
long
phys
;
17
18
if
(create)
19
return
error
;
20
if
(iblock >= inode->
i_blocks
) {
21
#ifdef DEBUG
22
/*
23
* i have no idea why this happens as often as it does
24
*/
25
printk
(
KERN_WARNING
"EFS: bmap(): block %d >= %ld (filesize %ld)\n"
,
26
block
,
27
inode->
i_blocks
,
28
inode->
i_size
);
29
#endif
30
return
0;
31
}
32
phys =
efs_map_block
(inode, iblock);
33
if
(phys)
34
map_bh(bh_result, inode->
i_sb
, phys);
35
return
0;
36
}
37
38
int
efs_bmap
(
struct
inode
*
inode
,
efs_block_t
block
) {
39
40
if
(block < 0) {
41
printk
(
KERN_WARNING
"EFS: bmap(): block < 0\n"
);
42
return
0;
43
}
44
45
/* are we about to read past the end of a file ? */
46
if
(!(
block < inode->
i_blocks)) {
47
#ifdef DEBUG
48
/*
49
* i have no idea why this happens as often as it does
50
*/
51
printk
(
KERN_WARNING
"EFS: bmap(): block %d >= %ld (filesize %ld)\n"
,
52
block,
53
inode->
i_blocks
,
54
inode->
i_size
);
55
#endif
56
return
0;
57
}
58
59
return
efs_map_block
(inode, block);
60
}
Generated on Thu Jan 10 2013 13:09:23 for Linux Kernel by
1.8.2