Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1394384 > unrolled thread

[PATCH 0/9] staging: lustre: bug fixes from the lustre 2.5.[54-55] release

Started byJames Simmons <jsimmons@infradead.org>
First post2016-05-04 16:50 +0200
Last post2016-05-04 16:50 +0200
Articles 5 — 1 participant

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/9] staging: lustre: bug fixes from the lustre 2.5.[54-55] release James Simmons <jsimmons@infradead.org> - 2016-05-04 16:50 +0200
    [PATCH 1/9] staging: lustre: nfs: don't panic NFS server if MDS fails to find FID James Simmons <jsimmons@infradead.org> - 2016-05-04 16:50 +0200
    [PATCH 2/9] staging: lustre: osc: Allow lock to be canceled at ENQ time James Simmons <jsimmons@infradead.org> - 2016-05-04 16:50 +0200
    [PATCH 6/9] staging: lustre: debug: clean up console messages James Simmons <jsimmons@infradead.org> - 2016-05-04 16:50 +0200
    [PATCH 4/9] staging: lustre: mdt: extra checking for getattr RPC. James Simmons <jsimmons@infradead.org> - 2016-05-04 16:50 +0200

#1394384 — [PATCH 0/9] staging: lustre: bug fixes from the lustre 2.5.[54-55] release

FromJames Simmons <jsimmons@infradead.org>
Date2016-05-04 16:50 +0200
Subject[PATCH 0/9] staging: lustre: bug fixes from the lustre 2.5.[54-55] release
Message-ID<rv5Ym-5ES-5@gated-at.bofh.it>
Here is the next batch of fixes and cleanups that went into
Lustre versions 2.5.54 and 2.5.55 except for the work done
for LU-3531. The changes for LU-3531 are large so they belong
in their own special patch set. Most of the patches here are
minor fixes and some removal of dead or obsolete code.

Alexander Boyko (1):
  staging: lustre: osc: Allow lock to be canceled at ENQ time

Andreas Dilger (1):
  staging: lustre: debug: clean up console messages

Bobi Jam (1):
  staging: lustre: nfs: don't panic NFS server if MDS fails to find FID

Fan Yong (1):
  staging: lustre: fid: packing ost_idx in IDIF

John L. Hammond (2):
  staging: lustre: lov: remove lov and lod stuff from obd.h
  staging: lustre: lov: remove unused lov obd functions

Niu Yawei (1):
  staging: lustre: ptlrpc: fix nrs cleanup

wang di (2):
  staging: lustre: mdt: extra checking for getattr RPC.
  staging: lustre: fid: init FID client for OSP on MDT.

 drivers/staging/lustre/lustre/fid/fid_request.c    |  7 +-
 .../lustre/lustre/include/lustre/lustre_idl.h      | 76 +++++++++++++++-------
 drivers/staging/lustre/lustre/include/lustre_fid.h | 22 ++-----
 drivers/staging/lustre/lustre/include/obd.h        | 60 -----------------
 .../staging/lustre/lustre/include/obd_support.h    |  1 +
 drivers/staging/lustre/lustre/llite/llite_lib.c    |  6 +-
 drivers/staging/lustre/lustre/llite/llite_nfs.c    | 13 ++--
 drivers/staging/lustre/lustre/lov/lov_ea.c         |  5 --
 drivers/staging/lustre/lustre/lov/lov_internal.h   | 32 ++++-----
 drivers/staging/lustre/lustre/lov/lov_obd.c        |  3 -
 drivers/staging/lustre/lustre/lov/lov_pool.c       | 62 +-----------------
 drivers/staging/lustre/lustre/lov/lov_request.c    |  3 -
 drivers/staging/lustre/lustre/mdc/mdc_request.c    |  3 +-
 drivers/staging/lustre/lustre/obdclass/obd_mount.c |  2 +-
 drivers/staging/lustre/lustre/osc/osc_request.c    |  3 +
 drivers/staging/lustre/lustre/ptlrpc/nrs.c         |  6 +-
 16 files changed, 101 insertions(+), 203 deletions(-)

--
2.7.4

[toc] | [next] | [standalone]


#1394393 — [PATCH 1/9] staging: lustre: nfs: don't panic NFS server if MDS fails to find FID

FromJames Simmons <jsimmons@infradead.org>
Date2016-05-04 16:50 +0200
Subject[PATCH 1/9] staging: lustre: nfs: don't panic NFS server if MDS fails to find FID
Message-ID<rv6hI-5S0-29@gated-at.bofh.it>
In reply to#1394384
From: Bobi Jam <bobijam.xu@intel.com>

When MDS fails to retrive the parent's fid, we'd handle it without
crashing the NFS server.

Signed-off-by: Bobi Jam <bobijam.xu@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3952
Reviewed-on: http://review.whamcloud.com/8459
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: wangdi <di.wang@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
---
 drivers/staging/lustre/lustre/llite/llite_nfs.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/lustre/lustre/llite/llite_nfs.c b/drivers/staging/lustre/lustre/llite/llite_nfs.c
index 61cb5ff..c1eef61 100644
--- a/drivers/staging/lustre/lustre/llite/llite_nfs.c
+++ b/drivers/staging/lustre/lustre/llite/llite_nfs.c
@@ -322,11 +322,14 @@ static struct dentry *ll_get_parent(struct dentry *dchild)
 		return ERR_PTR(rc);
 	}
 	body = req_capsule_server_get(&req->rq_pill, &RMF_MDT_BODY);
-	LASSERT(body->valid & OBD_MD_FLID);
-
-	CDEBUG(D_INFO, "parent for " DFID " is " DFID "\n",
-	       PFID(ll_inode2fid(dir)), PFID(&body->fid1));
-
+	/*
+	 * LU-3952: MDT may lost the FID of its parent, we should not crash
+	 * the NFS server, ll_iget_for_nfs() will handle the error.
+	 */
+	if (body->valid & OBD_MD_FLID) {
+		CDEBUG(D_INFO, "parent for " DFID " is " DFID "\n",
+		       PFID(ll_inode2fid(dir)), PFID(&body->fid1));
+	}
 	result = ll_iget_for_nfs(dir->i_sb, &body->fid1, NULL);
 
 	ptlrpc_req_finished(req);
-- 
2.7.4

[toc] | [prev] | [next] | [standalone]


#1394400 — [PATCH 2/9] staging: lustre: osc: Allow lock to be canceled at ENQ time

FromJames Simmons <jsimmons@infradead.org>
Date2016-05-04 16:50 +0200
Subject[PATCH 2/9] staging: lustre: osc: Allow lock to be canceled at ENQ time
Message-ID<rv6hJ-5S0-47@gated-at.bofh.it>
In reply to#1394384
From: Alexander Boyko <alexander_boyko@xyratex.com>

A cl_lock can be canceled when it's in CLS_ENQUEUED state.
We can't unuse this kind of lock in lov_lock_unuse() because
it will bring this lock into CLS_NEW state and then confuse
osc_lock_upcall().

Add a regression test case by Alexander Boyko.

Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Signed-off-by: Alexander Boyko <alexander_boyko@xyratex.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3889
Reviewed-on: http://review.whamcloud.com/8405
Reviewed-by: Bobi Jam <bobijam@gmail.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
---
 drivers/staging/lustre/lustre/include/obd_support.h | 1 +
 drivers/staging/lustre/lustre/osc/osc_request.c     | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h
index 1358af1..60034d3 100644
--- a/drivers/staging/lustre/lustre/include/obd_support.h
+++ b/drivers/staging/lustre/lustre/include/obd_support.h
@@ -321,6 +321,7 @@ extern char obd_jobid_var[];
 #define OBD_FAIL_LDLM_AGL_DELAY	  0x31a
 #define OBD_FAIL_LDLM_AGL_NOLOCK	 0x31b
 #define OBD_FAIL_LDLM_OST_LVB		 0x31c
+#define OBD_FAIL_LDLM_ENQUEUE_HANG	 0x31d
 
 /* LOCKLESS IO */
 #define OBD_FAIL_LDLM_SET_CONTENTION     0x385
diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c
index df06f4f..47417f8 100644
--- a/drivers/staging/lustre/lustre/osc/osc_request.c
+++ b/drivers/staging/lustre/lustre/osc/osc_request.c
@@ -2201,6 +2201,9 @@ static int osc_enqueue_interpret(const struct lu_env *env,
 	 */
 	ldlm_lock_addref(lockh, mode);
 
+	/* Let cl_lock_state_wait fail with -ERESTARTSYS to unuse sublocks. */
+	OBD_FAIL_TIMEOUT(OBD_FAIL_LDLM_ENQUEUE_HANG, 2);
+
 	/* Let CP AST to grant the lock first. */
 	OBD_FAIL_TIMEOUT(OBD_FAIL_OSC_CP_ENQ_RACE, 1);
 
-- 
2.7.4

[toc] | [prev] | [next] | [standalone]


#1394408 — [PATCH 6/9] staging: lustre: debug: clean up console messages

FromJames Simmons <jsimmons@infradead.org>
Date2016-05-04 16:50 +0200
Subject[PATCH 6/9] staging: lustre: debug: clean up console messages
Message-ID<rv6hK-5S0-69@gated-at.bofh.it>
In reply to#1394384
From: Andreas Dilger <andreas.dilger@intel.com>

Clean up overly verbose console error messages, improve others.

Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-1095
Reviewed-on: http://review.whamcloud.com/8617
Reviewed-by: Faccini Bruno <bruno.faccini@intel.com>
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
---
 drivers/staging/lustre/lustre/llite/llite_lib.c    | 4 +---
 drivers/staging/lustre/lustre/obdclass/obd_mount.c | 2 +-
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c
index 44dd3f3..96c7e9f 100644
--- a/drivers/staging/lustre/lustre/llite/llite_lib.c
+++ b/drivers/staging/lustre/lustre/llite/llite_lib.c
@@ -897,10 +897,8 @@ int ll_fill_super(struct super_block *sb, struct vfsmount *mnt)
 	cfg->cfg_callback = class_config_llog_handler;
 	/* set up client obds */
 	err = lustre_process_log(sb, profilenm, cfg);
-	if (err < 0) {
-		CERROR("Unable to process log: %d\n", err);
+	if (err < 0)
 		goto out_free;
-	}
 
 	/* Profile set with LCFG_MOUNTOPT so we can find our mdc and osc obds */
 	lprof = class_get_profile(profilenm);
diff --git a/drivers/staging/lustre/lustre/obdclass/obd_mount.c b/drivers/staging/lustre/lustre/obdclass/obd_mount.c
index 9474aa9..e0c90ad 100644
--- a/drivers/staging/lustre/lustre/obdclass/obd_mount.c
+++ b/drivers/staging/lustre/lustre/obdclass/obd_mount.c
@@ -102,7 +102,7 @@ int lustre_process_log(struct super_block *sb, char *logname,
 		LCONSOLE_ERROR_MSG(0x15b, "%s: The configuration from log '%s' failed from the MGS (%d).  Make sure this client and the MGS are running compatible versions of Lustre.\n",
 				   mgc->obd_name, logname, rc);
 
-	if (rc)
+	else if (rc)
 		LCONSOLE_ERROR_MSG(0x15c, "%s: The configuration from log '%s' failed (%d). This may be the result of communication errors between this node and the MGS, a bad configuration, or other errors. See the syslog for more information.\n",
 				   mgc->obd_name, logname,
 				   rc);
-- 
2.7.4

[toc] | [prev] | [next] | [standalone]


#1394409 — [PATCH 4/9] staging: lustre: mdt: extra checking for getattr RPC.

FromJames Simmons <jsimmons@infradead.org>
Date2016-05-04 16:50 +0200
Subject[PATCH 4/9] staging: lustre: mdt: extra checking for getattr RPC.
Message-ID<rv6hK-5S0-61@gated-at.bofh.it>
In reply to#1394384
From: wang di <di.wang@intel.com>

Check whether getattr RPC can hold layout MD(RMF_MDT_MD),
in case the client sends some invalid RPC, which can
cause panic on MDT.

Client will retrieve cl_max_md_size/cl_default_md_size
from MDS during mount process, so it will initialize
cl_max_md_size/cl_default_md_size before sending getattr
to MDS.

Signed-off-by: wang di <di.wang@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4222
Reviewed-on: http://review.whamcloud.com/8599
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
---
 drivers/staging/lustre/lustre/llite/llite_lib.c | 2 +-
 drivers/staging/lustre/lustre/mdc/mdc_request.c | 3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c
index 64be2c1..44dd3f3 100644
--- a/drivers/staging/lustre/lustre/llite/llite_lib.c
+++ b/drivers/staging/lustre/lustre/llite/llite_lib.c
@@ -445,7 +445,7 @@ static int client_common_fill_super(struct super_block *sb, char *md, char *dt,
 	/* make root inode
 	 * XXX: move this to after cbd setup?
 	 */
-	valid = OBD_MD_FLGETATTR | OBD_MD_FLBLOCKS;
+	valid = OBD_MD_FLGETATTR | OBD_MD_FLBLOCKS | OBD_MD_FLMODEASIZE;
 	if (sbi->ll_flags & LL_SBI_RMT_CLIENT)
 		valid |= OBD_MD_FLRMTPERM;
 	else if (sbi->ll_flags & LL_SBI_ACL)
diff --git a/drivers/staging/lustre/lustre/mdc/mdc_request.c b/drivers/staging/lustre/lustre/mdc/mdc_request.c
index 46e3a7506..86b7445 100644
--- a/drivers/staging/lustre/lustre/mdc/mdc_request.c
+++ b/drivers/staging/lustre/lustre/mdc/mdc_request.c
@@ -142,9 +142,8 @@ static int mdc_getattr_common(struct obd_export *exp,
 
 	CDEBUG(D_NET, "mode: %o\n", body->mode);
 
+	mdc_update_max_ea_from_body(exp, body);
 	if (body->eadatasize != 0) {
-		mdc_update_max_ea_from_body(exp, body);
-
 		eadata = req_capsule_server_sized_get(pill, &RMF_MDT_MD,
 						      body->eadatasize);
 		if (!eadata)
-- 
2.7.4

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web