On Fri, Feb 14, 2020 at 12:24:32AM +0900, Johannes Thumshirn wrote: > - bh = __bread(bdev, bytenr / BTRFS_BDEV_BLOCKSIZE, BTRFS_SUPER_INFO_SIZE); > - /* > - * If we fail to read from the underlying devices, as of now > - * the best option we have is to mark it EIO. > - */ > - if (!bh) > - return -EIO; > + page = read_cache_page_gfp(mapping, bytenr >> PAGE_SHIFT, GFP_NOFS); > + if (IS_ERR(page)) > + return ERR_PTR(-ENOMEM); This should be 'return page', read_cache_page_gfp can return more errors than just ENOMEM.
