]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
13 years agoOn thread exit shm_exit_ns() is called, it uses shm_ids(ns).rw_mutex. It
Vasiliy Kulikov [Wed, 3 Aug 2011 00:52:32 +0000 (10:52 +1000)]
On thread exit shm_exit_ns() is called, it uses shm_ids(ns).rw_mutex.  It
is initialized in shm_init(), but it is not called yet at the moment of
kernel threads exit.  Some kernel threads are created in
do_pre_smp_initcalls(), and shm_init() is called in do_initcalls().

Static initialization of shm_ids(init_ipc_ns).rw_mutex fixes the race.

It fixes a kernel oops:

Unable to handle kernel NULL pointer dereference at virtual address 00000000
...
[<c0320090>] (__down_write_nested+0x88/0xe0) from [<c015da08>] (exit_shm+0x28/0x48)
[<c015da08>] (exit_shm+0x28/0x48) from [<c002e550>] (do_exit+0x59c/0x750)
[<c002e550>] (do_exit+0x59c/0x750) from [<c003eaac>] (____call_usermodehelper+0x13c/0x154)
[<c003eaac>] (____call_usermodehelper+0x13c/0x154) from [<c000f630>] (kernel_thread_exit+0x0/0x8)
Code: 1afffffa e597c00c e58d0000 e587d00c (e58cd000)

Reported-by: Manuel Lauss <manuel.lauss@googlemail.com>
Reported-by: Richard Weinberger <richard@nod.at>
Reported-by: Marc Zyngier <maz@misterjones.org>
Tested-by: Manuel Lauss <manuel.lauss@googlemail.com>
Tested-by: Richard Weinberger <richard@nod.at>
Tested-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
13 years agoThis patch makes two changes:
Will Drewry [Wed, 3 Aug 2011 00:52:30 +0000 (10:52 +1000)]
This patch makes two changes:
- check for trailing characters after parsing PARTNROFF=%d
- disable root_wait if a syntax error is seen

The former assures that bad input like
  root=PARTUUID=<validuuid>/PARTNROFF=5abc
properly fails by attempting to parse an extra character after the
integer.  If the integer is missing, sscanf will fail, but if it is
present, and there is a trailing non-nul character, then the extra
field will be parsed and the error case will be hit.

The latter assures that if rootwait has been specified, the error
message isn't flooded to the screen during rootwait's loop.  Instead of
adding printk ratelimiting, root_wait was disabled.  This stays true to
the rootwait goal of support asynchronous device arrival while still
providing users with helpful messages.  With ratelimiting or disabling
logging on rootwait, a range of edge cases turn up where the user would
not be informed of an error properly.

Signed-off-by: Will Drewry <wad@chromium.org>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Cc: Randy Dunlap <rdunlap@xenotime.net>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
13 years agoExpand root=PARTUUID=UUID syntax to support selecting a root partition by
Will Drewry [Wed, 3 Aug 2011 00:52:30 +0000 (10:52 +1000)]
Expand root=PARTUUID=UUID syntax to support selecting a root partition by
integer offset from a known, unique partition.  This approach provides
similar properties to specifying a device and partition number, but using
the UUID as the unique path prior to evaluating the offset.

For example,
  root=PARTUUID=99DE9194-FC15-4223-9192-FC243948F88B/PARTNROFF=1
selects the partition with UUID 99DE.. then select the next
partition.

This change is motivated by a particular usecase in Chromium OS where the
bootloader can easily determine what partition it is on (by UUID) but
doesn't perform general partition table walking.

That said, support for this model provides a direct mechanism for the user
to modify the root partition to boot without specifically needing to
extract each UUID or update the bootloader explicitly when the root
partition UUID is changed (if it is recreated to be larger, for instance).
 Pinning to a /boot-style partition UUID allows the arbitrary root
partition reconfiguration/modifications with slightly less ambiguity than
just [dev][partition] and less stringency than the specific root partition
UUID.

Signed-off-by: Will Drewry <wad@chromium.org>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Cc: Randy Dunlap <rdunlap@xenotime.net>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
13 years agoMerge remote-tracking branch 'moduleh/module.h-split'
Stephen Rothwell [Wed, 10 Aug 2011 01:32:11 +0000 (11:32 +1000)]
Merge remote-tracking branch 'moduleh/module.h-split'

