Message ID | 20210729073503.187-3-xieyongji@bytedance.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Introduce VDUSE - vDPA Device in Userspace | expand |
在 2021/7/29 下午3:34, Xie Yongji 写道: > Export receive_fd() so that some modules can use > it to pass file descriptor between processes without > missing any security stuffs. > > Signed-off-by: Xie Yongji <xieyongji@bytedance.com> > --- > fs/file.c | 6 ++++++ > include/linux/file.h | 7 +++---- > 2 files changed, 9 insertions(+), 4 deletions(-) > > diff --git a/fs/file.c b/fs/file.c > index 86dc9956af32..210e540672aa 100644 > --- a/fs/file.c > +++ b/fs/file.c > @@ -1134,6 +1134,12 @@ int receive_fd_replace(int new_fd, struct file *file, unsigned int o_flags) > return new_fd; > } > > +int receive_fd(struct file *file, unsigned int o_flags) > +{ > + return __receive_fd(file, NULL, o_flags); Any reason that receive_fd_user() can live in the file.h? Thanks > +} > +EXPORT_SYMBOL_GPL(receive_fd); > + > static int ksys_dup3(unsigned int oldfd, unsigned int newfd, int flags) > { > int err = -EBADF; > diff --git a/include/linux/file.h b/include/linux/file.h > index 2de2e4613d7b..51e830b4fe3a 100644 > --- a/include/linux/file.h > +++ b/include/linux/file.h > @@ -94,6 +94,9 @@ extern void fd_install(unsigned int fd, struct file *file); > > extern int __receive_fd(struct file *file, int __user *ufd, > unsigned int o_flags); > + > +extern int receive_fd(struct file *file, unsigned int o_flags); > + > static inline int receive_fd_user(struct file *file, int __user *ufd, > unsigned int o_flags) > { > @@ -101,10 +104,6 @@ static inline int receive_fd_user(struct file *file, int __user *ufd, > return -EFAULT; > return __receive_fd(file, ufd, o_flags); > } > -static inline int receive_fd(struct file *file, unsigned int o_flags) > -{ > - return __receive_fd(file, NULL, o_flags); > -} > int receive_fd_replace(int new_fd, struct file *file, unsigned int o_flags); > > extern void flush_delayed_fput(void);
On Tue, Aug 3, 2021 at 3:46 PM Jason Wang <jasowang@redhat.com> wrote: > > > 在 2021/7/29 下午3:34, Xie Yongji 写道: > > Export receive_fd() so that some modules can use > > it to pass file descriptor between processes without > > missing any security stuffs. > > > > Signed-off-by: Xie Yongji <xieyongji@bytedance.com> > > --- > > fs/file.c | 6 ++++++ > > include/linux/file.h | 7 +++---- > > 2 files changed, 9 insertions(+), 4 deletions(-) > > > > diff --git a/fs/file.c b/fs/file.c > > index 86dc9956af32..210e540672aa 100644 > > --- a/fs/file.c > > +++ b/fs/file.c > > @@ -1134,6 +1134,12 @@ int receive_fd_replace(int new_fd, struct file *file, unsigned int o_flags) > > return new_fd; > > } > > > > +int receive_fd(struct file *file, unsigned int o_flags) > > +{ > > + return __receive_fd(file, NULL, o_flags); > > > Any reason that receive_fd_user() can live in the file.h? > Since no modules use it. Thanks, Yongji
在 2021/8/3 下午5:01, Yongji Xie 写道: > On Tue, Aug 3, 2021 at 3:46 PM Jason Wang <jasowang@redhat.com> wrote: >> >> 在 2021/7/29 下午3:34, Xie Yongji 写道: >>> Export receive_fd() so that some modules can use >>> it to pass file descriptor between processes without >>> missing any security stuffs. >>> >>> Signed-off-by: Xie Yongji <xieyongji@bytedance.com> >>> --- >>> fs/file.c | 6 ++++++ >>> include/linux/file.h | 7 +++---- >>> 2 files changed, 9 insertions(+), 4 deletions(-) >>> >>> diff --git a/fs/file.c b/fs/file.c >>> index 86dc9956af32..210e540672aa 100644 >>> --- a/fs/file.c >>> +++ b/fs/file.c >>> @@ -1134,6 +1134,12 @@ int receive_fd_replace(int new_fd, struct file *file, unsigned int o_flags) >>> return new_fd; >>> } >>> >>> +int receive_fd(struct file *file, unsigned int o_flags) >>> +{ >>> + return __receive_fd(file, NULL, o_flags); >> >> Any reason that receive_fd_user() can live in the file.h? >> > Since no modules use it. > > Thanks, > Yongji Ok. Acked-by: Jason Wang <jasowang@redhat.com> >
diff --git a/fs/file.c b/fs/file.c index 86dc9956af32..210e540672aa 100644 --- a/fs/file.c +++ b/fs/file.c @@ -1134,6 +1134,12 @@ int receive_fd_replace(int new_fd, struct file *file, unsigned int o_flags) return new_fd; } +int receive_fd(struct file *file, unsigned int o_flags) +{ + return __receive_fd(file, NULL, o_flags); +} +EXPORT_SYMBOL_GPL(receive_fd); + static int ksys_dup3(unsigned int oldfd, unsigned int newfd, int flags) { int err = -EBADF; diff --git a/include/linux/file.h b/include/linux/file.h index 2de2e4613d7b..51e830b4fe3a 100644 --- a/include/linux/file.h +++ b/include/linux/file.h @@ -94,6 +94,9 @@ extern void fd_install(unsigned int fd, struct file *file); extern int __receive_fd(struct file *file, int __user *ufd, unsigned int o_flags); + +extern int receive_fd(struct file *file, unsigned int o_flags); + static inline int receive_fd_user(struct file *file, int __user *ufd, unsigned int o_flags) { @@ -101,10 +104,6 @@ static inline int receive_fd_user(struct file *file, int __user *ufd, return -EFAULT; return __receive_fd(file, ufd, o_flags); } -static inline int receive_fd(struct file *file, unsigned int o_flags) -{ - return __receive_fd(file, NULL, o_flags); -} int receive_fd_replace(int new_fd, struct file *file, unsigned int o_flags); extern void flush_delayed_fput(void);
Export receive_fd() so that some modules can use it to pass file descriptor between processes without missing any security stuffs. Signed-off-by: Xie Yongji <xieyongji@bytedance.com> --- fs/file.c | 6 ++++++ include/linux/file.h | 7 +++---- 2 files changed, 9 insertions(+), 4 deletions(-)