mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block
* 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block: (65 commits)
Documentation/iostats.txt: bit-size reference etc.
cfq-iosched: removing unnecessary think time checking
cfq-iosched: Don't clear queue stats when preempt.
blk-throttle: Reset group slice when limits are changed
blk-cgroup: Only give unaccounted_time under debug
cfq-iosched: Don't set active queue in preempt
block: fix non-atomic access to genhd inflight structures
block: attempt to merge with existing requests on plug flush
block: NULL dereference on error path in __blkdev_get()
cfq-iosched: Don't update group weights when on service tree
fs: assign sb->s_bdi to default_backing_dev_info if the bdi is going away
block: Require subsystems to explicitly allocate bio_set integrity mempool
jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging
jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging
fs: make fsync_buffers_list() plug
mm: make generic_writepages() use plugging
blk-cgroup: Add unaccounted time to timeslice_used.
block: fixup plugging stubs for !CONFIG_BLOCK
block: remove obsolete comments for blkdev_issue_zeroout.
blktrace: Use rq->cmd_flags directly in blk_add_trace_rq.
...
Fix up conflicts in fs/{aio.c,super.c}
This commit is contained in:
commit
6c51038900
172 changed files with 1520 additions and 2112 deletions
|
|
@ -233,8 +233,7 @@ int ide_queue_sense_rq(ide_drive_t *drive, void *special)
|
|||
|
||||
drive->hwif->rq = NULL;
|
||||
|
||||
elv_add_request(drive->queue, &drive->sense_rq,
|
||||
ELEVATOR_INSERT_FRONT, 0);
|
||||
elv_add_request(drive->queue, &drive->sense_rq, ELEVATOR_INSERT_FRONT);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(ide_queue_sense_rq);
|
||||
|
|
|
|||
|
|
@ -258,17 +258,10 @@ static int ide_cd_breathe(ide_drive_t *drive, struct request *rq)
|
|||
if (time_after(jiffies, info->write_timeout))
|
||||
return 0;
|
||||
else {
|
||||
struct request_queue *q = drive->queue;
|
||||
unsigned long flags;
|
||||
|
||||
/*
|
||||
* take a breather relying on the unplug timer to kick us again
|
||||
* take a breather
|
||||
*/
|
||||
|
||||
spin_lock_irqsave(q->queue_lock, flags);
|
||||
blk_plug_device(q);
|
||||
spin_unlock_irqrestore(q->queue_lock, flags);
|
||||
|
||||
blk_delay_queue(drive->queue, 1);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -1177,7 +1170,7 @@ static struct cdrom_device_ops ide_cdrom_dops = {
|
|||
.open = ide_cdrom_open_real,
|
||||
.release = ide_cdrom_release_real,
|
||||
.drive_status = ide_cdrom_drive_status,
|
||||
.media_changed = ide_cdrom_check_media_change_real,
|
||||
.check_events = ide_cdrom_check_events_real,
|
||||
.tray_move = ide_cdrom_tray_move,
|
||||
.lock_door = ide_cdrom_lock_door,
|
||||
.select_speed = ide_cdrom_select_speed,
|
||||
|
|
@ -1514,8 +1507,6 @@ static int ide_cdrom_setup(ide_drive_t *drive)
|
|||
blk_queue_dma_alignment(q, 31);
|
||||
blk_queue_update_dma_pad(q, 15);
|
||||
|
||||
q->unplug_delay = max((1 * HZ) / 1000, 1);
|
||||
|
||||
drive->dev_flags |= IDE_DFLAG_MEDIA_CHANGED;
|
||||
drive->atapi_flags = IDE_AFLAG_NO_EJECT | ide_cd_flags(id);
|
||||
|
||||
|
|
@ -1702,10 +1693,11 @@ static int idecd_ioctl(struct block_device *bdev, fmode_t mode,
|
|||
}
|
||||
|
||||
|
||||
static int idecd_media_changed(struct gendisk *disk)
|
||||
static unsigned int idecd_check_events(struct gendisk *disk,
|
||||
unsigned int clearing)
|
||||
{
|
||||
struct cdrom_info *info = ide_drv_g(disk, cdrom_info);
|
||||
return cdrom_media_changed(&info->devinfo);
|
||||
return cdrom_check_events(&info->devinfo, clearing);
|
||||
}
|
||||
|
||||
static int idecd_revalidate_disk(struct gendisk *disk)
|
||||
|
|
@ -1723,7 +1715,7 @@ static const struct block_device_operations idecd_ops = {
|
|||
.open = idecd_open,
|
||||
.release = idecd_release,
|
||||
.ioctl = idecd_ioctl,
|
||||
.media_changed = idecd_media_changed,
|
||||
.check_events = idecd_check_events,
|
||||
.revalidate_disk = idecd_revalidate_disk
|
||||
};
|
||||
|
||||
|
|
@ -1790,6 +1782,7 @@ static int ide_cd_probe(ide_drive_t *drive)
|
|||
ide_cd_read_toc(drive, &sense);
|
||||
g->fops = &idecd_ops;
|
||||
g->flags |= GENHD_FL_REMOVABLE;
|
||||
g->events = DISK_EVENT_MEDIA_CHANGE;
|
||||
add_disk(g);
|
||||
return 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -111,7 +111,8 @@ int cdrom_check_status(ide_drive_t *, struct request_sense *);
|
|||
int ide_cdrom_open_real(struct cdrom_device_info *, int);
|
||||
void ide_cdrom_release_real(struct cdrom_device_info *);
|
||||
int ide_cdrom_drive_status(struct cdrom_device_info *, int);
|
||||
int ide_cdrom_check_media_change_real(struct cdrom_device_info *, int);
|
||||
unsigned int ide_cdrom_check_events_real(struct cdrom_device_info *,
|
||||
unsigned int clearing, int slot_nr);
|
||||
int ide_cdrom_tray_move(struct cdrom_device_info *, int);
|
||||
int ide_cdrom_lock_door(struct cdrom_device_info *, int);
|
||||
int ide_cdrom_select_speed(struct cdrom_device_info *, int);
|
||||
|
|
|
|||
|
|
@ -79,8 +79,8 @@ int ide_cdrom_drive_status(struct cdrom_device_info *cdi, int slot_nr)
|
|||
return CDS_DRIVE_NOT_READY;
|
||||
}
|
||||
|
||||
int ide_cdrom_check_media_change_real(struct cdrom_device_info *cdi,
|
||||
int slot_nr)
|
||||
unsigned int ide_cdrom_check_events_real(struct cdrom_device_info *cdi,
|
||||
unsigned int clearing, int slot_nr)
|
||||
{
|
||||
ide_drive_t *drive = cdi->handle;
|
||||
int retval;
|
||||
|
|
@ -89,9 +89,9 @@ int ide_cdrom_check_media_change_real(struct cdrom_device_info *cdi,
|
|||
(void) cdrom_check_status(drive, NULL);
|
||||
retval = (drive->dev_flags & IDE_DFLAG_MEDIA_CHANGED) ? 1 : 0;
|
||||
drive->dev_flags &= ~IDE_DFLAG_MEDIA_CHANGED;
|
||||
return retval;
|
||||
return retval ? DISK_EVENT_MEDIA_CHANGE : 0;
|
||||
} else {
|
||||
return -EINVAL;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -285,11 +285,12 @@ static int ide_gd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int ide_gd_media_changed(struct gendisk *disk)
|
||||
static unsigned int ide_gd_check_events(struct gendisk *disk,
|
||||
unsigned int clearing)
|
||||
{
|
||||
struct ide_disk_obj *idkp = ide_drv_g(disk, ide_disk_obj);
|
||||
ide_drive_t *drive = idkp->drive;
|
||||
int ret;
|
||||
bool ret;
|
||||
|
||||
/* do not scan partitions twice if this is a removable device */
|
||||
if (drive->dev_flags & IDE_DFLAG_ATTACH) {
|
||||
|
|
@ -297,10 +298,10 @@ static int ide_gd_media_changed(struct gendisk *disk)
|
|||
return 0;
|
||||
}
|
||||
|
||||
ret = !!(drive->dev_flags & IDE_DFLAG_MEDIA_CHANGED);
|
||||
ret = drive->dev_flags & IDE_DFLAG_MEDIA_CHANGED;
|
||||
drive->dev_flags &= ~IDE_DFLAG_MEDIA_CHANGED;
|
||||
|
||||
return ret;
|
||||
return ret ? DISK_EVENT_MEDIA_CHANGE : 0;
|
||||
}
|
||||
|
||||
static void ide_gd_unlock_native_capacity(struct gendisk *disk)
|
||||
|
|
@ -318,7 +319,7 @@ static int ide_gd_revalidate_disk(struct gendisk *disk)
|
|||
struct ide_disk_obj *idkp = ide_drv_g(disk, ide_disk_obj);
|
||||
ide_drive_t *drive = idkp->drive;
|
||||
|
||||
if (ide_gd_media_changed(disk))
|
||||
if (ide_gd_check_events(disk, 0))
|
||||
drive->disk_ops->get_capacity(drive);
|
||||
|
||||
set_capacity(disk, ide_gd_capacity(drive));
|
||||
|
|
@ -340,7 +341,7 @@ static const struct block_device_operations ide_gd_ops = {
|
|||
.release = ide_gd_release,
|
||||
.ioctl = ide_gd_ioctl,
|
||||
.getgeo = ide_gd_getgeo,
|
||||
.media_changed = ide_gd_media_changed,
|
||||
.check_events = ide_gd_check_events,
|
||||
.unlock_native_capacity = ide_gd_unlock_native_capacity,
|
||||
.revalidate_disk = ide_gd_revalidate_disk
|
||||
};
|
||||
|
|
@ -412,6 +413,7 @@ static int ide_gd_probe(ide_drive_t *drive)
|
|||
if (drive->dev_flags & IDE_DFLAG_REMOVABLE)
|
||||
g->flags = GENHD_FL_REMOVABLE;
|
||||
g->fops = &ide_gd_ops;
|
||||
g->events = DISK_EVENT_MEDIA_CHANGE;
|
||||
add_disk(g);
|
||||
return 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -549,8 +549,6 @@ plug_device_2:
|
|||
|
||||
if (rq)
|
||||
blk_requeue_request(q, rq);
|
||||
if (!elv_queue_empty(q))
|
||||
blk_plug_device(q);
|
||||
}
|
||||
|
||||
void ide_requeue_and_plug(ide_drive_t *drive, struct request *rq)
|
||||
|
|
@ -562,8 +560,6 @@ void ide_requeue_and_plug(ide_drive_t *drive, struct request *rq)
|
|||
|
||||
if (rq)
|
||||
blk_requeue_request(q, rq);
|
||||
if (!elv_queue_empty(q))
|
||||
blk_plug_device(q);
|
||||
|
||||
spin_unlock_irqrestore(q->queue_lock, flags);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ static void issue_park_cmd(ide_drive_t *drive, unsigned long timeout)
|
|||
rq->cmd[0] = REQ_UNPARK_HEADS;
|
||||
rq->cmd_len = 1;
|
||||
rq->cmd_type = REQ_TYPE_SPECIAL;
|
||||
elv_add_request(q, rq, ELEVATOR_INSERT_FRONT, 1);
|
||||
elv_add_request(q, rq, ELEVATOR_INSERT_FRONT);
|
||||
|
||||
out:
|
||||
return;
|
||||
|
|
|
|||
Loading…
Reference in a new issue