diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 4bae9ccf5fe0..1a8e47221e72 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -1156,6 +1156,9 @@ static int ext4_write_begin(struct file *file, struct address_space *mapping, * the folio (if needed) without using GFP_NOFS. */ retry_grab: +#ifdef CONFIG_FS_ENCRYPTION + mapping_set_gfp_mask(mapping, mapping_gfp_mask(mapping) | __GFP_ZERO); +#endif folio = __filemap_get_folio(mapping, index, FGP_WRITEBEGIN, mapping_gfp_mask(mapping)); if (IS_ERR(folio)) @@ -2882,6 +2885,9 @@ static int ext4_da_write_begin(struct file *file, struct address_space *mapping, } retry: +#ifdef CONFIG_FS_ENCRYPTION + mapping_set_gfp_mask(mapping, mapping_gfp_mask(mapping) | __GFP_ZERO); +#endif folio = __filemap_get_folio(mapping, index, FGP_WRITEBEGIN, mapping_gfp_mask(mapping)); if (IS_ERR(folio))