From: kbuild test robot <lkp@intel.com> To: Herbert Xu <herbert@gondor.apana.org.au> Cc: kbuild-all@lists.01.org, Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, "Theodore Y. Ts'o" <tytso@mit.edu>, Jaegeuk Kim <jaegeuk@kernel.org>, Eric Biggers <ebiggers@kernel.org>, Chandan Rajendra <chandan@linux.vnet.ibm.com>, linux-fscrypt@vger.kernel.org Subject: Re: [PATCH] fscrypt: Restore modular support Date: Tue, 24 Dec 2019 19:58:54 +0800 [thread overview] Message-ID: <201912241924.RWSD70yW%lkp@intel.com> (raw) In-Reply-To: <20191221143020.hbgeixvlmzt7nh54@gondor.apana.org.au> [-- Attachment #1: Type: text/plain, Size: 11188 bytes --] Hi Herbert, I love your patch! Yet something to improve: [auto build test ERROR on linux/master] [cannot apply to ext4/dev f2fs/dev-test linus/master tytso-fscrypt/master v5.5-rc3 next-20191220] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Herbert-Xu/fscrypt-Restore-modular-support/20191224-164226 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 1522d9da40bdfe502c91163e6d769332897201fa config: x86_64-rhel (attached as .config) compiler: gcc-7 (Debian 7.5.0-3) 7.5.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@intel.com> All errors (new ones prefixed by >>): ld: fs/super.o: in function `__put_super': fs/super.c:296: undefined reference to `fscrypt_sb_free' ld: fs/ext4/dir.o: in function `ext4_dir_open': >> fs/ext4/dir.c:617: undefined reference to `fscrypt_get_encryption_info' ld: fs/ext4/dir.o: in function `ext4_readdir': fs/ext4/dir.c:118: undefined reference to `fscrypt_get_encryption_info' >> ld: fs/ext4/dir.c:263: undefined reference to `fscrypt_fname_disk_to_usr' >> ld: fs/ext4/dir.c:288: undefined reference to `fscrypt_fname_free_buffer' >> ld: fs/ext4/dir.c:288: undefined reference to `fscrypt_fname_free_buffer' >> ld: fs/ext4/dir.c:288: undefined reference to `fscrypt_fname_free_buffer' >> ld: fs/ext4/dir.c:145: undefined reference to `fscrypt_fname_alloc_buffer' >> ld: fs/ext4/dir.c:288: undefined reference to `fscrypt_fname_free_buffer' >> ld: fs/ext4/dir.c:288: undefined reference to `fscrypt_fname_free_buffer' ld: fs/ext4/file.o: in function `ext4_file_open': >> fs/ext4/file.c:716: undefined reference to `fscrypt_file_open' ld: fs/ext4/ialloc.o: in function `__ext4_new_inode': >> fs/ext4/ialloc.c:772: undefined reference to `fscrypt_get_encryption_info' >> ld: fs/ext4/ialloc.c:1145: undefined reference to `fscrypt_inherit_context' ld: fs/ext4/inode.o: in function `ext4_block_write_begin': >> fs/ext4/inode.c:1097: undefined reference to `fscrypt_decrypt_pagecache_blocks' ld: fs/ext4/inode.o: in function `__ext4_block_zero_page_range': fs/ext4/inode.c:3704: undefined reference to `fscrypt_decrypt_pagecache_blocks' ld: fs/ext4/inode.o: in function `fscrypt_require_key': >> include/linux/fscrypt.h:548: undefined reference to `fscrypt_get_encryption_info' ld: fs/ext4/inode.o: in function `ext4_issue_zeroout': >> fs/ext4/inode.c:406: undefined reference to `fscrypt_zeroout_range' ld: fs/ext4/ioctl.o: in function `ext4_ioctl': >> fs/ext4/ioctl.c:1141: undefined reference to `fscrypt_ioctl_set_policy' >> ld: fs/ext4/ioctl.c:1211: undefined reference to `fscrypt_ioctl_get_key_status' >> ld: fs/ext4/ioctl.c:1186: undefined reference to `fscrypt_ioctl_get_policy' >> ld: fs/ext4/ioctl.c:1206: undefined reference to `fscrypt_ioctl_remove_key_all_users' >> ld: fs/ext4/ioctl.c:1201: undefined reference to `fscrypt_ioctl_remove_key' >> ld: fs/ext4/ioctl.c:1196: undefined reference to `fscrypt_ioctl_add_key' vim +1097 fs/ext4/inode.c ac27a0ec112a08 Dave Kleikamp 2006-10-11 1013 643fa9612bf1a2 Chandan Rajendra 2018-12-12 1014 #ifdef CONFIG_FS_ENCRYPTION 2058f83a728adf Michael Halcrow 2015-04-12 1015 static int ext4_block_write_begin(struct page *page, loff_t pos, unsigned len, 2058f83a728adf Michael Halcrow 2015-04-12 1016 get_block_t *get_block) 2058f83a728adf Michael Halcrow 2015-04-12 1017 { 09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 1018 unsigned from = pos & (PAGE_SIZE - 1); 2058f83a728adf Michael Halcrow 2015-04-12 1019 unsigned to = from + len; 2058f83a728adf Michael Halcrow 2015-04-12 1020 struct inode *inode = page->mapping->host; 2058f83a728adf Michael Halcrow 2015-04-12 1021 unsigned block_start, block_end; 2058f83a728adf Michael Halcrow 2015-04-12 1022 sector_t block; 2058f83a728adf Michael Halcrow 2015-04-12 1023 int err = 0; 2058f83a728adf Michael Halcrow 2015-04-12 1024 unsigned blocksize = inode->i_sb->s_blocksize; 2058f83a728adf Michael Halcrow 2015-04-12 1025 unsigned bbits; 0b578f358a6a7a Chandan Rajendra 2019-05-20 1026 struct buffer_head *bh, *head, *wait[2]; 0b578f358a6a7a Chandan Rajendra 2019-05-20 1027 int nr_wait = 0; 0b578f358a6a7a Chandan Rajendra 2019-05-20 1028 int i; 2058f83a728adf Michael Halcrow 2015-04-12 1029 2058f83a728adf Michael Halcrow 2015-04-12 1030 BUG_ON(!PageLocked(page)); 09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 1031 BUG_ON(from > PAGE_SIZE); 09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 1032 BUG_ON(to > PAGE_SIZE); 2058f83a728adf Michael Halcrow 2015-04-12 1033 BUG_ON(from > to); 2058f83a728adf Michael Halcrow 2015-04-12 1034 2058f83a728adf Michael Halcrow 2015-04-12 1035 if (!page_has_buffers(page)) 2058f83a728adf Michael Halcrow 2015-04-12 1036 create_empty_buffers(page, blocksize, 0); 2058f83a728adf Michael Halcrow 2015-04-12 1037 head = page_buffers(page); 2058f83a728adf Michael Halcrow 2015-04-12 1038 bbits = ilog2(blocksize); 09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 1039 block = (sector_t)page->index << (PAGE_SHIFT - bbits); 2058f83a728adf Michael Halcrow 2015-04-12 1040 2058f83a728adf Michael Halcrow 2015-04-12 1041 for (bh = head, block_start = 0; bh != head || !block_start; 2058f83a728adf Michael Halcrow 2015-04-12 1042 block++, block_start = block_end, bh = bh->b_this_page) { 2058f83a728adf Michael Halcrow 2015-04-12 1043 block_end = block_start + blocksize; 2058f83a728adf Michael Halcrow 2015-04-12 1044 if (block_end <= from || block_start >= to) { 2058f83a728adf Michael Halcrow 2015-04-12 1045 if (PageUptodate(page)) { 2058f83a728adf Michael Halcrow 2015-04-12 1046 if (!buffer_uptodate(bh)) 2058f83a728adf Michael Halcrow 2015-04-12 1047 set_buffer_uptodate(bh); 2058f83a728adf Michael Halcrow 2015-04-12 1048 } 2058f83a728adf Michael Halcrow 2015-04-12 1049 continue; 2058f83a728adf Michael Halcrow 2015-04-12 1050 } 2058f83a728adf Michael Halcrow 2015-04-12 1051 if (buffer_new(bh)) 2058f83a728adf Michael Halcrow 2015-04-12 1052 clear_buffer_new(bh); 2058f83a728adf Michael Halcrow 2015-04-12 1053 if (!buffer_mapped(bh)) { 2058f83a728adf Michael Halcrow 2015-04-12 1054 WARN_ON(bh->b_size != blocksize); 2058f83a728adf Michael Halcrow 2015-04-12 1055 err = get_block(inode, block, bh, 1); 2058f83a728adf Michael Halcrow 2015-04-12 1056 if (err) 2058f83a728adf Michael Halcrow 2015-04-12 1057 break; 2058f83a728adf Michael Halcrow 2015-04-12 1058 if (buffer_new(bh)) { 2058f83a728adf Michael Halcrow 2015-04-12 1059 if (PageUptodate(page)) { 2058f83a728adf Michael Halcrow 2015-04-12 1060 clear_buffer_new(bh); 2058f83a728adf Michael Halcrow 2015-04-12 1061 set_buffer_uptodate(bh); 2058f83a728adf Michael Halcrow 2015-04-12 1062 mark_buffer_dirty(bh); 2058f83a728adf Michael Halcrow 2015-04-12 1063 continue; 2058f83a728adf Michael Halcrow 2015-04-12 1064 } 2058f83a728adf Michael Halcrow 2015-04-12 1065 if (block_end > to || block_start < from) 2058f83a728adf Michael Halcrow 2015-04-12 1066 zero_user_segments(page, to, block_end, 2058f83a728adf Michael Halcrow 2015-04-12 1067 block_start, from); 2058f83a728adf Michael Halcrow 2015-04-12 1068 continue; 2058f83a728adf Michael Halcrow 2015-04-12 1069 } 2058f83a728adf Michael Halcrow 2015-04-12 1070 } 2058f83a728adf Michael Halcrow 2015-04-12 1071 if (PageUptodate(page)) { 2058f83a728adf Michael Halcrow 2015-04-12 1072 if (!buffer_uptodate(bh)) 2058f83a728adf Michael Halcrow 2015-04-12 1073 set_buffer_uptodate(bh); 2058f83a728adf Michael Halcrow 2015-04-12 1074 continue; 2058f83a728adf Michael Halcrow 2015-04-12 1075 } 2058f83a728adf Michael Halcrow 2015-04-12 1076 if (!buffer_uptodate(bh) && !buffer_delay(bh) && 2058f83a728adf Michael Halcrow 2015-04-12 1077 !buffer_unwritten(bh) && 2058f83a728adf Michael Halcrow 2015-04-12 1078 (block_start < from || block_end > to)) { dfec8a14fc9043 Mike Christie 2016-06-05 1079 ll_rw_block(REQ_OP_READ, 0, 1, &bh); 0b578f358a6a7a Chandan Rajendra 2019-05-20 1080 wait[nr_wait++] = bh; 2058f83a728adf Michael Halcrow 2015-04-12 1081 } 2058f83a728adf Michael Halcrow 2015-04-12 1082 } 2058f83a728adf Michael Halcrow 2015-04-12 1083 /* 2058f83a728adf Michael Halcrow 2015-04-12 1084 * If we issued read requests, let them complete. 2058f83a728adf Michael Halcrow 2015-04-12 1085 */ 0b578f358a6a7a Chandan Rajendra 2019-05-20 1086 for (i = 0; i < nr_wait; i++) { 0b578f358a6a7a Chandan Rajendra 2019-05-20 1087 wait_on_buffer(wait[i]); 0b578f358a6a7a Chandan Rajendra 2019-05-20 1088 if (!buffer_uptodate(wait[i])) 2058f83a728adf Michael Halcrow 2015-04-12 1089 err = -EIO; 2058f83a728adf Michael Halcrow 2015-04-12 1090 } 7e0785fce14f75 Chandan Rajendra 2019-05-20 1091 if (unlikely(err)) { 2058f83a728adf Michael Halcrow 2015-04-12 1092 page_zero_new_buffers(page, from, to); 0b578f358a6a7a Chandan Rajendra 2019-05-20 1093 } else if (IS_ENCRYPTED(inode) && S_ISREG(inode->i_mode)) { 0b578f358a6a7a Chandan Rajendra 2019-05-20 1094 for (i = 0; i < nr_wait; i++) { 0b578f358a6a7a Chandan Rajendra 2019-05-20 1095 int err2; 0b578f358a6a7a Chandan Rajendra 2019-05-20 1096 0b578f358a6a7a Chandan Rajendra 2019-05-20 @1097 err2 = fscrypt_decrypt_pagecache_blocks(page, blocksize, 0b578f358a6a7a Chandan Rajendra 2019-05-20 1098 bh_offset(wait[i])); 0b578f358a6a7a Chandan Rajendra 2019-05-20 1099 if (err2) { 0b578f358a6a7a Chandan Rajendra 2019-05-20 1100 clear_buffer_uptodate(wait[i]); 0b578f358a6a7a Chandan Rajendra 2019-05-20 1101 err = err2; 0b578f358a6a7a Chandan Rajendra 2019-05-20 1102 } 0b578f358a6a7a Chandan Rajendra 2019-05-20 1103 } 7e0785fce14f75 Chandan Rajendra 2019-05-20 1104 } 7e0785fce14f75 Chandan Rajendra 2019-05-20 1105 2058f83a728adf Michael Halcrow 2015-04-12 1106 return err; 2058f83a728adf Michael Halcrow 2015-04-12 1107 } 2058f83a728adf Michael Halcrow 2015-04-12 1108 #endif 2058f83a728adf Michael Halcrow 2015-04-12 1109 :::::: The code at line 1097 was first introduced by commit :::::: 0b578f358a6a7afee2ddc48dd39c2972726187de ext4: decrypt only the needed blocks in ext4_block_write_begin() :::::: TO: Chandan Rajendra <chandan@linux.ibm.com> :::::: CC: Eric Biggers <ebiggers@google.com> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 44133 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com> To: kbuild-all@lists.01.org Subject: Re: [PATCH] fscrypt: Restore modular support Date: Tue, 24 Dec 2019 19:58:54 +0800 [thread overview] Message-ID: <201912241924.RWSD70yW%lkp@intel.com> (raw) In-Reply-To: <20191221143020.hbgeixvlmzt7nh54@gondor.apana.org.au> [-- Attachment #1: Type: text/plain, Size: 11353 bytes --] Hi Herbert, I love your patch! Yet something to improve: [auto build test ERROR on linux/master] [cannot apply to ext4/dev f2fs/dev-test linus/master tytso-fscrypt/master v5.5-rc3 next-20191220] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Herbert-Xu/fscrypt-Restore-modular-support/20191224-164226 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 1522d9da40bdfe502c91163e6d769332897201fa config: x86_64-rhel (attached as .config) compiler: gcc-7 (Debian 7.5.0-3) 7.5.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@intel.com> All errors (new ones prefixed by >>): ld: fs/super.o: in function `__put_super': fs/super.c:296: undefined reference to `fscrypt_sb_free' ld: fs/ext4/dir.o: in function `ext4_dir_open': >> fs/ext4/dir.c:617: undefined reference to `fscrypt_get_encryption_info' ld: fs/ext4/dir.o: in function `ext4_readdir': fs/ext4/dir.c:118: undefined reference to `fscrypt_get_encryption_info' >> ld: fs/ext4/dir.c:263: undefined reference to `fscrypt_fname_disk_to_usr' >> ld: fs/ext4/dir.c:288: undefined reference to `fscrypt_fname_free_buffer' >> ld: fs/ext4/dir.c:288: undefined reference to `fscrypt_fname_free_buffer' >> ld: fs/ext4/dir.c:288: undefined reference to `fscrypt_fname_free_buffer' >> ld: fs/ext4/dir.c:145: undefined reference to `fscrypt_fname_alloc_buffer' >> ld: fs/ext4/dir.c:288: undefined reference to `fscrypt_fname_free_buffer' >> ld: fs/ext4/dir.c:288: undefined reference to `fscrypt_fname_free_buffer' ld: fs/ext4/file.o: in function `ext4_file_open': >> fs/ext4/file.c:716: undefined reference to `fscrypt_file_open' ld: fs/ext4/ialloc.o: in function `__ext4_new_inode': >> fs/ext4/ialloc.c:772: undefined reference to `fscrypt_get_encryption_info' >> ld: fs/ext4/ialloc.c:1145: undefined reference to `fscrypt_inherit_context' ld: fs/ext4/inode.o: in function `ext4_block_write_begin': >> fs/ext4/inode.c:1097: undefined reference to `fscrypt_decrypt_pagecache_blocks' ld: fs/ext4/inode.o: in function `__ext4_block_zero_page_range': fs/ext4/inode.c:3704: undefined reference to `fscrypt_decrypt_pagecache_blocks' ld: fs/ext4/inode.o: in function `fscrypt_require_key': >> include/linux/fscrypt.h:548: undefined reference to `fscrypt_get_encryption_info' ld: fs/ext4/inode.o: in function `ext4_issue_zeroout': >> fs/ext4/inode.c:406: undefined reference to `fscrypt_zeroout_range' ld: fs/ext4/ioctl.o: in function `ext4_ioctl': >> fs/ext4/ioctl.c:1141: undefined reference to `fscrypt_ioctl_set_policy' >> ld: fs/ext4/ioctl.c:1211: undefined reference to `fscrypt_ioctl_get_key_status' >> ld: fs/ext4/ioctl.c:1186: undefined reference to `fscrypt_ioctl_get_policy' >> ld: fs/ext4/ioctl.c:1206: undefined reference to `fscrypt_ioctl_remove_key_all_users' >> ld: fs/ext4/ioctl.c:1201: undefined reference to `fscrypt_ioctl_remove_key' >> ld: fs/ext4/ioctl.c:1196: undefined reference to `fscrypt_ioctl_add_key' vim +1097 fs/ext4/inode.c ac27a0ec112a08 Dave Kleikamp 2006-10-11 1013 643fa9612bf1a2 Chandan Rajendra 2018-12-12 1014 #ifdef CONFIG_FS_ENCRYPTION 2058f83a728adf Michael Halcrow 2015-04-12 1015 static int ext4_block_write_begin(struct page *page, loff_t pos, unsigned len, 2058f83a728adf Michael Halcrow 2015-04-12 1016 get_block_t *get_block) 2058f83a728adf Michael Halcrow 2015-04-12 1017 { 09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 1018 unsigned from = pos & (PAGE_SIZE - 1); 2058f83a728adf Michael Halcrow 2015-04-12 1019 unsigned to = from + len; 2058f83a728adf Michael Halcrow 2015-04-12 1020 struct inode *inode = page->mapping->host; 2058f83a728adf Michael Halcrow 2015-04-12 1021 unsigned block_start, block_end; 2058f83a728adf Michael Halcrow 2015-04-12 1022 sector_t block; 2058f83a728adf Michael Halcrow 2015-04-12 1023 int err = 0; 2058f83a728adf Michael Halcrow 2015-04-12 1024 unsigned blocksize = inode->i_sb->s_blocksize; 2058f83a728adf Michael Halcrow 2015-04-12 1025 unsigned bbits; 0b578f358a6a7a Chandan Rajendra 2019-05-20 1026 struct buffer_head *bh, *head, *wait[2]; 0b578f358a6a7a Chandan Rajendra 2019-05-20 1027 int nr_wait = 0; 0b578f358a6a7a Chandan Rajendra 2019-05-20 1028 int i; 2058f83a728adf Michael Halcrow 2015-04-12 1029 2058f83a728adf Michael Halcrow 2015-04-12 1030 BUG_ON(!PageLocked(page)); 09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 1031 BUG_ON(from > PAGE_SIZE); 09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 1032 BUG_ON(to > PAGE_SIZE); 2058f83a728adf Michael Halcrow 2015-04-12 1033 BUG_ON(from > to); 2058f83a728adf Michael Halcrow 2015-04-12 1034 2058f83a728adf Michael Halcrow 2015-04-12 1035 if (!page_has_buffers(page)) 2058f83a728adf Michael Halcrow 2015-04-12 1036 create_empty_buffers(page, blocksize, 0); 2058f83a728adf Michael Halcrow 2015-04-12 1037 head = page_buffers(page); 2058f83a728adf Michael Halcrow 2015-04-12 1038 bbits = ilog2(blocksize); 09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 1039 block = (sector_t)page->index << (PAGE_SHIFT - bbits); 2058f83a728adf Michael Halcrow 2015-04-12 1040 2058f83a728adf Michael Halcrow 2015-04-12 1041 for (bh = head, block_start = 0; bh != head || !block_start; 2058f83a728adf Michael Halcrow 2015-04-12 1042 block++, block_start = block_end, bh = bh->b_this_page) { 2058f83a728adf Michael Halcrow 2015-04-12 1043 block_end = block_start + blocksize; 2058f83a728adf Michael Halcrow 2015-04-12 1044 if (block_end <= from || block_start >= to) { 2058f83a728adf Michael Halcrow 2015-04-12 1045 if (PageUptodate(page)) { 2058f83a728adf Michael Halcrow 2015-04-12 1046 if (!buffer_uptodate(bh)) 2058f83a728adf Michael Halcrow 2015-04-12 1047 set_buffer_uptodate(bh); 2058f83a728adf Michael Halcrow 2015-04-12 1048 } 2058f83a728adf Michael Halcrow 2015-04-12 1049 continue; 2058f83a728adf Michael Halcrow 2015-04-12 1050 } 2058f83a728adf Michael Halcrow 2015-04-12 1051 if (buffer_new(bh)) 2058f83a728adf Michael Halcrow 2015-04-12 1052 clear_buffer_new(bh); 2058f83a728adf Michael Halcrow 2015-04-12 1053 if (!buffer_mapped(bh)) { 2058f83a728adf Michael Halcrow 2015-04-12 1054 WARN_ON(bh->b_size != blocksize); 2058f83a728adf Michael Halcrow 2015-04-12 1055 err = get_block(inode, block, bh, 1); 2058f83a728adf Michael Halcrow 2015-04-12 1056 if (err) 2058f83a728adf Michael Halcrow 2015-04-12 1057 break; 2058f83a728adf Michael Halcrow 2015-04-12 1058 if (buffer_new(bh)) { 2058f83a728adf Michael Halcrow 2015-04-12 1059 if (PageUptodate(page)) { 2058f83a728adf Michael Halcrow 2015-04-12 1060 clear_buffer_new(bh); 2058f83a728adf Michael Halcrow 2015-04-12 1061 set_buffer_uptodate(bh); 2058f83a728adf Michael Halcrow 2015-04-12 1062 mark_buffer_dirty(bh); 2058f83a728adf Michael Halcrow 2015-04-12 1063 continue; 2058f83a728adf Michael Halcrow 2015-04-12 1064 } 2058f83a728adf Michael Halcrow 2015-04-12 1065 if (block_end > to || block_start < from) 2058f83a728adf Michael Halcrow 2015-04-12 1066 zero_user_segments(page, to, block_end, 2058f83a728adf Michael Halcrow 2015-04-12 1067 block_start, from); 2058f83a728adf Michael Halcrow 2015-04-12 1068 continue; 2058f83a728adf Michael Halcrow 2015-04-12 1069 } 2058f83a728adf Michael Halcrow 2015-04-12 1070 } 2058f83a728adf Michael Halcrow 2015-04-12 1071 if (PageUptodate(page)) { 2058f83a728adf Michael Halcrow 2015-04-12 1072 if (!buffer_uptodate(bh)) 2058f83a728adf Michael Halcrow 2015-04-12 1073 set_buffer_uptodate(bh); 2058f83a728adf Michael Halcrow 2015-04-12 1074 continue; 2058f83a728adf Michael Halcrow 2015-04-12 1075 } 2058f83a728adf Michael Halcrow 2015-04-12 1076 if (!buffer_uptodate(bh) && !buffer_delay(bh) && 2058f83a728adf Michael Halcrow 2015-04-12 1077 !buffer_unwritten(bh) && 2058f83a728adf Michael Halcrow 2015-04-12 1078 (block_start < from || block_end > to)) { dfec8a14fc9043 Mike Christie 2016-06-05 1079 ll_rw_block(REQ_OP_READ, 0, 1, &bh); 0b578f358a6a7a Chandan Rajendra 2019-05-20 1080 wait[nr_wait++] = bh; 2058f83a728adf Michael Halcrow 2015-04-12 1081 } 2058f83a728adf Michael Halcrow 2015-04-12 1082 } 2058f83a728adf Michael Halcrow 2015-04-12 1083 /* 2058f83a728adf Michael Halcrow 2015-04-12 1084 * If we issued read requests, let them complete. 2058f83a728adf Michael Halcrow 2015-04-12 1085 */ 0b578f358a6a7a Chandan Rajendra 2019-05-20 1086 for (i = 0; i < nr_wait; i++) { 0b578f358a6a7a Chandan Rajendra 2019-05-20 1087 wait_on_buffer(wait[i]); 0b578f358a6a7a Chandan Rajendra 2019-05-20 1088 if (!buffer_uptodate(wait[i])) 2058f83a728adf Michael Halcrow 2015-04-12 1089 err = -EIO; 2058f83a728adf Michael Halcrow 2015-04-12 1090 } 7e0785fce14f75 Chandan Rajendra 2019-05-20 1091 if (unlikely(err)) { 2058f83a728adf Michael Halcrow 2015-04-12 1092 page_zero_new_buffers(page, from, to); 0b578f358a6a7a Chandan Rajendra 2019-05-20 1093 } else if (IS_ENCRYPTED(inode) && S_ISREG(inode->i_mode)) { 0b578f358a6a7a Chandan Rajendra 2019-05-20 1094 for (i = 0; i < nr_wait; i++) { 0b578f358a6a7a Chandan Rajendra 2019-05-20 1095 int err2; 0b578f358a6a7a Chandan Rajendra 2019-05-20 1096 0b578f358a6a7a Chandan Rajendra 2019-05-20 @1097 err2 = fscrypt_decrypt_pagecache_blocks(page, blocksize, 0b578f358a6a7a Chandan Rajendra 2019-05-20 1098 bh_offset(wait[i])); 0b578f358a6a7a Chandan Rajendra 2019-05-20 1099 if (err2) { 0b578f358a6a7a Chandan Rajendra 2019-05-20 1100 clear_buffer_uptodate(wait[i]); 0b578f358a6a7a Chandan Rajendra 2019-05-20 1101 err = err2; 0b578f358a6a7a Chandan Rajendra 2019-05-20 1102 } 0b578f358a6a7a Chandan Rajendra 2019-05-20 1103 } 7e0785fce14f75 Chandan Rajendra 2019-05-20 1104 } 7e0785fce14f75 Chandan Rajendra 2019-05-20 1105 2058f83a728adf Michael Halcrow 2015-04-12 1106 return err; 2058f83a728adf Michael Halcrow 2015-04-12 1107 } 2058f83a728adf Michael Halcrow 2015-04-12 1108 #endif 2058f83a728adf Michael Halcrow 2015-04-12 1109 :::::: The code@line 1097 was first introduced by commit :::::: 0b578f358a6a7afee2ddc48dd39c2972726187de ext4: decrypt only the needed blocks in ext4_block_write_begin() :::::: TO: Chandan Rajendra <chandan@linux.ibm.com> :::::: CC: Eric Biggers <ebiggers@google.com> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 44133 bytes --]
next prev parent reply other threads:[~2019-12-24 11:59 UTC|newest] Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-12-21 14:30 [PATCH] fscrypt: Restore modular support Herbert Xu 2019-12-21 23:44 ` Eric Biggers 2019-12-22 8:41 ` [v2 PATCH] fscrypt: Allow modular crypto algorithms Herbert Xu 2019-12-22 16:45 ` Eric Biggers 2019-12-23 7:46 ` [v3 " Herbert Xu 2019-12-24 22:38 ` Eric Biggers 2019-12-27 2:47 ` [v4 " Herbert Xu 2020-01-03 17:04 ` Eric Biggers 2019-12-24 11:44 ` [PATCH] fscrypt: Restore modular support kbuild test robot 2019-12-24 11:44 ` kbuild test robot 2019-12-24 11:58 ` kbuild test robot [this message] 2019-12-24 11:58 ` kbuild test robot
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=201912241924.RWSD70yW%lkp@intel.com \ --to=lkp@intel.com \ --cc=chandan@linux.vnet.ibm.com \ --cc=ebiggers@kernel.org \ --cc=herbert@gondor.apana.org.au \ --cc=jaegeuk@kernel.org \ --cc=kbuild-all@lists.01.org \ --cc=linux-fscrypt@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=tytso@mit.edu \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.