Re: [PATCH 1/2] fs: move struct linux_dirent into headers
From: Greg KH <gregkh@linuxfoundation.org>
Date: 2021-09-20 10:06:39
Also in:
linux-fsdevel, linux-man, lkml
On Mon, Sep 20, 2021 at 10:56:48AM +0100, Gaelan Steele wrote:
quoted hunk ↗ jump to hunk
Move the definition of linux_dirent to include/linux/dirent.h, where the newer linux_dirent64 already lives. This is done in preparation for moving both of these struct definitions into uapi/ so userspace code doesn't need to duplicate them. Signed-off-by: Gaelan Steele <redacted> --- fs/readdir.c | 8 +------- include/linux/dirent.h | 7 +++++++ 2 files changed, 8 insertions(+), 7 deletions(-)diff --git a/fs/readdir.c b/fs/readdir.c index 09e8ed7d4161..51890aeafc53 100644 --- a/fs/readdir.c +++ b/fs/readdir.c@@ -202,14 +202,8 @@ SYSCALL_DEFINE3(old_readdir, unsigned int, fd, /* * New, all-improved, singing, dancing, iBCS2-compliant getdents() - * interface. + * interface. */ -struct linux_dirent { - unsigned long d_ino; - unsigned long d_off; - unsigned short d_reclen; - char d_name[1]; -}; struct getdents_callback { struct dir_context ctx;diff --git a/include/linux/dirent.h b/include/linux/dirent.h index 99002220cd45..48e119dd3694 100644 --- a/include/linux/dirent.h +++ b/include/linux/dirent.h@@ -2,6 +2,13 @@ #ifndef _LINUX_DIRENT_H #define _LINUX_DIRENT_H +struct linux_dirent { + unsigned long d_ino; + unsigned long d_off; + unsigned short d_reclen; + char d_name[1];
These are not valid user/kernel api types. If you want them in userspace, please use the correct ones (__u64, __u16, __u8, etc.) thanks, greg k-h