From: Jeff Liu <jeff.liu@oracle.com>
To: "Michael L. Semon" <mlsemon35@gmail.com>
Cc: "xfs@oss.sgi.com" <xfs@oss.sgi.com>
Subject: Re: [PATCH v2 7/8] xfs: Add xfs_log_rlimit.[c|h]
Date: Fri, 17 May 2013 17:40:43 +0800 [thread overview]
Message-ID: <5195FB1B.9000803@oracle.com> (raw)
In-Reply-To: <5195EC13.2060502@gmail.com>
Hi Michael,
Are you compiling kernel on 32-bit system?
Looks this issue is regarding 64-bit division at roundup() on 32-bit if so.
Could you please try below fix?
diff --git a/fs/xfs/xfs_log_rlimit.c b/fs/xfs/xfs_log_rlimit.c
index 3e84d46..49a88cc 100644
--- a/fs/xfs/xfs_log_rlimit.c
+++ b/fs/xfs/xfs_log_rlimit.c
@@ -127,7 +127,7 @@ xfs_log_validate_logspace(
* Also, the log size should be a multiple of the log stripe unit, round
* it up to lsunit boundary if lsunit is specified.
*/
- minlblks = lsunit ? (roundup(BTOBB(maxlres), lsunit) + 2 * lsunit) * 2 :
+ minlblks = lsunit ? (roundup((int)BTOBB(maxlres), lsunit) + 2 * lsunit) * 2 :
BTOBB(maxlres) * 2;
if (log->l_logBBsize < minlblks) {
Thanks,
-Jeff
On 05/17/2013 04:36 PM, Michael L. Semon wrote:
> On 05/17/2013 01:39 AM, Jeff Liu wrote:
>> From: Jie Liu <jeff.liu@oracle.com>
>>
>> Add source files for xfs_log_rlimit.[c|h].
>> The new source would be used for the log space validation.
>
> Update: To build the kernel, I'm getting by on a sysadmin hack that
> looks like this:
>
> --- linux/fs/xfs/xfs_log_rlimit.c.orig 2013-05-17 03:36:28.983493357 -0400
> +++ linux/fs/xfs/xfs_log_rlimit.c 2013-05-17 04:21:07.090661828 -0400
> @@ -127,8 +127,10 @@
> * Also, the log size should be a multiple of the log stripe unit, round
> * it up to lsunit boundary if lsunit is specified.
> */
> - minlblks = lsunit ? (roundup(BTOBB(maxlres), lsunit) + 2 * lsunit) * 2 :
> - BTOBB(maxlres) * 2;
> + minlblks = lsunit ?
> + (roundup((const int)(BTOBB(maxlres)), lsunit) +
> + 2 * lsunit) * 2 :
> + BTOBB(maxlres) * 2;
>
> if (log->l_logBBsize < minlblks) {
> xfs_crit(mp,
>
> However, that makes no sense. There is a roundup in <linux/kernel.h>
> that goes like this:
>
> /* The `const' in roundup() prevents gcc-3.3 from calling __divdi3 */
> #define roundup(x, y) ( \
> { \
> const typeof(y) __y = y; \
> (((x) + (__y - 1)) / __y) * __y; \
> } \
> )
>
> Okay, so that gave me the inspiration to cast the type so gcc-4.8.0
> wouldn't call __divdi3. But why did this make a difference?
>
> Disclaimer: I'm not a C macro guru, so I don't know which random
> sequence of punctuation keys would make roundup() happy.
>
> Michael
>
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
>
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2013-05-17 9:40 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-17 5:39 [PATCH v2 7/8] xfs: Add xfs_log_rlimit.[c|h] Jeff Liu
2013-05-17 7:51 ` Michael L. Semon
2013-05-17 8:36 ` Michael L. Semon
2013-05-17 9:40 ` Jeff Liu [this message]
2013-05-17 10:29 ` Dave Chinner
2013-05-17 10:34 ` Jeff Liu
2013-05-17 19:31 ` Michael L. Semon
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=5195FB1B.9000803@oracle.com \
--to=jeff.liu@oracle.com \
--cc=mlsemon35@gmail.com \
--cc=xfs@oss.sgi.com \
/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