Re: [git pull] vfs.git part 3

From: Al Viro
Date: Thu Jul 06 2017 - 11:03:37 EST


On Thu, Jul 06, 2017 at 04:48:40PM +0200, Christoph Hellwig wrote:

> Just did the whole batch (patch below), but it seems like using a
> __bitwise type in SYSCALL_DEFINE* will always give warnings like:
>
> fs/read_write.c:1095:1: warning: cast to restricted __kernel_rwf_t
>
> which I'm not sure to deal with..

#define __SC_CAST(t, a) (__force t) a

in syscalls.h

> index a2d4a8ac94ca..a04adbc70ddf 100644
> --- a/include/uapi/linux/aio_abi.h
> +++ b/include/uapi/linux/aio_abi.h
> @@ -28,6 +28,7 @@
> #define __LINUX__AIO_ABI_H
>
> #include <linux/types.h>
> +#include <linux/fs.h>

Um... Includes of non-uapi in uapi are wrong. What do you need
fs.h for, anyway? Just put the typedef into uapi/linux/types.h
and be done with that...

> +#define BLK_STS_OK 0
> +#define BLK_STS_NOTSUPP ((__force blk_status_t)1)
> +#define BLK_STS_TIMEOUT ((__force blk_status_t)2)
> +#define BLK_STS_NOSPC ((__force blk_status_t)3)
> +#define BLK_STS_TRANSPORT ((__force blk_status_t)4)
> +#define BLK_STS_TARGET ((__force blk_status_t)5)
> +#define BLK_STS_NEXUS ((__force blk_status_t)6)

WTF is that doing here? If nothing else, it's a userland namespace
pollution; typedefs with such names are OK in the kernel, but not
is something that might be included from userland. And that chunk
doesn't seem to have anything to do with the rest of the patch...

Please, move that on top of current #work.read_write - there's
a fix for buggered vfs_write_iter() in it.