diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/blk_types.h | 23 | ||||
-rw-r--r-- | include/linux/blkdev.h | 36 | ||||
-rw-r--r-- | include/linux/poison.h | 3 |
3 files changed, 33 insertions, 29 deletions
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h index 80560ab6..3cbf8c9e 100644 --- a/include/linux/blk_types.h +++ b/include/linux/blk_types.h @@ -16,6 +16,28 @@ typedef void (bio_end_io_t) (struct bio *); #define BDEVNAME_SIZE 32 +typedef unsigned int __bitwise blk_mode_t; + +/* open for reading */ +#define BLK_OPEN_READ ((__force blk_mode_t)(1 << 0)) +/* open for writing */ +#define BLK_OPEN_WRITE ((__force blk_mode_t)(1 << 1)) +/* open exclusively (vs other exclusive openers */ +#define BLK_OPEN_EXCL ((__force blk_mode_t)(1 << 2)) +/* opened with O_NDELAY */ +#define BLK_OPEN_NDELAY ((__force blk_mode_t)(1 << 3)) +/* open for "writes" only for ioctls (specialy hack for floppy.c) */ +#define BLK_OPEN_WRITE_IOCTL ((__force blk_mode_t)(1 << 4)) + +#define BLK_OPEN_BUFFERED ((__force blk_mode_t)(1 << 5)) + +struct inode { + unsigned long i_ino; + loff_t i_size; + struct super_block *i_sb; + blk_mode_t mode; +}; + struct request_queue { struct backing_dev_info *backing_dev_info; }; @@ -34,6 +56,7 @@ struct block_device { dev_t bd_dev; char name[BDEVNAME_SIZE]; struct inode *bd_inode; + struct inode __bd_inode; struct request_queue queue; void *bd_holder; struct gendisk * bd_disk; diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 998f5e2c..1d825a70 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -23,27 +23,6 @@ struct user_namespace; #define MINOR(dev) ((unsigned int) ((dev) & MINORMASK)) #define MKDEV(ma,mi) (((ma) << MINORBITS) | (mi)) -typedef unsigned int __bitwise blk_mode_t; - -/* open for reading */ -#define BLK_OPEN_READ ((__force blk_mode_t)(1 << 0)) -/* open for writing */ -#define BLK_OPEN_WRITE ((__force blk_mode_t)(1 << 1)) -/* open exclusively (vs other exclusive openers */ -#define BLK_OPEN_EXCL ((__force blk_mode_t)(1 << 2)) -/* opened with O_NDELAY */ -#define BLK_OPEN_NDELAY ((__force blk_mode_t)(1 << 3)) -/* open for "writes" only for ioctls (specialy hack for floppy.c) */ -#define BLK_OPEN_WRITE_IOCTL ((__force blk_mode_t)(1 << 4)) - -#define BLK_OPEN_BUFFERED ((__force blk_mode_t)(1 << 5)) - -struct inode { - unsigned long i_ino; - loff_t i_size; - struct super_block *i_sb; -}; - struct file { struct inode *f_inode; }; @@ -89,15 +68,14 @@ struct blk_holder_ops { void (*mark_dead)(struct block_device *bdev); }; -struct bdev_handle { - struct block_device *bdev; - void *holder; - blk_mode_t mode; -}; +static inline struct block_device *file_bdev(struct file *file) +{ + return container_of(file->f_inode, struct block_device, __bd_inode); +} -void bdev_release(struct bdev_handle *); -struct bdev_handle *bdev_open_by_path(const char *, blk_mode_t, void *, - const struct blk_holder_ops *); +void fput(struct file *); +struct file *bdev_file_open_by_path(const char *, blk_mode_t, void *, + const struct blk_holder_ops *); int lookup_bdev(const char *path, dev_t *); struct super_block { diff --git a/include/linux/poison.h b/include/linux/poison.h index 27a7dad1..1f0ee245 100644 --- a/include/linux/poison.h +++ b/include/linux/poison.h @@ -92,4 +92,7 @@ /********** VFS **********/ #define VFS_PTR_POISON ((void *)(0xF5 + POISON_POINTER_DELTA)) +/********** lib/stackdepot.c **********/ +#define STACK_DEPOT_POISON ((void *)(0xD390 + POISON_POINTER_DELTA)) + #endif |