Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 23374
b: refs/heads/master
c: 82814db
h: refs/heads/master
v: v3
  • Loading branch information
Christoph Hellwig authored and Linus Torvalds committed Mar 24, 2006
1 parent a70d787 commit 596fe6a
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 81 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8b2eb664ce9dcba8b54ececf5e057470c47e57f7
refs/heads/master: 82814dbafdeef53e13e07134eb3b7be3c975fd21
11 changes: 0 additions & 11 deletions trunk/drivers/s390/block/dasd_int.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,15 +69,6 @@
*/
struct dasd_device;

typedef int (*dasd_ioctl_fn_t) (struct block_device *bdev, int no, long args);

struct dasd_ioctl {
struct list_head list;
struct module *owner;
int no;
dasd_ioctl_fn_t handler;
};

typedef enum {
dasd_era_fatal = -1, /* no chance to recover */
dasd_era_none = 0, /* don't recover, everything alright */
Expand Down Expand Up @@ -524,8 +515,6 @@ int dasd_scan_partitions(struct dasd_device *);
void dasd_destroy_partitions(struct dasd_device *);

/* externals in dasd_ioctl.c */
int dasd_ioctl_no_register(struct module *, int, dasd_ioctl_fn_t);
int dasd_ioctl_no_unregister(struct module *, int, dasd_ioctl_fn_t);
int dasd_ioctl(struct inode *, struct file *, unsigned int, unsigned long);
long dasd_compat_ioctl(struct file *, unsigned int, unsigned long);

Expand Down
69 changes: 0 additions & 69 deletions trunk/drivers/s390/block/dasd_ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,59 +24,6 @@

#include "dasd_int.h"

/*
* SECTION: ioctl functions.
*/
static struct list_head dasd_ioctl_list = LIST_HEAD_INIT(dasd_ioctl_list);

/*
* Find the ioctl with number no.
*/
static struct dasd_ioctl *
dasd_find_ioctl(int no)
{
struct dasd_ioctl *ioctl;

list_for_each_entry (ioctl, &dasd_ioctl_list, list)
if (ioctl->no == no)
return ioctl;
return NULL;
}

/*
* Register ioctl with number no.
*/
int
dasd_ioctl_no_register(struct module *owner, int no, dasd_ioctl_fn_t handler)
{
struct dasd_ioctl *new;
if (dasd_find_ioctl(no))
return -EBUSY;
new = kmalloc(sizeof (struct dasd_ioctl), GFP_KERNEL);
if (new == NULL)
return -ENOMEM;
new->owner = owner;
new->no = no;
new->handler = handler;
list_add(&new->list, &dasd_ioctl_list);
return 0;
}

/*
* Deregister ioctl with number no.
*/
int
dasd_ioctl_no_unregister(struct module *owner, int no, dasd_ioctl_fn_t handler)
{
struct dasd_ioctl *old = dasd_find_ioctl(no);
if (old == NULL)
return -ENOENT;
if (old->no != no || old->handler != handler || owner != old->owner)
return -EINVAL;
list_del(&old->list);
kfree(old);
return 0;
}

static int
dasd_ioctl_api_version(void __user *argp)
Expand Down Expand Up @@ -429,8 +376,6 @@ dasd_ioctl(struct inode *inode, struct file *file,
struct block_device *bdev = inode->i_bdev;
struct dasd_device *device = bdev->bd_disk->private_data;
void __user *argp = (void __user *)arg;
struct dasd_ioctl *ioctl;
int rc;

if (!device)
return -ENODEV;
Expand Down Expand Up @@ -477,17 +422,6 @@ dasd_ioctl(struct inode *inode, struct file *file,
return rval;
}

/* else resort to the deprecated dynamic ioctl list */
list_for_each_entry(ioctl, &dasd_ioctl_list, list) {
if (ioctl->no == cmd) {
/* Found a matching ioctl. Call it. */
if (!try_module_get(ioctl->owner))
continue;
rc = ioctl->handler(bdev, cmd, arg);
module_put(ioctl->owner);
return rc;
}
}
return -EINVAL;
}
}
Expand All @@ -503,6 +437,3 @@ dasd_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)

return (rval == -EINVAL) ? -ENOIOCTLCMD : rval;
}

EXPORT_SYMBOL(dasd_ioctl_no_register);
EXPORT_SYMBOL(dasd_ioctl_no_unregister);

0 comments on commit 596fe6a

Please sign in to comment.