LU-1337 build: add missing include dir

arch/include/generated is added since kernel version v3.2.
while at it, also change "uname -m" in .m4 to $target_cpu,
because users may cross building.

Signed-off-by: Peng Tao <tao.peng@emc.com>
Change-Id: Ib9aa526a9318e5c93b05cceba9fc8cdfbf9fef0a
Reviewed-on: http://review.whamcloud.com/3745
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Yang Sheng <ys@whamcloud.com>
Reviewed-by: Minh Diep <mdiep@whamcloud.com>
LU-1581 mount: kernel do not parse ldd

all ldd parsing is done by mount.lustre utility now.

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: Ice15cf4fa8e411144713d0276d006f8cfe9c56f1
Reviewed-on: http://review.whamcloud.com/3613
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
LU-1425 build: make Lustre build ready for gcov

gcov requires profiled code to be built with compiler options
-fprofile-arcs -ftest-coverage. To profile all project this
options should be passed during every source file compilation.
This option enable debug logging. No all Lustre parts are ready
for debug logging now.

To patch adds debug librarias where needed and resolve
linking conflicts. Do not influence when no
-fprofile-arcs -ftest-coverage compile options are
passed.

Xyratex-bug-id: MRP-526
Reviewed-by: Alexey Lyashkov <alexey_lyashkov@xyratex.com>
Reviewed-by: Alexander Boyko <alexander_boyko@xyratex.com>
Signed-off-by: Artem Blagodarenko <artem_blagodarenko@xyratex.com>
Change-Id: If5c1742f3263faf48c2c5d8457c1af36a29408d4
Reviewed-on: http://review.whamcloud.com/2844
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Brian J. Murrell <brian@whamcloud.com>
LU-1304 mdt: cache statfs in mdt_device

... and save few cycles

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: Ib3727c7419cfdfa393a2c1c72770ef960b1d05e6
Reviewed-on: http://review.whamcloud.com/3780
Tested-by: Hudson
Reviewed-by: Jinshan Xiong <jinshan.xiong@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
LU-1304 mdt: use slab for mdt_objects

should save a bit of memory and cpu

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I13601aba3c2cdb5e7c0f4c3a45ff5fb6e428b38f
Reviewed-on: http://review.whamcloud.com/3781
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@whamcloud.com>
LU-1735 ptlrpc: cleanup jobid code

Some cleanups for the jobid code:
- if obd_jobid_var is too large, only print an error message once
- in linux cfs_get_environ():
-- cache strlen(key) since it doesn't change and is used often
-- remove unnecessary typecasts of void pointers
-- use "rc" instead of "ret"
-- balance ENTRY and RETURN/GOTO calls
- add cfs_get_environ() for liblustre and remove inline #ifdef
- use strcmp() to compare strings that are known NUL-terminated
- use strlcpy() to ensure NUL-terminated strings in target buffer
-- add strlcpy() wrapper for liblustre, it isn't in Glibc on RHEL5

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: I22c3d5c1755c1d6aab666a769df38218b954cab0
Reviewed-on: http://review.whamcloud.com/3713
Tested-by: Hudson
Reviewed-by: Niu Yawei <niu@whamcloud.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-1779 tests: fix run_one_logged() to log SKIP status

In the current test framework, only those tests which are in the
$ALWAYS_EXCEPT list are logged with SKIP status, other skipped
tests are all logged with PASS status.

This patch fixes the above issue by setting the SKIP status in
pass() and logging the status in run_one_logged().

Signed-off-by: Yu Jian <yujian@whamcloud.com>
Change-Id: Ia4e8f51040034abdec9c67aaf0a128b63baaa688
Reviewed-on: http://review.whamcloud.com/3810
Tested-by: Hudson
Reviewed-by: Minh Diep <mdiep@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
LU-1678 mdd: don't create LOV EA by going thru .lustre path

When a file is created with O_LOV_DELAY_CREAT, we should not create
its LOV EA data by going through .lustre path.

Add a test to sanity.sh open by fid test suite (test_154).

