Commit Graph

620965 Commits

Author SHA1 Message Date
Nayeemahmed Badebade a2921e2fc0 staging: lustre: lustre/ldlm: Fixed sparse warnings
Added __acquires / __releases sparse locking annotations
to lock_res_and_lock() and unlock_res_and_lock() functions
in l_lock.c, to fix below sparse warnings:

l_lock.c:47:22: warning: context imbalance in 'lock_res_and_lock' - wrong count at exit
l_lock.c:61:6: warning: context imbalance in 'unlock_res_and_lock' - unexpected unlock

Signed-off-by: Nayeemahmed Badebade <itachi.opsrc@gmail.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-20 13:23:40 +02:00
Sandhya Bankar 0249316947 Staging: lustre: lmv_obd: Remove redundant test.
filp != NULL is already checked, so no need to check it again.

Signed-off-by: Sandhya Bankar <bankarsandhya512@gmail.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-20 13:23:40 +02:00
Sandhya Bankar 83a75e3f14 Staging: lustre: Convert array index from the loop bound to the loop index.
Convert array index from the loop bound to the loop index.

The structure cl_env_percpu[NR_CPUS] has been initializing for each possible
cpu (i.e 0 to i). During initialization if any error will occurred, the error
handling code should uninitialize cl_env_percpu upto i. But currently
unitialization is repeatedly done for the same cl_env_percpu[i] element.
This does not seems to be correct.

Used below semantic patch to identify this issue:

@@
expression e1,e2,ar;
@@
for(e1 = 0; e1 < e2; e1++) { <...
  ar[
- e2
+ e1
  ]
  ...> }

Signed-off-by: Sandhya Bankar <bankarsandhya512@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-20 13:23:40 +02:00
Bryan O'Donoghue 7d7005180a staging: greybus: MAINTAINERS: add greybus protocol drivers maintainers
Add bod to some Greybus protocol drivers maintainers, loopback and
timesync.

