On Fri, Jan 11, 2008 at 02:42:00PM -0600, Eric Sandeen wrote:
>
> The BUG_ON is:
>
> BUG_ON(*logical < le32_to_cpu(ex->ee_block) +
> le16_to_cpu(ex->ee_len));
>
> where these were the values:
>
> logical 8 ee_block 0 ee_len 32776
>
> Haven't looked further into it yet.
>
Not able to reproduce. Why is it calling ext4_ext_search_left for that
value of logical ? ext4_ext_get_blocks should have found that the
logical belong to an already existing extent and return from there. It
should have returned from
2365 if (create == EXT4_CREATE_UNINITIALIZED_EXT)
2366 goto out;
[EMAIL PROTECTED]:/ext4# /root/testfallocate -f a 0 100
# FALLOCATE TEST REPORT #
New blocks preallocated = 0.
Number of bytes preallocated = 0
Old file size = 100, New file size 100.
Old num blocks = 4, New num blocks 4.
### TESTS PASSED ###
[EMAIL PROTECTED]:/ext4# ls -alh a
-rw-r--r-- 1 root root 100 Jan 9 16:23 a
[EMAIL PROTECTED]:/ext4# /root/truncate ./a 50
[EMAIL PROTECTED]:/ext4# ls -alh a
-rw-r--r-- 1 root root 50 Jan 9 16:23 a
[EMAIL PROTECTED]:/ext4# /root/testfallocate -f a 0 100
# FALLOCATE TEST REPORT #
New blocks preallocated = 0.
Number of bytes preallocated = 0
Old file size = 50, New file size 100.
Old num blocks = 4, New num blocks 4.
### TESTS PASSED ###
[EMAIL PROTECTED]:/ext4# ls -alh a
-rw-r--r-- 1 root root 100 Jan 9 16:23 a
[EMAIL PROTECTED]:/ext4# more /proc/mounts | grep ext4dev
/dev/hdc /ext4 ext4dev rw,nodelalloc,data=writeback 0 0
[EMAIL PROTECTED]:/ext4#
The third fallocate should result in calling ext4_ext_get_blocks two
times. The first call with logical 0 and max 100 and it will return with
allocated 50. Then call again with logical 50 and max 50.
Something else is wrong.
-aneesh
-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html