From mboxrd@z Thu Jan 1 00:00:00 1970 From: Randy Dunlap Subject: Re: [PATCH 01/32] Add an ERR_CAST() macro to complement ERR_PTR and co. [try #2] Date: Fri, 5 Oct 2007 09:21:29 -0700 Message-ID: <20071005092129.8fae521d.randy.dunlap@oracle.com> References: <20071004155602.2814.47731.stgit@warthog.procyon.org.uk> <20071004155607.2814.74947.stgit@warthog.procyon.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: hch@infradead.org, viro@ftp.linux.org.uk, torvalds@osdl.org, akpm@osdl.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org To: David Howells Return-path: Received: from agminet01.oracle.com ([141.146.126.228]:64080 "EHLO agminet01.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758160AbXJEQWJ (ORCPT ); Fri, 5 Oct 2007 12:22:09 -0400 In-Reply-To: <20071004155607.2814.74947.stgit@warthog.procyon.org.uk> Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Thu, 04 Oct 2007 16:56:07 +0100 David Howells wrote: > 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..e810ca4 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. @ptr: > + * > + * 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 */ --- ~Randy