[PATCH] xfs: fix 32bit __divdi3 undefined
Mark Tinguely
tinguely at sgi.com
Wed Apr 16 17:30:48 CDT 2014
On 04/16/14 17:10, Dave Chinner wrote:
> On Wed, Apr 16, 2014 at 04:51:56PM -0500, Mark Tinguely wrote:
>> The roundup in commit 68c1fb5d should be a roundup_64()
>> because it is desired to round a 64 bit type by an integer
>> and that will result in a 64 bit value. On 32 bit machines
>> using roundup() in this case will result in the error:
>>
>> ERROR: "__divdi3" [fs/xfs/xfs.ko] undefined!
>>
>> Reported-by: Paul Gortmaker<paul.gortmaker at windriver.com>
>> Tested-by: Paul Gortmaker<paul.gortmaker at windriver.com>
>> Signed-off-by: Mark Tinguely<tinguely at sgi.com>
>> ---
>> fs/xfs/xfs_aops.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> Index: b/fs/xfs/xfs_aops.c
>> ===================================================================
>> --- a/fs/xfs/xfs_aops.c
>> +++ b/fs/xfs/xfs_aops.c
>> @@ -1365,7 +1365,7 @@ __xfs_get_blocks(
>> if (offset< i_size_read(inode)&&
>> offset + mapping_size>= i_size_read(inode)) {
>> /* limit mapping to block that spans EOF */
>> - mapping_size = roundup(i_size_read(inode) - offset,
>> + mapping_size = roundup_64(i_size_read(inode) - offset,
>> 1<< inode->i_blkbits);
>> }
>> if (mapping_size> LONG_MAX)
>
> I'm not going to apply this as a patch - I'm going to rebase the
> branch with the fix in the original patch so we don't have a bisect
> breakage in the branch. Don't worry, I'll add the fact you fixed the
> bug into the commit message...
>
> Cheers,
>
> Dave.
Makes sense.
--Mark.
More information about the xfs
mailing list