On Tue, 2014-11-18 at 01:46 +0300, Dan Carpenter wrote:
On Mon, Nov 17, 2014 at 02:23:48PM -0800, Juston Li wrote:
> FMODE_EXEC is type fmode_t but is used in operations
> with integers which leads to sparse warnings:
> drivers/staging/lustre/lustre/mdc/mdc_lib.c:198:21: warning: restricted fmode_t
degrades to integer
> drivers/staging/lustre/lustre/mdc/mdc_locks.c:300:49: warning: restricted fmode_t
degrades to integer
>
> Fix by using __FMODE_EXEC macro defined in fs.h.
>
> Note the same warnings occurs with other fmode flags
> here but they don't have a corresponding int macro.
>
When are FMODE_EXEC and __FMODE_EXEC not defined? I think they're
always defined. I don't understand the point of these ifdefs. I guess
maybe they are for compatability with obsolete kernels?
regards,
dan carpenter
Seems to be the case. Looked at some old commits (2.6.17) and found
FMODE_EXEC was mainlined to allow lustre to be installed on a vanilla
kernel.
Since you pointed it out, if we are dealing with compatability with
obselete kernels, __FMODE_EXEC was added later in 2.6.38. Wondering
if I should address the case where FMODE_EXEC is defined but
__FMODE_EXEC isn't since I currently only check __FMODE_EXEC.
Regards,
Juston Li