page-io.c (592ddec7578a33fb6b3e2ba78aed91614bbb30e2) page-io.c (643fa9612bf1a29153eee46fd398117632f93cbe)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * linux/fs/ext4/page-io.c
4 *
5 * This contains the new page_io functions for ext4
6 *
7 * Written by Theodore Ts'o, 2010.
8 */

--- 52 unchanged lines hidden (view full) ---

61
62static void ext4_finish_bio(struct bio *bio)
63{
64 int i;
65 struct bio_vec *bvec;
66
67 bio_for_each_segment_all(bvec, bio, i) {
68 struct page *page = bvec->bv_page;
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * linux/fs/ext4/page-io.c
4 *
5 * This contains the new page_io functions for ext4
6 *
7 * Written by Theodore Ts'o, 2010.
8 */

--- 52 unchanged lines hidden (view full) ---

61
62static void ext4_finish_bio(struct bio *bio)
63{
64 int i;
65 struct bio_vec *bvec;
66
67 bio_for_each_segment_all(bvec, bio, i) {
68 struct page *page = bvec->bv_page;
69#ifdef CONFIG_EXT4_FS_ENCRYPTION
69#ifdef CONFIG_FS_ENCRYPTION
70 struct page *data_page = NULL;
71#endif
72 struct buffer_head *bh, *head;
73 unsigned bio_start = bvec->bv_offset;
74 unsigned bio_end = bio_start + bvec->bv_len;
75 unsigned under_io = 0;
76 unsigned long flags;
77
78 if (!page)
79 continue;
80
70 struct page *data_page = NULL;
71#endif
72 struct buffer_head *bh, *head;
73 unsigned bio_start = bvec->bv_offset;
74 unsigned bio_end = bio_start + bvec->bv_len;
75 unsigned under_io = 0;
76 unsigned long flags;
77
78 if (!page)
79 continue;
80
81#ifdef CONFIG_EXT4_FS_ENCRYPTION
81#ifdef CONFIG_FS_ENCRYPTION
82 if (!page->mapping) {
83 /* The bounce data pages are unmapped. */
84 data_page = page;
85 fscrypt_pullback_bio_page(&page, false);
86 }
87#endif
88
89 if (bio->bi_status) {

--- 16 unchanged lines hidden (view full) ---

106 }
107 clear_buffer_async_write(bh);
108 if (bio->bi_status)
109 buffer_io_error(bh);
110 } while ((bh = bh->b_this_page) != head);
111 bit_spin_unlock(BH_Uptodate_Lock, &head->b_state);
112 local_irq_restore(flags);
113 if (!under_io) {
82 if (!page->mapping) {
83 /* The bounce data pages are unmapped. */
84 data_page = page;
85 fscrypt_pullback_bio_page(&page, false);
86 }
87#endif
88
89 if (bio->bi_status) {

--- 16 unchanged lines hidden (view full) ---

106 }
107 clear_buffer_async_write(bh);
108 if (bio->bi_status)
109 buffer_io_error(bh);
110 } while ((bh = bh->b_this_page) != head);
111 bit_spin_unlock(BH_Uptodate_Lock, &head->b_state);
112 local_irq_restore(flags);
113 if (!under_io) {
114#ifdef CONFIG_EXT4_FS_ENCRYPTION
114#ifdef CONFIG_FS_ENCRYPTION
115 if (data_page)
116 fscrypt_restore_control_page(data_page);
117#endif
118 end_page_writeback(page);
119 }
120 }
121}
122

--- 414 unchanged lines hidden ---
115 if (data_page)
116 fscrypt_restore_control_page(data_page);
117#endif
118 end_page_writeback(page);
119 }
120 }
121}
122

--- 414 unchanged lines hidden ---