On Mon, Sep 20, 2021 at 10:56:48AM +0100, Gaelan Steele wrote: > 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 <gbs@xxxxxxxxxxx> > --- > 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