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>
LU-1842 quota: define quota records for glb/slv indexes

This patch defines lquota_glb_rec & lquota_slv_rec which are the
record which will be used with the global & slave index files.
It also introduces the global quota lu_context_key which will be used
by all quota-level handlers.
The lquota module init/exit function are now defined in lquota_lib.c
which calls the old quota init/exit function for the time being.
Finally, this patch also modifies lquotactl_slv() to collect
enforcement information.

Signed-off-by: Johann Lombardi <johann@whamcloud.com>
Change-Id: I2b261bd8433a5e6bd64c2de2710bca32bf606122
Reviewed-on: http://review.whamcloud.com/3886
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Fan Yong <yong.fan@whamcloud.com>
Reviewed-by: Niu Yawei <niu@whamcloud.com>
LU-1821 build: fix build error about VLA at file scope

Fix build error:
drivers/incore/fs_incore.c:340:54: error: variably modified
‘incore_dir_template’ at file scope [-Werror]

C99 does not allow VLA at file scope. Allocate incore_dir_template
dynamically to avoid build error with newer gcc(>4.6.3) that checks
this.

Signed-off-by: Peng Tao <tao.peng@emc.com>
Change-Id: Icc81c649f58772e76e1cd3dcd42348a53a9a942b
Reviewed-on: http://review.whamcloud.com/3856
Reviewed-by: James Simmons <uja.ornl@gmail.com>
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-1813 osc: osc_lock_unuse() race

The lock may have been released by upper layer so the cl_unuse_try()
in osc_lock_upcall() will release the dlm lock instead of crashing.

Signed-off-by: Jinshan Xiong <jinshan.xiong@whamcloud.com>
Change-Id: Ie1c3f8d2ba8b227e42d08b1631651c5834cbac25
Reviewed-on: http://review.whamcloud.com/3895
Tested-by: Hudson
Reviewed-by: Lai Siyao <laisiyao@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: wangdi <di.wang@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-1824 obdfilter: reset lnb[n].rc in filter_grant_check()

After patch http://review.whamcloud.com/3446 was committed,
filter_grant_check() would be called a second time if there
was no grant space for the write operation in the first time
it was called.

The issue was that all of the lnb[n].rc values were set to
-ENOSPC inside filter_grant_check() the first time it was
called, but at the second time, although there was some space
and the function returned 0 not -ENOSPC, the lnb[n].rc values
were not reset, all of them were still -ENOSPC, which caused
the assertion failure inside filter_commitrw_write().

This patch fixes the above issue.

Test-Parameters: envdefinitions=SLOW=yes testlist=obdfilter-survey
Signed-off-by: Yu Jian <yujian@whamcloud.com>
Change-Id: Ia0ec57a7d329136b4e1f2f82a337c6cf43f7f66c
Reviewed-on: http://review.whamcloud.com/3913
Tested-by: Hudson
Reviewed-by: hongchao.zhang <hongchao.zhang@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-521 lnet: Fix endian issue introduced by change 1338

In change 1338 done for LU-521, an endian issue was introduced
when the magic number for the RPC header was swapped before
the body has been swapped. We use the magic number to
determine if the body needs swapping.

Signed-off-by: Doug Oucharek <doug.s.oucharek@intel.com>
Change-Id: I0a64ca13dbdc04169d59a1bd531b4877e8736993
Reviewed-on: http://review.whamcloud.com/3831
Reviewed-by: Isaac Huang <he.huang@intel.com>
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Liang Zhen <liang@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: Oleg Drokin <green@whamcloud.com>