special usb hub handling, IDE disks, and retries all over the place
[linux-2.4.git] / fs / fat / buffer.c
1 /*
2  * linux/fs/fat/buffer.c
3  *
4  *
5  */
6
7 #include <linux/mm.h>
8 #include <linux/slab.h>
9 #include <linux/string.h>
10 #include <linux/fs.h>
11 #include <linux/blkdev.h>
12 #include <linux/msdos_fs.h>
13 #include <linux/fat_cvf.h>
14
15 #if 0
16 #  define PRINTK(x) printk x
17 #else
18 #  define PRINTK(x)
19 #endif
20
21 struct buffer_head *fat_bread(struct super_block *sb, int block)
22 {
23         return MSDOS_SB(sb)->cvf_format->cvf_bread(sb,block);
24 }
25 struct buffer_head *fat_getblk(struct super_block *sb, int block)
26 {
27         return MSDOS_SB(sb)->cvf_format->cvf_getblk(sb,block);
28 }
29 void fat_brelse (struct super_block *sb, struct buffer_head *bh)
30 {
31         if (bh) 
32                 MSDOS_SB(sb)->cvf_format->cvf_brelse(sb,bh);
33 }
34 void fat_mark_buffer_dirty (
35         struct super_block *sb,
36         struct buffer_head *bh)
37 {
38         MSDOS_SB(sb)->cvf_format->cvf_mark_buffer_dirty(sb,bh);
39 }
40 void fat_set_uptodate (
41         struct super_block *sb,
42         struct buffer_head *bh,
43         int val)
44 {
45         MSDOS_SB(sb)->cvf_format->cvf_set_uptodate(sb,bh,val);
46 }
47 int fat_is_uptodate(struct super_block *sb, struct buffer_head *bh)
48 {
49         return MSDOS_SB(sb)->cvf_format->cvf_is_uptodate(sb,bh);
50 }
51 void fat_ll_rw_block (
52         struct super_block *sb,
53         int opr,
54         int nbreq,
55         struct buffer_head *bh[32])
56 {
57         MSDOS_SB(sb)->cvf_format->cvf_ll_rw_block(sb,opr,nbreq,bh);
58 }
59
60 struct buffer_head *default_fat_bread(struct super_block *sb, int block)
61 {
62         return sb_bread(sb, block);
63 }
64
65 struct buffer_head *default_fat_getblk(struct super_block *sb, int block)
66 {
67         return sb_getblk(sb, block);
68 }
69
70 void default_fat_brelse(struct super_block *sb, struct buffer_head *bh)
71 {
72         brelse (bh);
73 }
74
75 void default_fat_mark_buffer_dirty (
76         struct super_block *sb,
77         struct buffer_head *bh)
78 {
79         mark_buffer_dirty (bh);
80 }
81
82 void default_fat_set_uptodate (
83         struct super_block *sb,
84         struct buffer_head *bh,
85         int val)
86 {
87         mark_buffer_uptodate(bh, val);
88 }
89
90 int default_fat_is_uptodate (struct super_block *sb, struct buffer_head *bh)
91 {
92         return buffer_uptodate(bh);
93 }
94
95 void default_fat_ll_rw_block (
96         struct super_block *sb,
97         int opr,
98         int nbreq,
99         struct buffer_head *bh[32])
100 {
101         ll_rw_block(opr,nbreq,bh);
102 }