Commit e84bfffc authored by David Sterba's avatar David Sterba

btrfs: hoist fs_info out of loops in end_bbio_data_write and end_bbio_data_read

The fs_info and sectorsize remain the same during the loops, no need to
set them on each iteration.
Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: default avatarAnand Jain <anand.jain@oracle.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 41044b41
...@@ -461,16 +461,15 @@ static void end_page_read(struct page *page, bool uptodate, u64 start, u32 len) ...@@ -461,16 +461,15 @@ static void end_page_read(struct page *page, bool uptodate, u64 start, u32 len)
*/ */
static void end_bbio_data_write(struct btrfs_bio *bbio) static void end_bbio_data_write(struct btrfs_bio *bbio)
{ {
struct btrfs_fs_info *fs_info = bbio->fs_info;
struct bio *bio = &bbio->bio; struct bio *bio = &bbio->bio;
int error = blk_status_to_errno(bio->bi_status); int error = blk_status_to_errno(bio->bi_status);
struct folio_iter fi; struct folio_iter fi;
const u32 sectorsize = fs_info->sectorsize;
ASSERT(!bio_flagged(bio, BIO_CLONED)); ASSERT(!bio_flagged(bio, BIO_CLONED));
bio_for_each_folio_all(fi, bio) { bio_for_each_folio_all(fi, bio) {
struct folio *folio = fi.folio; struct folio *folio = fi.folio;
struct inode *inode = folio->mapping->host;
struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
const u32 sectorsize = fs_info->sectorsize;
u64 start = folio_pos(folio) + fi.offset; u64 start = folio_pos(folio) + fi.offset;
u32 len = fi.length; u32 len = fi.length;
...@@ -592,17 +591,17 @@ static void begin_page_read(struct btrfs_fs_info *fs_info, struct page *page) ...@@ -592,17 +591,17 @@ static void begin_page_read(struct btrfs_fs_info *fs_info, struct page *page)
*/ */
static void end_bbio_data_read(struct btrfs_bio *bbio) static void end_bbio_data_read(struct btrfs_bio *bbio)
{ {
struct btrfs_fs_info *fs_info = bbio->fs_info;
struct bio *bio = &bbio->bio; struct bio *bio = &bbio->bio;
struct processed_extent processed = { 0 }; struct processed_extent processed = { 0 };
struct folio_iter fi; struct folio_iter fi;
const u32 sectorsize = fs_info->sectorsize;
ASSERT(!bio_flagged(bio, BIO_CLONED)); ASSERT(!bio_flagged(bio, BIO_CLONED));
bio_for_each_folio_all(fi, &bbio->bio) { bio_for_each_folio_all(fi, &bbio->bio) {
bool uptodate = !bio->bi_status; bool uptodate = !bio->bi_status;
struct folio *folio = fi.folio; struct folio *folio = fi.folio;
struct inode *inode = folio->mapping->host; struct inode *inode = folio->mapping->host;
struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
const u32 sectorsize = fs_info->sectorsize;
u64 start; u64 start;
u64 end; u64 end;
u32 len; u32 len;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment