public inbox for audit@vger.kernel.org
 help / color / mirror / Atom feed
From: Jeff Layton <jlayton@kernel.org>
To: "Burn Alting" <burn.alting@iinet.net.au>,
	"Mickaël Salaün" <mic@digikod.net>,
	"Christoph Hellwig" <hch@infradead.org>
Cc: Christian Brauner <brauner@kernel.org>,
	Paul Moore <paul@paul-moore.com>,
	 linux-fsdevel@vger.kernel.org, linux-nfs@vger.kernel.org,
	 linux-security-module@vger.kernel.org, audit@vger.kernel.org,
	Trond Myklebust <trondmy@kernel.org>,
	Anna Schumaker <anna@kernel.org>,
	Alexander Viro <viro@zeniv.linux.org.uk>, Jan Kara <jack@suse.cz>
Subject: Re: [RFC PATCH v1 1/7] fs: Add inode_get_ino() and implement get_ino() for NFS
Date: Mon, 14 Oct 2024 06:22:35 -0400	[thread overview]
Message-ID: <f2f0ff2bdb999ce10ae52cc1ffd44cee92444d1a.camel@kernel.org> (raw)
In-Reply-To: <9c3bc3b7-2e79-4423-b8eb-f9f6249ee5bf@iinet.net.au>

On Mon, 2024-10-14 at 17:44 +1100, Burn Alting wrote:
>  
> 
> 
> 
> 
>  
> 
> 
> 
>  
> 
> 
> 
> On 13/10/24 21:17, Jeff Layton wrote:
>  
> 
> 
> 
>  
> 
> 
> 
> >  
> > 
> > 
> > 
> > On Fri, 2024-10-11 at 17:30 +0200, Mickaël Salaün wrote:
> >  
> > 
> > 
> > 
> > >  
> > > 
> > > 
> > > 
> > > On Fri, Oct 11, 2024 at 07:39:33AM -0700, Christoph Hellwig wrote:
> > >  
> > > 
> > > 
> > > 
> > > >  
> > > > 
> > > > 
> > > > 
> > > > On Fri, Oct 11, 2024 at 03:52:42PM +0200, Mickaël Salaün wrote:
> > > >  
> > > > 
> > > > 
> > > > 
> > > > >  
> > > > > 
> > > > > 
> > > > > 
> > > > > >  
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > >  
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > Yes, but how do you call getattr() without a path?
> > > > > > >  
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > >  
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > You don't because inode numbers are irrelevant without the path.
> > > > > >  
> > > > > > 
> > > > > > 
> > > > > > 
> > > > >  
> > > > > 
> > > > > 
> > > > > 
> > > > > They are for kernel messages and audit logs.  Please take a look at the
> > > > > use cases with the other patches.
> > > > >  
> > > > > 
> > > > > 
> > > > > 
> > > >  
> > > > 
> > > > 
> > > > 
> > > > It still is useless.  E.g. btrfs has duplicate inode numbers due to
> > > > subvolumes.
> > > >  
> > > > 
> > > > 
> > > > 
> > >  
> > > 
> > > 
> > > 
> > > At least it reflects what users see.
> > > 
> > >  
> > > 
> > > 
> > > 
> > > >  
> > > > 
> > > > 
> > > > 
> > > > If you want a better pretty but not useful value just work on making
> > > > i_ino 64-bits wide, which is long overdue.
> > > >  
> > > > 
> > > > 
> > > > 
> > >  
> > > 
> > > 
> > > 
> > > That would require too much work for me, and this would be a pain to
> > > backport to all stable kernels.
> > > 
> > >  
> > > 
> > > 
> > > 
> >  
> > 
> > 
> > 
> > Would it though? Adding this new inode operation seems sub-optimal.
> > 
> > Inode numbers are static information. Once an inode number is set on an
> > inode it basically never changes.  This patchset will turn all of those
> > direct inode->i_ino fetches into a pointer chase for the new inode
> > operation, which will then almost always just result in a direct fetch.
> > 
> > A better solution here would be to make inode->i_ino a u64, and just
> > fix up all of the places that touch it to expect that. Then, just
> > ensure that all of the filesystems set it properly when instantiating
> > new inodes. Even on 32-bit arch, you likely wouldn't need a seqcount
> > loop or anything to fetch this since the chance of a torn read there is
> > basically zero.
> > 
> > If there are places where we need to convert i_ino down to 32-bits,
> > then we can just use some scheme like nfs_fattr_to_ino_t(), or just
> > cast i_ino to a u32.
> > 
> > Yes, it'd be a larger patchset, but that seems like it would be a
> > better solution.
> >  
> > 
> > 
> > 
>  
> 
> 
> 
> As someone who lives in the analytical user space of Linux audit,  I take it that for large (say >200TB) file systems, the inode reported in audit PATH records is no longer forensically defensible and it's use as a correlation item is of questionable value now?
>  
> 
> 
> 

It's been a while since I worked in audit, but if audit is only
reporting 32-bit inode numbers in its records, then that could be
ambiguous. It's easily possible on larger filesystems to generate more
than 2^32 inodes.

