Le 21/12/2017 à 21:36, Tor Rune Skoglund a écrit :
> Hi List,
>
> When compiling a 4.1.43 kernel with the latest patch (patch-4.1.42-vs2.3.8.6.diff) with gcc6.4.0 it show some code
> warnings. (See below. ) It probably does not matter (I don't know), but I thought I at least should mentioned it in case
> someone or Herbert care.
>
> BR,
> Tor Rune Skoglund
>
> CC kernel/vserver/proc.o
> kernel/vserver/proc.c: In function 'proc_xid_iterate':
> kernel/vserver/proc.c:620:43: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare]
> if (!dir_emit(ctx, ".", 1, ino, DT_DIR) < 0)
> ^
> kernel/vserver/proc.c:626:44: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare]
> if (!dir_emit(ctx, "..", 2, ino, DT_DIR) < 0)
> ^
> kernel/vserver/proc.c: In function 'proc_nid_iterate':
> kernel/vserver/proc.c:701:43: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare]
> if (!dir_emit(ctx, ".", 1, ino, DT_DIR) < 0)
> ^
> kernel/vserver/proc.c:707:44: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare]
> if (!dir_emit(ctx, "..", 2, ino, DT_DIR) < 0)
> ^
> kernel/vserver/proc.c: In function 'proc_virtual_iterate':
> kernel/vserver/proc.c:854:43: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare]
> if (!dir_emit(ctx, ".", 1, ino, DT_DIR) < 0)
> ^
> kernel/vserver/proc.c:860:44: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare]
> if (!dir_emit(ctx, "..", 2, ino, DT_DIR) < 0)
> ^
> kernel/vserver/proc.c: In function 'proc_virtnet_iterate':
> kernel/vserver/proc.c:935:43: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare]
> if (!dir_emit(ctx, ".", 1, ino, DT_DIR) < 0)
> ^
> kernel/vserver/proc.c:941:44: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare]
> if (!dir_emit(ctx, "..", 2, ino, DT_DIR) < 0)
> ^
> LD kernel/vserver/vserver.o
>
>
from what i see:
static inline bool dir_emit(struct dir_context *ctx,
const char *name, int namelen,
u64 ino, unsigned type)
dir_emit return ture/false so it cannot be < 0 it can be true or false :)
so should it be
if (dir_emit(ctx, "..", 2, ino, DT_DIR) )
or
if (!dir_emit(ctx, "..", 2, ino, DT_DIR) )
?
Ghis.
Received on Tue Dec 26 14:07:08 2017