LU-394: LND failure casued by discontiguous KIOV

This issue was imported by bug 18881 where I moved the urgent
pages to front of lop_pending to fix a deadlock issue.
I reverted bug 18881 in this patch and came up with a new solution:
cl_page_gang_lookup() only blocks on the first page. This is also
for deadlock avoid since we should never grab multiple pages' lock
without try method.

Change-Id: I5dce35e3929e4f79a350e56ddc9e752269db060e
Signed-off-by: Jinshan Xiong <jay@whamcloud.com>
Signed-off-by: Oleg Drokin <green@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/911
New version 2.0.66

Change-Id: Ic2aa5252ec569efefd00255440c5465cae633e1c
Signed-off-by: Oleg Drokin <green@whamcloud.com>
LU-502 don't allow to kill service threads by OOM killer.

OOM can produce a many issues like requests processing counter.

Change-Id: I8d417d148b589ea6de84c5d16bc2607a59852564
Signed-off-by: Alexey Lyashkov <alexey_lyashkov@xyratex.com>
Reviewed-on: http://review.whamcloud.com/1088
Tested-by: Hudson
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-394: LND failure casued by discontiguous KIOV

Fix the problem of assigning starting_offset twice. This is imported
in combining patchset of lu-394 and lu-523.

Change-Id: Ia4ea205f211c70965101507906b02799a65694be
Signed-off-by: Jinshan Xiong <jay@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/1146
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: Oleg Drokin <green@whamcloud.com>
LU-221 don't use a/c/m time for newly allocated object in OST

in OST, the a/c/m time is unusable for newly allocated object for
it has not gotten valid time info from clients. by setting the a/c/m
time as LONG_MIN at creation will make the clients ignore the time.

Change-Id: I0d6094e4257626ffd1128b3540837deaf230e056
Signed-off-by: Hongchao Zhang <hongchao.zhang@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/1084
Tested-by: Hudson
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Niu Yawei <niu@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-372 add $TMP/mgsactive to indicate the active combined MGS/MDS node

The current test-framework could not figure out the active MGS node
correctly while the MGS and MDS nodes are combined under a failover
configuration. We need add a $TMP/mgsactive file to indicate the
active MGS node like what we did for the MDS node.

Signed-off-by: Yu Jian <yujian@whamcloud.com>
Change-Id: I74bbf9293f9a290573c4b9fcbf9fea0fcc0aad95
Reviewed-on: http://review.whamcloud.com/913
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Brian J. Murrell <brian@whamcloud.com>
Reviewed-by: Chris Gearing <chris@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-411 Kernel panic when running conf-sanity on RHEL5/i686

Reduce stack usage to avoid stack overflow on
RHEL5/i686 patchless client.

Signed-off-by: Yang Sheng <ys@whamcloud.com>
Change-Id: I54d3a19734ab089f44f43943b80a2e7ad1f3335f
Reviewed-on: http://review.whamcloud.com/950
Tested-by: Hudson
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-278 build: Only warn for tag/version mismatch

The configure process should NOT abort just because the most
recent tag is not of the form that upstream uses to tag Lustre.
Downstream developers may use their own tags, or just add
extensions to upsteam's version tags.

Change-Id: I9a98bfd4475d3df2694f536ba0352779a62650c7
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/510
Tested-by: Hudson
Reviewed-by: Brian J. Murrell <brian@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
LU-528  Update RHEL5 kernel to 2.6.18-238.19.1 security update

Change-Id: I13974999954ae1806c48f75fa6d35f4e98cf2a75
Signed-off-by: Yang Sheng <ys@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/1134
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-73 kernel: remove wrong jbd2 commit timer patch

The bug that this patch was originally fixing (incorrectly rounding
down the jiffies timer, which might cause it to be skipped) was
fixed in the upstream kernel by using round_jiffies_up(), which
always moves the timer into the future.

Remove this patch entirely, since it is no longer needed.

Change-Id: I3b4f30e0565cf64b95fc87babf1f54a9ab190754
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/961
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Yang Sheng <ys@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-228 kernel: remove more unused kernel patches

The filterdata patches have been unused and unnecessary for some
time already.  The jbd-slab-race and include-fixes patches were
merged into the upstream kernel and back-ported into RHEL5.

Change-Id: I01851a60ecf453f6eb5dbfc4f573444f4f220861
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/962
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Yang Sheng <ys@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-20 remove unnecessary DMU export patch

The patch for kernel symbol export for DMU back-ends was added to
facilitate upgrading servers.  However, the upstream ZFS code will
no longer be working on RHEL5 kernels, so this patch is not needed.

