All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nikolay Borisov <nborisov@suse.com>
To: Noah Massey <noah.massey@gmail.com>
Cc: jthumshirn@suse.de, David Sterba <dsterba@suse.com>,
	linux-btrfs <linux-btrfs@vger.kernel.org>
Subject: Re: [PATCH 3/3] btrfs: document extent mapping assumptions in checksum
Date: Tue, 27 Nov 2018 21:32:05 +0200	[thread overview]
Message-ID: <6f819719-5b63-c66c-b139-bd415bcca1d2@suse.com> (raw)
In-Reply-To: <CADfjVrgC+hd1c_FO_oT5os9H4nacdtq9+a3gXqRmw00sMTmGjQ@mail.gmail.com>



On 27.11.18 г. 21:08 ч., Noah Massey wrote:
> On Tue, Nov 27, 2018 at 11:43 AM Nikolay Borisov <nborisov@suse.com> wrote:
>>
>> On 27.11.18 г. 18:00 ч., Johannes Thumshirn wrote:
>>> Document why map_private_extent_buffer() cannot return '1' (i.e. the map
>>> spans two pages) for the csum_tree_block() case.
>>>
>>> The current algorithm for detecting a page boundary crossing in
>>> map_private_extent_buffer() will return a '1' *IFF* the product of the
>>
>> I think the word product must be replaced with 'sum', since product
>> implies multiplication :)
>>
> 
> doesn't 'sum' imply addition? How about 'output'?

It does and the code indeed sums the value and not multiply them hence
my suggestion.

> 
>>> extent buffer's offset in the page + the offset passed in by
>>> csum_tree_block() and the minimal length passed in by csum_tree_block() - 1
>>> are bigger than PAGE_SIZE.
>>>
>>> We always pass BTRFS_CSUM_SIZE (32) as offset and a minimal length of 32
>>> and the current extent buffer allocator always guarantees page aligned
>>> extends, so the above condition can't be true.
>>>
>>> Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
>>
>> With that wording changed:
>>
>> Reviewed-by: Nikolay Borisov <nborisov@suse.com>
>>
>>> ---
>>>  fs/btrfs/disk-io.c | 6 ++++++
>>>  1 file changed, 6 insertions(+)
>>>
>>> diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
>>> index 4bc270ef29b4..14d355d0cb7a 100644
>>> --- a/fs/btrfs/disk-io.c
>>> +++ b/fs/btrfs/disk-io.c
>>> @@ -279,6 +279,12 @@ static int csum_tree_block(struct btrfs_fs_info *fs_info,
>>>
>>>       len = buf->len - offset;
>>>       while (len > 0) {
>>> +             /*
>>> +              * Note: we don't need to check for the err == 1 case here, as
>>> +              * with the given combination of 'start = BTRFS_CSUM_SIZE (32)'
>>> +              * and 'min_len = 32' and the currently implemented mapping
>>> +              * algorithm we cannot cross a page boundary.
>>> +              */
>>>               err = map_private_extent_buffer(buf, offset, 32,
>>>                                       &kaddr, &map_start, &map_len);
>>>               if (err)
>>>
> 

  reply	other threads:[~2018-11-27 19:32 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-27 16:00 [PATCH 0/3] Misc cosmetic changes for map_private_extent_buffer Johannes Thumshirn
2018-11-27 16:00 ` [PATCH 1/3] btrfs: don't initialize 'offset' in map_private_extent_buffer() Johannes Thumshirn
2018-11-27 16:31   ` Nikolay Borisov
2018-11-27 16:00 ` [PATCH 2/3] btrfs: use offset_in_page for start_offset " Johannes Thumshirn
2018-11-27 16:33   ` Nikolay Borisov
2018-11-27 16:00 ` [PATCH 3/3] btrfs: document extent mapping assumptions in checksum Johannes Thumshirn
2018-11-27 16:36   ` Nikolay Borisov
2018-11-27 19:08     ` Noah Massey
2018-11-27 19:32       ` Nikolay Borisov [this message]
2018-11-27 20:20         ` Noah Massey
2018-11-28  8:39     ` Johannes Thumshirn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6f819719-5b63-c66c-b139-bd415bcca1d2@suse.com \
    --to=nborisov@suse.com \
    --cc=dsterba@suse.com \
    --cc=jthumshirn@suse.de \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=noah.massey@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.