All of lore.kernel.org
 help / color / mirror / Atom feed
From: "John Groves" <john@groves.net>
To: "Alison Schofield" <alison.schofield@intel.com>,
	"John Groves" <john@jagalactic.com>
Cc: "Miklos Szeredi" <miklos@szeredi.hu>,
	"Dan Williams" <djbw@kernel.org>,
	"Bernd Schubert" <bschubert@ddn.com>,
	"John Groves (jgroves)" <jgroves@micron.com>,
	"Jonathan Corbet" <corbet@lwn.net>, "Jake Edge" <jake@lwn.net>,
	"Shuah Khan" <skhan@linuxfoundation.org>,
	"Vishal Verma" <vishal.l.verma@intel.com>,
	"Dave Jiang" <dave.jiang@intel.com>,
	"Matthew Wilcox" <willy@infradead.org>, "Jan Kara" <jack@suse.cz>,
	"Alexander Viro" <viro@zeniv.linux.org.uk>,
	"David Hildenbrand" <david@kernel.org>,
	"Christian Brauner" <brauner@kernel.org>,
	"Darrick J . Wong" <djwong@kernel.org>,
	"Randy Dunlap" <rdunlap@infradead.org>,
	"Jeff Layton" <jlayton@kernel.org>,
	"Amir Goldstein" <amir73il@gmail.com>,
	"Jonathan Cameron" <jic23@kernel.org>,
	"Stefan Hajnoczi" <shajnocz@redhat.com>,
	"Joanne Koong" <joannelkoong@gmail.com>,
	"Josef Bacik" <josef@toxicpanda.com>,
	"Bagas Sanjaya" <bagasdotme@gmail.com>,
	"Chen Linxuan" <chenlinxuan@uniontech.com>,
	"James Morse" <james.morse@arm.com>,
	"Fuad Tabba" <tabba@google.com>,
	"Sean Christopherson" <seanjc@google.com>,
	"Shivank Garg" <shivankg@amd.com>,
	"Ackerley Tng" <ackerleytng@google.com>,
	"Gregory Price" <gourry@gourry.net>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Namjae Jeon" <linkinjeon@kernel.org>,
	"Lorenzo Stoakes" <ljs@kernel.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Ira Weiny" <iweiny@kernel.org>,
	"Pasha Tatashin" <pasha.tatashin@soleen.com>,
	"Haren Myneni" <haren@linux.ibm.com>,
	"Pratyush Yadav" <pratyush@kernel.org>,
	"Giovanni Cabiddu" <giovanni.cabiddu@intel.com>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	"Ethan Nelson-Moore" <enelsonmoore@gmail.com>,
	"Gabriel Whigham" <gabewhigham@gmail.com>,
	"Aravind Ramesh" <arramesh@micron.com>,
	"Ajay Joshi" <ajayjoshi@micron.com>,
	"venkataravis@micron.com" <venkataravis@micron.com>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"nvdimm@lists.linux.dev" <nvdimm@lists.linux.dev>,
	"linux-cxl@vger.kernel.org" <linux-cxl@vger.kernel.org>,
	"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
	"fuse-devel@lists.linux.dev" <fuse-devel@lists.linux.dev>
Subject: Re: [PATCH V12 01/12] dax: replace exported dax_dev_get() with non-allocating dax_dev_find()
Date: Wed, 05 Aug 2026 15:21:48 -0500	[thread overview]
Message-ID: <94e39ae2-08e5-4606-a43a-d4a8ca71cdae@app.fastmail.com> (raw)
In-Reply-To: <anDoPTHjlOPhnnR-@aschofie-mobl2.lan>



