ext4: missing !bh check in ext4_xattr_inode_write()
[sfrench/cifs-2.6.git] / fs / ext4 / xattr.c
index 0b968868352626fd8aed6066eae9c43a0c1040e6..7643d52c776c61188ca6ac4a7ddd18d303c96e47 100644 (file)
@@ -1384,6 +1384,12 @@ retry:
                bh = ext4_getblk(handle, ea_inode, block, 0);
                if (IS_ERR(bh))
                        return PTR_ERR(bh);
                bh = ext4_getblk(handle, ea_inode, block, 0);
                if (IS_ERR(bh))
                        return PTR_ERR(bh);
+               if (!bh) {
+                       WARN_ON_ONCE(1);
+                       EXT4_ERROR_INODE(ea_inode,
+                                        "ext4_getblk() return bh = NULL");
+                       return -EFSCORRUPTED;
+               }
                ret = ext4_journal_get_write_access(handle, bh);
                if (ret)
                        goto out;
                ret = ext4_journal_get_write_access(handle, bh);
                if (ret)
                        goto out;