--- /dev/null
+From d0abafac8c9162f39c4f6b2f8141b772a09b3770 Mon Sep 17 00:00:00 2001
+From: Eric Whitney <enwlinux@gmail.com>
+Date: Mon, 6 Jan 2014 14:00:23 -0500
+Subject: ext4: fix bigalloc regression
+
+From: Eric Whitney <enwlinux@gmail.com>
+
+commit d0abafac8c9162f39c4f6b2f8141b772a09b3770 upstream.
+
+Commit f5a44db5d2 introduced a regression on filesystems created with
+the bigalloc feature (cluster size > blocksize). It causes xfstests
+generic/006 and /013 to fail with an unexpected JBD2 failure and
+transaction abort that leaves the test file system in a read only state.
+Other xfstests run on bigalloc file systems are likely to fail as well.
+
+The cause is the accidental use of a cluster mask where a cluster
+offset was needed in ext4_ext_map_blocks().
+
+Signed-off-by: Eric Whitney <enwlinux@gmail.com>
+Cc: Theodore Ts'o <tytso@mit.edu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/ext4/extents.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/ext4/extents.c
++++ b/fs/ext4/extents.c
+@@ -4249,7 +4249,7 @@ int ext4_ext_map_blocks(handle_t *handle
+ */
+ map->m_flags &= ~EXT4_MAP_FROM_CLUSTER;
+ newex.ee_block = cpu_to_le32(map->m_lblk);
+- cluster_offset = EXT4_LBLK_CMASK(sbi, map->m_lblk);
++ cluster_offset = EXT4_LBLK_COFF(sbi, map->m_lblk);
+
+ /*
+ * If we are doing bigalloc, check to see if the extent returned