aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* ARM: 7083/1: rewrite U300 GPIO to use gpiolibLinus Walleij2011-09-08
| | | | | | | | | | | | | | | | | | This rewrites the U300 GPIO so as to use gpiolib and struct gpio_chip instead of just generic GPIO, hiding all the platform specifics and passing in GPIO chip variant as platform data at runtime instead of the compiletime kludges. As a result <mach/gpio.h> is now empty for U300 and using just defaults. Cc: Grant Likely <grant.likely@secretlab.ca> Cc: Debian kernel maintainers <debian-kernel@lists.debian.org> Cc: Arnaud Patard <arnaud.patard@rtp-net.org> Reported-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7074/1: gpio: davinci: eliminate unused variable warningsAxel Lin2011-09-05
| | | | | | | | | | | | | | | | Since commit 5093aec872e5be7a55d8dd2b639e8a3818dc19db "arm: davinci: Cleanup irq chip code", the variable 'mask' and 'g' are not being used. This patch eliminate below unused variable warnings: CC drivers/gpio/gpio-davinci.o drivers/gpio/gpio-davinci.c: In function 'gpio_irq_type': drivers/gpio/gpio-davinci.c:234: warning: unused variable 'mask' drivers/gpio/gpio-davinci.c:233: warning: unused variable 'g' Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7063/1: Orion: gpio: add missing include of linux/types.hAxel Lin2011-08-24
| | | | | | | | | | | | | | | | | This patch adds missing include of linux/types.h to fix below build error. CC arch/arm/mach-mv78xx0/mpp.o In file included from arch/arm/mach-mv78xx0/include/mach/gpio.h:9, from /home/axel/repos/git/linux-2.6/arch/arm/include/asm/gpio.h:5, from include/linux/gpio.h:18, from arch/arm/mach-mv78xx0/mpp.c:10: arch/arm/plat-orion/include/plat/gpio.h:28: error: expected declaration specifiers or '...' before 'u32' make[1]: *** [arch/arm/mach-mv78xx0/mpp.o] Error 1 make: *** [arch/arm/mach-mv78xx0] Error 2 Signed-off-by: Axel Lin <axel.lin@gmail.com> Reviewed-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7055/1: arm/tegra: mach/gpio.h: include linux/types.h to fix buildStephen Warren2011-08-24
| | | | | | | | Tegra's <mach/gpio.h> uses type bool; we need to include <linux/types.h> to get the definition. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7054/1: arm/tegra: Delete custom gpio_to_irq, and irq_to_gpioStephen Warren2011-08-24
| | | | | | | | | | | | | | | By not definining a custom gpio_to_irq, the default gpiolib version is used, allowing platform consolidation. irq_to_gpio is deprecated and in the process of being removed. Make that happen now for ARM Tegra. This also partially fixes the Tegra build; it was broken because gpio.h referred to EINVAL, which wasn't always defined when <mach/gpio.h> was included. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7053/1: gpio/tegra: Implement gpio_chip.to_irqStephen Warren2011-08-24
| | | | | Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7052/1: gpio/tegra: Remove use of irq_to_gpioStephen Warren2011-08-24
| | | | | | | | irq_to_gpio is being removed. Replace the only use of that API by the ARM Tegra sub-architecture. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7057/1: mach-pnx4008: rename GPIO headerLinus Walleij2011-08-23
| | | | | | | | | | | | | | | The PNX4008 header file is using the generic gpio and gpiolib namespace in <mach/gpio.h> yet the GPIO interface is not generic at all so rename it to <mach/gpio-pnx4008.h> This fixes a build failure in current -next: the includes were changed from <mach/gpio.h> to <linux/gpio.h> but since this platform isn't using generic gpio <linux/gpio.h> did not include <mach/gpio.h> and things broke apart. Acked-by: Vitaly Wool <vitalywool@gmail.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7056/1: plat-nomadik: kill off <plat/gpio.h>Linus Walleij2011-08-23
| | | | | | | | | After recent consolidations the Nomadik <plat/gpio.h> is entirely superfluous, so get rid of it. Reported-by: Russell King <linux@arm.linux.org.uk> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7050/1: mach-sa1100: delete irq_to_gpio() functionLinus Walleij2011-08-22
| | | | | | | | This function is not used in the assabet build, and on the whole the call is hard to consolidate so get rid of it from this machine. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7049/1: mach-sa1100: move SA1100 GPIO driver to GPIO subsystemLinus Walleij2011-08-22
| | | | | | | | As per example from the other ARM boards, push the SA100 GPIO driver down to the GPIO subsystem so it can be consolidated. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7045/1: mach-lpc32xx: break out GPIO driver specificsLinus Walleij2011-08-22
| | | | | | | | | | | | The <mach/gpio.h> file is included from upper directories and deal with generic GPIO and gpiolib stuff. Break out the platform and driver specific defines and functions into its own header file. Cc: Wolfram Sang <w.sang@pengutronix.de> Cc: Barry Song <bs14@csr.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7044/1: mach-lpc32xx: move LPC32XX GPIO driver to GPIO subsystemLinus Walleij2011-08-22
| | | | | | | | | | As per example from the other ARM boards, push the LPC32XX GPIO driver down to the GPIO subsystem so it can be consolidated. Cc: Wolfram Sang <w.sang@pengutronix.de> Cc: Barry Song <bs14@csr.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7043/1: mach-ixp2000: rename GPIO headerLinus Walleij2011-08-22
| | | | | | | | | | The ixp2000 abuses the <mach/gpio.h> namespace by not implementing any generic GPIO nor gpiolib functions in it - just custom GPIO. Rename the header to <mach/gpio-ixp2000.h> for clarity. Cc: Lennert Buytenhek <kernel@wantstofly.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7041/1: gpio-ep93xx: hookup the to_irq callback in the driverLinus Walleij2011-08-22
| | | | | | | | | Remove the ep93xx machine specific dependencies for gpio_to_irq() by hooking up the callback in the driver and using __gpio_to_irq. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7040/1: mach-davinci: break out GPIO driver specificsLinus Walleij2011-08-22
| | | | | | | | | | | | The <mach/gpio.h> file is included from upper directories and deal with generic GPIO and gpiolib stuff. Break out the platform and driver specific defines and functions into its own header file. Cc: Sekhar Nori <nsekhar@ti.com> Cc: Kevin Hilman <khilman@ti.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7039/1: mach-davinci: move DaVinci TNET GPIO driver to GPIO subsystemLinus Walleij2011-08-22
| | | | | | | | | | As per example from the other ARM boards, push the DaVinci TNET GPIO driver down to the GPIO subsystem so it can be consolidated. Cc: Sekhar Nori <nsekhar@ti.com> Cc: Kevin Hilman <khilman@ti.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7038/1: mach-davinci: move GPIO driver to GPIO subsystemLinus Walleij2011-08-22
| | | | | | | | | | As per example from the other ARM boards, push the DaVinci GPIO driver down to the GPIO subsystem so it can be consolidated. Cc: Sekhar Nori <nsekhar@ti.com> Cc: Kevin Hilman <khilman@ti.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7037/1: mach-ks8695: fix GPIO LEDsLinus Walleij2011-08-22
| | | | | | | | | | | | | Enabling the LEDs on the ks8695 doesn't even compile, fix it with a proper include and also replace a <mach/gpio.h> with the proper <linux/gpio.h>. Cc: zeal <zealcook@gmail.com> Cc: Ben Dooks <ben-linux@fluff.org> Acked-by: Daniel Silverstone <dsilvers@simtec.co.uk> Acked-by: Simtec Linux Team <linux@simtec.co.uk> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7036/1: mach-ks8695: break out GPIO driver specificsLinus Walleij2011-08-22
| | | | | | | | | | | | | | The <mach/gpio.h> file is included from upper directories and deal with generic GPIO and gpiolib stuff. Break out the platform and driver specific defines and functions into its own header file. Cc: zeal <zealcook@gmail.com> Cc: Ben Dooks <ben-linux@fluff.org> Acked-by: Daniel Silverstone <dsilvers@simtec.co.uk> Acked-by: Simtec Linux Team <linux@simtec.co.uk> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7035/1: mach-ks8695: move GPIO driver to GPIO subsystemLinus Walleij2011-08-22
| | | | | | | | | | | | As per example from the other ARM boards, push the KS8695 GPIO driver down to the GPIO subsystem so it can be consolidated. Cc: zeal <zealcook@gmail.com> Cc: Ben Dooks <ben-linux@fluff.org> Acked-by: Daniel Silverstone <dsilvers@simtec.co.uk> Acked-by: Simtec Linux Team <linux@simtec.co.uk> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7034/1: mach-u300: delete irq_to_gpio() functionLinus Walleij2011-08-22
| | | | | | | | This function is not used in the U300 build, and on the whole the call is hard to consolidate so get rid of it from this machine. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7033/1: mach-u300: break out GPIO driver specificsLinus Walleij2011-08-22
| | | | | | | | | | The <mach/gpio.h> file is included from upper directories and deal with generic GPIO and gpiolib stuff. Break out the platform and driver specific defines and functions into its own header file. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 7032/1: plat-nomadik: break out GPIO driver specificsLinus Walleij2011-08-22
| | | | | | | | | | | | The <[plat|mach]/gpio.h> file is included from upper directories and deal with generic GPIO and gpiolib stuff. Break out the platform and driver specific defines and functions into its own header file. Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> Cc: Alessandro Rubini <rubini@unipv.it> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: gpio: make trivial GPIOLIB implementation the defaultRussell King2011-08-12
| | | | | | | | | | | | | | | Rather than marking the mach/gpio.h header files which want to use the trivial GPIOLIB implementation, mark those which do not want to use it instead. This means that by default, you get the trivial implementation and only have to do something extra if you need to. This should encourage the use of the trivial default implementation. As an additional bonus, several gpio.h header files become empty. Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com> Tested-by: Jamie Iles <jamie@jamieiles.com> Acked-by: Kukjin Kim <kgene.kim@samsung.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: gpio: consolidate gpio_to_irqRussell King2011-08-12
| | | | | | | | | | Many of the gpio_to_irq implementations use the gpiolib version of this function. Provide the standard gpiolib gpio_to_irq() for everyone, but allow platforms to override it if they wish. Add the neccessary overrides for those platforms which do not use the standard definition. Acked-by: Kukjin Kim <kgene.kim@samsung.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: gpio: consolidate trivial gpiolib implementationsRussell King2011-08-12
| | | | | | | | | | | | | | | Consolidate 24 trivial gpiolib implementions out of mach/gpio.h into asm/gpio.h. This is basically the include of asm-generic/gpio.h and the definition of gpio_get_value, gpio_set_value, and gpio_cansleep as described in Documentation/gpio.txt Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com> Tested-by: David Brown <davidb@codeaurora.org> Acked-by: David Brown <davidb@codeaurora.org> Tested-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Kukjin Kim <kgene.kim@samsung.com> Tested-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: gpio: pxa: convert drivers to use asm/gpio.h rather than mach/gpio.hRussell King2011-08-08
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: gpio: tegra: convert drivers to use asm/gpio.h rather than mach/gpio.hRussell King2011-08-08
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: gpio: ixp2000: convert drivers to use asm/gpio.h rather than mach/gpio.hRussell King2011-08-08
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: gpio: pnx4008: convert drivers to use asm/gpio.h rather than mach/gpio.hRussell King2011-08-08
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: gpio: davinci: convert drivers to use asm/gpio.h rather than mach/gpio.hRussell King2011-08-08
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: gpio: nomadik: convert drivers to use asm/gpio.h rather than mach/gpio.hRussell King2011-08-08
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: gpio: at91: convert drivers to use asm/gpio.h rather than mach/gpio.hRussell King2011-08-08
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: gpio: omap: convert drivers to use asm/gpio.h rather than mach/gpio.hRussell King2011-08-08
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: gpio: convert includes of mach/gpio.h and asm/gpio.h to linux/gpio.hRussell King2011-08-08
| | | | | | | | Convert arch/arm includes of mach/gpio.h and asm/gpio.h to linux/gpio.h before we start consolidating the individual platform implementations of the gpio header files. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: gpio: at91: remove redundant include of mach/gpio.hRussell King2011-08-08
| | | | | | asm/gpio.h already directly includes mach/gpio.h. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* Linux 3.1-rc1Linus Torvalds2011-08-07
|
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparcLinus Torvalds2011-08-07
|\ | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc: sparc: Fix build with DEBUG_PAGEALLOC enabled.
| * sparc: Fix build with DEBUG_PAGEALLOC enabled.David S. Miller2011-08-06
| | | | | | | | | | | | | | arch/sparc/mm/init_64.c:1622:22: error: unused variable '__swapper_4m_tsb_phys_patch_end' [-Werror=unused-variable] arch/sparc/mm/init_64.c:1621:22: error: unused variable '__swapper_4m_tsb_phys_patch' [-Werror=unused-variable] Signed-off-by: David S. Miller <davem@davemloft.net>
* | sh: Fix boot crash related to SCIRafael J. Wysocki2011-08-07
| | | | | | | | | | | | | | | | | | | | | | | | Commit d006199e72a9 ("serial: sh-sci: Regtype probing doesn't need to be fatal.") made sci_init_single() return when sci_probe_regmap() succeeds, although it should return when sci_probe_regmap() fails. This causes systems using the serial sh-sci driver to crash during boot. Fix the problem by using the right return condition. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | arm: remove stale export of 'sha_transform'Linus Torvalds2011-08-07
| | | | | | | | | | | | | | The generic library code already exports the generic function, this was left-over from the ARM-specific version that just got removed. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | arm: remove "optimized" SHA1 routinesLinus Torvalds2011-08-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 1eb19a12bd22 ("lib/sha1: use the git implementation of SHA-1"), the ARM SHA1 routines no longer work. The reason? They depended on the larger 320-byte workspace, and now the sha1 workspace is just 16 words (64 bytes). So the assembly version would overwrite the stack randomly. The optimized asm version is also probably slower than the new improved C version, so there's no reason to keep it around. At least that was the case in git, where what appears to be the same assembly language version was removed two years ago because the optimized C BLK_SHA1 code was faster. Reported-and-tested-by: Joachim Eastwood <manabian@gmail.com> Cc: Andreas Schwab <schwab@linux-m68k.org> Cc: Nicolas Pitre <nico@fluxnic.net> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | fix rcu annotations noise in cred.hAl Viro2011-08-07
| | | | | | | | | | | | | | | | | | | | | | | | task->cred is declared as __rcu, and access to other tasks' ->cred is, indeed, protected. Access to current->cred does not need rcu_dereference() at all, since only the task itself can change its ->cred. sparse, of course, has no way of knowing that... Add force-cast in current_cred(), make current_fsuid() et.al. use it. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | vfs: rename 'do_follow_link' to 'should_follow_link'Linus Torvalds2011-08-07
| | | | | | | | | | | | | | | | Al points out that the do_follow_link() helper function really is misnamed - it's about whether we should try to follow a symlink or not, not about actually doing the following. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | Fix POSIX ACL permission checkAri Savolainen2011-08-07
| | | | | | | | | | | | | | | | | | After commit 3567866bf261: "RCUify freeing acls, let check_acl() go ahead in RCU mode if acl is cached" posix_acl_permission is being called with an unsupported flag and the permission check fails. This patch fixes the issue. Signed-off-by: Ari Savolainen <ari.m.savolainen@gmail.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* | Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osdLinus Torvalds2011-08-07
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'for-linus' of git://git.open-osd.org/linux-open-osd: ore: Make ore its own module exofs: Rename raid engine from exofs/ios.c => ore exofs: ios: Move to a per inode components & device-table exofs: Move exofs specific osd operations out of ios.c exofs: Add offset/length to exofs_get_io_state exofs: Fix truncate for the raid-groups case exofs: Small cleanup of exofs_fill_super exofs: BUG: Avoid sbi realloc exofs: Remove pnfs-osd private definitions nfs_xdr: Move nfs4_string definition out of #ifdef CONFIG_NFS_V4
| * | ore: Make ore its own moduleBoaz Harrosh2011-08-06
| | | | | | | | | | | | | | | | | | | | | Export everything from ore need exporting. Change Kbuild and Kconfig to build ore.ko as an independent module. Import ore from exofs Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
| * | exofs: Rename raid engine from exofs/ios.c => oreBoaz Harrosh2011-08-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ORE stands for "Objects Raid Engine" This patch is a mechanical rename of everything that was in ios.c and its API declaration to an ore.c and an osd_ore.h header. The ore engine will later be used by the pnfs objects layout driver. * File ios.c => ore.c * Declaration of types and API are moved from exofs.h to a new osd_ore.h * All used types are prefixed by ore_ from their exofs_ name. * Shift includes from exofs.h to osd_ore.h so osd_ore.h is independent, include it from exofs.h. Other than a pure rename there are no other changes. Next patch will move the ore into it's own module and will export the API to be used by exofs and later the layout driver Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
| * | exofs: ios: Move to a per inode components & device-tableBoaz Harrosh2011-08-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Exofs raid engine was saving on memory space by having a single layout-info, single pid, and a single device-table, global to the filesystem. Then passing a credential and object_id info at the io_state level, private for each inode. It would also devise this contraption of rotating the device table view for each inode->ino to spread out the device usage. This is not compatible with the pnfs-objects standard, demanding that each inode can have it's own layout-info, device-table, and each object component it's own pid, oid and creds. So: Bring exofs raid engine to be usable for generic pnfs-objects use by: * Define an exofs_comp structure that holds obj_id and credential info. * Break up exofs_layout struct to an exofs_components structure that holds a possible array of exofs_comp and the array of devices + the size of the arrays. * Add a "comps" parameter to get_io_state() that specifies the ids creds and device array to use for each IO. This enables to keep the layout global, but the device-table view, creds and IDs at the inode level. It only adds two 64bit to each inode, since some of these members already existed in another form. * ios raid engine now access layout-info and comps-info through the passed pointers. Everything is pre-prepared by caller for generic access of these structures and arrays. At the exofs Level: * Super block holds an exofs_components struct that holds the device array, previously in layout. The devices there are in device-table order. The device-array is twice bigger and repeats the device-table twice so now each inode's device array can point to a random device and have a round-robin view of the table, making it compatible to previous exofs versions. * Each inode has an exofs_components struct that is initialized at load time, with it's own view of the device table IDs and creds. When doing IO this gets passed to the io_state together with the layout. While preforming this change. Bugs where found where credentials with the wrong IDs where used to access the different SB objects (super.c). As well as some dead code. It was never noticed because the target we use does not check the credentials. Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>