Re: [HPDD-discuss] Lustre 1.8.9 wc1 for Kernel 2.6.32-504 - again
by Chris Hunter
We apply patch for LU2800 & LU5237 (b2d09eb6,diff?) to git b1_8 branch.
A couple optional patches for LU3067 & LU3596 are available. It has
become difficult to build 1.8 clients with recent redhat kernels (they
tend backport fixes from the 3.10 kernels).
We have not moved to newer client version because of support for legacy
OS and (perceived) client performance issues with 2.1/2.4/2.5 versions.
IMO the b2_5 client issues appear to be resolved so that's likely our
upgrade path.
Note it appears the b1_8 branch was closed last month and all open pull
requests were abandonded.
regards,
chris hunter
yale hpc group
> Hi,
>
> hmm... there are different versions of the patch and different git
> repositories around. This one:
> works for the github branch you mentioned:
>
> patch -p1 < ~/Downloads/2661328b.diff
> patching file lustre/llite/dir.c
> Hunk #1 succeeded at 1051 with fuzz 1 (offset -126 lines).
> Hunk #2 succeeded at 1197 (offset -112 lines).
> Hunk #3 succeeded at 1264 (offset -117 lines).
6 years, 9 months
Question on tot_granter != fo_tot_granted
by Kumar, Amit
Dear All,
Curious to learn what this means?
mfoss01: LustreError: 426:0:(ofd_grant.c:163:ofd_grant_sanity_check()) ofd_obd_disconnect: tot_granted 86264064 != fo_tot_granted 88361216
mfoss01: LustreError: 412:0:(ofd_grant.c:163:ofd_grant_sanity_check()) ofd_obd_disconnect: tot_granted 14960896 != fo_tot_granted 17058048
mfoss03: LustreError: 31855:0:(ofd_grant.c:163:ofd_grant_sanity_check()) ofd_obd_disconnect: tot_granted 14960896 != fo_tot_granted 17058048
mfoss09: LustreError: 25131:0:(ofd_grant.c:163:ofd_grant_sanity_check()) ofd_obd_disconnect: tot_granted 94652672 != fo_tot_granted 96749824
mfoss02: LustreError: 46413:0:(ofd_grant.c:163:ofd_grant_sanity_check()) ofd_obd_disconnect: tot_granted 94652672 != fo_tot_granted 96749824
mfoss02: LustreError: 46387:0:(ofd_grant.c:163:ofd_grant_sanity_check()) ofd_obd_disconnect: tot_granted 94652672 != fo_tot_granted 96749824
mfoss08: LustreError: 39572:0:(ofd_grant.c:163:ofd_grant_sanity_check()) ofd_obd_disconnect: tot_granted 94652672 != fo_tot_granted 96749824
mfoss08: LustreError: 39572:0:(ofd_grant.c:163:ofd_grant_sanity_check()) ofd_obd_disconnect: tot_granted 94652672 != fo_tot_granted 96749824
Thank you,
Amit
6 years, 9 months
[PATCH 00/19] staging: Remove unnecessary externs
by Joe Perches
trivial neatening of prototypes
Joe Perches (19):
staging: android: Remove unnecessary externs
staging: dgnc: Remove unnecessary externs
staging: fbtft: Remove unnecessary externs
staging: ft1000: Remove unnecessary externs
staging: iio: Remove unnecessary externs
staging: lustre: Remove unnecessary externs
staging: most: Remove unnecessary externs
staging: mt29f_spinand: Remove unnecessary externs
staging: netlogic: Remove unnecessary externs
staging: nvec: Remove unnecessary externs
staging: octeon: Remove unnecessary externs
staging: olpc_dcon: Remove unnecessary externs
staging: rtl8188eu: Remove unnecessary externs
staging: rtl8192e: Remove unnecessary externs
staging: rtl8192u: Remove unnecessary externs
staging: rtl8712: Remove unnecessary externs
staging: speakup: Remove unnecessary externs
staging: wilc1000: Remove unnecessary externs
staging: xgifb: Remove unnecessary externs
drivers/staging/android/sync.h | 10 +-
drivers/staging/dgnc/dgnc_sysfs.h | 16 +-
drivers/staging/fbtft/fbtft.h | 52 ++-
drivers/staging/ft1000/ft1000-pcmcia/ft1000.h | 19 +-
drivers/staging/ft1000/ft1000-usb/ft1000_usb.h | 4 +-
drivers/staging/iio/meter/ade7854.h | 4 +-
.../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h | 2 +-
.../staging/lustre/lnet/klnds/socklnd/socklnd.h | 141 +++++----
drivers/staging/lustre/lnet/selftest/console.h | 90 +++---
.../staging/lustre/lustre/include/lprocfs_status.h | 313 +++++++++----------
.../lustre/lustre/include/lustre/lustre_idl.h | 133 ++++----
.../lustre/lustre/include/lustre/lustre_user.h | 2 +-
drivers/staging/lustre/lustre/include/lustre_dlm.h | 2 +-
.../staging/lustre/lustre/include/lustre_export.h | 4 +-
.../staging/lustre/lustre/include/lustre_import.h | 4 +-
drivers/staging/lustre/lustre/include/lustre_net.h | 16 +-
drivers/staging/lustre/lustre/include/obd_class.h | 16 +-
.../staging/lustre/lustre/include/obd_support.h | 6 +-
drivers/staging/lustre/lustre/ldlm/ldlm_internal.h | 2 +-
drivers/staging/lustre/lustre/libcfs/tracefile.h | 32 +-
.../staging/lustre/lustre/llite/llite_internal.h | 16 +-
drivers/staging/most/hdm-dim2/dim2_hal.h | 8 +-
drivers/staging/mt29f_spinand/mt29f_spinand.h | 4 +-
drivers/staging/netlogic/xlr_net.h | 2 +-
drivers/staging/nvec/nvec.h | 19 +-
drivers/staging/octeon/ethernet-mdio.h | 2 +-
drivers/staging/octeon/octeon-ethernet.h | 22 +-
drivers/staging/olpc_dcon/olpc_dcon.h | 2 +-
drivers/staging/rtl8188eu/include/osdep_service.h | 2 +-
drivers/staging/rtl8188eu/include/rtw_mlme_ext.h | 8 +-
drivers/staging/rtl8188eu/include/sta_info.h | 18 +-
drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.h | 10 +-
drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h | 4 +-
.../staging/rtl8192e/rtl8192e/r8192E_firmware.h | 2 +-
drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 52 ++-
drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 22 +-
drivers/staging/rtl8192e/rtllib.h | 347 ++++++++++-----------
drivers/staging/rtl8192u/ieee80211/ieee80211.h | 345 ++++++++++----------
drivers/staging/rtl8192u/r8190_rtl8256.h | 11 +-
drivers/staging/rtl8192u/r8192U.h | 2 +-
drivers/staging/rtl8192u/r8192U_dm.h | 36 +--
drivers/staging/rtl8192u/r8192U_wx.h | 2 +-
drivers/staging/rtl8192u/r819xU_cmdpkt.h | 8 +-
drivers/staging/rtl8192u/r819xU_phy.h | 55 ++--
drivers/staging/rtl8712/rtl871x_ioctl.h | 28 +-
drivers/staging/speakup/i18n.h | 12 +-
drivers/staging/speakup/speakup.h | 68 ++--
drivers/staging/wilc1000/coreconfigurator.h | 30 +-
drivers/staging/wilc1000/linux_wlan_common.h | 4 +-
drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 2 +-
drivers/staging/xgifb/vb_init.h | 4 +-
drivers/staging/xgifb/vb_setmode.h | 34 +-
52 files changed, 1007 insertions(+), 1042 deletions(-)
--
2.1.2
6 years, 9 months
llite/xattr.c:181: poor error checking ?
by David Binderman
Hello there,
lustre/llite/xattr.c:181]: (style) Checking if unsigned variable 'size' is less than zero.
Source code is
size = lustre_posix_acl_xattr_filter(
(posix_acl_xattr_header *)value,
size, &new_value);
if (unlikely(size < 0))
return size;
but
static
int ll_setxattr_common(struct inode *inode, const char *name,
const void *value, size_t size,
int flags, __u64 valid)
and
extern int
lustre_posix_acl_xattr_filter(posix_acl_xattr_header *header, size_t size,
posix_acl_xattr_header **out);
Suggest sanity check return value *before* assignment into size.
Regards
David Binderman
6 years, 9 months
[PATCH] Fix various coding style problem
by Swee Hua Law
1) do not initialise globals to NULL
2) improve readability of hlist_for_each_entry_safe()
3) move */ to a separate line
4) change symbol == NULL to !symbol
Signed-off-by: Swee Hua Law <sweehua81(a)gmail.com>
---
drivers/staging/lustre/lustre/llite/remote_perm.c | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/drivers/staging/lustre/lustre/llite/remote_perm.c b/drivers/staging/lustre/lustre/llite/remote_perm.c
index a581826..39022ea 100644
--- a/drivers/staging/lustre/lustre/llite/remote_perm.c
+++ b/drivers/staging/lustre/lustre/llite/remote_perm.c
@@ -54,8 +54,8 @@
#include "../include/lustre_param.h"
#include "llite_internal.h"
-struct kmem_cache *ll_remote_perm_cachep = NULL;
-struct kmem_cache *ll_rmtperm_hash_cachep = NULL;
+struct kmem_cache *ll_remote_perm_cachep;
+struct kmem_cache *ll_rmtperm_hash_cachep;
static inline struct ll_remote_perm *alloc_ll_remote_perm(void)
{
@@ -104,8 +104,7 @@ void free_rmtperm_hash(struct hlist_head *hash)
return;
for (i = 0; i < REMOTE_PERM_HASHSIZE; i++)
- hlist_for_each_entry_safe(lrp, next, hash + i,
- lrp_list)
+ hlist_for_each_entry_safe(lrp, next, hash + i, lrp_list)
free_ll_remote_perm(lrp);
OBD_SLAB_FREE(hash, ll_rmtperm_hash_cachep,
REMOTE_PERM_HASHSIZE * sizeof(*hash));
@@ -117,7 +116,8 @@ static inline int remote_perm_hashfunc(uid_t uid)
}
/* NB: setxid permission is not checked here, instead it's done on
- * MDT when client get remote permission. */
+ * MDT when client get remote permission.
+ */
static int do_check_remote_perm(struct ll_inode_info *lli, int mask)
{
struct hlist_head *head;
@@ -184,7 +184,7 @@ int ll_update_remote_perm(struct inode *inode, struct mdt_remote_perm *perm)
if (!lli->lli_remote_perms) {
perm_hash = alloc_rmtperm_hash();
- if (perm_hash == NULL) {
+ if (!perm_hash) {
CERROR("alloc lli_remote_perms failed!\n");
return -ENOMEM;
}
@@ -287,7 +287,7 @@ int lustre_check_remote_perm(struct inode *inode, int mask)
perm = req_capsule_server_swab_get(&req->rq_pill, &RMF_ACL,
lustre_swab_mdt_remote_perm);
- if (unlikely(perm == NULL)) {
+ if (unlikely(!perm)) {
mutex_unlock(&lli->lli_rmtperm_mutex);
rc = -EPROTO;
break;
@@ -321,8 +321,7 @@ void ll_free_remote_perms(struct inode *inode)
spin_lock(&lli->lli_lock);
for (i = 0; i < REMOTE_PERM_HASHSIZE; i++) {
- hlist_for_each_entry_safe(lrp, node, next, hash + i,
- lrp_list)
+ hlist_for_each_entry_safe(lrp, node, next, hash + i, lrp_list)
free_ll_remote_perm(lrp);
}
--
2.1.4
6 years, 9 months
[PATCH 1/3] Staging: wilc1000: Remove null check before kfree
by Shraddha Barke
kfree on NULL pointer is a no-op.
This patch uses the following semantic patch to find such an instance
where NULL check is present before kfree.
// <smpl>
@@ expression E; @@
- if (E != NULL) { kfree(E); }
+ kfree(E);
@@ expression E; @@
- if (E != NULL) { kfree(E); E = NULL; }
+ kfree(E);
+ E = NULL;
// </smpl>smpl>
Signed-off-by: Shraddha Barke <shraddha.6596(a)gmail.com>
---
drivers/staging/wilc1000/linux_wlan.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index 3e55a8a..3dcd6e5 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -2343,8 +2343,7 @@ int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd)
done:
- if (buff != NULL)
- kfree(buff);
+ kfree(buff);
return s32Error;
}
--
2.1.0
6 years, 9 months
[PATCH v2] Staging: lustre: llite: Use a mutex instead of spinlock
by Shraddha Barke
Using a mutex instead of a spinlock results in more flexibility (
i.e it allows to sleep while the lock is held).
Signed-off-by: Shraddha Barke <shraddha.6596(a)gmail.com>
---
Changes in v2:
-Replace DEFINE_SPINLOCK() with DEFINE_MUTEX
drivers/staging/lustre/lustre/llite/llite_lib.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c
index ab4839c..cd71eaa 100644
--- a/drivers/staging/lustre/lustre/llite/llite_lib.c
+++ b/drivers/staging/lustre/lustre/llite/llite_lib.c
@@ -61,7 +61,7 @@ struct dentry *llite_root;
struct kset *llite_kset;
static LIST_HEAD(ll_super_blocks);
-static DEFINE_SPINLOCK(ll_sb_lock);
+static DEFINE_MUTEX(ll_sb_lock);
#ifndef log2
#define log2(n) ffz(~(n))
@@ -112,9 +112,9 @@ static struct ll_sb_info *ll_init_sbi(struct super_block *sb)
class_uuid_unparse(uuid, &sbi->ll_sb_uuid);
CDEBUG(D_CONFIG, "generated uuid: %s\n", sbi->ll_sb_uuid.uuid);
- spin_lock(&ll_sb_lock);
+ mutex_lock(&ll_sb_lock);
list_add_tail(&sbi->ll_list, &ll_super_blocks);
- spin_unlock(&ll_sb_lock);
+ mutex_unlock(&ll_sb_lock);
sbi->ll_flags |= LL_SBI_VERBOSE;
sbi->ll_flags |= LL_SBI_CHECKSUM;
@@ -145,9 +145,9 @@ static void ll_free_sbi(struct super_block *sb)
struct ll_sb_info *sbi = ll_s2sbi(sb);
if (sbi != NULL) {
- spin_lock(&ll_sb_lock);
+ mutex_lock(&ll_sb_lock);
list_del(&sbi->ll_list);
- spin_unlock(&ll_sb_lock);
+ mutex_unlock(&ll_sb_lock);
kfree(sbi);
}
}
--
2.1.0
6 years, 9 months
[PATCH 19/31] staging/lustre: use kmemdup rather than duplicating its implementation
by Andrzej Hajda
The patch was generated using fixed coccinelle semantic patch
scripts/coccinelle/api/memdup.cocci [1].
[1]: http://permalink.gmane.org/gmane.linux.kernel/2014320
Signed-off-by: Andrzej Hajda <a.hajda(a)samsung.com>
---
drivers/staging/lustre/lustre/obdclass/acl.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/lustre/lustre/obdclass/acl.c b/drivers/staging/lustre/lustre/obdclass/acl.c
index bc3fc47..933456c 100644
--- a/drivers/staging/lustre/lustre/obdclass/acl.c
+++ b/drivers/staging/lustre/lustre/obdclass/acl.c
@@ -104,11 +104,10 @@ static int lustre_posix_acl_xattr_reduce_space(posix_acl_xattr_header **header,
if (unlikely(old_count <= new_count))
return old_size;
- new = kzalloc(new_size, GFP_NOFS);
+ new = kmemdup(*header, new_size, GFP_NOFS);
if (unlikely(new == NULL))
return -ENOMEM;
- memcpy(new, *header, new_size);
kfree(*header);
*header = new;
return new_size;
@@ -125,11 +124,10 @@ static int lustre_ext_acl_xattr_reduce_space(ext_acl_xattr_header **header,
if (unlikely(old_count <= ext_count))
return 0;
- new = kzalloc(ext_size, GFP_NOFS);
+ new = kmemdup(*header, ext_size, GFP_NOFS);
if (unlikely(new == NULL))
return -ENOMEM;
- memcpy(new, *header, ext_size);
kfree(*header);
*header = new;
return 0;
--
1.9.1
6 years, 9 months
[PATCH 2/5] Staging: lustre: obdclass: Use kasprintf instead of kzalloc and sprintf
by Shraddha Barke
This patch uses kasprintf which combines kzalloc and sprintf.
kasprintf also takes care of the size calculation.
Semantic patch used is as follows:
@@
expression a,flag;
expression list args;
statement S;
@@
a =
- \(kmalloc\|kzalloc\)(...,flag)
+ kasprintf (flag,args)
<... when != a
if (a == NULL || ...) S
...>
- sprintf(a,args);
Signed-off-by: Shraddha Barke <shraddha.6596(a)gmail.com>
---
drivers/staging/lustre/lustre/obdclass/obd_config.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c
index 93805ac..e0470c0 100644
--- a/drivers/staging/lustre/lustre/obdclass/obd_config.c
+++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c
@@ -1455,14 +1455,13 @@ int class_config_llog_handler(const struct lu_env *env,
inst = 1;
inst_len = LUSTRE_CFG_BUFLEN(lcfg, 0) +
sizeof(clli->cfg_instance) * 2 + 4;
- inst_name = kzalloc(inst_len, GFP_NOFS);
+ inst_name = kasprintf(GFP_NOFS, "%s-%p",
+ lustre_cfg_string(lcfg, 0),
+ clli->cfg_instance);
if (!inst_name) {
rc = -ENOMEM;
goto out;
}
- sprintf(inst_name, "%s-%p",
- lustre_cfg_string(lcfg, 0),
- clli->cfg_instance);
lustre_cfg_bufs_set_string(&bufs, 0, inst_name);
CDEBUG(D_CONFIG, "cmd %x, instance name: %s\n",
lcfg->lcfg_command, inst_name);
--
2.1.0
6 years, 9 months
[PATCH] Staging: lustre: llite: Use a mutex instead of spinlock
by Shraddha Barke
Using a mutex instead of a spinlock results in more flexibility (
i.e it allows to sleep while the lock is held).
Signed-off-by: Shraddha Barke <shraddha.6596(a)gmail.com>
---
drivers/staging/lustre/lustre/llite/llite_lib.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c
index ab4839c..1922983 100644
--- a/drivers/staging/lustre/lustre/llite/llite_lib.c
+++ b/drivers/staging/lustre/lustre/llite/llite_lib.c
@@ -112,9 +112,9 @@ static struct ll_sb_info *ll_init_sbi(struct super_block *sb)
class_uuid_unparse(uuid, &sbi->ll_sb_uuid);
CDEBUG(D_CONFIG, "generated uuid: %s\n", sbi->ll_sb_uuid.uuid);
- spin_lock(&ll_sb_lock);
+ mutex_lock(&ll_sb_lock);
list_add_tail(&sbi->ll_list, &ll_super_blocks);
- spin_unlock(&ll_sb_lock);
+ mutex_unlock(&ll_sb_lock);
sbi->ll_flags |= LL_SBI_VERBOSE;
sbi->ll_flags |= LL_SBI_CHECKSUM;
@@ -145,9 +145,9 @@ static void ll_free_sbi(struct super_block *sb)
struct ll_sb_info *sbi = ll_s2sbi(sb);
if (sbi != NULL) {
- spin_lock(&ll_sb_lock);
+ mutex_lock(&ll_sb_lock);
list_del(&sbi->ll_list);
- spin_unlock(&ll_sb_lock);
+ mutex_unlock(&ll_sb_lock);
kfree(sbi);
}
}
--
2.1.0
6 years, 9 months