All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: NeilBrown <neilb@suse.com>
Cc: Oleg Drokin <oleg.drokin@intel.com>,
	James Simmons <jsimmons@infradead.org>,
	Andreas Dilger <andreas.dilger@intel.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Lustre Development List <lustre-devel@lists.lustre.org>
Subject: [lustre-devel] [PATCH 08/17] staging: lustre: add container_of_safe()
Date: Mon, 23 Apr 2018 15:16:48 +0200	[thread overview]
Message-ID: <20180423131648.GA13997@kroah.com> (raw)
In-Reply-To: <152229760847.27689.4969508646445147289.stgit@noble>

On Thu, Mar 29, 2018 at 03:26:48PM +1100, NeilBrown wrote:
> Luster has a container_of0() function which is similar to
> container_of() but passes an IS_ERR_OR_NULL() pointer through
> unchanged.
> This could be generally useful: bcache at last has a similar function.
> 
> Naming is hard, but the precedent set by hlist_entry_safe() suggests
> a _safe suffix might be most consistent.
> 
> So add container_of_safe() to kernel.h, and replace all occurrences of
> container_of0() with one of
>   - list_first_entry, list_next_entry, when that is a better fit,
>   - container_of(), when the pointer is used as a validpointer in
>     surrounding code,
>   - container_of_safe() when there is no obviously better alternative.

I'm loath to add a kernel.h define for a staging driver, but this does
seem sane.  Nice work.

greg k-h

WARNING: multiple messages have this Message-ID (diff)
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: NeilBrown <neilb@suse.com>
Cc: Oleg Drokin <oleg.drokin@intel.com>,
	James Simmons <jsimmons@infradead.org>,
	Andreas Dilger <andreas.dilger@intel.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Lustre Development List <lustre-devel@lists.lustre.org>
Subject: Re: [PATCH 08/17] staging: lustre: add container_of_safe()
Date: Mon, 23 Apr 2018 15:16:48 +0200	[thread overview]
Message-ID: <20180423131648.GA13997@kroah.com> (raw)
In-Reply-To: <152229760847.27689.4969508646445147289.stgit@noble>

On Thu, Mar 29, 2018 at 03:26:48PM +1100, NeilBrown wrote:
> Luster has a container_of0() function which is similar to
> container_of() but passes an IS_ERR_OR_NULL() pointer through
> unchanged.
> This could be generally useful: bcache at last has a similar function.
> 
> Naming is hard, but the precedent set by hlist_entry_safe() suggests
> a _safe suffix might be most consistent.
> 
> So add container_of_safe() to kernel.h, and replace all occurrences of
> container_of0() with one of
>   - list_first_entry, list_next_entry, when that is a better fit,
>   - container_of(), when the pointer is used as a validpointer in
>     surrounding code,
>   - container_of_safe() when there is no obviously better alternative.

I'm loath to add a kernel.h define for a staging driver, but this does
seem sane.  Nice work.

