From 2bd4fcb0ec72221625294ea92f8ecdb9ba77a2e0 Mon Sep 17 00:00:00 2001 From: Dmitry Monakhov Date: Mon, 4 Mar 2013 00:41:05 -0500 Subject: [PATCH] --- yaml --- r: 361583 b: refs/heads/master c: ff95ec22cd7faa0d8b58dcc4207f21502df7b00b h: refs/heads/master i: 361581: aeb45b1e878ad243e09fa77ebcb99e1c4b0f4983 361579: c9169ba93ec5376b6a565807dee6a1dbaa326c04 361575: 3d49f2d74278325ec23881981fa8f011850d0a5a 361567: d309508331f5fc824eaff2bb176615b164b786e8 v: v3 --- [refs] | 2 +- trunk/fs/ext4/extents.c | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 983f9e6ea8de..973db98973a9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ec22ba8edb507395c95fbc617eea26a6b2d98797 +refs/heads/master: ff95ec22cd7faa0d8b58dcc4207f21502df7b00b diff --git a/trunk/fs/ext4/extents.c b/trunk/fs/ext4/extents.c index 60818ed1f6a9..265cb0e50c51 100644 --- a/trunk/fs/ext4/extents.c +++ b/trunk/fs/ext4/extents.c @@ -3387,8 +3387,19 @@ static int ext4_convert_unwritten_extents_endio(handle_t *handle, "block %llu, max_blocks %u\n", inode->i_ino, (unsigned long long)ee_block, ee_len); - /* If extent is larger than requested then split is required */ + /* If extent is larger than requested it is a clear sign that we still + * have some extent state machine issues left. So extent_split is still + * required. + * TODO: Once all related issues will be fixed this situation should be + * illegal. + */ if (ee_block != map->m_lblk || ee_len > map->m_len) { +#ifdef EXT4_DEBUG + ext4_warning("Inode (%ld) finished: extent logical block %llu," + " len %u; IO logical block %llu, len %u\n", + inode->i_ino, (unsigned long long)ee_block, ee_len, + (unsigned long long)map->m_lblk, map->m_len); +#endif err = ext4_split_unwritten_extents(handle, inode, map, path, EXT4_GET_BLOCKS_CONVERT); if (err < 0)