-- 
Jeff Layton <jlayton@kernel.org>

  parent reply	other threads:[~2024-10-14 10:22 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-10 15:26 [RFC PATCH v1 1/7] fs: Add inode_get_ino() and implement get_ino() for NFS Mickaël Salaün
2024-10-10 15:26 ` [RFC PATCH v1 2/7] audit: Fix inode numbers Mickaël Salaün
2024-10-11  1:20   ` [PATCH RFC " Paul Moore
2024-10-11  1:38     ` Paul Moore
2024-10-11 21:34   ` [RFC PATCH " Paul Moore
2024-10-14 13:30     ` Mickaël Salaün
2024-10-14 23:36       ` Paul Moore
2024-10-10 15:26 ` [RFC PATCH v1 3/7] selinux: Fix inode numbers in error messages Mickaël Salaün
2024-10-11  1:20   ` [PATCH RFC " Paul Moore
2024-10-10 15:26 ` [RFC PATCH v1 4/7] integrity: Fix inode numbers in audit records Mickaël Salaün
2024-10-11  1:20   ` [PATCH RFC " Paul Moore
2024-10-11 10:15     ` Mickaël Salaün
2024-10-11 11:34       ` Roberto Sassu
2024-10-11 12:38         ` Mickaël Salaün
2024-10-11 12:45           ` Roberto Sassu
2024-10-10 15:26 ` [RFC PATCH v1 5/7] ipe: " Mickaël Salaün
2024-10-10 17:44   ` Fan Wu
2024-10-10 15:26 ` [RFC PATCH v1 6/7] smack: Fix inode numbers in logs Mickaël Salaün
2024-10-10 17:18   ` Casey Schaufler
2024-10-10 15:26 ` [RFC PATCH v1 7/7] tomoyo: " Mickaël Salaün
2024-10-12  7:35   ` [PATCH] tomoyo: use u64 for handling numeric values Tetsuo Handa
2024-10-14 13:59     ` Mickaël Salaün
2024-10-10 18:07 ` [RFC PATCH v1 1/7] fs: Add inode_get_ino() and implement get_ino() for NFS Anna Schumaker
2024-10-11 10:14   ` Mickaël Salaün
2024-10-10 19:28 ` Trond Myklebust
2024-10-11 10:15   ` Mickaël Salaün
2024-10-11 12:22     ` Trond Myklebust
2024-10-11 12:38       ` Mickaël Salaün
2024-10-11 12:43         ` Mickaël Salaün
2024-10-11 10:12 ` Tetsuo Handa
2024-10-11 10:54   ` Tetsuo Handa
2024-10-11 11:10     ` Mickaël Salaün
2024-10-11 11:04   ` Mickaël Salaün
2024-10-11 14:27     ` Tetsuo Handa
2024-10-11 15:13       ` Christoph Hellwig
2024-10-11 15:26       ` Mickaël Salaün
2024-10-11 12:30 ` Christoph Hellwig
2024-10-11 12:47   ` Mickaël Salaün
2024-10-11 12:54     ` Christoph Hellwig
2024-10-11 13:20       ` Mickaël Salaün
2024-10-11 13:23         ` Christoph Hellwig
2024-10-11 13:52           ` Mickaël Salaün
2024-10-11 14:39             ` Christoph Hellwig
2024-10-11 15:30               ` Mickaël Salaün
2024-10-11 15:34                 ` Christoph Hellwig
2024-10-14 14:35                   ` Christian Brauner
2024-10-14 14:36                     ` Christoph Hellwig
2024-10-13 10:17                 ` Jeff Layton
2024-10-14  8:40                   ` Burn Alting
2024-10-14  9:02                     ` Christoph Hellwig
2024-10-14 12:12                       ` Burn Alting
2024-10-14 12:17                         ` Christoph Hellwig
2024-10-14 13:13                           ` Mickaël Salaün
     [not found]                   ` <9c3bc3b7-2e79-4423-b8eb-f9f6249ee5bf@iinet.net.au>
2024-10-14 10:22                     ` Jeff Layton [this message]
2024-10-14 14:45                   ` Christian Brauner
2024-10-14 15:27                     ` Mickaël Salaün
2024-10-16  0:15                     ` Paul Moore
2024-10-14 14:47 ` Christian Brauner
2024-10-14 17:51   ` Mickaël Salaün
2024-10-16 14:23 ` Christian Brauner
2024-10-16 23:05   ` Paul Moore
2024-10-17 14:30     ` Trond Myklebust
2024-10-17 14:54       ` Paul Moore
2024-10-17 14:58         ` Christoph Hellwig
2024-10-17 15:15           ` Paul Moore
2024-10-17 15:25             ` Christoph Hellwig
2024-10-17 16:43               ` Jan Kara
2024-10-18  5:15                 ` Christoph Hellwig
2024-10-21 13:17                 ` Christian Brauner
2024-10-17 17:05             ` Jeff Layton
2024-10-17 17:09               ` Trond Myklebust
2024-10-17 17:59                 ` Jeff Layton
2024-10-17 21:06                   ` Trond Myklebust
2024-10-18  5:18                 ` hch
2024-10-17 20:21               ` Paul Moore
2024-10-18 12:25                 ` Jan Kara
2024-10-21 13:13                   ` Christian Brauner
2024-10-21 14:04               ` Christian Brauner
2024-10-17 14:56   ` 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=f2f0ff2bdb999ce10ae52cc1ffd44cee92444d1a.camel@kernel.org \
    --to=jlayton@kernel.org \
    --cc=anna@kernel.org \
    --cc=audit@vger.kernel.org \
    --cc=brauner@kernel.org \
    --cc=burn.alting@iinet.net.au \
    --cc=hch@infradead.org \
    --cc=jack@suse.cz \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=mic@digikod.net \
    --cc=paul@paul-moore.com \
    --cc=trondmy@kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox