]>
Commit | Line | Data |
---|---|---|
0e45bb16 MF |
1 | typedef unsigned long long u64; |
2 | struct super_block { | |
3 | unsigned long s_blocksize; | |
4 | struct block_device *s_bdev; | |
5 | }; | |
6 | struct buffer_head { | |
7 | u64 b_blocknr; | |
8 | }; | |
9 | struct buffer_head *sb_bread(struct super_block *sb, u64 block) | |
10 | { | |
11 | return __bread(sb->s_bdev, block, sb->s_blocksize); | |
12 | } | |
13 | ||
14 | struct { | |
15 | int (*test) (struct sysv_sb_info *, struct buffer_head *); | |
16 | } flavours[] = { | |
17 | }; | |
18 | int sysv_fill_super(struct super_block *sb, void *data, int silent) | |
19 | { | |
20 | struct buffer_head *bh = 0; | |
21 | unsigned long blocknr; | |
22 | int size = 0; | |
23 | int i; | |
24 | for (i = 0; i < 1 && !size; i++) | |
25 | size = flavours[i].test(SYSV_SB(sb), bh); | |
26 | switch (size) { | |
27 | case 3: | |
28 | blocknr = bh->b_blocknr >> 1; | |
29 | bh = sb_bread(sb, blocknr); | |
30 | } | |
31 | } |