Re: [2.6 patch] fat/dir.c: switch to struct __fat_fs_dirent

From: OGAWA Hirofumi
Date: Mon Jun 09 2008 - 19:12:20 EST


Adrian Bunk <bunk@xxxxxxxxxx> writes:

> Can you apply the patch below after your patch?

Ok.

> Since fat was the only user of struct dirent in the kernel (there's an
> unused JFS #define I'll also kill) we can then get rid of the
> conflicting structs.

Sounds good. Thanks.

> <-- snip -->
>
>
> struct __fat_fs_dirent is what was formerly the kernel struct dirent
> (that was different from the userspace struct dirent).
>
> Converting all fat users to struct __fat_fs_dirent will allow us to get
> rid of the conflicting struct dirent definition.
>
> Signed-off-by: Adrian Bunk <bunk@xxxxxxxxxx>
>
> ---
>
> fs/fat/dir.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> b8c595b4b225c2485d8dbc7ff4cbcdc8e6113672 diff --git a/fs/fat/dir.c b/fs/fat/dir.c
> index 486725e..041a112 100644
> --- a/fs/fat/dir.c
> +++ b/fs/fat/dir.c
> @@ -17,7 +17,6 @@
> #include <linux/slab.h>
> #include <linux/time.h>
> #include <linux/msdos_fs.h>
> -#include <linux/dirent.h>
> #include <linux/smp_lock.h>
> #include <linux/buffer_head.h>
> #include <linux/compat.h>
> @@ -715,7 +714,7 @@ efault: \
> return -EFAULT; \
> }
>
> -FAT_IOCTL_FILLDIR_FUNC(fat_ioctl_filldir, dirent)
> +FAT_IOCTL_FILLDIR_FUNC(fat_ioctl_filldir, __fat_fs_dirent)
>
> static int fat_ioctl_readdir(struct inode *inode, struct file *filp,
> void __user *dirent, filldir_t filldir,
> @@ -741,7 +740,7 @@ static int fat_ioctl_readdir(struct inode *inode, struct file *filp,
> static int fat_dir_ioctl(struct inode *inode, struct file *filp,
> unsigned int cmd, unsigned long arg)
> {
> - struct dirent __user *d1 = (struct dirent __user *)arg;
> + struct __fat_fs_dirent __user *d1 = (struct __fat_fs_dirent __user *)arg;
> int short_only, both;
>
> switch (cmd) {
> @@ -757,7 +756,7 @@ static int fat_dir_ioctl(struct inode *inode, struct file *filp,
> return fat_generic_ioctl(inode, filp, cmd, arg);
> }
>
> - if (!access_ok(VERIFY_WRITE, d1, sizeof(struct dirent[2])))
> + if (!access_ok(VERIFY_WRITE, d1, sizeof(struct __fat_fs_dirent[2])))
> return -EFAULT;
> /*
> * Yes, we don't need this put_user() absolutely. However old
>

--
OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/