On Mon, Sep 24, 2018 at 10:33 AM Nathan Chancellor
<[email protected]> wrote:
>
> Clang warns when one enumerated type is implicitly converted to another.
>
> fs/cachefiles/namei.c:247:50: warning: implicit conversion from
> enumeration type 'enum cachefiles_obj_ref_trace' to different
> enumeration type 'enum fscache_obj_ref_trace' [-Wenum-conversion]
>         cache->cache.ops->put_object(&xobject->fscache,
> cachefiles_obj_put_wait_retry);

That's an interesting pattern; cachefiles_obj_ref_trace's first
enumeration's value is set to the final enumeration's value in
fscache_obj_ref_trace.  This fix is ok to me; though I would ask the
maintainer consider just merging the enums into one (unless there are
more than one other enums doing the same pattern (which doesn't seem
to be the case)).  Thanks for the patch.
Reviewed-by: Nick Desaulniers <[email protected]>

>
> Silence this warning by explicitly casting to fscache_obj_ref_trace,
> which is also done in put_object.
>
> Reported-by: Nick Desaulniers <[email protected]>
> Signed-off-by: Nathan Chancellor <[email protected]>
> ---
>  fs/cachefiles/namei.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
> index af2b17b21b94..15e5988a83de 100644
> --- a/fs/cachefiles/namei.c
> +++ b/fs/cachefiles/namei.c
> @@ -244,11 +244,13 @@ static int cachefiles_mark_object_active(struct 
> cachefiles_cache *cache,
>
>         ASSERT(!test_bit(CACHEFILES_OBJECT_ACTIVE, &xobject->flags));
>
> -       cache->cache.ops->put_object(&xobject->fscache, 
> cachefiles_obj_put_wait_retry);
> +       cache->cache.ops->put_object(&xobject->fscache,
> +               (enum fscache_obj_ref_trace)cachefiles_obj_put_wait_retry);
>         goto try_again;
>
>  requeue:
> -       cache->cache.ops->put_object(&xobject->fscache, 
> cachefiles_obj_put_wait_timeo);
> +       cache->cache.ops->put_object(&xobject->fscache,
> +               (enum fscache_obj_ref_trace)cachefiles_obj_put_wait_timeo);
>         _leave(" = -ETIMEDOUT");
>         return -ETIMEDOUT;
>  }
> --
> 2.19.0
>


-- 
Thanks,
~Nick Desaulniers

--
Linux-cachefs mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/linux-cachefs

Reply via email to