| Age | Commit message (Collapse) | Author |
|
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.
|
|
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.
|
|
util-linux is waiting for this: it needs to update "struct loop_info64"
to add the encryption policy name.
|
|
This does the following:
- IV value is current 512-byte sector relative to start of loop
container file. This is what all cryptoloop people have done, if I
am not mistaken. Andi or others - if you can demonstrate the need
for a more flexible setup an additional ioctl field may be needed. I
hope we can do without.
- made some things static
- made lo_offset a loff_t
- added lo_sizelimit
If one wanted a (crypto)loop somewhere inside a container file, the
old code allowed a starting offset, but no size, so that the
cryptoloop always extended to the end of the container file. This
field allows one to select an arbitrary interval. Note that this
changes struct loop_info64.
- improve error handling of loop_init()
- removed the unused typedef transfer_proc_t.
- added a define for LO_CRYPT_CRYPTOAPI
|
|
This does the following:
- remove trailing spaces
- make loop.h independent by including bio.h, blk.h, spinlock.h
- replace the lock/unlock functions by module_get/module_put;
in struct loop this is the change
- void (*lock)(struct loop_device *);
- void (*unlock)(struct loop_device *);
+ struct module *owner;
- replace the integer lo_encrypt_type by the pointer lo_encryption;
there was a race with loop_unregister_transfer
- fixed an off-by-one in loop_register_transfer
This is Step 1 of a series of half a dozen or so.
Half of the above is from Jari. Anything that is wrong is mine.
|
|
From: Hugh Dickins <hugh@veritas.com>
Jonah Sherman <jsherman@stuy.edu> pointed out back in February how
LO_FLAGS_BH_REMAP is never actually set, since loop_init_xfer only calls
the init for non-0 encryption type. Fix that or scrap it? Let's scrap it
for now, that path (hacking values in bio instead of copying data) seems
never to have been tested, and adds to the number of paths through loop:
leave that optimization to some other occasion.
|
|
(i) Replace in struct loop_info the dev_t field by __kernel_old_dev_t,
where this type is defined in <asm/posix_types.h>, so that problems
with a differently sized dev_t in userspace are avoided.
(ii) Introduce a new loop_info64, with __u64 device, inode and offset
fields.
|
|
- add lo->lo_blocksize
- kill lo_get_bs() - great name, but...
- set ->lo_device only if we do have a block device
- pull determination of ->lo_blocksize into both branches - bdev
variant gets it from lo_device and file one uses ->i_blocksize.
- switched the ioctl getting information about underlying object
to lo->lo_device ? stat.rdev : stat.dev
- i.e. st_rdev of underlying object if it's a device and st_dev - if it's
a file.
- reverted the bogosity in shmem.c
|
|
From Peter Chubb
Compaq Smart array sector_t cleanup: prepare for possible 64-bit sector_t
Clean up loop device to allow huge backing files.
MD transition to 64-bit sector_t.
- Hold sizes and offsets as sector_t not int;
- use 64-bit arithmetic if necessary to map block-in-raid to zone
and block-in-zone
|
|
This makes loop honor the queue restrictions by basically stacking all
of those, and mirroring the merge_bvec_fn() on the target queue. It also
switches loop to use per-loop device queues, since that is the only sane
way to do this from a performance POV. Also, in principle I find it to
be much nicer if every distinct block device has its own queue.
|
|
Fix the loop driver for loop-on-blockdev setups.
When presented with a multipage BIO, loop_make_request overindexes the
first page and corrupts kernel memory. Fix it to walk the individual
pages.
BTW, I suspect the IV handling in loop may be incorrect for multipage
BIOs. Should we not be recalculating the IV for each page in the BIOs,
or incrementing the offset by the size of the preceding pages, or such?
|
|
- block/loop.c - switch ->lo_device to struct block_device *.
|
|
- Greg KH: USB update
- Richard Gooch: refcounting for devfs
- Jens Axboe: start of new block IO layer
|
|
- Neil Brown: md cleanups/fixes
- Andrew Morton: console locking merge
- Andrea Arkangeli: major VM merge
|
|
- Anton Altaparmakov: NTFS error checking
- Johannes Erdfelt: USB updates
- OGAWA Hirofumi: FAT update
- Alan Cox: driver + s390 update merge
- Richard Henderson: fix alpha sigsuspend error return value
- Marcelo Tosatti: per-zone VM shortage
- Daniel Phillips: generic use-once optimization instead of drop-behind
- Bjorn Wesen: Cris architecture update
- Anton Altaparmakov: support for Windows Dynamic Disks
- James Washer: LDT loading SMP bug fix
|
|
- Alan Cox: continued merging
- Urban Widmark: smbfs fix (d_add on already hashed dentry - no-no).
- Andrew Morton: 3c59x update
- Jeff Garzik: network driver cleanups and fixes
- Gérard Roudier: sym-ncr drivers update
- Jens Axboe: more loop cleanups and fixes
- David Miller: sparc update, some networking fixes
|
|
- Jens Axboe: fix loop device deadlocks
- Greg KH: USB updates
- Alan Cox: continued merging
- Tim Waugh: parport and documentation updates
- Cort Dougan: PowerPC merge
- Jeff Garzik: network driver updates
- Justin Gibbs: new and much improved aic7xxx driver 6.1.5
|
|
|