2012-03-19 20:01:55

by Mike Frysinger

[permalink] [raw]
Subject: umode_t breakage in exported kernel headers

commit 0583fcc96bb117763c0fa74c123573c0112dec65 moved umode_t out of the
exported headers space (via the arches' asm/types.h) and into __KERNEL__
specific linux/types.h. this breaks the exported linux/ext2_fs.h
ext2_mask_flags function which uses that type. that func appears to be the
only one exported that utilizes umode_t.

should ext2_mask_flags be updated to take a __kernel_mode_t as its first arg ?
-mike


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part.

2012-03-20 10:05:12

by Al Viro

[permalink] [raw]
Subject: Re: umode_t breakage in exported kernel headers

On Mon, Mar 19, 2012 at 04:01:53PM -0400, Mike Frysinger wrote:
> commit 0583fcc96bb117763c0fa74c123573c0112dec65 moved umode_t out of the
> exported headers space (via the arches' asm/types.h) and into __KERNEL__
> specific linux/types.h. this breaks the exported linux/ext2_fs.h
> ext2_mask_flags function which uses that type. that func appears to be the
> only one exported that utilizes umode_t.
>
> should ext2_mask_flags be updated to take a __kernel_mode_t as its first arg ?
> -mike

ITYM "unsigned short". __kernel_mode_t is wrong kernel-side and pointless
everywhere. It should *only* be used in layout of structs shared with
userland and misdefined back then. Anything new should use explicitly-sized
types (and u16 is enough for mode).

It's nearly entirely about ncp_mount_data - ipc_perm, ipc64_perm and in
several cases st_mode of stat* are arch-dependent anyway and could bloody
well use explicitly-sized types.