[Cluster-devel] [gfs2:page_mkwrite-off-by-one /7] fs/f2fs/file.c:96: undefined reference to `page_mkwrite_check_truncate'
kbuild test robot
lkp at intel.com
Sat Feb 15 07:47:09 UTC 2020
tree: https://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git page_mkwrite-off-by-one
head: 29ccadba67d4954fb1ce96b1f4c9a57d04e740d8
commit: 383c2d5898337fafa2bc548aa133a8b8af1003fe [/7] f2fs: Switch to page_mkwrite_check_truncate
config: microblaze-randconfig-a001-20200215 (attached as .config)
compiler: microblaze-linux-gcc (GCC) 7.5.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 383c2d5898337fafa2bc548aa133a8b8af1003fe
# save the attached .config to linux build tree
GCC_VERSION=7.5.0 make.cross ARCH=microblaze
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp at intel.com>
All errors (new ones prefixed by >>):
fs/buffer.o: In function `block_page_mkwrite':
fs/buffer.c:2505: undefined reference to `page_mkwrite_check_truncate'
fs/iomap/buffered-io.o: In function `iomap_page_mkwrite':
fs/iomap/buffered-io.c:1084: undefined reference to `page_mkwrite_check_truncate'
fs/ext4/inode.o: In function `ext4_page_mkwrite':
fs/ext4/inode.c:5939: undefined reference to `page_mkwrite_check_truncate'
fs/f2fs/file.o: In function `f2fs_vm_page_mkwrite':
>> fs/f2fs/file.c:96: undefined reference to `page_mkwrite_check_truncate'
drivers/md/bcache/bset.o: In function `bch_btree_iter_next':
drivers/md/bcache/bset.c:1155: undefined reference to `_GLOBAL_OFFSET_TABLE_'
Segmentation fault
vim +96 fs/f2fs/file.c
47
48 static vm_fault_t f2fs_vm_page_mkwrite(struct vm_fault *vmf)
49 {
50 struct page *page = vmf->page;
51 struct inode *inode = file_inode(vmf->vma->vm_file);
52 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
53 struct dnode_of_data dn;
54 bool need_alloc = true;
55 int offset, err = 0;
56
57 if (unlikely(f2fs_cp_error(sbi))) {
58 err = -EIO;
59 goto err;
60 }
61
62 if (!f2fs_is_checkpoint_ready(sbi)) {
63 err = -ENOSPC;
64 goto err;
65 }
66
67 #ifdef CONFIG_F2FS_FS_COMPRESSION
68 if (f2fs_compressed_file(inode)) {
69 int ret = f2fs_is_compressed_cluster(inode, page->index);
70
71 if (ret < 0) {
72 err = ret;
73 goto err;
74 } else if (ret) {
75 if (ret < F2FS_I(inode)->i_cluster_size) {
76 err = -EAGAIN;
77 goto err;
78 }
79 need_alloc = false;
80 }
81 }
82 #endif
83 /* should do out of any locked page */
84 if (need_alloc)
85 f2fs_balance_fs(sbi, true);
86
87 sb_start_pagefault(inode->i_sb);
88
89 f2fs_bug_on(sbi, f2fs_has_inline_data(inode));
90
91 file_update_time(vmf->vma->vm_file);
92 down_read(&F2FS_I(inode)->i_mmap_sem);
93 lock_page(page);
94 offset = -EFAULT;
95 if (likely(PageUptodate(page)))
> 96 offset = page_mkwrite_check_truncate(page, inode);
97 if (unlikely(offset < 0)) {
98 unlock_page(page);
99 err = offset;
100 goto out_sem;
101 }
102
103 if (need_alloc) {
104 /* block allocation */
105 __do_map_lock(sbi, F2FS_GET_BLOCK_PRE_AIO, true);
106 set_new_dnode(&dn, inode, NULL, NULL, 0);
107 err = f2fs_get_block(&dn, page->index);
108 f2fs_put_dnode(&dn);
109 __do_map_lock(sbi, F2FS_GET_BLOCK_PRE_AIO, false);
110 if (err) {
111 unlock_page(page);
112 goto out_sem;
113 }
114 }
115
116 /* fill the page */
117 f2fs_wait_on_page_writeback(page, DATA, false, true);
118
119 /* wait for GCed page writeback via META_MAPPING */
120 f2fs_wait_on_block_writeback(inode, dn.data_blkaddr);
121
122 /*
123 * check to see if the page is mapped already (no holes)
124 */
125 if (PageMappedToDisk(page))
126 goto out_sem;
127
128 if (offset != PAGE_SIZE)
129 zero_user_segment(page, offset, PAGE_SIZE);
130 set_page_dirty(page);
131 if (!PageUptodate(page))
132 SetPageUptodate(page);
133
134 f2fs_update_iostat(sbi, APP_MAPPED_IO, F2FS_BLKSIZE);
135 f2fs_update_time(sbi, REQ_TIME);
136
137 trace_f2fs_vm_page_mkwrite(page, DATA);
138 out_sem:
139 up_read(&F2FS_I(inode)->i_mmap_sem);
140
141 sb_end_pagefault(inode->i_sb);
142 err:
143 return block_page_mkwrite_return(err);
144 }
145
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 29868 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/cluster-devel/attachments/20200215/66420b66/attachment.gz>
More information about the Cluster-devel
mailing list