greg k-h

  parent reply	other threads:[~2018-04-23 13:16 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-29  4:26 [lustre-devel] [PATCH 00/17] staging: Assorted lustre cleanup NeilBrown
2018-03-29  4:26 ` NeilBrown
2018-03-29  4:26 ` [lustre-devel] [PATCH 11/17] staging: lustre: libcfs: discard cfs_time_shift() NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 19:02   ` [lustre-devel] " James Simmons
2018-03-30 19:02     ` James Simmons
2018-04-02 19:34     ` [lustre-devel] " Dilger, Andreas
2018-04-02 19:34       ` Dilger, Andreas
2018-04-02 22:26       ` [lustre-devel] " NeilBrown
2018-04-02 22:26         ` NeilBrown
2018-04-04  8:10         ` [lustre-devel] " Dilger, Andreas
2018-04-04  8:10           ` Dilger, Andreas
2018-04-04 22:00           ` NeilBrown
2018-04-04 22:00             ` NeilBrown
2018-03-29  4:26 ` [lustre-devel] [PATCH 04/17] staging: lustre: remove unused hash tables NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 18:57   ` [lustre-devel] " James Simmons
2018-03-30 18:57     ` James Simmons
2018-03-29  4:26 ` [lustre-devel] [PATCH 03/17] staging: lustre: LNET excludes USERIO NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 19:09   ` [lustre-devel] " James Simmons
2018-03-30 19:09     ` James Simmons
2018-03-29  4:26 ` [lustre-devel] [PATCH 05/17] staging: lustre: remove unneeded include NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 18:57   ` [lustre-devel] " James Simmons
2018-03-30 18:57     ` James Simmons
2018-03-29  4:26 ` [lustre-devel] [PATCH 06/17] staging: lustre: tidy up ldlm_resource_putref() NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 18:58   ` [lustre-devel] " James Simmons
2018-03-30 18:58     ` James Simmons
2018-03-29  4:26 ` [lustre-devel] [PATCH 07/17] staging: lustre: ldlm: free resource when ldlm_lock_create() fails NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 18:58   ` [lustre-devel] " James Simmons
2018-03-30 18:58     ` James Simmons
2018-03-29  4:26 ` [lustre-devel] [PATCH 02/17] staging: lustre: remove unused ldlm_completion_ast_async() NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 18:57   ` [lustre-devel] " James Simmons
2018-03-30 18:57     ` James Simmons
2018-03-29  4:26 ` [lustre-devel] [PATCH 16/17] staging: lustre: discard linux-time.h NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 19:03   ` [lustre-devel] " James Simmons
2018-03-30 19:03     ` James Simmons
2018-03-29  4:26 ` [lustre-devel] [PATCH 01/17] staging: lustre: remove invariant in cl_io_read_ahead() NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 18:56   ` [lustre-devel] " James Simmons
2018-03-30 18:56     ` James Simmons
2018-03-29  4:26 ` [lustre-devel] [PATCH 14/17] staging: lustre: discard cfs_duration_sec() NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 19:02   ` [lustre-devel] " James Simmons
2018-03-30 19:02     ` James Simmons
2018-03-29  4:26 ` [lustre-devel] [PATCH 10/17] staging: lustre: libcfs: discard cfs_time_add/sub NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 19:00   ` [lustre-devel] " James Simmons
2018-03-30 19:00     ` James Simmons
2018-03-29  4:26 ` [lustre-devel] [PATCH 15/17] staging: lustre: discard cfs_time_before_64() NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 19:03   ` [lustre-devel] " James Simmons
2018-03-30 19:03     ` James Simmons
2018-03-29  4:26 ` [lustre-devel] [PATCH 13/17] staging: lustre: libcfs: remove cfs_timeout_cap() NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 19:03   ` [lustre-devel] " James Simmons
2018-03-30 19:03     ` James Simmons
2018-04-02 19:38   ` [lustre-devel] " Dilger, Andreas
2018-04-02 19:38     ` Dilger, Andreas
2018-04-02 22:34     ` [lustre-devel] " NeilBrown
2018-04-02 22:34       ` NeilBrown
2018-03-29  4:26 ` [lustre-devel] [PATCH 17/17] staging: lustre: remove cruft from libcfs/linux/libcfs.h NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 19:07   ` [lustre-devel] " James Simmons
2018-03-30 19:07     ` James Simmons
2018-03-29  4:26 ` [lustre-devel] [PATCH 09/17] staging: lustre: cfs_time_current() -> jiffies NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 19:00   ` [lustre-devel] " James Simmons
2018-03-30 19:00     ` James Simmons
2018-03-29  4:26 ` [lustre-devel] [PATCH 08/17] staging: lustre: add container_of_safe() NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 18:59   ` [lustre-devel] " James Simmons
2018-03-30 18:59     ` James Simmons
2018-04-10  1:37     ` [lustre-devel] " Cory Spitz
2018-04-11 21:19       ` NeilBrown
2018-04-23 13:16   ` Greg Kroah-Hartman [this message]
2018-04-23 13:16     ` Greg Kroah-Hartman
2018-03-29  4:26 ` [lustre-devel] [PATCH 12/17] staging: lustre: libcfs: discard cfs_time_after() NeilBrown
2018-03-29  4:26   ` NeilBrown
2018-03-30 19:01   ` [lustre-devel] " James Simmons
2018-03-30 19:01     ` James Simmons

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180423131648.GA13997@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=andreas.dilger@intel.com \
    --cc=jsimmons@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lustre-devel@lists.lustre.org \
    --cc=neilb@suse.com \
    --cc=oleg.drokin@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.