Conflicts:
drivers/dma/ste_dma40.c
drivers/staging/dt3155v4l/dt3155v4l.c
include/linux/dmaengine.h

13 years agoMerge remote-tracking branch 'tmem/linux-next'
Stephen Rothwell [Wed, 10 Aug 2011 01:27:02 +0000 (11:27 +1000)]
Merge remote-tracking branch 'tmem/linux-next'

13 years agoMerge remote-tracking branch 'regmap/for-next'
Stephen Rothwell [Wed, 10 Aug 2011 01:25:19 +0000 (11:25 +1000)]
Merge remote-tracking branch 'regmap/for-next'

13 years agoMerge remote-tracking branch 'namespace/master'
Stephen Rothwell [Wed, 10 Aug 2011 01:23:55 +0000 (11:23 +1000)]
Merge remote-tracking branch 'namespace/master'

13 years agoMerge remote-tracking branch 'sysctl/master'
Stephen Rothwell [Wed, 10 Aug 2011 01:22:38 +0000 (11:22 +1000)]
Merge remote-tracking branch 'sysctl/master'

13 years agoMerge remote-tracking branch 'percpu/for-next'
Stephen Rothwell [Wed, 10 Aug 2011 01:21:11 +0000 (11:21 +1000)]
Merge remote-tracking branch 'percpu/for-next'

13 years agoMerge remote-tracking branch 'edac-amd/for-next'
Stephen Rothwell [Wed, 10 Aug 2011 01:19:54 +0000 (11:19 +1000)]
Merge remote-tracking branch 'edac-amd/for-next'

13 years agoMerge remote-tracking branch 'xen-two/linux-next'
Stephen Rothwell [Wed, 10 Aug 2011 01:19:49 +0000 (11:19 +1000)]
Merge remote-tracking branch 'xen-two/linux-next'

13 years agoMerge remote-tracking branch 'kvm/linux-next'
Stephen Rothwell [Wed, 10 Aug 2011 01:18:25 +0000 (11:18 +1000)]
Merge remote-tracking branch 'kvm/linux-next'

13 years agoMerge remote-tracking branch 'tip/auto-latest'
Stephen Rothwell [Wed, 10 Aug 2011 01:12:05 +0000 (11:12 +1000)]
Merge remote-tracking branch 'tip/auto-latest'

13 years agoMerge remote-tracking branch 'devicetree/devicetree/next'
Stephen Rothwell [Wed, 10 Aug 2011 01:11:56 +0000 (11:11 +1000)]
Merge remote-tracking branch 'devicetree/devicetree/next'

Conflicts:
drivers/of/base.c

13 years agoMerge remote-tracking branch 'i7300_edac/linux_next'
Stephen Rothwell [Wed, 10 Aug 2011 01:10:35 +0000 (11:10 +1000)]
Merge remote-tracking branch 'i7300_edac/linux_next'

Conflicts:
arch/x86/kernel/cpu/mcheck/mce.c

13 years agoMerge remote-tracking branch 'i7core_edac/linux_next'
Stephen Rothwell [Wed, 10 Aug 2011 01:09:03 +0000 (11:09 +1000)]
Merge remote-tracking branch 'i7core_edac/linux_next'

13 years agoMerge remote-tracking branch 'fsnotify/for-next'
Stephen Rothwell [Wed, 10 Aug 2011 01:06:24 +0000 (11:06 +1000)]
Merge remote-tracking branch 'fsnotify/for-next'

13 years agoMerge remote-tracking branch 'pm/linux-next'
Stephen Rothwell [Wed, 10 Aug 2011 01:04:59 +0000 (11:04 +1000)]
Merge remote-tracking branch 'pm/linux-next'

13 years agoMerge remote-tracking branch 'trivial/for-next'
Stephen Rothwell [Wed, 10 Aug 2011 01:03:37 +0000 (11:03 +1000)]
Merge remote-tracking branch 'trivial/for-next'

13 years agoMerge remote-tracking branch 'agp/agp-next'
Stephen Rothwell [Wed, 10 Aug 2011 01:02:53 +0000 (11:02 +1000)]
Merge remote-tracking branch 'agp/agp-next'

13 years agoMerge commit 'refs/next/20110809/security-testing'
Stephen Rothwell [Wed, 10 Aug 2011 00:59:35 +0000 (10:59 +1000)]
Merge commit 'refs/next/20110809/security-testing'

