Re: [PATCH] fs: dcache: Use bool return value instead of int

From: Al Viro
Date: Mon Jan 11 2016 - 17:51:24 EST


On Tue, Jan 12, 2016 at 05:30:45AM +0800, chengang@xxxxxxxxxxxxxxxx wrote:
> From: Chen Gang <gang.chen.5i5j@xxxxxxxxx>
>
> Use bool type for all functions which return boolean value. It will not
> only let code clearer, but also sometimes let gcc produce better code.

What's the point of this chunk?

> static enum d_walk_ret check_mount(void *data, struct dentry *dentry)
> {
> - int *ret = data;
> + bool *ret = data;
> if (d_mountpoint(dentry)) {
> - *ret = 1;
> + *ret = true;
> return D_WALK_QUIT;
> }
> return D_WALK_CONTINUE;

You are replacing a 1-word store with 1-byte store; if anything, that's more
likely to yield _worse_ code, not better one.

> -static inline int d_unhashed(const struct dentry *dentry)
> +static inline bool d_unhashed(const struct dentry *dentry)
> {
> return hlist_bl_unhashed(&dentry->d_hash);
> }
>
> -static inline int d_unlinked(const struct dentry *dentry)
> +static inline bool d_unlinked(const struct dentry *dentry)
> {
> return d_unhashed(dentry) && !IS_ROOT(dentry);
> }

> -static inline int simple_positive(struct dentry *dentry)
> +static inline bool simple_positive(struct dentry *dentry)
> {
> return d_really_is_positive(dentry) && !d_unhashed(dentry);
> }

And these three are harmless, but completely pointless...