blob: 151f1a37478f954360cd4fe91767922acf9ec1e7 [file] [log] [blame]
Philipp Reisnerb411b362009-09-25 16:07:19 -07001#ifndef _DRBD_WRAPPERS_H
2#define _DRBD_WRAPPERS_H
3
4#include <linux/ctype.h>
5#include <linux/mm.h>
6
7/* see get_sb_bdev and bd_claim */
8extern char *drbd_sec_holder;
9
10/* sets the number of 512 byte sectors of our virtual device */
11static inline void drbd_set_my_capacity(struct drbd_conf *mdev,
12 sector_t size)
13{
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;
17}
18
19#define drbd_bio_uptodate(bio) bio_flagged(bio, BIO_UPTODATE)
20
Philipp Reisnerb411b362009-09-25 16:07:19 -070021/* bi_end_io handlers */
22extern void drbd_md_io_complete(struct bio *bio, int error);
Lars Ellenberg45bb9122010-05-14 17:10:48 +020023extern void drbd_endio_sec(struct bio *bio, int error);
Philipp Reisnerb411b362009-09-25 16:07:19 -070024extern void drbd_endio_pri(struct bio *bio, int error);
25
26/*
27 * used to submit our private bio
28 */
29static inline void drbd_generic_make_request(struct drbd_conf *mdev,
30 int fault_type, struct bio *bio)
31{
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;
40 }
41
Andreas Gruenbacher0cf9d272010-12-07 10:43:29 +010042 if (drbd_insert_fault(mdev, fault_type))
Philipp Reisnerb411b362009-09-25 16:07:19 -070043 bio_endio(bio, -EIO);
44 else
45 generic_make_request(bio);
46}
47
Philipp Reisnerb411b362009-09-25 16:07:19 -070048static inline int drbd_crypto_is_hash(struct crypto_tfm *tfm)
49{
50 return (crypto_tfm_alg_type(tfm) & CRYPTO_ALG_TYPE_HASH_MASK)
51 == CRYPTO_ALG_TYPE_HASH;
52}
53
54#ifndef __CHECKER__
55# undef __cond_lock
56# define __cond_lock(x,c) (c)
57#endif
58
59#endif