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?
next prev parent 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: linkBe 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.