[btrfs-devel]A question about extent buffer codes

Chris Mason
2007-10-16T06:11:34Z

On Tue, 2007-10-16 at 20:32 +0800, Yan Zheng wrote:
> Hello
>
> Some xxx_extent_buffer functions have codes like:
> --
> offset = dst_offset & ((unsigned long)PAGE_CACHE_SIZE - 1);
> if (i == 0)
>         offset += start_offset;
>
> I can't understand why these is a test.  I feel the variable
'offset'
> should be computed by code like:
> --
>  offset = (dst_offset + start_offset) & ((unsigned
> long)PAGE_CACHE_SIZE - 1);


It could be offset = (dst->start + dst_offset) & PAGE_CACHE_SIZE - 1,
but start_offset is already the offset into the first page.  So, we only
want to add it on the first page.

-chris