[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r20358 - gnunet/src/fs
From: |
gnunet |
Subject: |
[GNUnet-SVN] r20358 - gnunet/src/fs |
Date: |
Wed, 7 Mar 2012 22:00:13 +0100 |
Author: grothoff
Date: 2012-03-07 22:00:13 +0100 (Wed, 07 Mar 2012)
New Revision: 20358
Modified:
gnunet/src/fs/fs_download.c
Log:
-more chk index calculation errors, ugh
Modified: gnunet/src/fs/fs_download.c
===================================================================
--- gnunet/src/fs/fs_download.c 2012-03-07 20:40:06 UTC (rev 20357)
+++ gnunet/src/fs/fs_download.c 2012-03-07 21:00:13 UTC (rev 20358)
@@ -1531,23 +1531,23 @@
if (dr_offset < file_start_offset)
head_skip = file_start_offset / child_block_size;
else
- head_skip = dr_offset / child_block_size;
+ head_skip = 0;
/* calculate index of last block at this level that is interesting
(rounded up) */
- dr->num_children = (file_start_offset + desired_length) / child_block_size;
+ dr->num_children = (file_start_offset + desired_length - dr_offset) /
child_block_size;
if (dr->num_children * child_block_size <
- file_start_offset + desired_length)
+ file_start_offset + desired_length - dr_offset)
dr->num_children++; /* round up */
+ if (dr->num_children > CHK_PER_INODE)
+ dr->num_children = CHK_PER_INODE; /* cap at max */
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Block at offset %llu and depth %u has %u children\n",
(unsigned long long) dr_offset,
depth,
dr->num_children);
- /* now we can get the total number of children for this block */
+ /* now we can get the total number of *interesting* children for this
block */
dr->num_children -= head_skip;
- if (dr->num_children > CHK_PER_INODE)
- dr->num_children = CHK_PER_INODE; /* cap at max */
/* why else would we have gotten here to begin with? (that'd be a bad
logic error) */
GNUNET_assert (dr->num_children > 0);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r20358 - gnunet/src/fs,
gnunet <=