~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to fs/omfs/omfs.h

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef _OMFS_H
 
2
#define _OMFS_H
 
3
 
 
4
#include <linux/module.h>
 
5
#include <linux/fs.h>
 
6
 
 
7
#include "omfs_fs.h"
 
8
 
 
9
/* In-memory structures */
 
10
struct omfs_sb_info {
 
11
        u64 s_num_blocks;
 
12
        u64 s_bitmap_ino;
 
13
        u64 s_root_ino;
 
14
        u32 s_blocksize;
 
15
        u32 s_mirrors;
 
16
        u32 s_sys_blocksize;
 
17
        u32 s_clustersize;
 
18
        int s_block_shift;
 
19
        unsigned long **s_imap;
 
20
        int s_imap_size;
 
21
        struct mutex s_bitmap_lock;
 
22
        int s_uid;
 
23
        int s_gid;
 
24
        int s_dmask;
 
25
        int s_fmask;
 
26
};
 
27
 
 
28
/* convert a cluster number to a scaled block number */
 
29
static inline sector_t clus_to_blk(struct omfs_sb_info *sbi, sector_t block)
 
30
{
 
31
        return block << sbi->s_block_shift;
 
32
}
 
33
 
 
34
static inline struct omfs_sb_info *OMFS_SB(struct super_block *sb)
 
35
{
 
36
        return sb->s_fs_info;
 
37
}
 
38
 
 
39
/* bitmap.c */
 
40
extern unsigned long omfs_count_free(struct super_block *sb);
 
41
extern int omfs_allocate_block(struct super_block *sb, u64 block);
 
42
extern int omfs_allocate_range(struct super_block *sb, int min_request,
 
43
                        int max_request, u64 *return_block, int *return_size);
 
44
extern int omfs_clear_range(struct super_block *sb, u64 block, int count);
 
45
 
 
46
/* dir.c */
 
47
extern const struct file_operations omfs_dir_operations;
 
48
extern const struct inode_operations omfs_dir_inops;
 
49
extern int omfs_make_empty(struct inode *inode, struct super_block *sb);
 
50
extern int omfs_is_bad(struct omfs_sb_info *sbi, struct omfs_header *header,
 
51
                        u64 fsblock);
 
52
 
 
53
/* file.c */
 
54
extern const struct file_operations omfs_file_operations;
 
55
extern const struct inode_operations omfs_file_inops;
 
56
extern const struct address_space_operations omfs_aops;
 
57
extern void omfs_make_empty_table(struct buffer_head *bh, int offset);
 
58
extern int omfs_shrink_inode(struct inode *inode);
 
59
 
 
60
/* inode.c */
 
61
extern struct buffer_head *omfs_bread(struct super_block *sb, sector_t block);
 
62
extern struct inode *omfs_iget(struct super_block *sb, ino_t inode);
 
63
extern struct inode *omfs_new_inode(struct inode *dir, int mode);
 
64
extern int omfs_reserve_block(struct super_block *sb, sector_t block);
 
65
extern int omfs_find_empty_block(struct super_block *sb, int mode, ino_t *ino);
 
66
extern int omfs_sync_inode(struct inode *inode);
 
67
 
 
68
#endif