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

Commit 0ee40c66 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
parents 236fa081 2824bc93
Loading
Loading
Loading
Loading
+14 −10
Original line number Diff line number Diff line
@@ -97,7 +97,6 @@ static struct elevator_type *elevator_find(const char *name)
	struct elevator_type *e = NULL;
	struct list_head *entry;

	spin_lock_irq(&elv_list_lock);
	list_for_each(entry, &elv_list) {
		struct elevator_type *__e;

@@ -108,7 +107,6 @@ static struct elevator_type *elevator_find(const char *name)
			break;
		}
	}
	spin_unlock_irq(&elv_list_lock);

	return e;
}
@@ -120,12 +118,15 @@ static void elevator_put(struct elevator_type *e)

static struct elevator_type *elevator_get(const char *name)
{
	struct elevator_type *e = elevator_find(name);
	struct elevator_type *e;

	if (!e)
		return NULL;
	if (!try_module_get(e->elevator_owner))
		return NULL;
	spin_lock_irq(&elv_list_lock);

	e = elevator_find(name);
	if (e && !try_module_get(e->elevator_owner))
		e = NULL;

	spin_unlock_irq(&elv_list_lock);

	return e;
}
@@ -153,11 +154,15 @@ static char chosen_elevator[16];

static void elevator_setup_default(void)
{
	struct elevator_type *e;

	/*
	 * check if default is set and exists
	 */
	if (chosen_elevator[0] && elevator_find(chosen_elevator))
	if (chosen_elevator[0] && (e = elevator_get(chosen_elevator))) {
		elevator_put(e);
		return;
	}

#if defined(CONFIG_IOSCHED_AS)
	strcpy(chosen_elevator, "anticipatory");
@@ -555,10 +560,9 @@ void elv_unregister_queue(struct request_queue *q)

int elv_register(struct elevator_type *e)
{
	spin_lock_irq(&elv_list_lock);
	if (elevator_find(e->elevator_name))
		BUG();

	spin_lock_irq(&elv_list_lock);
	list_add_tail(&e->list, &elv_list);
	spin_unlock_irq(&elv_list_lock);

+8 −6
Original line number Diff line number Diff line
@@ -2433,13 +2433,15 @@ void disk_round_stats(struct gendisk *disk)
{
	unsigned long now = jiffies;

	if (now == disk->stamp)
		return;

	if (disk->in_flight) {
		__disk_stat_add(disk, time_in_queue,
				disk->in_flight * (now - disk->stamp));
		__disk_stat_add(disk, io_ticks, (now - disk->stamp));
	}
	disk->stamp = now;

	if (disk->in_flight)
		__disk_stat_add(disk, io_ticks, (now - disk->stamp_idle));
	disk->stamp_idle = now;
}

/*
+1 −1
Original line number Diff line number Diff line
@@ -430,7 +430,7 @@ void del_gendisk(struct gendisk *disk)
	disk->flags &= ~GENHD_FL_UP;
	unlink_gendisk(disk);
	disk_stat_set_all(disk, 0);
	disk->stamp = disk->stamp_idle = 0;
	disk->stamp = 0;

	devfs_remove_disk(disk);

+1 −1
Original line number Diff line number Diff line
@@ -119,7 +119,7 @@ struct gendisk {
	int policy;

	atomic_t sync_io;		/* RAID */
	unsigned long stamp, stamp_idle;
	unsigned long stamp;
	int in_flight;
#ifdef	CONFIG_SMP
	struct disk_stats *dkstats;