• Linus Torvalds's avatar
    Merge tag 'vfs-6.12.mount' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · 9020d0d8
    Linus Torvalds authored
    Pull vfs mount updates from Christian Brauner:
     "Recently, we added the ability to list mounts in other mount
      namespaces and the ability to retrieve namespace file descriptors
      without having to go through procfs by deriving them from pidfds.
    
      This extends nsfs in two ways:
    
       (1) Add the ability to retrieve information about a mount namespace
           via NS_MNT_GET_INFO.
    
           This will return the mount namespace id and the number of mounts
           currently in the mount namespace. The number of mounts can be
           used to size the buffer that needs to be used for listmount() and
           is in general useful without having to actually iterate through
           all the mounts.
    
          The structure is extensible.
    
       (2) Add the ability to iterate through all mount namespaces over
           which the caller holds privilege returning the file descriptor
           for the next or previous mount namespace.
    
           To retrieve a mount namespace the caller must be privileged wrt
           to it's owning user namespace. This means that PID 1 on the host
           can list all mounts in all mount namespaces or that a container
           can list all mounts of its nested containers.
    
           Optionally pass a structure for NS_MNT_GET_INFO with
           NS_MNT_GET_{PREV,NEXT} to retrieve information about the mount
           namespace in one go.
    
      (1) and (2) can be implemented for other namespace types easily.
    
      Together with recent api additions this means one can iterate through
      all mounts in all mount namespaces without ever touching procfs.
    
      The commit message in 49224a34 ('Merge patch series "nsfs: iterate
      through mount namespaces"') contains example code how to do this"
    
    * tag 'vfs-6.12.mount' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
      nsfs: iterate through mount namespaces
      file: add fput() cleanup helper
      fs: add put_mnt_ns() cleanup helper
      fs: allow mount namespace fd
    9020d0d8
namespace.c 143 KB