Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4e999af9 authored by Al Viro's avatar Al Viro
Browse files

[PATCH] switch tape_block



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 46d74326
Loading
Loading
Loading
Loading
+13 −16
Original line number Diff line number Diff line
@@ -43,18 +43,18 @@
/*
 * file operation structure for tape block frontend
 */
static int tapeblock_open(struct inode *, struct file *);
static int tapeblock_release(struct inode *, struct file *);
static int tapeblock_ioctl(struct inode *, struct file *, unsigned int,
static int tapeblock_open(struct block_device *, fmode_t);
static int tapeblock_release(struct gendisk *, fmode_t);
static int tapeblock_ioctl(struct block_device *, fmode_t, unsigned int,
				unsigned long);
static int tapeblock_medium_changed(struct gendisk *);
static int tapeblock_revalidate_disk(struct gendisk *);

static struct block_device_operations tapeblock_fops = {
	.owner		 = THIS_MODULE,
	.__open		 = tapeblock_open,
	.__release	 = tapeblock_release,
	.__ioctl           = tapeblock_ioctl,
	.open		 = tapeblock_open,
	.release	 = tapeblock_release,
	.locked_ioctl           = tapeblock_ioctl,
	.media_changed   = tapeblock_medium_changed,
	.revalidate_disk = tapeblock_revalidate_disk,
};
@@ -364,13 +364,12 @@ tapeblock_medium_changed(struct gendisk *disk)
 * Block frontend tape device open function.
 */
static int
tapeblock_open(struct inode *inode, struct file *filp)
tapeblock_open(struct block_device *bdev, fmode_t mode)
{
	struct gendisk *	disk;
	struct gendisk *	disk = bdev->bd_disk;
	struct tape_device *	device;
	int			rc;

	disk   = inode->i_bdev->bd_disk;
	device = tape_get_device_reference(disk->private_data);

	if (device->required_tapemarks) {
@@ -410,9 +409,8 @@ tapeblock_open(struct inode *inode, struct file *filp)
 *       we just get the pointer here and release the reference.
 */
static int
tapeblock_release(struct inode *inode, struct file *filp)
tapeblock_release(struct gendisk *disk, fmode_t mode)
{
	struct gendisk *disk = inode->i_bdev->bd_disk;
	struct tape_device *device = disk->private_data;

	tape_state_set(device, TS_IN_USE);
@@ -427,22 +425,21 @@ tapeblock_release(struct inode *inode, struct file *filp)
 */
static int
tapeblock_ioctl(
	struct inode *		inode,
	struct file *		file,
	struct block_device *	bdev,
	fmode_t			mode,
	unsigned int		command,
	unsigned long		arg
) {
	int rc;
	int minor;
	struct gendisk *disk;
	struct gendisk *disk = bdev->bd_disk;
	struct tape_device *device;

	rc     = 0;
	disk   = inode->i_bdev->bd_disk;
	BUG_ON(!disk);
	device = disk->private_data;
	BUG_ON(!device);
	minor  = iminor(inode);
	minor  = MINOR(bdev->bd_dev);

	DBF_LH(6, "tapeblock_ioctl(0x%0x)\n", command);
	DBF_LH(6, "device = %d:%d\n", tapeblock_major, minor);