13 years agoMerge remote-tracking branch 'voltage/for-next'
Stephen Rothwell [Wed, 10 Aug 2011 00:41:56 +0000 (10:41 +1000)]
Merge remote-tracking branch 'voltage/for-next'

13 years agoMerge remote-tracking branch 'viafb/viafb-next'
Stephen Rothwell [Wed, 10 Aug 2011 00:40:23 +0000 (10:40 +1000)]
Merge remote-tracking branch 'viafb/viafb-next'

13 years agoMerge remote-tracking branch 'fbdev/master'
Stephen Rothwell [Wed, 10 Aug 2011 00:38:56 +0000 (10:38 +1000)]
Merge remote-tracking branch 'fbdev/master'

13 years agoMerge remote-tracking branch 'md/for-next'
Stephen Rothwell [Wed, 10 Aug 2011 00:37:26 +0000 (10:37 +1000)]
Merge remote-tracking branch 'md/for-next'

13 years agoMerge remote-tracking branch 'slab/for-next'
Stephen Rothwell [Wed, 10 Aug 2011 00:37:20 +0000 (10:37 +1000)]
Merge remote-tracking branch 'slab/for-next'

13 years agoMerge remote-tracking branch 'kgdb/kgdb-next'
Stephen Rothwell [Wed, 10 Aug 2011 00:37:15 +0000 (10:37 +1000)]
Merge remote-tracking branch 'kgdb/kgdb-next'

13 years agoMerge remote-tracking branch 'mmc/mmc-next'
Stephen Rothwell [Wed, 10 Aug 2011 00:35:55 +0000 (10:35 +1000)]
Merge remote-tracking branch 'mmc/mmc-next'

Conflicts:
drivers/mmc/host/sdhci-esdhc-imx.c

13 years agoMerge remote-tracking branch 'leds/for-mm'
Stephen Rothwell [Wed, 10 Aug 2011 00:35:46 +0000 (10:35 +1000)]
Merge remote-tracking branch 'leds/for-mm'

Conflicts:
drivers/leds/Kconfig

13 years agoMerge branch 'quilt/device-mapper'
Stephen Rothwell [Wed, 10 Aug 2011 00:33:42 +0000 (10:33 +1000)]
Merge branch 'quilt/device-mapper'

13 years agoMerge remote-tracking branch 'block/for-next'
Stephen Rothwell [Wed, 10 Aug 2011 00:29:28 +0000 (10:29 +1000)]
Merge remote-tracking branch 'block/for-next'

13 years agoMerge remote-tracking branch 'input/next'
Stephen Rothwell [Wed, 10 Aug 2011 00:28:02 +0000 (10:28 +1000)]
Merge remote-tracking branch 'input/next'

13 years agoMerge branch 'quilt/rr'
Stephen Rothwell [Wed, 10 Aug 2011 00:26:44 +0000 (10:26 +1000)]
Merge branch 'quilt/rr'

13 years agoMerge remote-tracking branch 'cpufreq/next'
Stephen Rothwell [Wed, 10 Aug 2011 00:25:21 +0000 (10:25 +1000)]
Merge remote-tracking branch 'cpufreq/next'

13 years agoMerge commit 'refs/next/20110809/sound-asoc'
Stephen Rothwell [Wed, 10 Aug 2011 00:23:54 +0000 (10:23 +1000)]
Merge commit 'refs/next/20110809/sound-asoc'

13 years agoMerge remote-tracking branch 'sound/for-next'
Stephen Rothwell [Wed, 10 Aug 2011 00:20:00 +0000 (10:20 +1000)]
Merge remote-tracking branch 'sound/for-next'

13 years agoMerge remote-tracking branch 'l2-mtd/master'
Stephen Rothwell [Wed, 10 Aug 2011 00:18:32 +0000 (10:18 +1000)]
Merge remote-tracking branch 'l2-mtd/master'

Conflicts:
drivers/mtd/maps/lantiq-flash.c
drivers/mtd/maps/pxa2xx-flash.c

13 years agoMerge remote-tracking branch 'bluetooth/master'
Stephen Rothwell [Wed, 10 Aug 2011 00:16:57 +0000 (10:16 +1000)]
Merge remote-tracking branch 'bluetooth/master'

13 years agoMerge remote-tracking branch 'wireless/master'
Stephen Rothwell [Wed, 10 Aug 2011 00:15:09 +0000 (10:15 +1000)]
Merge remote-tracking branch 'wireless/master'