On Mon, Aug 3, 2026, at 2:13 PM, Alison Schofield wrote:
> On Mon, Aug 03, 2026 at 02:28:26AM +0000, John Groves wrote:
> > From: John Groves <John@Groves.net>
> > 
> > This fix is in response to a Sashiko review, and some subsequent
> > analysis.
> > 
> > dax_dev_get() uses iget5_locked() which creates a new inode if no
> > matching one exists. This is correct for the internal caller
> > (alloc_dax), but dangerous for external callers that look up devices
> > from user-supplied or metadata-supplied dev_t values:
> > 
> > 1. A new inode is created with DAXDEV_ALIVE set but no backing driver,
> >    no ops, and no IDA-allocated minor number.
> > 
> > 2. On teardown, dax_destroy_inode() warns because kill_dax() was never
> >    called, and dax_free_inode() calls ida_free() for a minor that was
> >    never ida_alloc'd -- potentially freeing the minor of a real device.
> > 
> > Add dax_dev_find() which uses ilookup5() for lookup-only semantics:
> > it returns an existing dax_device with an elevated inode reference, or
> > NULL if no device with the given dev_t exists. It never creates inodes.
> > A dax_alive() check under dax_read_lock() guards against returning a
> > device that is concurrently being torn down by kill_dax().
> > 
> > Make dax_dev_get() static again (internal to super.c for alloc_dax),
> > export dax_dev_find() instead, and update the two external callers
> > (famfs_inode.c, famfs.c). Also add the missing CONFIG_DAX=n stub.
> 
> There are no external callers yet as those arrive in subsequent
> famfs patches.
> 
> 
> > 
> > About the 'fixes' tag: this removes the export of dax_dev_get(),
> > which was flawed, and replaces is with dax_dev_find(). It feels like
> > the fixes tag makes sense for correcting an ABI error.
> > 
> > Fixes: 2ae624d5a555d ("dax: export dax_dev_get()")
> 
> Hi John,
> 
> I think this should be split.
> 
> Please send a standalone DAX patch that only removes the dax_dev_get()
> export (make it static again, drop the header declaration). It's unused
> in-tree and unsafe for its intended use, so it stands on its own with
> no FAMFS dependency. I'll take it through the DAX tree for 7.3.
> 
> Please drop the Fixes: tag on the removal. IIUC the stable team uses
> it to pick backports, and this shouldn't land in 7.2.y. Removing this
> fixes nothing since no in-tree code calls the symbol. Name the commit
> in prose instead, something like:
> 
>   Commit 2ae624d5a555 ("dax: export dax_dev_get()") exported
>   dax_dev_get() in v7.2 for famfs, which has not merged. The export
>   has never had an in-tree caller, so make dax_dev_get() static again.
> 
> Keep the dax_dev_find() addition in this famfs series, so the new export
> lands with famfs.
> 
> -- Alison
> 
> > 
> > Reviewed-by: Dave Jiang <dave.jiang@intel.com>
> > Reviewed-by: Alison Schofield <alison.schofield@intel.com>
> 
> I think you can carry the tags for both patches because the code
> should end up byte identical.
> 
> snip
> 

Thanks Alison, done in my local tree.

The patch that drops dev_dax_get() should hit your inbox today or tomorrow;
the one that adds dev_dax_find() will stay with this series.

