diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c
index 2dcbd56988843ccdfb017c9b14ca8f5b05a31b62..30163d007b2f287180d9d22827e638618038de22 100644
--- a/fs/ext2/inode.c
+++ b/fs/ext2/inode.c
@@ -659,6 +659,7 @@ static int ext2_get_blocks(struct inode *inode,
 				 */
 				err = -EAGAIN;
 				count = 0;
+				partial = chain + depth - 1;
 				break;
 			}
 			blk = le32_to_cpu(*(chain[depth-1].p + count));