13 years agoMerge remote-tracking branch 'net/master'
Stephen Rothwell [Wed, 10 Aug 2011 00:13:03 +0000 (10:13 +1000)]
Merge remote-tracking branch 'net/master'

13 years agoMerge remote-tracking branch 'slave-dma/next'
Stephen Rothwell [Wed, 10 Aug 2011 00:09:31 +0000 (10:09 +1000)]
Merge remote-tracking branch 'slave-dma/next'

13 years agoMerge remote-tracking branch 'ibft/master'
Stephen Rothwell [Wed, 10 Aug 2011 00:09:24 +0000 (10:09 +1000)]
Merge remote-tracking branch 'ibft/master'

13 years agoMerge remote-tracking branch 'swiotlb/master'
Stephen Rothwell [Wed, 10 Aug 2011 00:09:18 +0000 (10:09 +1000)]
Merge remote-tracking branch 'swiotlb/master'

13 years agoMerge remote-tracking branch 'kconfig/for-next'
Stephen Rothwell [Wed, 10 Aug 2011 00:08:58 +0000 (10:08 +1000)]
Merge remote-tracking branch 'kconfig/for-next'

13 years agoMerge remote-tracking branch 'kbuild/for-next'
Stephen Rothwell [Wed, 10 Aug 2011 00:07:27 +0000 (10:07 +1000)]
Merge remote-tracking branch 'kbuild/for-next'

13 years agoMerge remote-tracking branch 'docs/docs-move'
Stephen Rothwell [Wed, 10 Aug 2011 00:06:10 +0000 (10:06 +1000)]
Merge remote-tracking branch 'docs/docs-move'

13 years agoMerge branch 'quilt/kernel-doc'
Stephen Rothwell [Wed, 10 Aug 2011 00:04:52 +0000 (10:04 +1000)]
Merge branch 'quilt/kernel-doc'

13 years agoMerge remote-tracking branch 'hwmon-staging/hwmon-next'
Stephen Rothwell [Wed, 10 Aug 2011 00:03:38 +0000 (10:03 +1000)]
Merge remote-tracking branch 'hwmon-staging/hwmon-next'

13 years agoMerge remote-tracking branch 'hid/for-next'
Stephen Rothwell [Wed, 10 Aug 2011 00:02:03 +0000 (10:02 +1000)]
Merge remote-tracking branch 'hid/for-next'

13 years agoMerge remote-tracking branch 'xfs/master'
Stephen Rothwell [Wed, 10 Aug 2011 00:00:21 +0000 (10:00 +1000)]
Merge remote-tracking branch 'xfs/master'

13 years agoMerge remote-tracking branch 'v9fs/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 23:59:02 +0000 (09:59 +1000)]
Merge remote-tracking branch 'v9fs/for-next'

13 years agoMerge remote-tracking branch 'ocfs2/linux-next'
Stephen Rothwell [Tue, 9 Aug 2011 23:57:32 +0000 (09:57 +1000)]
Merge remote-tracking branch 'ocfs2/linux-next'

13 years agoMerge remote-tracking branch 'nfs/linux-next'
Stephen Rothwell [Tue, 9 Aug 2011 23:56:12 +0000 (09:56 +1000)]
Merge remote-tracking branch 'nfs/linux-next'

13 years agoMerge remote-tracking branch 'logfs/master'
Stephen Rothwell [Tue, 9 Aug 2011 23:54:55 +0000 (09:54 +1000)]
Merge remote-tracking branch 'logfs/master'

13 years agoMerge remote-tracking branch 'jfs/next'
Stephen Rothwell [Tue, 9 Aug 2011 23:53:38 +0000 (09:53 +1000)]
Merge remote-tracking branch 'jfs/next'

13 years agoMerge remote-tracking branch 'gfs2/master'
Stephen Rothwell [Tue, 9 Aug 2011 23:52:20 +0000 (09:52 +1000)]
Merge remote-tracking branch 'gfs2/master'

13 years agoMerge remote-tracking branch 'fuse/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 23:51:04 +0000 (09:51 +1000)]
Merge remote-tracking branch 'fuse/for-next'

13 years agoMerge remote-tracking branch 'cifs/master'
Stephen Rothwell [Tue, 9 Aug 2011 23:49:41 +0000 (09:49 +1000)]
Merge remote-tracking branch 'cifs/master'