Signed-off-by: Bryan O'Donoghue <pure.logic@nexus-software.ie>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-20 08:47:40 +02:00
Christian Gromm 88d1878bca staging: most: hdm-usb: rename channel related spinlock
To increase comprehension this patch renames the channel related
spinlock with a more fitting name.

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-20 08:39:42 +02:00
Christian Gromm 3fbcb92b74 staging: most: hdm-usb: remove calls to usb_unachor_urb
This patch removes the calls to usb_unanchor_urb() from the completion
routines, since disassociation of the URBs is already handles by the
USB subsystem.

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-20 08:39:42 +02:00
Christian Gromm d223b37c9f staging: most: hdm-usb: remove redundant spinlocks
This patch removes the spinlocks when accessing the usb_anchor list,
because the struct usb_anchor is using its own lock.

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-20 08:39:42 +02:00
Christian Gromm 27e6245e35 staging: most: hdm-usb: remove proprietary urb anchoring
This patch removes the propietary tracking of URBs. Instead the structure
usb_anchor of the USB subsystem is used.

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-20 08:39:42 +02:00
Greg Kroah-Hartman 888a87b5a9 Third set of new device support, functionality and cleanups for IIO in the 4.9 cycle.
Given Linus is hinting (strongly!) at an rc8 this last set is hopefully in
 time for the 4.9 merge window.  The zpa2326 and si1145 drivers provide
 fine illustrations that devices aren't getting any simpler!
 
 I'm also particularly pleased Linus Walliej did such a thorough job of cleaning
 up one of my old drivers.
 
 New device support
 * mCube MC3230 accelerometer
   - new fairly minimal driver.
 * Murata zpa2326
   - extensive new driver supporting the rather 'novel' buffering of data this
     device provides and handling both it's own data ready trigger and other
     triggers rather elegantly.
 * si1141, si1142, si1143, si1145, si1146 and si1147 proximity, UV, visible and
   IR sensors.
   - another extensive new driver supporting all the key bits of what this
     set of devices supplies including dataready triggers, buffers and all the
     various data channels.
 
 Functionality
 * kxsd9 - Linus brought this scratch driver I wrote in one afternoon years ago
   up to date adding lots of good stuff along the way.
   - SPI support after extensive rework of the driver.
   - Triggered buffer capture support.
   - Runtime PM.
   - Regulator handling.
   - Mounting matrix support.
 * mma7660
   - Add MODULE_DEVICE_TABLE to support autoprobing.
 
 Cleanups
 * ad5933
   - Align some function arguements nicely.
 * med_z188
   - Constify iio_info structure.
 * sca3000
   - Implement IIO_CHAN_INFO_SAMP_FREQ rather than a hand rolled attr.
     There are still quite a few drivers that would benefit from similar updates.
 * ssp_sensors
   - Constify iio_info structures in accel and gyro drivers.
 -----BEGIN PGP SIGNATURE-----
 
 iQIuBAABCAAYBQJX4C9hERxqaWMyM0BrZXJuZWwub3JnAAoJEFSFNJnE9BaIygAP
 /2NSgQmtVAtRL1XSnZaRgICEuW3cqQPYRUP74hUxKY10bYnxr8Vvx5BWIDWYrfnN
 7xrhKCcnnRXIMrpBRN2FRSTFaFyuHMaF5uBszZS5A+xeue99K6+OuDe0ZhcquMWv
 rLlgQgruwOuIPqUFL//b3r5XRso/Do63hjGFZKAL9JDgbt6DGYN90WmIN0TE7axG
 KayzNaWpWHO3ugagXC/CW/1bWljfV2dairGcOvTGsBw2hCqdQl1i2JjU0YFWkrKX
 8jtIaqgtTurLsldUoBLGQQbZozcXFmgqEse+c/XCL0uhsKJY79GJx2Yy9m8wO0cr
 DoaSdzBwEyT7p6S79d8X9Ft5XHHcYhuuvlEcwmF4BknAZg+zE/WrINhkq8ynP8Mv
 dp5mVHxO78Zq+5wLGgfIhaDykWQ+Tk7NtIEmrWr0mzD5llCzTHGdhXqjYu+s7l3f
 niGtlk514nsqkoTZm/PEmxhut9UWTcq1ORWo9/2cmjX72rq+Xupubs7zFo5QPCyq
 UsaMDlmRor7XrdkAbEhMwP17YGR4d93vhQ+3BYEDKY7lEakdcNvn16c0Qq5trvIH
 J9BLwTCJt/nAYNdGoSdd2FsQ9r9FQVdjKmYSfh5aem7IgB9mfKQvkESir/+r160B
 KUpH9ctJYqzBeB7a7yHqVVkd2RRd1lp57ND1qoLSpqv5
 =2Az/
 -----END PGP SIGNATURE-----

Merge tag 'iio-for-4.9c' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next

Jonathan writes:

Third set of new device support, functionality and cleanups for IIO in the 4.9 cycle.

Given Linus is hinting (strongly!) at an rc8 this last set is hopefully in
time for the 4.9 merge window.  The zpa2326 and si1145 drivers provide
fine illustrations that devices aren't getting any simpler!

I'm also particularly pleased Linus Walliej did such a thorough job of cleaning
up one of my old drivers.

New device support
* mCube MC3230 accelerometer
  - new fairly minimal driver.
* Murata zpa2326
  - extensive new driver supporting the rather 'novel' buffering of data this
    device provides and handling both it's own data ready trigger and other
    triggers rather elegantly.
* si1141, si1142, si1143, si1145, si1146 and si1147 proximity, UV, visible and
  IR sensors.
  - another extensive new driver supporting all the key bits of what this
    set of devices supplies including dataready triggers, buffers and all the
    various data channels.