Change-Id: Icf443a366fd51c06cb5d02df27b7e70f476fcb63
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/1086
Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
Tested-by: Hudson
Reviewed-by: Yang Sheng <ys@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
LU-540 quota: move quota ioctl handling to helper

The ll_dir_ioctl()::OBD_IOC_QUOTACTL handling is very large, and
is moved to a helper routine quotactl_ioctl() instead of being inline.
This will also facilitate the compatibility handling for the 1.x
QUOTACTL ioctl handling, by being able to share quotactl_ioctl() code.

Also, check for LL_IOC_QUOTACTL in ll_dir_ioctl(), since this is the
ioctl() number exported to userspace, and it also facilitates being
able to find the kernel-side ioctl handler for llapi_quotactl().

Add comments to show the duplicate user/kernel ioctl definitions.
Keep these separate for now, to allow the kernel/userspace values
to be defined differently for compatibility reasons.

There should be no functional differences with this change.

Change-Id: Iecfaf20ddbd78d77a546e1ba5a60b281732a85d9
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/1151
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Johann Lombardi <johann@whamcloud.com>
Reviewed-by: Fan Yong <yong.fan@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-540 lloop: fix LLOOP_INFO to return FID

Instead of returning an inode number to userspace for the LLOOP_INFO
ioctl, instead return a FID value.

This does not pose compatibility problems, because the ioctl() number
was already different between Lustre 1.x and 2.x, and the lctl needed
for using lloop devices is always built with the kernel modules.

Change-Id: Ia3ee6dab830ad65e2a11d9248982c82ce76221f1
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/1149
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Jinshan Xiong <jay@whamcloud.com>
Reviewed-by: Fan Yong <yong.fan@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-527  Update RHEL6 kernel to 2.6.32-131.6.1 security update

Change-Id: I5a84a5240ed8e4d119ae3094beb575666c69f7c6
Signed-off-by: Yang Sheng <ys@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/1135
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-207 adding stats for some operations in MDT

Adding stats for getattr, setattr, statfs and sync in MDT

Change-Id: I4790bb2eb6bc756a24942224506c7306429243bc
Signed-off-by: Hongchao Zhang <hongchao.zhang@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/427
Reviewed-by: Yu Jian <yujian@whamcloud.com>
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Johann Lombardi <johann@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-539 obd_data_connect server side could be corrupted

In target_handle_connect(), we use assignment to copy client's connect
data to its server counterpart, and we define the pointers pointing to
a big buffer (struct obd_connect_data), while server's reply connect
data could be a smaller buffer (struct obd_connect_data_v1), the
assignment could corrupt the request's obd_connect_data reply buffer.

Change-Id: Ib72776d3dee8a2a836fda5b29ab49c3bbc026cab
Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/1144
Reviewed-by: Fan Yong <yong.fan@whamcloud.com>
Tested-by: Hudson
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-409 Oops: RIP: _spin_lock_irq+0x15/0x40

Skip sanity test_68a since llite_loop module disabled in rhel6.

Change-Id: I213b435e64ac3816f1a3d564522a8c8797fc387c
Signed-off-by: Yang Sheng <ys@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/1150
Reviewed-by: Yu Jian <yujian@whamcloud.com>
Tested-by: Hudson
Reviewed-by: Richard Henwood <rhenwood@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-327 cleanup the client import of mgc

the client import will not have been cleaned if it is setup but never
connected, adding such cleanup code in mgc_precleanup.

define a new inline function "obd_cleanup_client_import" in "obd_class.h"
to be used by mgc, mdc and osc.

Change-Id: If033de3fe81b9a565a7af40a7b93e395fb0bd659
Signed-off-by: Hongchao Zhang <hongchao.zhang@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/917
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Fan Yong <yong.fan@whamcloud.com>
Reviewed-by: Mikhail Pershin <tappro@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-407 Fix lustre-modules rpm name in spec file.

RHEL and Fedora kernels include ".%{_arch}" in the kernel's version
string.  Since Lustre includes the kernel version in its rpms, it
can appear that a double architecture name appears at the end.  Really
one is from the kernel, and one is from Lustre.  Trying to change that
is probably more trouble than it is worth.

This seems to cause problems with rpm's understanding of rpm names.  To
fix that this patch takes Andreas's suggestion of grep'ing the full
rpm name from "rpm -q kernel-modules".

We also add "|| true" to the last line of the %preun scriptlet so that
failure does not aport installation.

Finally, we also remove the redundant greps in the postun scriptlet.

Change-Id: I2c71e853e28ec6e0907eb4ea7c3205ca6e5dd873
Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov>
Reviewed-on: http://review.whamcloud.com/934
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Brian J. Murrell <brian@whamcloud.com>