|
@@ -425,6 +425,7 @@ int ext4_bio_write_page(struct ext4_io_submit *io,
|
|
struct buffer_head *bh, *head;
|
|
struct buffer_head *bh, *head;
|
|
int ret = 0;
|
|
int ret = 0;
|
|
int nr_submitted = 0;
|
|
int nr_submitted = 0;
|
|
|
|
+ int nr_to_submit = 0;
|
|
|
|
|
|
blocksize = 1 << inode->i_blkbits;
|
|
blocksize = 1 << inode->i_blkbits;
|
|
|
|
|
|
@@ -477,11 +478,13 @@ int ext4_bio_write_page(struct ext4_io_submit *io,
|
|
unmap_underlying_metadata(bh->b_bdev, bh->b_blocknr);
|
|
unmap_underlying_metadata(bh->b_bdev, bh->b_blocknr);
|
|
}
|
|
}
|
|
set_buffer_async_write(bh);
|
|
set_buffer_async_write(bh);
|
|
|
|
+ nr_to_submit++;
|
|
} while ((bh = bh->b_this_page) != head);
|
|
} while ((bh = bh->b_this_page) != head);
|
|
|
|
|
|
bh = head = page_buffers(page);
|
|
bh = head = page_buffers(page);
|
|
|
|
|
|
- if (ext4_encrypted_inode(inode) && S_ISREG(inode->i_mode)) {
|
|
|
|
|
|
+ if (ext4_encrypted_inode(inode) && S_ISREG(inode->i_mode) &&
|
|
|
|
+ nr_to_submit) {
|
|
data_page = ext4_encrypt(inode, page);
|
|
data_page = ext4_encrypt(inode, page);
|
|
if (IS_ERR(data_page)) {
|
|
if (IS_ERR(data_page)) {
|
|
ret = PTR_ERR(data_page);
|
|
ret = PTR_ERR(data_page);
|