OpenCloudOS-Kernel/fs/hfsplus
Geert Uytterhoeven a99b7069aa hfsplus: Fix undefined __divdi3 in hfsplus_init_header_node()
ERROR: "__divdi3" [fs/hfsplus/hfsplus.ko] undefined!

Introduced by commit 099e9245e0 ("hfsplus: implement attributes file's
header node initialization code").

i_size_read() returns loff_t, which is long long, i.e.  64-bit.  node_size
is size_t, which is either 32-bit or 64-bit.  Hence
"i_size_read(attr_file) / node_size" is a 64-by-32 or 64-by-64 division,
causing (some versions of) gcc to emit a call to __divdi3().

Fortunately node_size is actually 16-bit, as the sole caller of
hfsplus_init_header_node() passes a u16.  Hence change its type from
size_t to u16, and use do_div() to perform a 64-by-32 division.

Not seen in m68k/allmodconfig in -next, so it really depends on the
verion of gcc.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Vyacheslav Dubeyko <slava@dubeyko.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-11-15 09:32:23 +09:00
..
Kconfig hfsplus: add necessary declarations for POSIX ACLs support 2013-09-11 15:59:00 -07:00
Makefile hfsplus: integrate POSIX ACLs support into driver 2013-09-11 15:59:01 -07:00
acl.h hfsplus: add necessary declarations for POSIX ACLs support 2013-09-11 15:59:00 -07:00
attributes.c hfs/hfsplus: convert printks to pr_<level> 2013-04-30 17:04:05 -07:00
bfind.c hfs/hfsplus: convert printks to pr_<level> 2013-04-30 17:04:05 -07:00
bitmap.c hfsplus: remove duplicated message prefix in hfsplus_block_free() 2013-04-30 17:04:05 -07:00
bnode.c hfs/hfsplus: convert printks to pr_<level> 2013-04-30 17:04:05 -07:00
brec.c hfs/hfsplus: convert printks to pr_<level> 2013-04-30 17:04:05 -07:00
btree.c hfsplus: add metadata file's clump size calculation functionality 2013-11-13 12:09:32 +09:00
catalog.c hfs/hfsplus: convert printks to pr_<level> 2013-04-30 17:04:05 -07:00
dir.c hfsplus: integrate POSIX ACLs support into driver 2013-09-11 15:59:01 -07:00
extents.c hfsplus: add error propagation to __hfsplus_ext_write_extent() 2013-04-30 17:04:05 -07:00
hfsplus_fs.h hfsplus: implement attributes file creation functionality 2013-11-13 12:09:32 +09:00
hfsplus_raw.h hfsplus: implement attributes file's header node initialization code 2013-11-13 12:09:32 +09:00
inode.c truncate: drop 'oldsize' truncate_pagecache() parameter 2013-09-12 15:38:02 -07:00
ioctl.c hfsplus: add support of manipulation by attributes file 2013-02-27 19:10:10 -08:00
options.c hfs/hfsplus: convert printks to pr_<level> 2013-04-30 17:04:05 -07:00
part_tbl.c hfsplus: ensure bio requests are not smaller than the hardware sectors 2011-07-22 16:37:44 +02:00
posix_acl.c hfsplus: implement POSIX ACLs support 2013-09-11 15:59:01 -07:00
super.c hfsplus: implement attributes file creation functionality 2013-11-13 12:09:32 +09:00
tables.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
unicode.c Don't pass inode to ->d_hash() and ->d_compare() 2013-06-29 12:57:36 +04:00
wrapper.c hfs/hfsplus: convert printks to pr_<level> 2013-04-30 17:04:05 -07:00
xattr.c hfsplus: Fix undefined __divdi3 in hfsplus_init_header_node() 2013-11-15 09:32:23 +09:00
xattr.h hfsplus: integrate POSIX ACLs support into driver 2013-09-11 15:59:01 -07:00
xattr_security.c hfsplus: integrate POSIX ACLs support into driver 2013-09-11 15:59:01 -07:00
xattr_trusted.c hfsplus: rework functionality of getting, setting and deleting of extended attributes 2013-02-27 19:10:10 -08:00
xattr_user.c hfsplus: rework functionality of getting, setting and deleting of extended attributes 2013-02-27 19:10:10 -08:00