All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Dan Williams <dan.j.williams@intel.com>
Cc: Jan Kara <jack@suse.cz>,
	"Darrick J. Wong" <darrick.wong@oracle.com>,
	linux-nvdimm@lists.01.org, Dave Chinner <david@fromorbit.com>,
	linux-kernel@vger.kernel.org, linux-xfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, Christoph Hellwig <hch@lst.de>
Subject: Re: [PATCH v5 11/11] xfs, dax: introduce xfs_break_dax_layouts()
Date: Sat, 10 Mar 2018 10:55:58 +0100	[thread overview]
Message-ID: <20180310095558.GC31604@lst.de> (raw)
In-Reply-To: <152066494840.40260.6478694186268933246.stgit@dwillia2-desk3.amr.corp.intel.com>

> +static int xfs_wait_dax_page(
> +		atomic_t                *count,
> +		unsigned int            mode)
> +{

Normal XFS style would be:

static int
xfs_wait_dax_page(
	atomic_t		*count,
	unsigned int		mode)
{

> +	struct page             *page = refcount_to_page(count);
> +	struct address_space    *mapping = page->mapping;
> +	struct inode            *inode = mapping->host;
> +	struct xfs_inode        *ip = XFS_I(inode);

Looks we don't really need the mapping and inode variables:

	struct page		*page = refcount_to_page(count);
	struct xfs_inode	*ip = XFS_I(page->mapping->host);

> +	do {
> +		if (flags & XFS_BREAK_REMOTE)
> +			ret = xfs_break_leased_layouts(inode, iolock);
> +		if (ret)
> +			return ret;
> +		if (flags & XFS_BREAK_MAPS)
> +			ret = xfs_break_dax_layouts(inode, *iolock);
> +		/*
> +		 * EBUSY indicates that we dropped locks and waited for
> +		 * the dax layout to be released. When that happens we
> +		 * need to revalidate that no new leases or pinned dax
> +		 * mappings have been established.
> +		 */
> +	} while (ret == -EBUSY);

Maybe instead of the flags argument this should be a type argument
of something like

enum layout_break_reason {
	BREAK_WRITE,		/* write to file */
	BREAK_TRUNCATE,		/* truncate or hole punch */
};

as that makes the intent more clear?
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: Dan Williams <dan.j.williams@intel.com>
Cc: linux-nvdimm@lists.01.org, Jan Kara <jack@suse.cz>,
	Dave Chinner <david@fromorbit.com>,
	"Darrick J. Wong" <darrick.wong@oracle.com>,
	Ross Zwisler <ross.zwisler@linux.intel.com>,
	Christoph Hellwig <hch@lst.de>,
	linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 11/11] xfs, dax: introduce xfs_break_dax_layouts()
Date: Sat, 10 Mar 2018 10:55:58 +0100	[thread overview]
Message-ID: <20180310095558.GC31604@lst.de> (raw)
In-Reply-To: <152066494840.40260.6478694186268933246.stgit@dwillia2-desk3.amr.corp.intel.com>

> +static int xfs_wait_dax_page(
> +		atomic_t                *count,
> +		unsigned int            mode)
> +{

Normal XFS style would be:

static int
xfs_wait_dax_page(
	atomic_t		*count,
	unsigned int		mode)
{

> +	struct page             *page = refcount_to_page(count);
> +	struct address_space    *mapping = page->mapping;
> +	struct inode            *inode = mapping->host;
> +	struct xfs_inode        *ip = XFS_I(inode);

Looks we don't really need the mapping and inode variables:

	struct page		*page = refcount_to_page(count);
	struct xfs_inode	*ip = XFS_I(page->mapping->host);

> +	do {
> +		if (flags & XFS_BREAK_REMOTE)
> +			ret = xfs_break_leased_layouts(inode, iolock);
> +		if (ret)
> +			return ret;
> +		if (flags & XFS_BREAK_MAPS)
> +			ret = xfs_break_dax_layouts(inode, *iolock);
> +		/*
> +		 * EBUSY indicates that we dropped locks and waited for
> +		 * the dax layout to be released. When that happens we
> +		 * need to revalidate that no new leases or pinned dax
> +		 * mappings have been established.
> +		 */
> +	} while (ret == -EBUSY);

Maybe instead of the flags argument this should be a type argument
of something like

enum layout_break_reason {
	BREAK_WRITE,		/* write to file */
	BREAK_TRUNCATE,		/* truncate or hole punch */
};

as that makes the intent more clear?

  reply	other threads:[~2018-03-10  9:49 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-10  6:54 [PATCH v5 00/11] dax: fix dma vs truncate/hole-punch Dan Williams
2018-03-10  6:54 ` Dan Williams
2018-03-10  6:54 ` Dan Williams
2018-03-10  6:54 ` Dan Williams
2018-03-10  6:54 ` [PATCH v5 01/11] dax: store pfns in the radix Dan Williams
2018-03-10  6:54   ` Dan Williams
2018-03-10  6:54   ` Dan Williams
2018-03-10  6:54 ` [PATCH v5 02/11] xfs, dax: introduce xfs_dax_aops Dan Williams
2018-03-10  6:54   ` Dan Williams
2018-03-10  6:54   ` Dan Williams
2018-03-10  9:46   ` Christoph Hellwig
2018-03-10  9:46     ` Christoph Hellwig
2018-03-10 17:40     ` Dan Williams
2018-03-10 17:40       ` Dan Williams
2018-03-11 19:16       ` Dan Williams
2018-03-11 19:16         ` Dan Williams
2018-03-12  7:51         ` Christoph Hellwig
2018-03-12  7:51           ` Christoph Hellwig
2018-03-10  6:55 ` [PATCH v5 03/11] ext4, dax: introduce ext4_dax_aops Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-10  6:55 ` [PATCH v5 04/11] ext2, dax: introduce ext2_dax_aops Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-10  6:55 ` [PATCH v5 05/11] fs, dax: use page->mapping to warn if truncate collides with a busy page Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-10  6:55 ` [PATCH v5 06/11] mm, dax: enable filesystems to trigger dev_pagemap ->page_free callbacks Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-12 14:09   ` Jerome Glisse
2018-03-12 14:09     ` Jerome Glisse
2018-03-12 14:09     ` Jerome Glisse
2018-03-10  6:55 ` [PATCH v5 07/11] mm, dev_pagemap: introduce CONFIG_DEV_PAGEMAP_OPS Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-12 14:17   ` Jerome Glisse
2018-03-12 14:17     ` Jerome Glisse
2018-03-12 14:17     ` Jerome Glisse
2018-03-12 18:17     ` Dan Williams
2018-03-12 18:17       ` Dan Williams
2018-03-10  6:55 ` [PATCH v5 08/11] wait_bit: introduce {wait_on,wake_up}_atomic_one Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-11 11:27   ` [PATCH v5 08/11] wait_bit: introduce {wait_on, wake_up}_atomic_one Peter Zijlstra
2018-03-11 11:27     ` [PATCH v5 08/11] wait_bit: introduce {wait_on,wake_up}_atomic_one Peter Zijlstra
2018-03-11 17:15     ` [PATCH v5 08/11] wait_bit: introduce {wait_on, wake_up}_atomic_one Dan Williams
2018-03-11 17:15       ` [PATCH v5 08/11] wait_bit: introduce {wait_on,wake_up}_atomic_one Dan Williams
2018-03-12 19:32       ` [PATCH v5 08/11] wait_bit: introduce {wait_on, wake_up}_atomic_one Dan Williams
2018-03-12 19:32         ` [PATCH v5 08/11] wait_bit: introduce {wait_on,wake_up}_atomic_one Dan Williams
2018-03-13 10:20       ` [RFC][PATCH] sched/wait_bit: Introduce wait_var_event()/wake_up_var() Peter Zijlstra
2018-03-13 10:20         ` Peter Zijlstra
2018-03-14  4:12         ` Dan Williams
2018-03-14  4:12           ` Dan Williams
2018-03-15  5:46         ` Dan Williams
2018-03-15  5:46           ` Dan Williams
2018-03-15  9:58       ` David Howells
2018-03-15  9:58         ` David Howells
2018-03-15 11:19         ` Peter Zijlstra
2018-03-15 11:19           ` Peter Zijlstra
2018-03-15 11:51         ` Peter Zijlstra
2018-03-15 11:51           ` Peter Zijlstra
2018-03-15 14:45         ` David Howells
2018-03-15 14:45           ` David Howells
2018-03-15 14:53           ` Peter Zijlstra
2018-03-15 14:53             ` Peter Zijlstra
2018-03-10  6:55 ` [PATCH v5 09/11] mm, fs, dax: handle layout changes to pinned dax mappings Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-10  6:55 ` [PATCH v5 10/11] xfs: prepare xfs_break_layouts() for another layout type Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-10  9:51   ` Christoph Hellwig
2018-03-10  9:51     ` Christoph Hellwig
2018-03-10  6:55 ` [PATCH v5 11/11] xfs, dax: introduce xfs_break_dax_layouts() Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-10  6:55   ` Dan Williams
2018-03-10  9:55   ` Christoph Hellwig [this message]
2018-03-10  9:55     ` Christoph Hellwig

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=20180310095558.GC31604@lst.de \
    --to=hch@lst.de \
    --cc=dan.j.williams@intel.com \
    --cc=darrick.wong@oracle.com \
    --cc=david@fromorbit.com \
    --cc=jack@suse.cz \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvdimm@lists.01.org \
    --cc=linux-xfs@vger.kernel.org \
    /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.