13 years agoMerge remote-tracking branch 'ceph/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 23:48:26 +0000 (09:48 +1000)]
Merge remote-tracking branch 'ceph/for-next'

13 years agoMerge remote-tracking branch 'unicore32/unicore32'
Stephen Rothwell [Tue, 9 Aug 2011 23:47:10 +0000 (09:47 +1000)]
Merge remote-tracking branch 'unicore32/unicore32'

13 years agoMerge remote-tracking branch 'sh/sh-latest'
Stephen Rothwell [Tue, 9 Aug 2011 23:45:47 +0000 (09:45 +1000)]
Merge remote-tracking branch 'sh/sh-latest'

13 years agoMerge remote-tracking branch 's390/features'
Stephen Rothwell [Tue, 9 Aug 2011 23:44:34 +0000 (09:44 +1000)]
Merge remote-tracking branch 's390/features'

13 years agoMerge remote-tracking branch '52xx-and-virtex/powerpc/next'
Stephen Rothwell [Tue, 9 Aug 2011 23:43:16 +0000 (09:43 +1000)]
Merge remote-tracking branch '52xx-and-virtex/powerpc/next'

13 years agoMerge remote-tracking branch 'mips/mips-for-linux-next'
Stephen Rothwell [Tue, 9 Aug 2011 23:41:46 +0000 (09:41 +1000)]
Merge remote-tracking branch 'mips/mips-for-linux-next'

13 years agoMerge remote-tracking branch 'm68knommu/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 23:40:33 +0000 (09:40 +1000)]
Merge remote-tracking branch 'm68knommu/for-next'

13 years agoMerge remote-tracking branch 'cris/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 23:39:13 +0000 (09:39 +1000)]
Merge remote-tracking branch 'cris/for-next'

13 years agoMerge remote-tracking branch 'blackfin/for-linus'
Stephen Rothwell [Tue, 9 Aug 2011 23:37:59 +0000 (09:37 +1000)]
Merge remote-tracking branch 'blackfin/for-linus'

13 years agoMerge remote-tracking branch 's5p/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 23:36:39 +0000 (09:36 +1000)]
Merge remote-tracking branch 's5p/for-next'

Conflicts:
arch/arm/mach-exynos4/Kconfig
arch/arm/mach-exynos4/mach-smdkc210.c

13 years agoMerge remote-tracking branch 'msm/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 23:35:08 +0000 (09:35 +1000)]
Merge remote-tracking branch 'msm/for-next'

Conflicts:
arch/arm/mach-msm/io.c

13 years agoMerge remote-tracking branch 'arm-soc/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 23:34:57 +0000 (09:34 +1000)]
Merge remote-tracking branch 'arm-soc/for-next'

Conflicts:
arch/arm/mach-exynos4/pm.c
arch/arm/mach-imx/mm-imx25.c
arch/arm/mach-imx/mm-imx31.c
arch/arm/mach-imx/mm-imx35.c
arch/arm/mach-mx5/mm.c
arch/arm/mach-omap2/cm-regbits-44xx.h

13 years agoMerge remote-tracking branch 'arm-lpae/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 23:33:19 +0000 (09:33 +1000)]
Merge remote-tracking branch 'arm-lpae/for-next'

Conflicts:
arch/arm/include/asm/pgalloc.h
arch/arm/include/asm/pgtable.h
arch/arm/include/asm/tlb.h

13 years agoMerge remote-tracking branch 'arm/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 23:31:57 +0000 (09:31 +1000)]
Merge remote-tracking branch 'arm/for-next'

13 years agoMerge remote-tracking branch 'devicetree-current/devicetree/merge'
Stephen Rothwell [Tue, 9 Aug 2011 23:25:59 +0000 (09:25 +1000)]
Merge remote-tracking branch 'devicetree-current/devicetree/merge'

13 years agoMerge remote-tracking branch 'fbdev-current/fbdev-fixes-for-linus'
Stephen Rothwell [Tue, 9 Aug 2011 23:25:56 +0000 (09:25 +1000)]
Merge remote-tracking branch 'fbdev-current/fbdev-fixes-for-linus'

13 years agoMerge remote-tracking branch 'rmobile-current/rmobile-fixes-for-linus'
Stephen Rothwell [Tue, 9 Aug 2011 23:25:55 +0000 (09:25 +1000)]
Merge remote-tracking branch 'rmobile-current/rmobile-fixes-for-linus'

