Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 91727
b: refs/heads/master
c: 7fd097d
h: refs/heads/master
i:
  91725: 3950d03
  91723: 089718b
  91719: af3d494
  91711: e9644d6
v: v3
  • Loading branch information
Akinobu Mita authored and Jens Axboe committed Apr 21, 2008
1 parent 2802a66 commit d09df7a
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 25 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: 032d8d90ba23e1770604bbb1102ec77f5aa8ae44
refs/heads/master: 7fd097d42b90afadae4867db5d580bcd7b3b596d
29 changes: 6 additions & 23 deletions trunk/drivers/cdrom/cdrom.c
Original file line number Diff line number Diff line change
Expand Up @@ -362,7 +362,7 @@ static int cdrom_get_disc_info(struct cdrom_device_info *cdi, disc_information *

static void cdrom_sysctl_register(void);

static struct cdrom_device_info *topCdromPtr;
static LIST_HEAD(cdrom_list);

static int cdrom_dummy_generic_packet(struct cdrom_device_info *cdi,
struct packet_command *cgc)
Expand Down Expand Up @@ -436,35 +436,18 @@ int register_cdrom(struct cdrom_device_info *cdi)

cdinfo(CD_REG_UNREG, "drive \"/dev/%s\" registered\n", cdi->name);
mutex_lock(&cdrom_mutex);
cdi->next = topCdromPtr;
topCdromPtr = cdi;
list_add(&cdi->list, &cdrom_list);
mutex_unlock(&cdrom_mutex);
return 0;
}
#undef ENSURE

int unregister_cdrom(struct cdrom_device_info *unreg)
int unregister_cdrom(struct cdrom_device_info *cdi)
{
struct cdrom_device_info *cdi, *prev;
cdinfo(CD_OPEN, "entering unregister_cdrom\n");

prev = NULL;
mutex_lock(&cdrom_mutex);
cdi = topCdromPtr;
while (cdi && cdi != unreg) {
prev = cdi;
cdi = cdi->next;
}

if (cdi == NULL) {
mutex_unlock(&cdrom_mutex);
return -2;
}
if (prev)
prev->next = cdi->next;
else
topCdromPtr = cdi->next;

list_del(&cdi->list);
mutex_unlock(&cdrom_mutex);

if (cdi->exit)
Expand Down Expand Up @@ -3306,7 +3289,7 @@ static int cdrom_print_info(const char *header, int val, char *info,

*pos += ret;

for (cdi = topCdromPtr; cdi; cdi = cdi->next) {
list_for_each_entry(cdi, &cdrom_list, list) {
switch (option) {
case CTL_NAME:
ret = scnprintf(info + *pos, max_size - *pos,
Expand Down Expand Up @@ -3428,7 +3411,7 @@ static void cdrom_update_settings(void)
struct cdrom_device_info *cdi;

mutex_lock(&cdrom_mutex);
for (cdi = topCdromPtr; cdi != NULL; cdi = cdi->next) {
list_for_each_entry(cdi, &cdrom_list, list) {
if (autoclose && CDROM_CAN(CDC_CLOSE_TRAY))
cdi->options |= CDO_AUTO_CLOSE;
else if (!autoclose)
Expand Down
3 changes: 2 additions & 1 deletion trunk/include/linux/cdrom.h
Original file line number Diff line number Diff line change
Expand Up @@ -910,6 +910,7 @@ struct mode_page_header {
#ifdef __KERNEL__
#include <linux/fs.h> /* not really needed, later.. */
#include <linux/device.h>
#include <linux/list.h>

struct packet_command
{
Expand All @@ -934,7 +935,7 @@ struct packet_command
/* Uniform cdrom data structures for cdrom.c */
struct cdrom_device_info {
struct cdrom_device_ops *ops; /* link to device_ops */
struct cdrom_device_info *next; /* next device_info for this major */
struct list_head list; /* linked list of all device_info */
struct gendisk *disk; /* matching block layer disk */
void *handle; /* driver-dependent data */
/* specifications */
Expand Down

0 comments on commit d09df7a

Please sign in to comment.