|  | #ifndef _VXFS_KCOMPAT_H | 
|  | #define _VXFS_KCOMPAT_H | 
|  |  | 
|  | #include <linux/version.h> | 
|  |  | 
|  | #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)) | 
|  |  | 
|  | #include <linux/blkdev.h> | 
|  |  | 
|  | typedef long sector_t; | 
|  |  | 
|  | /* From include/linux/fs.h (Linux 2.5.2-pre3)  */ | 
|  | static inline struct buffer_head * sb_bread(struct super_block *sb, int block) | 
|  | { | 
|  | return bread(sb->s_dev, block, sb->s_blocksize); | 
|  | } | 
|  |  | 
|  | /* Dito.  */ | 
|  | static inline void map_bh(struct buffer_head *bh, struct super_block *sb, int block) | 
|  | { | 
|  | bh->b_state |= 1 << BH_Mapped; | 
|  | bh->b_dev = sb->s_dev; | 
|  | bh->b_blocknr = block; | 
|  | } | 
|  |  | 
|  | /* From fs/block_dev.c (Linux 2.5.2-pre2)  */ | 
|  | static inline int sb_set_blocksize(struct super_block *sb, int size) | 
|  | { | 
|  | int bits; | 
|  | if (set_blocksize(sb->s_dev, size) < 0) | 
|  | return 0; | 
|  | sb->s_blocksize = size; | 
|  | for (bits = 9, size >>= 9; size >>= 1; bits++) | 
|  | ; | 
|  | sb->s_blocksize_bits = bits; | 
|  | return sb->s_blocksize; | 
|  | } | 
|  |  | 
|  | /* Dito.  */ | 
|  | static inline int sb_min_blocksize(struct super_block *sb, int size) | 
|  | { | 
|  | int minsize = get_hardsect_size(sb->s_dev); | 
|  | if (size < minsize) | 
|  | size = minsize; | 
|  | return sb_set_blocksize(sb, size); | 
|  | } | 
|  |  | 
|  | #endif /* Kernel 2.4 */ | 
|  | #endif /* _VXFS_KCOMPAT_H */ |