Signed-off-by: jc lafoucriere <jacques-charles.lafoucriere@cea.fr>
Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: Ib223da44d16bf3a541269d5cfb60826e43345493
Reviewed-on: http://review.whamcloud.com/3483
Tested-by: Hudson
Reviewed-by: Lai Siyao <laisiyao@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-1755 osc: solve a race between fsync and truncate

If an OSC extent is being truncated when fsync is called, it will
have oe_fsync_wait set but no oe_urgent or oe_hp set. This causes
problem because when the extent changes OES_CACHE later, it won't
be written out immediately because urgent bit is not set.

This problem can be fixed by checking oe_fsync_wait bit and set urgent
bit correspondingly when changing osc extent's state from OES_TRUNC to
OES_CACHE at the end of truncate.

Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I755baac066375a92730b14de1c470c66baad5320
Reviewed-on: http://review.whamcloud.com/3699
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Niu Yawei <niu@whamcloud.com>
Reviewed-by: Johann Lombardi <johann@whamcloud.com>
LU-1804 tests: skip OI scrub speed test under UP env

The OI scrub speed depends on CPU/RAM schedule. There may be more
schedule delay under UP environment. So skip related test cases.

Signed-off-by: Fan Yong <yong.fan@whamcloud.com>
Change-Id: Iebc514857c6d88601598a7da58a340296655dcf1
Reviewed-on: http://review.whamcloud.com/3846
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Yu Jian <yujian@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
LU-1816 scrub: OI scrub skips new created objects for once

For accelerating OI scrub, it will skip the objects which are new
created after the latest MDT mount and marked as I_LUSTRE_NOSCRUB.
But if the object with I_LUSTRE_NOSCRUB is used/cached in RAM for
very long time, then OI scrub has no chance to process it even if
there has been inconsistency happened until the MDT remount.

So as compromise, the OI scrub will skip the new created objects
for once only when the first accessing.

Signed-off-by: Fan Yong <yong.fan@whamcloud.com>
Change-Id: I560d7d851e3430326d24ec74154bb2a99f80b737
Reviewed-on: http://review.whamcloud.com/3848
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Mike Pershin <tappro@whamcloud.com>
LU-1203 mdt: map old params to new ones by using an array

This patch improves mdt_process_config() to use an array for
mapping old params to new ones.

The patch also adds a common function class_find_old_param()
to check whether a proc param is an old one or not, and return
new one if it's an old one.

Signed-off-by: Yu Jian <yujian@whamcloud.com>
Change-Id: I122e4e83a3f4e84a3fdbd3fe6a69b7c1b5e08d3f
Reviewed-on: http://review.whamcloud.com/3836
Tested-by: Hudson
Reviewed-by: Niu Yawei <niu@whamcloud.com>
Reviewed-by: Liang Zhen <liang@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-812 llite: O_LOV_DELAY_CREATE conflicts with FMODE_NONOTIFY

Kernel 2.6.36 introduces FMODE_NONOTIFY and defines it as 0x1000000
(commit 12ed2e36c98aec6c41559222e311f4aa15d254b6), this causes the
confliction with O_LOV_DELAY_CREATE which is now defined as octal
0100000000.
This confliction causes kernel remove this flag in build_open_flags,
then "lfs setstripe" a new file will fail with -EEXIST(stripe
already set).

This patch changes O_LOV_DELAY_CREATE to 0120000000(0x1400000)
to make it works for new kernel and compatible with old version
statically linked binary.

Another change is starting to build dynamic linked version of
liblustreapi.so.

Signed-off-by: Liu Xuezhao <xuezhao.liu@emc.com>
Change-Id: I643d3734cfdc2f45099fc6be663a370c2dcc8ea3
Reviewed-on: http://review.whamcloud.com/3779
Tested-by: Hudson
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Iurii Golovach <Iurii_Golovach@xyratex.com>
Reviewed-by: James Simmons <uja.ornl@gmail.com>
LU-812 utils: remove obsolete jt_dbg_modules_2_4 code

