lkml.org 
[lkml]   [2022]   [Mar]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH bpf-next v1 1/9] bpf: Add mkdir, rmdir, unlink syscalls for prog_bpf_syscall
    On Mon, Mar 14, 2022 at 10:07:31AM -0700, Hao Luo wrote:
    > Hello Al,

    > > In which contexts can those be called?
    > >
    >
    > In a sleepable context. The plan is to introduce a certain tracepoints
    > as sleepable, a program that attaches to sleepable tracepoints is
    > allowed to call these functions. In particular, the first sleepable
    > tracepoint introduced in this patchset is one at the end of
    > cgroup_mkdir(). Do you have any advices?

    Yes - don't do it, unless you really want a lot of user-triggerable
    deadlocks.

    Pathname resolution is not locking-agnostic. In particular, you can't
    do it if you are under any ->i_rwsem, whether it's shared or exclusive.
    That includes cgroup_mkdir() callchains. And if the pathname passed
    to these functions will have you walk through the parent directory,
    you would get screwed (e.g. if the next component happens to be
    inexistent, triggering a lookup, which takes ->i_rwsem shared).

    \
     
     \ /
      Last update: 2022-03-15 00:36    [W:2.609 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site