1
0
Fork 0

[PATCH] switch dcssblk

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
hifive-unleashed-5.1
Al Viro 2008-03-02 10:37:41 -05:00
parent 57a7c0bca0
commit 46d74326e6
1 changed files with 10 additions and 11 deletions

View File

@ -31,8 +31,8 @@
#define PRINT_WARN(x...) printk(KERN_WARNING DCSSBLK_NAME " warning: " x) #define PRINT_WARN(x...) printk(KERN_WARNING DCSSBLK_NAME " warning: " x)
#define PRINT_ERR(x...) printk(KERN_ERR DCSSBLK_NAME " error: " x) #define PRINT_ERR(x...) printk(KERN_ERR DCSSBLK_NAME " error: " x)
static int dcssblk_open(struct inode *inode, struct file *filp); static int dcssblk_open(struct block_device *bdev, fmode_t mode);
static int dcssblk_release(struct inode *inode, struct file *filp); static int dcssblk_release(struct gendisk *disk, fmode_t mode);
static int dcssblk_make_request(struct request_queue *q, struct bio *bio); static int dcssblk_make_request(struct request_queue *q, struct bio *bio);
static int dcssblk_direct_access(struct block_device *bdev, sector_t secnum, static int dcssblk_direct_access(struct block_device *bdev, sector_t secnum,
void **kaddr, unsigned long *pfn); void **kaddr, unsigned long *pfn);
@ -42,8 +42,8 @@ static char dcssblk_segments[DCSSBLK_PARM_LEN] = "\0";
static int dcssblk_major; static int dcssblk_major;
static struct block_device_operations dcssblk_devops = { static struct block_device_operations dcssblk_devops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.__open = dcssblk_open, .open = dcssblk_open,
.__release = dcssblk_release, .release = dcssblk_release,
.direct_access = dcssblk_direct_access, .direct_access = dcssblk_direct_access,
}; };
@ -776,32 +776,31 @@ out_buf:
} }
static int static int
dcssblk_open(struct inode *inode, struct file *filp) dcssblk_open(struct block_device *bdev, fmode_t mode)
{ {
struct dcssblk_dev_info *dev_info; struct dcssblk_dev_info *dev_info;
int rc; int rc;
dev_info = inode->i_bdev->bd_disk->private_data; dev_info = bdev->bd_disk->private_data;
if (NULL == dev_info) { if (NULL == dev_info) {
rc = -ENODEV; rc = -ENODEV;
goto out; goto out;
} }
atomic_inc(&dev_info->use_count); atomic_inc(&dev_info->use_count);
inode->i_bdev->bd_block_size = 4096; bdev->bd_block_size = 4096;
rc = 0; rc = 0;
out: out:
return rc; return rc;
} }
static int static int
dcssblk_release(struct inode *inode, struct file *filp) dcssblk_release(struct gendisk *disk, fmode_t mode)
{ {
struct dcssblk_dev_info *dev_info; struct dcssblk_dev_info *dev_info = disk->private_data;
struct segment_info *entry; struct segment_info *entry;
int rc; int rc;
dev_info = inode->i_bdev->bd_disk->private_data; if (!dev_info) {
if (NULL == dev_info) {
rc = -ENODEV; rc = -ENODEV;
goto out; goto out;
} }