Functionality
* kxsd9 - Linus brought this scratch driver I wrote in one afternoon years ago
  up to date adding lots of good stuff along the way.
  - SPI support after extensive rework of the driver.
  - Triggered buffer capture support.
  - Runtime PM.
  - Regulator handling.
  - Mounting matrix support.
* mma7660
  - Add MODULE_DEVICE_TABLE to support autoprobing.

Cleanups
* ad5933
  - Align some function arguements nicely.
* med_z188
  - Constify iio_info structure.
* sca3000
  - Implement IIO_CHAN_INFO_SAMP_FREQ rather than a hand rolled attr.
    There are still quite a few drivers that would benefit from similar updates.
* ssp_sensors
  - Constify iio_info structures in accel and gyro drivers.
2016-09-20 08:36:04 +02:00
Greg Kroah-Hartman 530a70617c Merge branch 'greybus' into staging-testing
This merges the greybus branch into staging-testing.  It contains the
drivers/staging/greybus/ subsystem and related drivers and has passed
the 0-day bot tests so no builds should break.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 19:34:33 +02:00
Rui Miguel Silva 2bbadafbe4 staging: greybus: MAINTAINERS: add greybus protocol drivers maintainers
Add me to some Greybus protocol drivers maintainers, spi, sdio, power
supply, light and gpio.

Signed-off-by: Rui Miguel Silva <rmfrfs@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 18:34:39 +02:00
Greg Kroah-Hartman 629c1fb537 staging: greybus: add some MAINTAINERS
Johan and Alex and I are going to maintain the greybus code, so add it
to MAINTAINERS so we get cc:ed on patches.

Acked-by: Johan Hovold <johan@kernel.org>
Acked-by: Alex Elder <elder@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 18:24:06 +02:00
Greg Kroah-Hartman 948c6227e7 staging: greybus: remove CONFIG_PM_RUNTIME from kernel_ver.h
The last thing remaining in kernel_ver.h was the setting of
CONFIG_PM_RUNTIME, which isn't needed in a in-tree implementation.  So
remove the setting of this value, and the .h file entirely as that was
the last thing left in it.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 16:52:07 +02:00
Rui Miguel Silva a0cf5951de staging: greybus: Kconfig: enable possibility to select light driver
Remove BROKEN keyword to allow the light driver to be select now that
we fixed the kernel version dependencies. Also fix the module name in
the help section.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 16:50:48 +02:00
Rui Miguel Silva b04f56c6e7 staging: greybus: makefile: fix dependency of spi to spilib
Greybus SPI driver depends on gb-spilib and we need to state that at
makefile to make it link correctly.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 16:49:53 +02:00
Rui Miguel Silva 722a133a6a staging: greybus: power_supply: remove KERNEL_VERSION checks
No need to support older kernel versions in the Greybus Power Supply
driver, so remove the checks as needed, we can now rely on all of the
correct Power Supply core apis being present. Also move some properties
definitions to the power supply greybus code.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 16:48:44 +02:00
Rui Miguel Silva 2064ae5741 staging: greybus: sdio: remove KERNEL_VERSION checks
No need to support older kernel versions in the Greybus SDIO driver, so
remove the checks as needed, we can now rely on all of the correct SDIO
core apis being present.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 16:47:49 +02:00
Rui Miguel Silva a7af2fe6d1 staging: greybus: light: remove KERNEL_VERSION checks
No need to support older kernel versions in the Greybus Light driver, so
remove the checks as needed, we can now rely on all of the correct LED
core apis being present. And compile only if flash and v4l2 flash is
reachable.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 16:46:34 +02:00
Greg Kroah-Hartman 7434564ca1 staging: greybus: sdio: fix min() type check
The 0-day bot pointed out a type difference in one min() call, so fix it
up by being explicit about the type being compared.

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 16:44:41 +02:00
Greg Kroah-Hartman 148e0b8f48 staging: greybus: spi: remove KERNEL_VERSION checks
No need to support older kernel versions in the Greybus SPI and spilib
driver, so remove the checks as needed, we can now rely on all of the
correct SPI core apis being present.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 16:43:27 +02:00
Greg Kroah-Hartman 3e4b5b8837 staging: greybus: gpio: it's CONFIG_GPIOLIB, not CONFIG_GPIO
The GPIO dependancy is CONFIG_GPIOLIB, not CONFIG_GPIO, no wonder it
wasn't building properly...

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 16:41:54 +02:00
Greg Kroah-Hartman b14bb97626 staging: greybus: gpio: remove KERNEL_VERSION checks
No need to support older kernel versions in the Greybus GPIO driver, so
remove the checks as needed, we can now rely on all of the correct
GPIO core apis being present.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 16:41:45 +02:00
Greg Kroah-Hartman 06000c0317 staging: greybus: vibrator: remove KERNEL_VERSION checks
No need to support older kernel versions in the Greybus Vibrator driver,
so remove the checks as needed, we can now rely on all of the correct
driver core apis being present.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 16:30:41 +02:00
Greg Kroah-Hartman be21106d67 staging: greybus: hid: remove KERNEL_VERSION checks
No need to support older kernel versions in the Greybus HID driver, so
remove the checks as needed, we can now rely on all of the "new" apis
being present.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 16:30:41 +02:00
Greg Kroah-Hartman 887520884b staging: greybus: kernel_ver.h: remove lots of stuff
Now that we do not care about the kernel version we are building
against, we can strip out lots of backward compatibilty that was added
to kernel_ver.h in order to write semi-portable driver code.

