Commit 621c1f42 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe

block: move struct block_device to blk_types.h

Move the struct block_device definition together with most of the
block layer definitions, as it has nothing to do with the rest of fs.h.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 1a4dcfa8
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/statfs.h> #include <linux/statfs.h>
#include <linux/user_namespace.h> #include <linux/user_namespace.h>
#include <linux/blkdev.h>
#include "adfs.h" #include "adfs.h"
#include "dir_f.h" #include "dir_f.h"
#include "dir_fplus.h" #include "dir_fplus.h"
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include <linux/cred.h> #include <linux/cred.h>
#include <linux/exportfs.h> #include <linux/exportfs.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/blkdev.h>
#include "befs.h" #include "befs.h"
#include "btree.h" #include "btree.h"
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/buffer_head.h> #include <linux/buffer_head.h>
#include <linux/vfs.h> #include <linux/vfs.h>
#include <linux/blkdev.h>
#include "efs.h" #include "efs.h"
#include <linux/efs_vh.h> #include <linux/efs_vh.h>
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include <linux/fs.h> #include <linux/fs.h>
#include <linux/buffer_head.h> #include <linux/buffer_head.h>
#include <linux/blkdev.h>
#include "jfs_incore.h" #include "jfs_incore.h"
#include "jfs_filsys.h" #include "jfs_filsys.h"
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include <linux/fs.h> #include <linux/fs.h>
#include <linux/buffer_head.h> #include <linux/buffer_head.h>
#include <linux/quotaops.h> #include <linux/quotaops.h>
#include <linux/blkdev.h>
#include "jfs_incore.h" #include "jfs_incore.h"
#include "jfs_filsys.h" #include "jfs_filsys.h"
#include "jfs_metapage.h" #include "jfs_metapage.h"
......
...@@ -14,12 +14,49 @@ struct bio_set; ...@@ -14,12 +14,49 @@ struct bio_set;
struct bio; struct bio;
struct bio_integrity_payload; struct bio_integrity_payload;
struct page; struct page;
struct block_device;
struct io_context; struct io_context;
struct cgroup_subsys_state; struct cgroup_subsys_state;
typedef void (bio_end_io_t) (struct bio *); typedef void (bio_end_io_t) (struct bio *);
struct bio_crypt_ctx; struct bio_crypt_ctx;
struct block_device {
dev_t bd_dev; /* not a kdev_t - it's a search key */
int bd_openers;
struct inode * bd_inode; /* will die */
struct super_block * bd_super;
struct mutex bd_mutex; /* open/close mutex */
void * bd_claiming;
void * bd_holder;
int bd_holders;
bool bd_write_holder;
#ifdef CONFIG_SYSFS
struct list_head bd_holder_disks;
#endif
struct block_device * bd_contains;
unsigned bd_block_size;
u8 bd_partno;
struct hd_struct * bd_part;
/* number of times partitions within this device have been opened. */
unsigned bd_part_count;
int bd_invalidated;
struct gendisk * bd_disk;
struct request_queue * bd_queue;
struct backing_dev_info *bd_bdi;
struct list_head bd_list;
/*
* Private data. You must have bd_claim'ed the block_device
* to use this. NOTE: bd_claim allows an owner to claim
* the same device multiple times, the owner must take special
* care to not mess up bd_private for that case.
*/
unsigned long bd_private;
/* The counter of freeze processes */
int bd_fsfreeze_count;
/* Mutex for freeze */
struct mutex bd_fsfreeze_mutex;
} __randomize_layout;
/* /*
* Block error status values. See block/blk-core:blk_errors for the details. * Block error status values. See block/blk-core:blk_errors for the details.
* Alpha cannot write a byte atomically, so we need to use 32-bit value. * Alpha cannot write a byte atomically, so we need to use 32-bit value.
......
...@@ -1930,6 +1930,7 @@ void bd_abort_claiming(struct block_device *bdev, struct block_device *whole, ...@@ -1930,6 +1930,7 @@ void bd_abort_claiming(struct block_device *bdev, struct block_device *whole,
void *holder); void *holder);
void blkdev_put(struct block_device *bdev, fmode_t mode); void blkdev_put(struct block_device *bdev, fmode_t mode);
struct block_device *I_BDEV(struct inode *inode);
struct block_device *bdget(dev_t); struct block_device *bdget(dev_t);
struct block_device *bdgrab(struct block_device *bdev); struct block_device *bdgrab(struct block_device *bdev);
void bdput(struct block_device *); void bdput(struct block_device *);
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
#include <asm/dasd.h> #include <asm/dasd.h>
struct gendisk;
extern int dasd_biodasdinfo(struct gendisk *disk, dasd_information2_t *info); extern int dasd_biodasdinfo(struct gendisk *disk, dasd_information2_t *info);
#endif #endif
...@@ -470,45 +470,6 @@ struct address_space { ...@@ -470,45 +470,6 @@ struct address_space {
* must be enforced here for CRIS, to let the least significant bit * must be enforced here for CRIS, to let the least significant bit
* of struct page's "mapping" pointer be used for PAGE_MAPPING_ANON. * of struct page's "mapping" pointer be used for PAGE_MAPPING_ANON.
*/ */
struct request_queue;
struct block_device {
dev_t bd_dev; /* not a kdev_t - it's a search key */
int bd_openers;
struct inode * bd_inode; /* will die */
struct super_block * bd_super;
struct mutex bd_mutex; /* open/close mutex */
void * bd_claiming;
void * bd_holder;
int bd_holders;
bool bd_write_holder;
#ifdef CONFIG_SYSFS
struct list_head bd_holder_disks;
#endif
struct block_device * bd_contains;
unsigned bd_block_size;
u8 bd_partno;
struct hd_struct * bd_part;
/* number of times partitions within this device have been opened. */
unsigned bd_part_count;
int bd_invalidated;
struct gendisk * bd_disk;
struct request_queue * bd_queue;
struct backing_dev_info *bd_bdi;
struct list_head bd_list;
/*
* Private data. You must have bd_claim'ed the block_device
* to use this. NOTE: bd_claim allows an owner to claim
* the same device multiple times, the owner must take special
* care to not mess up bd_private for that case.
*/
unsigned long bd_private;
/* The counter of freeze processes */
int bd_fsfreeze_count;
/* Mutex for freeze */
struct mutex bd_fsfreeze_mutex;
} __randomize_layout;
/* XArray tags, for tagging dirty and writeback pages in the pagecache. */ /* XArray tags, for tagging dirty and writeback pages in the pagecache. */
#define PAGECACHE_TAG_DIRTY XA_MARK_0 #define PAGECACHE_TAG_DIRTY XA_MARK_0
...@@ -907,8 +868,6 @@ static inline unsigned imajor(const struct inode *inode) ...@@ -907,8 +868,6 @@ static inline unsigned imajor(const struct inode *inode)
return MAJOR(inode->i_rdev); return MAJOR(inode->i_rdev);
} }
extern struct block_device *I_BDEV(struct inode *inode);
struct fown_struct { struct fown_struct {
rwlock_t lock; /* protects pid, uid, euid fields */ rwlock_t lock; /* protects pid, uid, euid fields */
struct pid *pid; /* pid or -pgrp where SIGIO should be sent */ struct pid *pid; /* pid or -pgrp where SIGIO should be sent */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment