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 --- |