To start with, remove the functions and #defines that are now in the
kernel tree, no need to have duplicate copies of them all.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 16:30:40 +02:00
Greg Kroah-Hartman d4f56b47a8 staging: greybus: Add drivers/staging/greybus to the build
This adds a proper Kconfig file for drivers/staging/greybus and fixes up
the Makefile to work correctly within the kernel build system (modules
depend on the .config options, etc.)

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 16:30:37 +02:00
Greg Kroah-Hartman 526dec0642 staging: greybus: remove old es1 endpoint description
The Toshiba ES1 chip is no longer around, so remove the USB descriptor
documentation for it as no one cares anymore.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 12:40:33 +02:00
Greg Kroah-Hartman ecfea541e6 staging: greybus: remove .gitignore file
Only the tools subdirectory needs a .gitignore entry, so move it there
and fix it up to only list the needed file.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 12:37:09 +02:00
Greg Kroah-Hartman 0be6dfc296 staging: greybus: remove README and LICENSE
We don't need yet-another-copy of the GPLv2 in the tree, and the README
is now pointless, so remove both of these files.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 12:36:24 +02:00
Greg Kroah-Hartman bc5aa3a079 staging: greybus: Documentation: remove sysfs tree
We do not need an example of the sysfs tree in the kernel code itself,
so remove these files, as they are now pointless.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 12:35:16 +02:00
Greg Kroah-Hartman dae0901111 greybus: remove local checkpatch.pl copy
When the greybus tree was external, it contained a copy of checkpatch.pl
to keep everyone "in line".  This is no longer needed and can now be
removed.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2016-09-19 12:33:38 +02:00
Greg Kroah-Hartman f44dd18463 Merge greybus driver tree into 4.8-rc6
This pulls the external greybus driver tree into 4.8-rc6 as it should be
part of the main kernel tree and not live outside in some lonely github
repo, never to be reunited with it's true love...

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 12:29:33 +02:00
James Simmons 26e9c85b48 staging: lustre: update version to 2.6.99
With all of the the missing patches from the
lustre 2.7 version merged upstream its time to update
the upstream clients version.

Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:08:22 +02:00
Doug Oucharek d566b9aec9 staging: lustre: o2iblnd: Put back work queue check previously removed
The previous patch, http://review.whamcloud.com/21304/, removed
a check needed until LU-5718 is properly addressed.  With
the check, LU-5718 results in an error message and a lost
RDMA operation.  Without it, we have memory corruption and
a crash (much harder to debug).

