Merge tag 'ext4_for_linus-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-block.git] / fs / ext4 / inode.c
index 537803250ca9a7fa7ce4cde8a61935ee24cf188e..4bae9ccf5fe01619fc1f05bf651b2a69b814f0a0 100644 (file)
@@ -1865,7 +1865,7 @@ static int mpage_submit_folio(struct mpage_da_data *mpd, struct folio *folio)
        len = folio_size(folio);
        if (folio_pos(folio) + len > size &&
            !ext4_verity_in_progress(mpd->inode))
-               len = size & ~PAGE_MASK;
+               len = size & (len - 1);
        err = ext4_bio_write_folio(&mpd->io_submit, folio, len);
        if (!err)
                mpd->wbc->nr_to_write--;
@@ -2334,7 +2334,7 @@ static int mpage_journal_page_buffers(handle_t *handle,
 
        if (folio_pos(folio) + len > size &&
            !ext4_verity_in_progress(inode))
-               len = size - folio_pos(folio);
+               len = size & (len - 1);
 
        return ext4_journal_folio_buffers(handle, folio, len);
 }
@@ -2887,9 +2887,6 @@ retry:
        if (IS_ERR(folio))
                return PTR_ERR(folio);
 
-       /* In case writeback began while the folio was unlocked */
-       folio_wait_stable(folio);
-
 #ifdef CONFIG_FS_ENCRYPTION
        ret = ext4_block_write_begin(folio, pos, len, ext4_da_get_block_prep);
 #else
@@ -3530,7 +3527,6 @@ static const struct address_space_operations ext4_aops = {
        .bmap                   = ext4_bmap,
        .invalidate_folio       = ext4_invalidate_folio,
        .release_folio          = ext4_release_folio,
-       .direct_IO              = noop_direct_IO,
        .migrate_folio          = buffer_migrate_folio,
        .is_partially_uptodate  = block_is_partially_uptodate,
        .error_remove_folio     = generic_error_remove_folio,
@@ -3547,7 +3543,6 @@ static const struct address_space_operations ext4_journalled_aops = {
        .bmap                   = ext4_bmap,
        .invalidate_folio       = ext4_journalled_invalidate_folio,
        .release_folio          = ext4_release_folio,
-       .direct_IO              = noop_direct_IO,
        .migrate_folio          = buffer_migrate_folio_norefs,
        .is_partially_uptodate  = block_is_partially_uptodate,
        .error_remove_folio     = generic_error_remove_folio,
@@ -3564,7 +3559,6 @@ static const struct address_space_operations ext4_da_aops = {
        .bmap                   = ext4_bmap,
        .invalidate_folio       = ext4_invalidate_folio,
        .release_folio          = ext4_release_folio,
-       .direct_IO              = noop_direct_IO,
        .migrate_folio          = buffer_migrate_folio,
        .is_partially_uptodate  = block_is_partially_uptodate,
        .error_remove_folio     = generic_error_remove_folio,
@@ -3573,7 +3567,6 @@ static const struct address_space_operations ext4_da_aops = {
 
 static const struct address_space_operations ext4_dax_aops = {
        .writepages             = ext4_dax_writepages,
-       .direct_IO              = noop_direct_IO,
        .dirty_folio            = noop_dirty_folio,
        .bmap                   = ext4_bmap,
        .swap_activate          = ext4_iomap_swap_activate,