[PATCH 1/2] fs: Add fd_install file operation

Kalesh Singh kaleshsingh at google.com
Tue Aug 4 13:54:12 UTC 2020


On Mon, Aug 03, 2020 at 08:30:59PM -0400, Joel Fernandes wrote:
> On Mon, Aug 3, 2020 at 10:47 AM 'Kalesh Singh' via kernel-team
> <kernel-team at android.com> wrote:
> >
> > Provides a per process hook for the acquisition of file descriptors,
> > despite the method used to obtain the descriptor.
> >
> 
> Hi,
> So apart from all of the comments received, I think it is hard to
> understand what the problem is, what the front-end looks like etc.
> Your commit message is 1 line only.
> 
> I do remember some of the challenges discussed before, but it would
> describe the problem in the commit message in detail and then discuss
> why this solution is fit.  Please read submitting-patches.rst
> especially "2) Describe your changes".
> 
> thanks,
> 
>  - Joel

Thanks for the advice Joel :)
> 
> 
> > Signed-off-by: Kalesh Singh <kaleshsingh at google.com>
> > ---
> >  Documentation/filesystems/vfs.rst | 5 +++++
> >  fs/file.c                         | 3 +++
> >  include/linux/fs.h                | 1 +
> >  3 files changed, 9 insertions(+)
> >
> > diff --git a/Documentation/filesystems/vfs.rst b/Documentation/filesystems/vfs.rst
> > index ed17771c212b..95b30142c8d9 100644
> > --- a/Documentation/filesystems/vfs.rst
> > +++ b/Documentation/filesystems/vfs.rst
> > @@ -1123,6 +1123,11 @@ otherwise noted.
> >  ``fadvise``
> >         possibly called by the fadvise64() system call.
> >
> > +``fd_install``
> > +       called by the VFS when a file descriptor is installed in the
> > +       process's file descriptor table, regardless how the file descriptor
> > +       was acquired -- be it via the open syscall, received over IPC, etc.
> > +
> >  Note that the file operations are implemented by the specific
> >  filesystem in which the inode resides.  When opening a device node
> >  (character or block special) most filesystems will call special
> > diff --git a/fs/file.c b/fs/file.c
> > index abb8b7081d7a..f5db8622b851 100644
> > --- a/fs/file.c
> > +++ b/fs/file.c
> > @@ -616,6 +616,9 @@ void __fd_install(struct files_struct *files, unsigned int fd,
> >  void fd_install(unsigned int fd, struct file *file)
> >  {
> >         __fd_install(current->files, fd, file);
> > +
> > +       if (file->f_op->fd_install)
> > +               file->f_op->fd_install(fd, file);
> >  }
> >
> >  EXPORT_SYMBOL(fd_install);
> > diff --git a/include/linux/fs.h b/include/linux/fs.h
> > index f5abba86107d..b976fbe8c902 100644
> > --- a/include/linux/fs.h
> > +++ b/include/linux/fs.h
> > @@ -1864,6 +1864,7 @@ struct file_operations {
> >                                    struct file *file_out, loff_t pos_out,
> >                                    loff_t len, unsigned int remap_flags);
> >         int (*fadvise)(struct file *, loff_t, loff_t, int);
> > +       void (*fd_install)(int, struct file *);
> >  } __randomize_layout;
> >
> >  struct inode_operations {
> > --
> > 2.28.0.163.g6104cc2f0b6-goog
> >
> > --
> > To unsubscribe from this group and stop receiving emails from it, send an email to kernel-team+unsubscribe at android.com.
> >


More information about the dri-devel mailing list