Putting the check back in case LU-5718 is not fixed soon.

Signed-off-by: Doug Oucharek <doug.s.oucharek@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-7650
Reviewed-on: http://review.whamcloud.com/22281
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Olaf Weber <olaf@sgi.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:08:22 +02:00
Doug Oucharek abe8a55fb0 staging: lustre: lnet: Enable setting per NI peer_credits
The code to allow peer_credits to be set per NI was originally
"left inactive" because there were concerns about peer_credits
interfering with the ability for IB nodes to connect to each
other when peer_credits are not the same (peer_credits controls
the queue depth for IB). With LU-3322, the values do not have
to match so it is now safe to enable this code so peer_credits
can be set per NI.

This patch enables existing code for setting per NI peer_credits.

Second this patch fixes a long standing bug in that the conf data
was not being used to set variables in the lnet_ni structure until
after lnd_startup() was called which meant LND drivers were
ignoring struct lnet_ni tunable values being set. Now we change
struct lnet_ni data fields based on conf data before calling
lnd_startup().

Signed-off-by: Doug Oucharek <doug.s.oucharek@intel.com>
Signed-off-by: James Simmons <uja.ornl@yahoo.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-8507
Reviewed-on: http://review.whamcloud.com/21948
Reviewed-by: Olaf Weber <olaf@sgi.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:08:22 +02:00
Doug Oucharek 9522bb7ac7 staging: lustre: lnet: Ensure routing is turned on first time
In lnet_rtrpools_enable(), a mistake was made and routing
was not being turned on when the rtrpools are being allocated
for the first time.

This patch fixes that routine so we remember to turn on
routing after allocating the rtrpools.

Signed-off-by: Doug Oucharek <doug.s.oucharek@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-8501
Reviewed-on: http://review.whamcloud.com/21934
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Amir Shehata <amir.shehata@intel.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:08:22 +02:00
Sebastien Buisson 4c6722fbc1 staging: lustre: lnet: check if ni is in current net namespace
Add new 'ni_net_ns' field to struct lnet_ni to hold a reference
to original net namespace in which ni is created.
In LNetDist(), check if ni was created in same net namespace as
current's one. If not, assign order above 0xffff0000, to make
this ni not a priority.

Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-7845
Reviewed-on: http://review.whamcloud.com/21884
Reviewed-by: Olaf Weber <olaf@sgi.com>
Reviewed-by: Doug Oucharek <doug.s.oucharek@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:08:22 +02:00
Quentin Bouget f2d928f933 staging: lustre: lnet: potential deadlock in lnet
Fixes potential deadlock in LNetMDAttach

Signed-off-by: Quentin Bouget <quentin.bouget.ocre@cea.fr>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-8249
Reviewed-on: http://review.whamcloud.com/20676
Reviewed-by: Doug Oucharek <doug.s.oucharek@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Henri Doreau <henri.doreau@cea.fr>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:08:22 +02:00
wang di a1194ad691 staging: lustre: lmv: fix parent FID for migration
If the migrating directory is under striped directory, it needs
to set right stripe FID for its parent.

Signed-off-by: wang di <di.wang@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6263
Reviewed-on: http://review.whamcloud.com/13817
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:08:22 +02:00
Ned Bass 8ed62e91c4 staging: lustre: mdc: cl_default_mds_easize not refreshed
The client_obd::cl_default_mds_easize field should track the largest
observed EA size advertised by the MDT, subject to a reasonable upper
bound. The MDC uses cl_default_mds_easize to calculate the initial
size of request buffers.  The default value should be small enough to
avoid wasted memory and excessive use of vmalloc(), yet large enough
to accommodate the common use case.

