29 Dec, 2008
1 commit
- 
There's no need to take queue_lock or kernel_lock when modifying 
 bdi->ra_pages. So remove them. Also remove out of date comment for
 queue_max_sectors_store().Signed-off-by: Wu Fengguang 
 Signed-off-by: Jens Axboe
04 Dec, 2008
2 commits
- 
Update FMODE_NDELAY before each ioctl call so that we can kill the 
 magic FMODE_NDELAY_NOW. It would be even better to do this directly
 in setfl(), but for that we'd need to have FMODE_NDELAY for all files,
 not just block special files.Signed-off-by: Christoph Hellwig 
 Signed-off-by: Al Viro
- 
Commit 33c2dca4957bd0da3e1af7b96d0758d97e708ef6 (trim file propagation 
 in block/compat_ioctl.c) removed the handling of some ioctls from
 compat_blkdev_driver_ioctl. That caused them to be rejected as unknown
 by the compat layer.Signed-off-by: Andreas Schwab 
 Cc: Al Viro
 Signed-off-by: Al Viro
24 Oct, 2008
1 commit
- 
Variable 'ret' is no longer used. Don't declare it. Signed-off-by: Linus Torvalds 
21 Oct, 2008
5 commits
- 
Now we can switch blkdev_ioctl() block_device/mode Signed-off-by: Al Viro 
- 
Most of that stuff doesn't need BKL at all; expand in the (only) caller, 
 merge the switch into one there and leave BKL only around the stuff that
 might actually need it.Signed-off-by: Al Viro 
- 
... and remove the handling of cases when it falls back to native 
 without changing arguments.Signed-off-by: Al Viro 
- 
Signed-off-by: Al Viro 
- 
To keep the size of changesets sane we split the switch by drivers; 
 to keep the damn thing bisectable we do the following:
 1) rename the affected methods, add ones with correct
 prototypes, make (few) callers handle both. That's this changeset.
 2) for each driver convert to new methods. *ALL* drivers
 are converted in this series.
 3) kill the old (renamed) methods.Note that it _is_ a flagday; all in-tree drivers are converted and by the 
 end of this series no trace of old methods remain. The only reason why
 we do that this way is to keep the damn thing bisectable and allow per-driver
 debugging if anything goes wrong.New methods: 
 open(bdev, mode)
 release(disk, mode)
 ioctl(bdev, mode, cmd, arg) /* Called without BKL */
 compat_ioctl(bdev, mode, cmd, arg)
 locked_ioctl(bdev, mode, cmd, arg) /* Called with BKL, legacy */Signed-off-by: Al Viro 
09 Oct, 2008
1 commit
- 
We may well want mkfs tools to use this to mark the whole device as 
 unwanted before they format it, for example.The ioctl takes a pair of uint64_ts, which are start offset and length 
 in _bytes_. Although at the moment it might make sense for them both to
 be in 512-byte sectors, I don't want to limit the ABI to that.Signed-off-by: David Woodhouse 
 Signed-off-by: Jens Axboe
13 May, 2008
1 commit
- 
bdevname() fills the buffer that it is given as a parameter, so calling 
 strcpy() or snprintf() on the returned value is redundant (and probably not
 guaranteed to work - I don't think strcpy and snprintf support overlapping
 buffers.)Signed-off-by: Jean Delvare 
 Cc: Stephen Tweedie
 Cc: Jens Axboe
 Signed-off-by: Andrew Morton
 Signed-off-by: Linus Torvalds
18 Apr, 2008
1 commit
- 
hdparm explicitely marks HDIO_[UNREGISTER,SCAN]_HWIF ioctls as DANGEROUS 
 and given the number of bugs we can assume that there are no real users:* DMA has no chance of working because DMA resources are released by 
 ide_unregister() and they are never allocated again.* Since ide_init_hwif_ports() is used for ->io_ports[] setup the ioctls 
 don't work for almost all hosts with "non-standard" (== non ISA-like)
 layout of IDE taskfile registers (there is a lot of such host drivers).* ide_port_init_devices() is not called when probing IDE devices so: 
 - drive->autotune is never set and IDE host/devices are not programmed
 for the correct PIO/DMA transfer modes (=> possible data corruption)
 - host specific I/O 32-bit and IRQ unmasking settings are not applied
 (=> possible data corruption)
 - host specific ->port_init_devs method is not called (=> no luck with
 ht6560b, qd65xx and opti621 host drivers)* ->rw_disk method is not preserved (=> no HPT3xxN chipsets support). * ->serialized flag is not preserved (=> possible data corruption when 
 using icside, aec62xx (ATP850UF chipset), cmd640, cs5530, hpt366
 (HPT3xxN chipsets), rz1000, sc1200, dtc2278 and ht6560b host drivers).* ->ack_intr method is not preserved (=> needed by ide-cris, buddha, 
 gayle and macide host drivers).* ->sata_scr[] and sata_misc[] is cleared by ide_unregister() and it 
 isn't initialized again (SiI3112 support needs them).* To issue an ioctl() there need to be at least one IDE device present 
 in the system.* ->cable_detect method is not preserved + it is not called when probing 
 IDE devices so cable detection is broken (however since DMA support is
 also broken it doesn't really matter ;-).* Some objects which may have already been freed in ide_unregister() 
 are restored by ide_hwif_restore() (i.e. ->hwgroup).* ide_register_hw() may unregister unrelated IDE ports if free ide_hwifs[] 
 slot cannot be found.* When IDE host drivers are modular unregistered port may be re-used by 
 different host driver that owned it first causing subtle bugs.Since we now have a proper warm-plug support remove these ioctls, 
 then remove no longer needed:
 - ide_register_hw() and ide_hwif_restore() functions
 - 'init_default' and 'restore' arguments of ide_unregister()
 - zeroeing of hwif->{dma,extra}_* fields in ide_unregister()As an added bonus IDE core code size shrinks by ~3kB (x86-32). v2: 
 * fix ide_unregister() arguments in cleanup_module() (Andrew Morton).v3: 
 * fix ide_unregister() arguments in palm_bk3710.c.Acked-by: Sergei Shtylyov 
 Signed-off-by: Bartlomiej Zolnierkiewicz
28 Jan, 2008
1 commit
- 
Since the SCSI layer uses the request queues from the block layer, blktrace can 
 also be used to trace the requests to all SCSI devices (like SCSI tape drives),
 not only disks. The only missing part is the ioctl interface to start and stop
 tracing.This patch adds the SETUP, START, STOP and TEARDOWN ioctls from blktrace to the 
 sg device files. With this change, blktrace can be used for SCSI devices like
 for disks, e.g.: blktrace -d /dev/sg1 -o - | blkparse -i -Signed-off-by: Christof Schmitt 
 Signed-off-by: Jens Axboe
29 Oct, 2007
1 commit
- 
The conversion of handlers to compat_blkdev_ioctl accidentally 
 disabled handling of most ioctl numbers on block devices because
 of a typo. Fix the one line to enable it all again.Signed-off-by: Arnd Bergmann 
 Signed-off-by: Jens Axboe
10 Oct, 2007
7 commits
- 
The floppy ioctls are used by multiple drivers, so they should be 
 handled in a shared location. Also, add minor cleanups.Signed-off-by: Arnd Bergmann 
 Signed-off-by: Jens Axboe
- 
These are shared by all cd-rom drivers and should have common 
 handlers. Do slight cosmetic cleanups in the process.Signed-off-by: Arnd Bergmann 
 Signed-off-by: Jens Axboe
- 
BLKPG is common to all block devices, so it should be handled 
 by common code.Signed-off-by: Arnd Bergmann 
 Signed-off-by: Jens Axboe
- 
These are common to multiple block drivers, so they should 
 be handled by the block layer.Signed-off-by: Arnd Bergmann 
 Signed-off-by: Jens Axboe
- 
blk_trace_setup is broken on x86_64 compat systems, 
 this makes the code work correctly on all 64 bit architectures
 in compat mode.Signed-off-by: Arnd Bergmann 
 Signed-off-by: Jens Axboe
- 
Handle those blockdev ioctl calls that are compatible 
 directly from the compat_blkdev_ioctl() function, instead
 of having to go through the compat_ioctl hash lookup.Signed-off-by: Arnd Bergmann 
 Signed-off-by: Jens Axboe
- 
Make compat_blkdev_ioctl and blkdev_ioctl reflect the respective 
 native versions. This is somewhat more efficient and makes it easier
 to keep the two in sync.Also get rid of the bogus handling for broken_blkgetsize and the 
 duplicate entry for BLKRASET.Signed-off-by: Arnd Bergmann 
 Signed-off-by: Jens Axboe