> 
> This code looks needlessly complex.
> 
> len is never decremented inside the while loop so the while loop
> itself looks unnecessary.  Is there some missing decrement of len
> or some other reason to use a while loop?
> 
> Is dax_iomap_direct_access some ugly macro that modifies a hidden len?
> 
> Why not remove the while loop and use straightforward code without
> unnecessary indentatation?
> 
> {
>         void *saddr;
>         void *daddr;
>         bool *same = data;
>         int ret;
> 
>         if (!len ||
>             (smap->type == IOMAP_HOLE && dmap->type == IOMAP_HOLE))
>                 return 0;
> 
>         if (smap->type == IOMAP_HOLE || dmap->type == IOMAP_HOLE) {
>                 *same = false;
>                 return 0;
>         }
> 
>         ret = dax_iomap_direct_access(smap, pos1, ALIGN(pos1 + len, 
> PAGE_SIZE),
>                                       &saddr, NULL);
>         if (ret < 0)
>                 return -EIO;
> 
>         ret = dax_iomap_direct_access(dmap, pos2, ALIGN(pos2 + len, 
> PAGE_SIZE),
>                                       &daddr, NULL);
>         if (ret < 0)
>                 return -EIO;
> 
>         *same = !memcmp(saddr, daddr, len);
> 
>         return 0;
> }
> 
> I didn't look at the rest.
> 

Sorry for making you confused. This is because I misunderstood how I should
use iomap_apply2(). I have re-sent two new patches to fix this(PATCH 08/10)
and the previous(PATCH 07/10) which are in-reply-to these two patch, please
take a look on those two.  Maybe I should resend all of the patchset as a
new one...


--
Thanks,
Ruan Shiyang.

Reply via email to