In the current code, the default value is only updated if
client_obd::cl_max_mds_easize is strictly less than
mdt_body::mbo_max_mdsize. This condition is almost never met, because
client_obd::cl_max_mds_easize is computed at client mount-time based
on the number of OSTs in the filesystem, so the MDT won't ever observe
and advertise an EA size larger than that.

As a result, client_obd::cl_default_mds_easize indefinitely retains
its initial value, which is computed at client mount-time based on
the filesystem's default stripe width. Any getattr() requests for
widely striped files will consequently allocate a request buffer
that is too small, forcing reallocations on both the client and
server side. To avoid this, update client_obd::cl_default_mds_easize
independently of the value of client_obd::cl_max_mds_easize.

In addition, this patch includes these changes:

 - Add comments to the client_obd structure to clarify what the
   cl_{default,max}_mds_{cookie,ea}size values mean.

 - Prevent mdc_get_info() from storing uninitialized data in
   client_obd::cl_max_mds_cookiesize.

 - Use 4096 as an upper bound for the default values.  The former
   bound of PAGE_CACHE_SIZE is too large on 64k-page platforms
   (i.e. PPC), so it fails to prevent the vmalloc() spinlock
   contention described in LU-3338. The new value was chosen to
   be large enough to accommodate common use cases while staying
   well below the 16k threshold at which allocations start using
   vmalloc().

Signed-off-by: Ned Bass <bass6@llnl.gov>
Signed-off-by: Kyle Blatter <kyleblatter@llnl.gov>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5549
Reviewed-on: http://review.whamcloud.com/11614
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:08:22 +02:00
Ned Bass 60b65afb70 staging: lustre: llite: make default_easize writeable in /sysfs
Allow default_easize to be tuned via /sysfs. A system administrator
might want this if a rare access to widely striped files drives up the
value on a filesystem where narrowly striped files are the more common
case. In practice, however, this is wanted primarily to facilitate
a test case for LU-5549.

 - Plumb the necessary interfaces through the LMV and MDC layers
   to expose write access to this value by higher layers.

 - Add block comments to modified functions.

Signed-off-by: Ned Bass <bass6@llnl.gov>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5549
Reviewed-on: http://review.whamcloud.com/13112
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:08:22 +02:00
wang di d81e90094a staging: lustre: mdt: add indexing option to default dir stripe
Add indexing option to default dirstripe EA. If MDT find
out the client send the create req to the wrong MDT because
of default stripeEA, it will return -EREMOTE, then client
will retrieve default stripeEA through xattr cache, and
re-create the object.

Also merged patch for LU-6341 to resolve the following problem.
Use ll_dir_getstripe to get default stripeEA in ll_new_node(),
Because ll_getxattr_common requires admin rights for retrieving
default LMVEA (because of trusted- prefix), which might cause
mkdir (from normal user) failure.

If parent does not have default stripeEA, then child should always
be in the same MDT for mkdir. Otherwise MDT should return -EREMOTE,
then client will refresh the default stripe index, and recreate
the object.

Signed-off-by: wang di <di.wang@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5523
Reviewed-on: http://review.whamcloud.com/13360
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6341
Reviewed-on: http://review.whamcloud.com/13990
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:08:22 +02:00
Mikhail Pershin be2479818f staging: lustre: ptlrpc: prevent request timeout grow due to recovery
Patch fixes the issue seen on the client with growing request
timeout which occurred after the server side patch landed for
LU-5079. While commit itself is correct, it reveals another
issue. If request is being processed for a long time on server
then client adaptive timeouts will adapt to that after receiving
reply and new requests will have bigger timeout. Another problem
is that server AT history is corrupted by recovery request
processing time which not pure service time but includes
also waiting time for clients to recover.

Patch prevents the AT stats update from early replies on client and
from recovering requests processing time on server.
The ptlrpc_at_recv_early_reply() still updates the current request
timeout as asked by server, but don't include this into AT stats.
The real reply will bring that data from server after all.

