mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
Merge branch 'for-2.6.36' of git://git.kernel.dk/linux-2.6-block
* 'for-2.6.36' of git://git.kernel.dk/linux-2.6-block: (149 commits) block: make sure that REQ_* types are seen even with CONFIG_BLOCK=n xen-blkfront: fix missing out label blkdev: fix blkdev_issue_zeroout return value block: update request stacking methods to support discards block: fix missing export of blk_types.h writeback: fix bad _bh spinlock nesting drbd: revert "delay probes", feature is being re-implemented differently drbd: Initialize all members of sync_conf to their defaults [Bugz 315] drbd: Disable delay probes for the upcomming release writeback: cleanup bdi_register writeback: add new tracepoints writeback: remove unnecessary init_timer call writeback: optimize periodic bdi thread wakeups writeback: prevent unnecessary bdi threads wakeups writeback: move bdi threads exiting logic to the forker thread writeback: restructure bdi forker loop a little writeback: move last_active to bdi writeback: do not remove bdi from bdi_list writeback: simplify bdi code a little writeback: do not lose wake-ups in bdi threads ... Fixed up pretty trivial conflicts in drivers/block/virtio_blk.c and drivers/scsi/scsi_error.c as per Jens.
This commit is contained in:
commit
2f9e825d3e
154 changed files with 4286 additions and 3211 deletions
|
|
@ -21,6 +21,7 @@
|
|||
#include <linux/hdreg.h>
|
||||
#include <linux/async.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/smp_lock.h>
|
||||
|
||||
#include <asm/ccwdev.h>
|
||||
#include <asm/ebcdic.h>
|
||||
|
|
@ -2196,7 +2197,7 @@ static void dasd_setup_queue(struct dasd_block *block)
|
|||
*/
|
||||
blk_queue_max_segment_size(block->request_queue, PAGE_SIZE);
|
||||
blk_queue_segment_boundary(block->request_queue, PAGE_SIZE - 1);
|
||||
blk_queue_ordered(block->request_queue, QUEUE_ORDERED_DRAIN, NULL);
|
||||
blk_queue_ordered(block->request_queue, QUEUE_ORDERED_DRAIN);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -2235,6 +2236,7 @@ static int dasd_open(struct block_device *bdev, fmode_t mode)
|
|||
if (!block)
|
||||
return -ENODEV;
|
||||
|
||||
lock_kernel();
|
||||
base = block->base;
|
||||
atomic_inc(&block->open_count);
|
||||
if (test_bit(DASD_FLAG_OFFLINE, &base->flags)) {
|
||||
|
|
@ -2269,12 +2271,14 @@ static int dasd_open(struct block_device *bdev, fmode_t mode)
|
|||
goto out;
|
||||
}
|
||||
|
||||
unlock_kernel();
|
||||
return 0;
|
||||
|
||||
out:
|
||||
module_put(base->discipline->owner);
|
||||
unlock:
|
||||
atomic_dec(&block->open_count);
|
||||
unlock_kernel();
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
@ -2282,8 +2286,10 @@ static int dasd_release(struct gendisk *disk, fmode_t mode)
|
|||
{
|
||||
struct dasd_block *block = disk->private_data;
|
||||
|
||||
lock_kernel();
|
||||
atomic_dec(&block->open_count);
|
||||
module_put(block->base->discipline->owner);
|
||||
unlock_kernel();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/blkdev.h>
|
||||
#include <linux/smp_lock.h>
|
||||
#include <linux/completion.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
|
@ -775,6 +776,7 @@ dcssblk_open(struct block_device *bdev, fmode_t mode)
|
|||
struct dcssblk_dev_info *dev_info;
|
||||
int rc;
|
||||
|
||||
lock_kernel();
|
||||
dev_info = bdev->bd_disk->private_data;
|
||||
if (NULL == dev_info) {
|
||||
rc = -ENODEV;
|
||||
|
|
@ -784,6 +786,7 @@ dcssblk_open(struct block_device *bdev, fmode_t mode)
|
|||
bdev->bd_block_size = 4096;
|
||||
rc = 0;
|
||||
out:
|
||||
unlock_kernel();
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
@ -794,6 +797,7 @@ dcssblk_release(struct gendisk *disk, fmode_t mode)
|
|||
struct segment_info *entry;
|
||||
int rc;
|
||||
|
||||
lock_kernel();
|
||||
if (!dev_info) {
|
||||
rc = -ENODEV;
|
||||
goto out;
|
||||
|
|
@ -811,6 +815,7 @@ dcssblk_release(struct gendisk *disk, fmode_t mode)
|
|||
up_write(&dcssblk_devices_sem);
|
||||
rc = 0;
|
||||
out:
|
||||
unlock_kernel();
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
#include <linux/fs.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/blkdev.h>
|
||||
#include <linux/smp_lock.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/buffer_head.h>
|
||||
#include <linux/kernel.h>
|
||||
|
|
@ -361,6 +362,7 @@ tapeblock_open(struct block_device *bdev, fmode_t mode)
|
|||
struct tape_device * device;
|
||||
int rc;
|
||||
|
||||
lock_kernel();
|
||||
device = tape_get_device(disk->private_data);
|
||||
|
||||
if (device->required_tapemarks) {
|
||||
|
|
@ -384,12 +386,14 @@ tapeblock_open(struct block_device *bdev, fmode_t mode)
|
|||
* is called.
|
||||
*/
|
||||
tape_state_set(device, TS_BLKUSE);
|
||||
unlock_kernel();
|
||||
return 0;
|
||||
|
||||
release:
|
||||
tape_release(device);
|
||||
put_device:
|
||||
tape_put_device(device);
|
||||
unlock_kernel();
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
@ -403,10 +407,12 @@ static int
|
|||
tapeblock_release(struct gendisk *disk, fmode_t mode)
|
||||
{
|
||||
struct tape_device *device = disk->private_data;
|
||||
|
||||
|
||||
lock_kernel();
|
||||
tape_state_set(device, TS_IN_USE);
|
||||
tape_release(device);
|
||||
tape_put_device(device);
|
||||
unlock_kernel();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue