From: shadow Date: Tue, 20 Jan 2009 08:59:37 +0000 (+0000) Subject: don't confuse mds_finish_transno() with PTR_ERR(-ENOENT) X-Git-Tag: v1_6_7~22 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=63a81b9a5f79e06735a3e515c11c9832047a8017;p=fs%2Flustre-release.git don't confuse mds_finish_transno() with PTR_ERR(-ENOENT) Branch b_release_1_6_7 b=18238 i=green i=umka --- diff --git a/lustre/ChangeLog b/lustre/ChangeLog index e229ea5..3634f99 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -45,7 +45,13 @@ information, please refer to bugzilla 17630. Severity : normal -Frequency : rarw +Frequency : rare +Bugzilla : 18238 +Descriptoin: panic in mds_open +Details : don't confuse mds_finish_transno() with PTR_ERR(-ENOENT) + +Severity : normal +Frequency : rare Bugzilla : 17972 Descriptoin: stuck in cache_remove_extent() or panic with accessing to already freed look. diff --git a/lustre/mds/mds_open.c b/lustre/mds/mds_open.c index e0959e7..b9bb335 100644 --- a/lustre/mds/mds_open.c +++ b/lustre/mds/mds_open.c @@ -1067,12 +1067,6 @@ int mds_open(struct mds_update_record *rec, int offset, dchild = dget(dparent); } - if (IS_ERR(dchild)) { - rc = PTR_ERR(dchild); - dchild = NULL; /* don't confuse mds_finish_transno() below */ - GOTO(cleanup, rc); - } - if (rec->ur_flags & MDS_OPEN_JOIN_FILE) { acc_mode = accmode(dchild->d_inode, rec->ur_flags); GOTO(found_child, rc); diff --git a/lustre/mds/mds_reint.c b/lustre/mds/mds_reint.c index 5268880..4921f93 100644 --- a/lustre/mds/mds_reint.c +++ b/lustre/mds/mds_reint.c @@ -1455,6 +1455,7 @@ int mds_get_parent_child_locked(struct obd_device *obd, struct mds_obd *mds, *dchildp = ll_lookup_one_len(name, *dparentp, namelen - 1); if (IS_ERR(*dchildp)) { rc = PTR_ERR(*dchildp); + *dchildp = NULL; CDEBUG(D_INODE, "child lookup error %d\n", rc); GOTO(cleanup, rc); }