Best,
John

  reply	other threads:[~2026-08-05 20:22 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20260803022730.75731-1-john@jagalactic.com>
2026-08-03  2:27 ` [PATCH V12 00/12] famfs: the Fabric-Attached Memory File System (standalone) John Groves
2026-08-03  2:28   ` [PATCH V12 01/12] dax: replace exported dax_dev_get() with non-allocating dax_dev_find() John Groves
2026-08-03  2:43     ` sashiko-bot
2026-08-03 19:13     ` Alison Schofield
2026-08-05 20:21       ` John Groves [this message]
2026-08-03  2:28   ` [PATCH V12 02/12] famfs: Module operations, fs_context, and mount John Groves
2026-08-03  2:49     ` sashiko-bot
2026-08-06  4:37     ` Darrick J. Wong
2026-08-06 13:22       ` John Groves
2026-08-03  2:28   ` [PATCH V12 03/12] famfs: Add daxdev table and dax notify_failure support John Groves
2026-08-03  2:45     ` sashiko-bot
2026-08-06  5:05     ` Darrick J. Wong
2026-08-06 13:36       ` John Groves
2026-08-03  2:28   ` [PATCH V12 04/12] famfs: Introduce inode_operations and super_operations John Groves
2026-08-03  2:42     ` sashiko-bot
2026-08-06  5:12     ` Darrick J. Wong
2026-08-06 16:31       ` John Groves
2026-08-03  2:29   ` [PATCH V12 05/12] famfs: Introduce file_operations read/write John Groves
2026-08-03  2:42     ` sashiko-bot
2026-08-06  5:14     ` Darrick J. Wong
2026-08-06 20:03       ` John Groves
2026-08-03  2:29   ` [PATCH V12 06/12] famfs: Introduce mmap and VM fault handling John Groves
2026-08-03  2:46     ` sashiko-bot
2026-08-06  5:16     ` Darrick J. Wong
2026-08-06 20:40       ` John Groves
2026-08-03  2:29   ` [PATCH V12 07/12] famfs: MAP_CREATE ioctl and fmap ingest (ABI 44) John Groves
2026-08-03  2:42     ` sashiko-bot
2026-08-06  5:24     ` Darrick J. Wong
2026-08-06 20:53       ` John Groves
2026-08-07 22:17         ` John Groves
2026-08-03  2:29   ` [PATCH V12 08/12] famfs: iomap_begin and file-to-dax offset resolution John Groves
2026-08-03  2:44     ` sashiko-bot
2026-08-06  5:28     ` Darrick J. Wong
2026-08-06 22:14       ` John Groves
2026-08-03  2:29   ` [PATCH V12 09/12] famfs: Register secondary daxdevs by path (FAMFSIOC_DAXDEV_OPEN) John Groves
2026-08-03  2:42     ` sashiko-bot
2026-08-06  5:29     ` Darrick J. Wong
2026-08-06 22:22       ` John Groves
2026-08-03  2:29   ` [PATCH V12 10/12] famfs: Add runtime operation-permission (opts) framework John Groves
2026-08-03  2:42     ` sashiko-bot
2026-08-06  5:31     ` Darrick J. Wong
2026-08-06 22:30       ` John Groves
2026-08-03  2:30   ` [PATCH V12 11/12] famfs: Report device capacity via statfs so df works John Groves
2026-08-03  2:58     ` sashiko-bot
2026-08-06  5:33     ` Darrick J. Wong
2026-08-07 13:47       ` John Groves
2026-08-03  2:30   ` [PATCH V12 12/12] famfs: Add documentation John Groves
2026-08-06  5:38     ` Darrick J. Wong
2026-08-07 15:05       ` John Groves
2026-08-03  8:52   ` [PATCH V12 00/12] famfs: the Fabric-Attached Memory File System (standalone) Amir Goldstein
2026-08-06  5:19     ` Matthew Wilcox
2026-08-06  5:34       ` Darrick J. Wong

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=94e39ae2-08e5-4606-a43a-d4a8ca71cdae@app.fastmail.com \
    --to=john@groves.net \
    --cc=ackerleytng@google.com \
    --cc=ajayjoshi@micron.com \
    --cc=akpm@linux-foundation.org \
    --cc=alison.schofield@intel.com \
    --cc=amir73il@gmail.com \
    --cc=arramesh@micron.com \
    --cc=bagasdotme@gmail.com \
    --cc=brauner@kernel.org \
    --cc=bschubert@ddn.com \
    --cc=chenlinxuan@uniontech.com \
    --cc=corbet@lwn.net \
    --cc=dave.jiang@intel.com \
    --cc=david@kernel.org \
    --cc=djbw@kernel.org \
    --cc=djwong@kernel.org \
    --cc=enelsonmoore@gmail.com \
    --cc=fuse-devel@lists.linux.dev \
    --cc=gabewhigham@gmail.com \
    --cc=giovanni.cabiddu@intel.com \
    --cc=gourry@gourry.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=haren@linux.ibm.com \
    --cc=iweiny@kernel.org \
    --cc=jack@suse.cz \
    --cc=jake@lwn.net \
    --cc=james.morse@arm.com \
    --cc=jgroves@micron.com \
    --cc=jic23@kernel.org \
    --cc=jirislaby@kernel.org \
    --cc=jlayton@kernel.org \
    --cc=joannelkoong@gmail.com \
    --cc=john@jagalactic.com \
    --cc=josef@toxicpanda.com \
    --cc=linkinjeon@kernel.org \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ljs@kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=nvdimm@lists.linux.dev \
    --cc=pasha.tatashin@soleen.com \
    --cc=pratyush@kernel.org \
    --cc=rdunlap@infradead.org \
    --cc=seanjc@google.com \
    --cc=shajnocz@redhat.com \
    --cc=shivankg@amd.com \
    --cc=skhan@linuxfoundation.org \
    --cc=tabba@google.com \
    --cc=venkataravis@micron.com \
    --cc=viro@zeniv.linux.org.uk \
    --cc=vishal.l.verma@intel.com \
    --cc=willy@infradead.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.