opr: opr_AssertionFailed undefined in kernel module
authorMark Vitale <mvitale@sinenomine.net>
Fri, 6 Jun 2014 23:27:04 +0000 (19:27 -0400)
committerJeffrey Altman <jaltman@your-file-system.com>
Wed, 13 Aug 2014 14:01:45 +0000 (10:01 -0400)
commit2e2bef28f00f505190c21bd42398f6a01268879c
treec41a84eab8f010ed357ec5f26ebb90ab1a8e266a
parent594e2980a0ab12f6967d626b842fc6569f4343e4
opr: opr_AssertionFailed undefined in kernel module

The opr_Assert in opr_rbtree_remove is incompletely defined;
the opr_Assert macro is defined in opr.h, but the definition
for the opr_AssertionFailed routine it invokes is not included.
This allows the kernel module to build successfully even though
it retains a hidden undefined reference for opr_AssertionFailed.

However, the logic in obr_rbtree_remove ensures that this
particular opr_Assert can never fail - it is superfluous.
Some compilers (e.g. gcc for Linux AFS kernel module
builds) are able to recognize this and optimize it out.  Others
(e.g. Solaris 5.12) do not, and when this happens the OpenAFS
build appears to succeed but the kernel module will fail to load
due to the undefined symbol.

Remove the superfluous opr_Assert.

This partially reverts commit 9f8b765bbdbb8913fcadbde8d3362039e9dc8e61.

Change-Id: I4ed2b1873c434e41dce0f2e474926bf8b449b819
Reviewed-on: http://gerrit.openafs.org/11296
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
src/opr/rbtree.c