From: Dave Jiang <dave.jiang@intel.com>
To: Miklos Szeredi <mszeredi@redhat.com>, fuse-devel@lists.linux.dev
Cc: John Groves <John@Groves.net>,
Amir Goldstein <amir73il@gmail.com>,
"Darrick J . Wong" <djwong@kernel.org>,
Vishal Verma <vishal.l.verma@intel.com>,
Alison Schofield <alison.schofield@intel.com>,
nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org
Subject: Re: [PATCH v5 01/10] dax: add fsdev_dax_from_file()
Date: Fri, 16 Oct 2026 08:20:43 -0700 [thread overview]
Message-ID: <61841d94-a4ff-448b-8699-381c23b18dc2@intel.com> (raw)
In-Reply-To: <20261016151638.2962413-2-mszeredi@redhat.com>
On 10/16/26 8:16 AM, Miklos Szeredi wrote:
> From: John Groves <John@Groves.net>
>
> If the file is a fsdev_dax open, take the dax_dev from the device inode's
> i_cdev. Return with a reference grabbed on the private dax inode.
>
> Make dax_dev_get() static again (internal to super.c for alloc_dax), export
> fsdev_dax_from_file() instead.
>
> This fix is in response to a Sashiko review, and some subsequent analysis.
>
> About the 'fixes' tag: this removes the export of dax_dev_get(), which was
> flawed, and replaces it with fsdev_dax_from_file(). It feels like the fixes
> tag makes sense for correcting an ABI error.
>
> Fixes: 2ae624d5a555d ("dax: export dax_dev_get()")
> Originally-by: John Groves <john@groves.net>
> Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
> ---
> drivers/dax/fsdev.c | 23 +++++++++++++++++++++++
> drivers/dax/super.c | 3 +--
> include/linux/dax.h | 3 ++-
> 3 files changed, 26 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/dax/fsdev.c b/drivers/dax/fsdev.c
> index 598604bf5ac5..910665c1f492 100644
> --- a/drivers/dax/fsdev.c
> +++ b/drivers/dax/fsdev.c
> @@ -234,6 +234,29 @@ static const struct file_operations fsdev_fops = {
> .release = fsdev_release,
> };
>
> +/**
> + * fsdev_dax_from_file - get dax_device from an open file
> + * @file: open device file
> + *
> + * Returns a dax_device pointer if @file refers to a fsdev_dax device.
> + * Otherwise return NULL.
> + *
> + * Caller must put_dax() the returned device when done.
> + */
> +struct dax_device *fsdev_dax_from_file(struct file *file)
> +{
> + struct dax_device *dax_dev;
> +
> + if (file->f_op != &fsdev_fops)
> + return NULL;
> +
> + dax_dev = inode_dax(file_inode(file));
> + ihold(dax_inode(dax_dev));
> +
> + return dax_dev;
> +}
> +EXPORT_SYMBOL_GPL(fsdev_dax_from_file);
> +
> /*
> * Acquire the dev_pagemap for probe: the static (pre-populated) one if
> * present, or a devm-allocated one for the dynamic case. Note that
> diff --git a/drivers/dax/super.c b/drivers/dax/super.c
> index 45f84b0eb909..25836f389bde 100644
> --- a/drivers/dax/super.c
> +++ b/drivers/dax/super.c
> @@ -565,7 +565,7 @@ static int dax_set(struct inode *inode, void *data)
> return 0;
> }
>
> -struct dax_device *dax_dev_get(dev_t devt)
> +static struct dax_device *dax_dev_get(dev_t devt)
> {
> struct dax_device *dax_dev;
> struct inode *inode;
> @@ -588,7 +588,6 @@ struct dax_device *dax_dev_get(dev_t devt)
>
> return dax_dev;
> }
> -EXPORT_SYMBOL_GPL(dax_dev_get);
>
> struct dax_device *alloc_dax(void *private, const struct dax_operations *ops)
> {
> diff --git a/include/linux/dax.h b/include/linux/dax.h
> index fe6c3ded1b50..2c9fc81f031b 100644
> --- a/include/linux/dax.h
> +++ b/include/linux/dax.h
> @@ -54,7 +54,6 @@ struct dax_device *alloc_dax(void *private, const struct dax_operations *ops);
> void *dax_holder(struct dax_device *dax_dev);
> void put_dax(struct dax_device *dax_dev);
> void kill_dax(struct dax_device *dax_dev);
> -struct dax_device *dax_dev_get(dev_t devt);
> void dax_write_cache(struct dax_device *dax_dev, bool wc);
> bool dax_write_cache_enabled(struct dax_device *dax_dev);
> bool dax_synchronous(struct dax_device *dax_dev);
> @@ -323,3 +322,5 @@ typedef int (*walk_hmem_fn)(struct device *dev, int target_nid,
> const struct resource *res);
> int walk_hmem_resources(struct device *dev, walk_hmem_fn fn);
> #endif
> +
> +struct dax_device *fsdev_dax_from_file(struct file *file);
next prev parent reply other threads:[~2026-10-16 15:20 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-16 15:16 [PATCH v5 00/10] fuse: DAX device based extent maps (famfs) Miklos Szeredi
2026-10-16 15:16 ` [PATCH v5 01/10] dax: add fsdev_dax_from_file() Miklos Szeredi
2026-10-16 15:20 ` Dave Jiang [this message]
2026-10-16 15:28 ` Gregory Price
2026-10-16 15:16 ` [PATCH v5 02/10] dax: use READ_ONCE() in dax_holder() Miklos Szeredi
2026-10-16 15:20 ` Dave Jiang
2026-10-16 15:16 ` [PATCH v5 03/10] fuse: add helpers for EIO return value with kernel message Miklos Szeredi
2026-10-16 15:16 ` [PATCH v5 04/10] fuse: support 64 bit, server allocated backing ID Miklos Szeredi
2026-10-16 15:16 ` [PATCH v5 05/10] fuse: support opening 64 bit " Miklos Szeredi
2026-10-16 15:16 ` [PATCH v5 06/10] fuse: add support for opening dax device as backing Miklos Szeredi
2026-10-16 15:16 ` [PATCH v5 07/10] fuse: add extent map data structure Miklos Szeredi
2026-10-16 15:16 ` [PATCH v5 08/10] fuse: add extent map I/O support Miklos Szeredi
2026-10-16 15:16 ` [PATCH v5 09/10] fuse: add support for striped backing Miklos Szeredi
2026-10-16 15:16 ` [PATCH v5 10/10] fuse: resolve extent maps in O(1) when possible Miklos Szeredi
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=61841d94-a4ff-448b-8699-381c23b18dc2@intel.com \
--to=dave.jiang@intel.com \
--cc=John@Groves.net \
--cc=alison.schofield@intel.com \
--cc=amir73il@gmail.com \
--cc=djwong@kernel.org \
--cc=fuse-devel@lists.linux.dev \
--cc=linux-cxl@vger.kernel.org \
--cc=mszeredi@redhat.com \
--cc=nvdimm@lists.linux.dev \
--cc=vishal.l.verma@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.