diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-10 18:22:42 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-10 18:22:42 -0400 |
commit | 2f9e825d3e0e2b407ae8f082de5c00afcf7378fb (patch) | |
tree | f8b3ee40674ce4acd5508a0a0bf52a30904caf6c /drivers/s390/char | |
parent | 7ae0dea900b027cd90e8a3e14deca9a19e17638b (diff) | |
parent | de75d60d5ea235e6e09f4962ab22541ce0fe176a (diff) |
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.
Diffstat (limited to 'drivers/s390/char')
-rw-r--r-- | drivers/s390/char/tape_block.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/s390/char/tape_block.c b/drivers/s390/char/tape_block.c index 097da8ce6be6..b7de02525ec9 100644 --- a/drivers/s390/char/tape_block.c +++ b/drivers/s390/char/tape_block.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/fs.h> | 16 | #include <linux/fs.h> |
17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
18 | #include <linux/blkdev.h> | 18 | #include <linux/blkdev.h> |
19 | #include <linux/smp_lock.h> | ||
19 | #include <linux/interrupt.h> | 20 | #include <linux/interrupt.h> |
20 | #include <linux/buffer_head.h> | 21 | #include <linux/buffer_head.h> |
21 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
@@ -361,6 +362,7 @@ tapeblock_open(struct block_device *bdev, fmode_t mode) | |||
361 | struct tape_device * device; | 362 | struct tape_device * device; |
362 | int rc; | 363 | int rc; |
363 | 364 | ||
365 | lock_kernel(); | ||
364 | device = tape_get_device(disk->private_data); | 366 | device = tape_get_device(disk->private_data); |
365 | 367 | ||
366 | if (device->required_tapemarks) { | 368 | if (device->required_tapemarks) { |
@@ -384,12 +386,14 @@ tapeblock_open(struct block_device *bdev, fmode_t mode) | |||
384 | * is called. | 386 | * is called. |
385 | */ | 387 | */ |
386 | tape_state_set(device, TS_BLKUSE); | 388 | tape_state_set(device, TS_BLKUSE); |
389 | unlock_kernel(); | ||
387 | return 0; | 390 | return 0; |
388 | 391 | ||
389 | release: | 392 | release: |
390 | tape_release(device); | 393 | tape_release(device); |
391 | put_device: | 394 | put_device: |
392 | tape_put_device(device); | 395 | tape_put_device(device); |
396 | unlock_kernel(); | ||
393 | return rc; | 397 | return rc; |
394 | } | 398 | } |
395 | 399 | ||
@@ -403,10 +407,12 @@ static int | |||
403 | tapeblock_release(struct gendisk *disk, fmode_t mode) | 407 | tapeblock_release(struct gendisk *disk, fmode_t mode) |
404 | { | 408 | { |
405 | struct tape_device *device = disk->private_data; | 409 | struct tape_device *device = disk->private_data; |
406 | 410 | ||
411 | lock_kernel(); | ||
407 | tape_state_set(device, TS_IN_USE); | 412 | tape_state_set(device, TS_IN_USE); |
408 | tape_release(device); | 413 | tape_release(device); |
409 | tape_put_device(device); | 414 | tape_put_device(device); |
415 | unlock_kernel(); | ||
410 | 416 | ||
411 | return 0; | 417 | return 0; |
412 | } | 418 | } |