jt_dbg_modules_2_4 is for 2.4 kernel and it breaks "lctl modules"
for 3.x kernel.

Signed-off-by: Liu Xuezhao <xuezhao.liu@emc.com>
Change-Id: If2953c71707ae200a4095786150b1dee05547fff
Reviewed-on: http://review.whamcloud.com/3778
Tested-by: Hudson
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: James Simmons <uja.ornl@gmail.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
LU-1789 protocol: reserve connect flag for lightweight conn

Reserve connection flag for lightweight connection support to avoid
conflicts. The main property of a lightweight connection is that
there is no entry in the last_rcvd file for this export, so no
recovery is possible. This type of connection will be used by quota
(between master & slave), FIDonOST and likely by other features in the
future.

Signed-off-by: Johann Lombardi <johann@whamcloud.com>
Change-Id: I4367f5bfaef0207e7f307c4ea3d35e97ca99dc5b
Reviewed-on: http://review.whamcloud.com/3794
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Niu Yawei <niu@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
LU-1581 mount: get rid of ldd in the kernel

all ldd parsing is now done outside of the kernel
by mount.lustre utility.

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: Iea6257b75f7573b6594c6bc7a2fa3a86b1c91700
Reviewed-on: http://review.whamcloud.com/3614
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
LU-1842 quota: quota identifier unification

This patch defines a generic lquota_id structure which is an union
of all the possible identifier types that can be used with quota,
this includes:
- 64-bit user ID
- 64-bit group ID
- a FID which can be used for per-directory quota in the future

Signed-off-by: Johann Lombardi <johann@whamcloud.com>
Change-Id: Idead35f27ee9d07b9b25f39b791a1ad8778e0f2d
Reviewed-on: http://review.whamcloud.com/3888
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Fan Yong <yong.fan@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
LU-1830 quota: fix ldiskfs quota accouning iterator

There were defects in the ldiskfs quota accounting iterator:
- leaf blocks could be re-processed;
- entry index was updated incorrectly, so some entries could be
  skipped;

Fix the defect in osd_diskfs_read(), the 32bit 'size' could be
overflowed.

Signed-off-by: Niu Yawei <niu@whamcloud.com>
Change-Id: Icfd96fdaf38c57bc63a5fcfd1f96c02d0ddeb74d
Reviewed-on: http://review.whamcloud.com/3877
Reviewed-by: Johann Lombardi <johann@whamcloud.com>
Tested-by: Hudson
Reviewed-by: Fan Yong <yong.fan@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
LU-1818 quota: en/disable quota enforcement via conf_param

In the new quota architecture, quota is enabled/disabled
per-filesystem, by 'lctl conf_param':

lctl conf_param $FSNAME.quota.$POOLNAME=$VAL

$FSNAME  : filesystem name;
$POOLNAME: 'mdt' (for meta pool) or 'ost' (for data pool);
$VAL     : 'none' - disable both,
           'u'    - enable user quota,
           'g'    - enable group quota,
           'ug'   - enable both;

Signed-off-by: Niu Yawei <niu@whamcloud.com>
Change-Id: I89ef9fc1a067981cf7caac29c8311b75054c91fe
Reviewed-on: http://review.whamcloud.com/3850
Reviewed-by: Johann Lombardi <johann@whamcloud.com>
Tested-by: Hudson
Reviewed-by: Fan Yong <yong.fan@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
LU-1302 llog: introduce llog_open

- llog_open is pair to llog_close. Llog handle is allocated inside
  llog_open while llog_free_handle is part of llog_close. Each llog
  even non-existent should be opened and closed.
- llog_exist() is added to API to check if llog file exists
- llog_cat_put is renamed to llog_cat_close with cleaning up empty
  llogs like llog_obd_origin_cleanup did.

Signed-off-by: Mikhail Pershin <tappro@whamcloud.com>
Change-Id: I6360b4c089ec1dde50289563447eefd3dfa4365a
Reviewed-on: http://review.whamcloud.com/3740
Tested-by: Hudson
Reviewed-by: Jinshan Xiong <jinshan.xiong@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>