OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [fs/] [efs/] [file.c] - Blame information for rev 79

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
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 <linux/efs_fs.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
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.