diff --git a/[refs] b/[refs] index c0e6f47decf7..61a4cf965cce 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 32c80b32c053dc52712dedac5e4d0aa7c93fc353 +refs/heads/master: 9dd75f1f1a02d656a11a7b9b9e6c2759b9c1e946 diff --git a/trunk/fs/ext4/inode.c b/trunk/fs/ext4/inode.c index 762e8037c888..c4da98a959ae 100644 --- a/trunk/fs/ext4/inode.c +++ b/trunk/fs/ext4/inode.c @@ -1291,7 +1291,12 @@ static int mpage_da_submit_io(struct mpage_da_data *mpd, else if (test_opt(inode->i_sb, MBLK_IO_SUBMIT)) err = ext4_bio_write_page(&io_submit, page, len, mpd->wbc); - else + else if (buffer_uninit(page_bufs)) { + ext4_set_bh_endio(page_bufs, inode); + err = block_write_full_page_endio(page, + noalloc_get_block_write, + mpd->wbc, ext4_end_io_buffer_write); + } else err = block_write_full_page(page, noalloc_get_block_write, mpd->wbc);