lkml.org 
[lkml]   [2024]   [Jan]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] eventfs: Have inodes have unique inode numbers
    On Sun, 28 Jan 2024 13:08:55 -0800
    Linus Torvalds <torvalds@linux-foundation.org> wrote:

    > On Sun, 28 Jan 2024 at 12:53, Linus Torvalds
    > <torvalds@linux-foundation.org> wrote:
    > >
    > > Now, the RCU delay may be needed if the lookup of said structure
    > > happens under RCU, but no, saying "I use SRCU to make sure the
    > > lifetime is at least X" is just broken.
    >
    > Put another way, the only reason for any RCU should be that you don't
    > use locking at lookup, and the normal lookup routine should follow a
    > pattern something like this:
    >
    > rcu_read_lock();
    > entry = find_entry(...);
    > if (entry && !atomic_inc_not_zero(&entry->refcount))
    > entry = NULL;
    > rcu_read_unlock();
    >
    > and the freeing should basically follow a pattern like
    >
    > if (atomic_dec_and_test(&entry->refcount))
    > rcu_free(entry);

    Basically you are saying that when the ei is created, it should have a
    ref count of 1. If the lookup happens and does the
    atomic_inc_not_zero() it will only increment if the ref count is not 0
    (which is basically equivalent to is_freed).

    And then we can have deletion of the object happen in both where the
    caller (kprobes) deletes the directory and in the final iput()
    reference (can I use iput and not the d_release()?), that it does the
    same as well.

    Where whatever sees the refcount of zero calls rcu_free?

    -- Steve

    \
     
     \ /
      Last update: 2024-05-27 14:37    [W:6.571 / U:0.152 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site