RT-AC56 3.0.0.4.374.37 core
[tomato.git] / release / src-rt-6.x.4708 / linux / linux-2.6.36 / drivers / block / drbd / drbd_wrappers.h
bloba735a5a29b6e744996632826403873c5e4a4458e
1 #ifndef _DRBD_WRAPPERS_H
2 #define _DRBD_WRAPPERS_H
4 #include <linux/ctype.h>
5 #include <linux/mm.h>
7 /* see get_sb_bdev and bd_claim */
8 extern char *drbd_sec_holder;
10 /* sets the number of 512 byte sectors of our virtual device */
11 static inline void drbd_set_my_capacity(struct drbd_conf *mdev,
12 sector_t size)
14 /* set_capacity(mdev->this_bdev->bd_disk, size); */
15 set_capacity(mdev->vdisk, size);
16 mdev->this_bdev->bd_inode->i_size = (loff_t)size << 9;
19 #define drbd_bio_uptodate(bio) bio_flagged(bio, BIO_UPTODATE)
21 /* bi_end_io handlers */
22 extern void drbd_md_io_complete(struct bio *bio, int error);
23 extern void drbd_endio_sec(struct bio *bio, int error);
24 extern void drbd_endio_pri(struct bio *bio, int error);
27 * used to submit our private bio
29 static inline void drbd_generic_make_request(struct drbd_conf *mdev,
30 int fault_type, struct bio *bio)
32 __release(local);
33 if (!bio->bi_bdev) {
34 printk(KERN_ERR "drbd%d: drbd_generic_make_request: "
35 "bio->bi_bdev == NULL\n",
36 mdev_to_minor(mdev));
37 dump_stack();
38 bio_endio(bio, -ENODEV);
39 return;
42 if (FAULT_ACTIVE(mdev, fault_type))
43 bio_endio(bio, -EIO);
44 else
45 generic_make_request(bio);
48 static inline void drbd_plug_device(struct drbd_conf *mdev)
50 struct request_queue *q;
51 q = bdev_get_queue(mdev->this_bdev);
53 spin_lock_irq(q->queue_lock);
56 if (!blk_queue_plugged(q)) {
57 blk_plug_device(q);
58 del_timer(&q->unplug_timer);
59 /* unplugging should not happen automatically... */
61 spin_unlock_irq(q->queue_lock);
64 static inline int drbd_crypto_is_hash(struct crypto_tfm *tfm)
66 return (crypto_tfm_alg_type(tfm) & CRYPTO_ALG_TYPE_HASH_MASK)
67 == CRYPTO_ALG_TYPE_HASH;
70 #ifndef __CHECKER__
71 # undef __cond_lock
72 # define __cond_lock(x,c) (c)
73 #endif
75 #endif