diff mbox series

[1/2] fs: move struct linux_dirent into headers

Message ID 20210920095649.28600-1-gbs@canishe.com (mailing list archive)
State New, archived
Headers show
Series [1/2] fs: move struct linux_dirent into headers | expand

Commit Message

Gaelan Steele Sept. 20, 2021, 9:56 a.m. UTC
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@canishe.com>
---
 fs/readdir.c           | 8 +-------
 include/linux/dirent.h | 7 +++++++
 2 files changed, 8 insertions(+), 7 deletions(-)

Comments

Greg Kroah-Hartman Sept. 20, 2021, 10:06 a.m. UTC | #1
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@canishe.com>
> ---
>  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
diff mbox series

Patch

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];
+};
+
 struct linux_dirent64 {
 	u64		d_ino;
 	s64		d_off;