13 years agoMerge remote-tracking branch 'sh-current/sh-fixes-for-linus'
Stephen Rothwell [Tue, 9 Aug 2011 23:25:54 +0000 (09:25 +1000)]
Merge remote-tracking branch 'sh-current/sh-fixes-for-linus'

13 years agoMerge remote-tracking branch 'input-current/for-linus'
Stephen Rothwell [Tue, 9 Aug 2011 23:25:43 +0000 (09:25 +1000)]
Merge remote-tracking branch 'input-current/for-linus'

13 years agoMerge remote-tracking branch 'staging.current/staging-linus'
Stephen Rothwell [Tue, 9 Aug 2011 23:25:41 +0000 (09:25 +1000)]
Merge remote-tracking branch 'staging.current/staging-linus'

13 years agoMerge remote-tracking branch 'usb.current/usb-linus'
Stephen Rothwell [Tue, 9 Aug 2011 23:25:40 +0000 (09:25 +1000)]
Merge remote-tracking branch 'usb.current/usb-linus'

13 years agoMerge remote-tracking branch 'tty.current/tty-linus'
Stephen Rothwell [Tue, 9 Aug 2011 23:25:40 +0000 (09:25 +1000)]
Merge remote-tracking branch 'tty.current/tty-linus'

13 years agoMerge remote-tracking branch 'driver-core.current/driver-core-linus'
Stephen Rothwell [Tue, 9 Aug 2011 23:25:39 +0000 (09:25 +1000)]
Merge remote-tracking branch 'driver-core.current/driver-core-linus'

13 years agoMerge remote-tracking branch 'wireless-current/master'
Stephen Rothwell [Tue, 9 Aug 2011 23:25:38 +0000 (09:25 +1000)]
Merge remote-tracking branch 'wireless-current/master'

13 years agoMerge remote-tracking branch 'pci-current/for-linus'
Stephen Rothwell [Tue, 9 Aug 2011 23:25:37 +0000 (09:25 +1000)]
Merge remote-tracking branch 'pci-current/for-linus'

13 years agoMerge remote-tracking branch 'net-current/master'
Stephen Rothwell [Tue, 9 Aug 2011 23:25:36 +0000 (09:25 +1000)]
Merge remote-tracking branch 'net-current/master'

13 years agoMerge remote-tracking branch 'powerpc-merge/merge'
Stephen Rothwell [Tue, 9 Aug 2011 23:25:34 +0000 (09:25 +1000)]
Merge remote-tracking branch 'powerpc-merge/merge'

13 years agoInitial EXPERIMENTAL implementation of device-mapper thin provisioning
Joe Thornber [Tue, 9 Aug 2011 23:13:35 +0000 (09:13 +1000)]
Initial EXPERIMENTAL implementation of device-mapper thin provisioning
with snapshot support.  The 'thin' target is used to create instances of
the virtual devices that are hosted in the 'thin-pool' target.  The
thin-pool target provides data sharing among devices.  This sharing is
made possible using the persistent-data library in the previous patch.

The main highlight of this implementation, compared to the previous
implementation of snapshots, is that it allows many virtual devices to
be stored on the same data volume, simplifying administration and
allowing sharing of data between volumes (thus reducing disk usage).

Another big feature is support for arbitrary depth of recursive
snapshots (snapshots of snapshots of snapshots ...).  The previous
implementation of snapshots did this by chaining together lookup tables,
and so performance was O(depth).  This new implementation uses a single
data structure so we don't get this degradation with depth.

For further information and examples of how to use this, please read
Documentation/device-mapper/thin-provisioning.txt

Signed-off-by: Joe Thornber <thornber@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoThe persistent-data library offers a re-usable framework for the storage
Joe Thornber [Tue, 9 Aug 2011 23:13:34 +0000 (09:13 +1000)]
The persistent-data library offers a re-usable framework for the storage
and management of on-disk metadata in device-mapper targets.

It's used by the thin-provisioning target in the next patch and in an
upcoming hierarchical storage target.

For further information, please read
Documentation/device-mapper/persistent-data.txt

Signed-off-by: Joe Thornber <thornber@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoExport dm_get_md() for the new thin provisioning target to use.
Alasdair G Kergon [Tue, 9 Aug 2011 23:13:34 +0000 (09:13 +1000)]
Export dm_get_md() for the new thin provisioning target to use.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoAdd a target feature flag to indicate that a target does not work in
Alasdair G Kergon [Tue, 9 Aug 2011 23:13:34 +0000 (09:13 +1000)]
Add a target feature flag to indicate that a target does not work in
read-only mode.

