An error occurred fetching the project authors.
- 12 Apr, 2004 1 commit
-
-
Andrew Morton authored
From: Miquel van Smoorenburg <miquels@cistron.nl> Joe Thornber <thornber@redhat.com> This implements the queue congestion callout for DM stacks. To make bdi_read/write_congested() return correct information. - md->lock protects all fields in md _except_ md->map - md->map_lock protects md->map - Anyone who wants to read md->map should use dm_get_table() which increments the tables reference count. This means the spin lock is now only held for the duration of a reference count increment. Udpate: dm.c: protect md->map with a rw spin lock rather than the md->lock semaphore. Also ensure that everyone accesses md->map through dm_get_table(), rather than directly.
-
- 12 Mar, 2004 1 commit
-
-
Andrew Morton authored
From: Joe Thornber <thornber@redhat.com> Add an endio method to targets. This method is allowed to request another shot at failed ios (think multipath). Context can be passed between the map method and the endio method.
-
- 18 Feb, 2004 6 commits
-
-
Andrew Morton authored
From: Joe Thornber <thornber@redhat.com> I just noticed that bio_clone copies the BIO_SEG_VALID bit from the original bio when it was set. When we modify bi_idx or bi_vcnt afterwards the segment counts are invalid and the bit must be dropped (though it is fairly unlikely that it has already been set). [Christophe Saout]
-
Andrew Morton authored
From: Joe Thornber <thornber@redhat.com> Remove redundant spin lock in dec_pending()
-
Andrew Morton authored
From: Joe Thornber <thornber@redhat.com> Tidy up the error path for alloc_dev()
-
Andrew Morton authored
From: Joe Thornber <thornber@redhat.com> Make sure that we maintain ordering when deferring bios.
-
Andrew Morton authored
From: Joe Thornber <thornber@redhat.com> Remove struct dm_deferred_io from dm.c. [Christophe Saout]
-
Andrew Morton authored
From: Joe Thornber <thornber@redhat.com> Move to_bytes() and to_sectors() into dm.h
-
- 10 Feb, 2004 1 commit
-
-
Joe Thornber authored
With 32 bit sector_t the block device size _in bytes_ is also cut to 32 bit in __set_size when the block device is mount (a filesystem mounted). The argument should be cast to loff_t before expanding the sector count to a byte count and calling i_size_write. [Christophe Saout]
-
- 29 Dec, 2003 1 commit
-
-
Andrew Morton authored
From: Joe Thornber <thornber@sistina.com> When setting the size of a Device-Mapper device in the gendisk entry, also try to set the size of the corresponding block_device entry's inode. This is necessary to allow online device/filesystem resizing to work correctly. [Kevin Corry]
-
- 22 Sep, 2003 1 commit
-
-
Andrew Morton authored
- bio_release_pages() should have file-local scope. - don't use spaces in slab names in device mapper, enforce this henceforth in kmem_cache_create(). - Fix alpha header leftover from cpumask_t conversion
-
- 07 Aug, 2003 1 commit
-
-
Andrew Morton authored
From: Joe Thornber <thornber@sistina.com> MODULE_PARM is deprecated in 2.6. Use the new module_param() macro. [Kevin Corry]
-
- 06 Aug, 2003 1 commit
-
-
Jens Axboe authored
To be able to properly be able to keep references to block queues, we make blk_init_queue() return the queue that it initialized, and let it be independently allocated and then cleaned up on the last reference. I have grepped high and low, and there really shouldn't be any broken uses of blk_init_queue() in the kernel drivers left. The added bonus being blk_init_queue() error checking is explicit now, most of the drivers were broken in this regard (even IDE/SCSI). No drivers have embedded request queue structures. Drivers that don't use blk_init_queue() but blk_queue_make_request(), should allocate the queue with blk_alloc_queue(gfp_mask). I've converted all of them to do that, too. They can call blk_cleanup_queue() now too, using the define blk_put_queue() is probably cleaner though.
-
- 18 Jul, 2003 2 commits
-
-
Andrew Morton authored
From: Joe Thornber <thornber@sistina.com> v4 of the ioctl interface. Note there never was a v2 or a v3 except in an unofficial EVMS way. This works correctly with the 64-bit dev_t patches in -mm kernels. There is now a config option to allow the user to select v1 or v4, it defaults to v1. dm-ioctl.[hc] just #includes dm-ioctl-v[14].[hc] depending on the config option. If you want to use v4 you will have to update your tools (libdevmapper/lvm). The latest tools at the time of writing are: dmsetup + libdevmapper + replacement kernel patches for 2.4.20 & 2.4.21: ftp://ftp.sistina.com/pub/LVM2/device-mapper/device-mapper-testing-new-version4-interface.tgz Updated LVM2 tools to work with the above: ftp://ftp.sistina.com/pub/LVM2/tools/LVM2.0-testing.tgz
-
Andrew Morton authored
From: Joe Thornber <thornber@sistina.com> There was a race associated with the 'wait for a significant event' functionality. Basically userland could read the status table, then wait for another event, but the event it was waiting for could have occurred in the gap between reading and waiting. To solve this we assign identifiers to events, in order to successfully wait for an event both userland and the kernel driver must be in agreement about what the last event identifier was. If they don't agree the wait call will return immediately, allowing userland to re-read the status and see what it missed. The new ioctl interface will use this properly.
-
- 17 Jul, 2003 1 commit
-
-
Adrian Bunk authored
This causes blk.h to print a warning and removes all uses of blk.h. I've tested the compilation in 2.6.0-test1 with a .config that tries to compile as many drivers as possible.
-
- 02 Jul, 2003 1 commit
-
-
Joe Thornber authored
Replace a couple of bogus yields() with schedule() and io_schedule() respectively.
-
- 14 Jun, 2003 1 commit
-
-
Andrew Morton authored
From: Joe Thornber <thornber@sistina.com> Split the dm_create() function into two variants, depending on whether you want the device to have a specific minor number. This avoids the broken overloading of the minor argument to the old dm_create().
-
- 09 Jun, 2003 4 commits
-
-
Joe Thornber authored
-
Joe Thornber authored
-
Joe Thornber authored
Some targets may perform io of their own volition, eg. a mirror performing recovery, a cache target pulling in different chunks. We cannot let them perform this io while the device is suspended. This patch adds 2 new methods to the target type, which instruct the target to suspend/resume itself. All targets start in the suspended state, so should expect an initial resume call. Simple targets do not need to implement these functions.
-
Joe Thornber authored
-
- 20 Apr, 2003 1 commit
-
-
Andrew Morton authored
From: Joe Thornber <thornber@sistina.com> The only other thing that will need changing in dm to cope with 64bit dev_t concerns the bitset I'm using to keep track of allocated minor numbers. A trivial patch like this would work for now:
-
- 08 Mar, 2003 1 commit
-
-
Andrew Morton authored
Patch from Andries.Brouwer@cwi.nl The following patch does the following: - static const char *blkdevs[MAX_BLKDEV]; disappears - get_blkdev_list, (un)register_blkdev, __bdevname are moved from block_dev.c to genhd.c - the third "fops" parameter of register_blkdev was unused; now removed everywhere - zillions of places had printk("cannot get major") upon error return from register_blkdev; removed all of these and inserted a single printk in register_blkdev. Of course the reason for the patch is that one fixed size array is eliminated.
-
- 08 Jan, 2003 2 commits
-
-
Joe Thornber authored
bio_alloc() shouldn't fail if GFP_NOIO is used, and the bvec count is sensible. So remove redundant error checking.
-
Joe Thornber authored
Initialize the clone-info's index to the original bio's index. Required to properly handle stacking DM devices. [Kevin Corry]
-
- 16 Dec, 2002 11 commits
-
-
Joe Thornber authored
The block layer does not honour bio->bi_size when issuing io, instead it performs io to the complete bvecs. This means we have to change the bio splitting code slightly. Given a bio we repeatedly apply one of the following three operations until there is no more io left in the bio: 1) The remaining io does not cross an io/target boundary, so just create a clone and issue all of the io. 2) There are some bvecs at the start of the bio that are not split by a target boundary. Create a clone for these bvecs only. 3) The first bvec needs splitting, use bio_alloc() to create *two* bios, one for the first half of the bvec, the other for the second half. A bvec can never contain more than one boundary.
-
Joe Thornber authored
o If there's an error you still need to call bio_endio with bio->bi_size as the 'done' param. o Simplify clone_endio. [Kevin Corry]
-
Joe Thornber authored
Remove verbose debug message 'Splitting page'.
-
Joe Thornber authored
Some fields in the duplicated bio weren't being set up properly in __split_page(). [Kevin Corry]
-
Joe Thornber authored
md->pending was being incremented for each clone rather than just once. [Kevin Corry]
-
Joe Thornber authored
dec_pending(): only bother spin locking if io->error is going to be updated. [Kevin Corry]
-
Joe Thornber authored
Add a blk_run_queues() call to encourage pending io to flush when we're doing a dm_suspend().
-
Joe Thornber authored
dm_suspend(): Stop holding the read lock around the while loop that waits for pending io to complete.
-
Joe Thornber authored
queue_io() was checking the DMF_SUSPENDED flag rather than the new DMF_BLOCK_IO flag. This meant suspend could deadlock under load.
-
Joe Thornber authored
Give each device its own io mempool to avoid a potential deadlock with stacked devices. [HM + EJT]
-
Joe Thornber authored
check_device_area was comparing the bytes with sectors. [Stefan Lauterbach]
-
- 25 Nov, 2002 1 commit
-
-
Alan Cox authored
-
- 11 Nov, 2002 1 commit
-
-
Alexander Viro authored
Compile fixes, cleanup.
-
- 28 Oct, 2002 1 commit
-
-
Alan Cox authored
This is the device mapper with Joe's updates applied and in -ac for a bit
-