Blame view
fs/minix/itree_v2.c
1.6 KB
1da177e4c Linux-2.6.12-rc2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include <linux/buffer_head.h> #include "minix.h" enum {DIRECT = 7, DEPTH = 4}; /* Have triple indirect */ typedef u32 block_t; /* 32 bit, host order */ static inline unsigned long block_to_cpu(block_t n) { return n; } static inline block_t cpu_to_block(unsigned long n) { return n; } static inline block_t *i_data(struct inode *inode) { return (block_t *)minix_i(inode)->u.i2_data; } static int block_to_path(struct inode * inode, long block, int offsets[DEPTH]) { int n = 0; |
f44ec6f3f limit minixfs pri... |
26 |
char b[BDEVNAME_SIZE]; |
939b00df0 [PATCH] Minix V3 ... |
27 |
struct super_block *sb = inode->i_sb; |
1da177e4c Linux-2.6.12-rc2 |
28 29 |
if (block < 0) { |
f44ec6f3f limit minixfs pri... |
30 31 32 |
printk("MINIX-fs: block_to_path: block %ld < 0 on dev %s ", block, bdevname(sb->s_bdev, b)); |
939b00df0 [PATCH] Minix V3 ... |
33 |
} else if (block >= (minix_sb(inode->i_sb)->s_max_size/sb->s_blocksize)) { |
f44ec6f3f limit minixfs pri... |
34 35 36 37 38 |
if (printk_ratelimit()) printk("MINIX-fs: block_to_path: " "block %ld too big on dev %s ", block, bdevname(sb->s_bdev, b)); |
1da177e4c Linux-2.6.12-rc2 |
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
} else if (block < 7) { offsets[n++] = block; } else if ((block -= 7) < 256) { offsets[n++] = 7; offsets[n++] = block; } else if ((block -= 256) < 256*256) { offsets[n++] = 8; offsets[n++] = block>>8; offsets[n++] = block & 255; } else { block -= 256*256; offsets[n++] = 9; offsets[n++] = block>>16; offsets[n++] = (block>>8) & 255; offsets[n++] = block & 255; } return n; } #include "itree_common.c" int V2_minix_get_block(struct inode * inode, long block, struct buffer_head *bh_result, int create) { return get_block(inode, block, bh_result, create); } void V2_minix_truncate(struct inode * inode) { truncate(inode); } |
939b00df0 [PATCH] Minix V3 ... |
70 |
unsigned V2_minix_blocks(loff_t size, struct super_block *sb) |
1da177e4c Linux-2.6.12-rc2 |
71 |
{ |
939b00df0 [PATCH] Minix V3 ... |
72 |
return nblocks(size, sb); |
1da177e4c Linux-2.6.12-rc2 |
73 |
} |