android_kernel_xiaomi_sm8350/drivers/block
Ken Chen 7328508274 remove artificial software max_loop limit
Remove artificial maximum 256 loop device that can be created due to a
legacy device number limit.  Searching through lkml archive, there are
several instances where users complained about the artificial limit that
the loop driver impose.  There is no reason to have such limit.

This patch rid the limit entirely and make loop device and associated block
queue instantiation on demand.  With on-demand instantiation, it also gives
the benefit of not wasting memory if these devices are not in use (compare
to current implementation that always create 8 loop devices), a net
improvement in both areas.  This version is both tested with creation of
large number of loop devices and is compatible with existing losetup/mount
user land tools.

There are a number of people who worked on this and provided valuable
suggestions, in no particular order, by:

Jens Axboe
Jan Engelhardt
Christoph Hellwig
Thomas M

Signed-off-by: Ken Chen <kenchen@google.com>
Cc: Jan Engelhardt <jengelh@linux01.gwdg.de>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08 11:15:07 -07:00
..
aoe [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
paride paride drivers: initialize spinlocks 2007-04-24 08:23:08 -07:00
acsi_slm.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
acsi.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
amiflop.c mm: remove destroy_dirty_buffers from invalidate_bdev() 2007-05-07 12:12:55 -07:00
ataflop.c
cciss_cmd.h [PATCH] cciss: add support for 1024 logical volumes 2006-12-07 08:39:30 -08:00
cciss_scsi.c
cciss_scsi.h
cciss.c [PATCH] cciss: unregister from SCSI before tearing down device resources 2007-04-12 15:31:42 -07:00
cciss.h [PATCH] cciss: add support for 1024 logical volumes 2006-12-07 08:39:30 -08:00
cpqarray.c [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
cpqarray.h
cryptoloop.c
DAC960.c [PATCH] mark struct file_operations const 3 2007-02-12 09:48:45 -08:00
DAC960.h [PATCH] drivers/block/DAC960: convert 'boolean' to 'bool' 2007-02-11 11:18:06 -08:00
floppy.c floppy: handle device_create_file() failure while init 2007-05-08 11:15:02 -07:00
ida_cmd.h
ida_ioctl.h
Kconfig [PATCH] initramfs should not depend on CONFIG_BLOCK 2007-03-06 09:30:25 -08:00
loop.c remove artificial software max_loop limit 2007-05-08 11:15:07 -07:00
Makefile [PATCH] remove the broken BLK_DEV_SWIM_IOP driver 2006-12-13 09:05:53 -08:00
nbd.c [PATCH] struct path: convert nbd 2006-12-08 08:28:47 -08:00
pktcdvd.c packet: fix error handling 2007-04-25 13:50:55 -07:00
ps2esdi.c
rd.c mm: remove destroy_dirty_buffers from invalidate_bdev() 2007-05-07 12:12:55 -07:00
smart1,2.h
swim3.c
sx8.c WorkStruct: make allyesconfig 2006-11-22 14:57:56 +00:00
ub.c ub: Bind to first endpoint, not to last 2007-04-27 13:28:34 -07:00
umem.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
viodasd.c [POWERPC] iSeries: fix viodasd init 2006-12-20 16:37:47 +11:00
xd.c [PATCH] Use linux/io.h instead of asm/io.h 2006-10-11 11:14:23 -07:00
xd.h
z2ram.c [PATCH] z2_init() in non-modular case 2006-10-11 11:17:07 -07:00