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

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [fs/] [befs/] [inode.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
 * inode.c
3
 *
4
 * Copyright (C) 2001 Will Dyson <will_dyson@pobox.com>
5
 */
6
 
7
#include <linux/fs.h>
8
 
9
#include "befs.h"
10
#include "inode.h"
11
 
12
/*
13
        Validates the correctness of the befs inode
14
        Returns BEFS_OK if the inode should be used, otherwise
15
        returns BEFS_BAD_INODE
16
*/
17
int
18
befs_check_inode(struct super_block *sb, befs_inode * raw_inode,
19
                 befs_blocknr_t inode)
20
{
21
        u32 magic1 = fs32_to_cpu(sb, raw_inode->magic1);
22
        befs_inode_addr ino_num = fsrun_to_cpu(sb, raw_inode->inode_num);
23
        u32 flags = fs32_to_cpu(sb, raw_inode->flags);
24
 
25
        /* check magic header. */
26
        if (magic1 != BEFS_INODE_MAGIC1) {
27
                befs_error(sb,
28
                           "Inode has a bad magic header - inode = %lu", inode);
29
                return BEFS_BAD_INODE;
30
        }
31
 
32
        /*
33
         * Sanity check2: inodes store their own block address. Check it.
34
         */
35
        if (inode != iaddr2blockno(sb, &ino_num)) {
36
                befs_error(sb, "inode blocknr field disagrees with vfs "
37
                           "VFS: %lu, Inode %lu",
38
                           inode, iaddr2blockno(sb, &ino_num));
39
                return BEFS_BAD_INODE;
40
        }
41
 
42
        /*
43
         * check flag
44
         */
45
 
46
        if (!(flags & BEFS_INODE_IN_USE)) {
47
                befs_error(sb, "inode is not used - inode = %lu", inode);
48
                return BEFS_BAD_INODE;
49
        }
50
 
51
        return BEFS_OK;
52
}

powered by: WebSVN 2.1.0

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