Signed-off-by: Mikhail Pershin <mike.pershin@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6084
Reviewed-on: http://review.whamcloud.com/13520
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Jian Yu <jian.yu@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:08:22 +02:00
James Simmons bbc222b113 staging: lustre: obd: use proper flags for call_usermodehelper
When a parameter is permanently changed on the MGS the
MGS send a changelog packet to the proper nodes that
are affected by the change. Once the nodes receive the
change they then call the userland utility lctl to
change its local value. When calling a userland
application from the kernel you specify a flag to
control the interaction with the application. Originally
by default the flag was set to 0 which is UMH_NO_WAIT
which meant lctl was being called asynchronously. In
older kernels this was fine since UHM_NO_WAIT and
UHM_WAIT_PROC had nearly the same logic. This changed
with newer kernels which broke updating our parameters.
Plus doing a UHM_NO_WAIT doesn't report back a error
if something goes wrong with lctl. The fix is to set
the flag to UHM_WAIT_PROC so kernel space waits until
lctl has finished and we get a proper error code if
something does go wrong with lctl.

Signed-off-by: James Simmons <uja.ornl@gmail.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6063
Reviewed-on: http://review.whamcloud.com/13677
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:08:22 +02:00
frank zago e47fad9a73 staging: lustre: ptlrpc: remove unnecessary EXPORT_SYMBOL
A lot of symbols don't need to be exported at all because they are
only used in the module they belong to.

Signed-off-by: frank zago <fzago@cray.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5829
Reviewed-on: http://review.whamcloud.com/12510
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: James Simmons <uja.ornl@gmail.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:06:56 +02:00
wang di 8ef9dbe4b0 staging: lustre: llite: lock the inode to be migrated
Because the inode and its connected dentries will be cleared
out of the cache after migration, the inode needs to be locked
during the migration.

Signed-off-by: wang di <di.wang@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4712
Reviewed-on: http://review.whamcloud.com/9689
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:03:41 +02:00
frank zago fee58df692 staging: lustre: obdclass: remove unnecessary EXPORT_SYMBOL
A lot of symbols don't need to be exported at all because they are
only used in the module they belong to.

Signed-off-by: frank zago <fzago@cray.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5829
Reviewed-on: http://review.whamcloud.com/13323
Reviewed-by: Jian Yu <jian.yu@intel.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: James Simmons <uja.ornl@gmail.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:03:41 +02:00
frank zago b5d1b04e09 staging: lustre: misc: remove unnecessary EXPORT_SYMBOL
A lot of symbols don't need to be exported at all because they are
only used in the module they belong to.

Signed-off-by: frank zago <fzago@cray.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5829
Reviewed-on: http://review.whamcloud.com/13321
Reviewed-by: James Simmons <uja.ornl@gmail.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:03:41 +02:00
Johann Lombardi a09be8445c staging: lustre: grant: quiet message on grant waiting timeout
Use at_max in osc_enter_cache() to bound how long we wait for grant
space before switching to synchronous I/Os. Do not print a message
on the console when the timeout is hit since such long wait can
be legitimate with flaky network (i.e. BRW is resent multiple times).

Signed-off-by: Johann Lombardi <johann.lombardi@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5521
Reviewed-on: http://review.whamcloud.com/12146
Reviewed-by: Niu Yawei <yawei.niu@intel.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:03:41 +02:00
wang di 15b241c539 staging: lustre: lmv: Do not revalidate stripes with master lock
Do not revalidate slave stripes while holding master lock.
Otherwise if the revalidating slaves are blocked, then the
master lock can not be released in time.

Remove some unnecesary merging in ll_revalidate_slave(), and
the attributes will be stored in each stripe, only
merging them if required.

Signed-off-by: wang di <di.wang@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6088
Reviewed-on: http://review.whamcloud.com/13432
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-19 10:03:41 +02:00