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 --]
prev parent reply other threads:[~2019-12-24 11:59 UTC|newest]
Thread overview: 10+ 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:58 ` kbuild test robot [this message]
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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox