}
 
                        /* Go read the buffer for the next level down */
-                       bh = sb_bread(inode->i_sb, nr);
+                       bh = ext4_sb_bread(inode->i_sb, nr, 0);
 
                        /*
                         * A read failure? Report error and clear slot
                         * (should be rare).
                         */
-                       if (!bh) {
-                               ext4_error_inode_block(inode, nr, EIO,
+                       if (IS_ERR(bh)) {
+                               ext4_error_inode_block(inode, nr, -PTR_ERR(bh),
                                                       "Read failure");
                                continue;
                        }
 
                             o_blocks_count + add, add);
 
        /* See if the device is actually as big as what was requested */
-       bh = sb_bread(sb, o_blocks_count + add - 1);
-       if (!bh) {
+       bh = ext4_sb_bread(sb, o_blocks_count + add - 1, 0);
+       if (IS_ERR(bh)) {
                ext4_warning(sb, "can't read last block, resize aborted");
                return -ENOSPC;
        }
        int meta_bg;
 
        /* See if the device is actually as big as what was requested */
-       bh = sb_bread(sb, n_blocks_count - 1);
-       if (!bh) {
+       bh = ext4_sb_bread(sb, n_blocks_count - 1, 0);
+       if (IS_ERR(bh)) {
                ext4_warning(sb, "can't read last block, resize aborted");
                return -ENOSPC;
        }