On 2019/12/25 21:04, Pavel Machek wrote: > On Sun 2019-12-22 16:49:17, Pavel Machek wrote: >> Hi! >> >> I'm getting this: >> >> LD .tmp_vmlinux1 >> ld: fs/f2fs/file.o: in function `f2fs_truncate_blocks': >> file.c:(.text+0x2968): undefined reference to `__udivdi3' >> make: *** [Makefile:1079: vmlinux] Error 1 >> >> when attempting to compile kernel for x86-32. > > David bisected it: > > https://bugzilla.kernel.org/show_bug.cgi?id=205967 > > And the bug is actually easy to see: > > +int f2fs_truncate_blocks(struct inode *inode, u64 from, bool lock) > +{ > + u64 free_from = from; > + > + /* > + * for compressed file, only support cluster size > + * aligned truncation. > + */ > + if (f2fs_compressed_file(inode)) { > + size_t cluster_size = PAGE_SIZE << > + F2FS_I(inode)->i_log_cluster_size; > + > + free_from = roundup(from, cluster_size); > > #define roundup(x, y) ( \ > { \ > typeof(y) __y = y; \ > (((x) + (__y - 1)) / __y) * __y; \ > } \ > > div64 is needed instead of div in the roundup macro. Or actually... It > is quite stupid to use roundup like this on value that is power of > two, right?
This has been fixed in dev branch, could you check that? People still saw this issue because linux-next did not update after we fix this bug. https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git/commit/?h=dev Thanks, > > Best regards, > Pavel > _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
