[LU-5592] incorrect check for NULL in ofd_version_get_check() Created: 05/Sep/14  Updated: 12/Sep/14  Resolved: 12/Sep/14

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: Lustre 2.7.0

Type: Bug Priority: Major
Reporter: Dmitry Eremin (Inactive) Assignee: Dmitry Eremin (Inactive)
Resolution: Fixed Votes: 0
Labels: kw

Severity: 3
Rank (Obsolete): 15594

 Description   
int ofd_version_get_check(struct ofd_thread_info *info,
			  struct ofd_object *fo)
{
	dt_obj_version_t curr_version;

	LASSERT(ofd_object_exists(fo));

	if (info->fti_exp)
		RETURN(0);
...
		spin_lock(&info->fti_exp->exp_lock);
		info->fti_exp->exp_vbr_failed = 1;
		spin_unlock(&info->fti_exp->exp_lock);
		RETURN (-EOVERFLOW);
	}
	info->fti_pre_version = curr_version;
	RETURN(0);
}


 Comments   
Comment by Dmitry Eremin (Inactive) [ 05/Sep/14 ]

patch is http://review.whamcloud.com/11773/

Comment by Andreas Dilger [ 05/Sep/14 ]

It looks like this change was introduced in http://review.whamcloud.com/7667 (commit 730a204e7366):

LU-3951 lfsck: OST-object inconsistency self detect/repair

@@ -53,7 +53,9 @@ int ofd_version_get_check(struct ofd_thread_info *info,
        dt_obj_version_t curr_version;
 
        LASSERT(ofd_object_exists(fo));
-       LASSERT(info->fti_exp);
+
+       if (info->fti_exp)
+               RETURN(0);

but it isn't clear whether the bug is in the "if" check added, or in the debug message.

Comment by nasf (Inactive) [ 06/Sep/14 ]

The "if" check was wrong, It was added because the original "LASSERT(info->fti_exp);" failed during the test.

Comment by Dmitry Eremin (Inactive) [ 12/Sep/14 ]

Landed to master.

Generated at Sat Feb 10 01:52:49 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.