The thin provisioning target uses this.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoIntroduce the concept of a singleton table which contains exactly one target.
Alasdair G Kergon [Tue, 9 Aug 2011 23:13:34 +0000 (09:13 +1000)]
Introduce the concept of a singleton table which contains exactly one target.

If a target type sets the DM_TARGET_SINGLETON feature bit device-mapper
will ensure that any table that includes that target contains no others.

The thin provisioning pool target uses this.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoThis patch introduces dm_kcopyd_zero() to make it easy to use
Mikulas Patocka [Tue, 9 Aug 2011 23:13:33 +0000 (09:13 +1000)]
This patch introduces dm_kcopyd_zero() to make it easy to use
kcopyd to write zeros into the requested areas instead
instead of copying.  It is implemented by passing a NULL
copying source to dm_kcopyd_copy().

The forthcoming thin provisioning target uses this.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoprintk_ratelimit() shares global ratelimiting state with all
Namhyung Kim [Tue, 9 Aug 2011 23:13:33 +0000 (09:13 +1000)]
printk_ratelimit() shares global ratelimiting state with all
other subsystems, so its usage is discouraged. Instead,
define and use dm's local state.

Signed-off-by: Namhyung Kim <namhyung@gmail.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoIf optional discard support in dm-crypt is enabled, discards requests
Milan Broz [Tue, 9 Aug 2011 23:13:33 +0000 (09:13 +1000)]
If optional discard support in dm-crypt is enabled, discards requests
bypass the crypt queue and blocks of the underlying device are discarded.
For the read path, discarded blocks are handled the same as normal
ciphertext blocks, thus decrypted.

So if the underlying device announces discarded regions return zeroes,
dm-crypt must disable this flag because after decryption there is just
random noise instead of zeroes.

Signed-off-by: Milan Broz <mbroz@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoFix off-by-one error in validation of write_mostly.
Jonthan Brassow [Tue, 9 Aug 2011 23:13:33 +0000 (09:13 +1000)]
Fix off-by-one error in validation of write_mostly.

The user-supplied value given for the 'write_mostly' argument must be an
index starting at 0.  The validation of the supplied argument failed to
check for 'N' ('>' vs '>='), which would have caused an access beyond the
end of the array.

Reported-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agolibceph: warn on msg allocation failures
Sage Weil [Tue, 9 Aug 2011 22:05:07 +0000 (15:05 -0700)]
libceph: warn on msg allocation failures

Any non-masked msg allocation failure should generate a warning and stack
trace to the console.  All of these need to eventually be replaced by
safe preallocation or msgpools.

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agolibceph: don't complain on msgpool alloc failures
Sage Weil [Tue, 9 Aug 2011 22:03:46 +0000 (15:03 -0700)]
libceph: don't complain on msgpool alloc failures

The pool allocation failures are masked by the pool; there is no need to
spam the console about them.  (That's the whole point of having the pool
in the first place.)

Mark msg allocations whose failure is safely handled as such.

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agolibceph: always preallocate mon connection
Sage Weil [Tue, 9 Aug 2011 16:27:44 +0000 (09:27 -0700)]
libceph: always preallocate mon connection

Allocate the mon connection on init.  We already reuse it across
reconnects.  Remove now unnecessary (and incomplete) NULL checks.

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agolibceph: create messenger with client
Sage Weil [Tue, 9 Aug 2011 16:41:59 +0000 (09:41 -0700)]
libceph: create messenger with client

This simplifies the init/shutdown paths, and makes client->msgr available
during the rest of the setup process.

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agoceph: document ioctls
Sage Weil [Thu, 4 Aug 2011 22:41:37 +0000 (15:41 -0700)]
ceph: document ioctls

...after some prodding by Christoph.

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agoceph: implement (optional) max read size
Sage Weil [Thu, 4 Aug 2011 15:21:30 +0000 (08:21 -0700)]
ceph: implement (optional) max read size

The 'rsize' mount option limits the maximum size of an individual
read(ahead) operation that is sent off to an OSD.  This is distinct from
'rasize', which controls the size of the readahead window.

Signed-off-by: Sage Weil <sage@newdream.net>