From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Howells Subject: [PATCH 01/31] Add an ERR_CAST() macro to complement ERR_PTR and co. [try #5] Date: Thu, 25 Oct 2007 17:33:57 +0100 Message-ID: <20071025163357.5057.35399.stgit@warthog.procyon.org.uk> References: <20071025163352.5057.59344.stgit@warthog.procyon.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, dhowells@redhat.com To: akpm@linux-foundation.org Return-path: Received: from mx1.redhat.com ([66.187.233.31]:55981 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752415AbXJYQe3 (ORCPT ); Thu, 25 Oct 2007 12:34:29 -0400 In-Reply-To: <20071025163352.5057.59344.stgit@warthog.procyon.org.uk> Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org Add an ERR_CAST() macro to complement ERR_PTR and co. for the purposes of casting an error entyped as one pointer type to an error of another pointer type whilst making it explicit as to what is going on. This provides a replacement for the ERR_PTR(PTR_ERR(p)) construct. Signed-off-by: David Howells --- include/linux/err.h | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) diff --git a/include/linux/err.h b/include/linux/err.h index 1ab1d44..08409cd 100644 --- a/include/linux/err.h +++ b/include/linux/err.h @@ -34,6 +34,18 @@ static inline long IS_ERR(const void *ptr) return IS_ERR_VALUE((unsigned long)ptr); } +/** + * ERR_CAST - Explicitly cast an error-valued pointer to another pointer type + * @ptr: The pointer to cast. + * + * Explicitly cast an error-valued pointer to another pointer type in such a + * way as to make it clear that's what's going on. + */ +static inline void *ERR_CAST(const void *ptr) +{ + return (void *) ptr; +} + #endif #endif /* _LINUX_ERR_H */