From: Chandan Rajendra <chandan@linux.ibm.com>
To: linux-xfs@vger.kernel.org
Cc: Chandan Rajendra <chandan@linux.ibm.com>,
darrick.wong@oracle.com, sandeen@sandeen.net
Subject: [PATCH] mkfs: Round down log device size if aligned value is larger than device size
Date: Sun, 17 Mar 2019 14:49:43 +0530 [thread overview]
Message-ID: <20190317091943.18222-1-chandan@linux.ibm.com> (raw)
When using a disk of size 798903808 bytes as the log device and when
having a log stripe unit size of 32768, align_log_size() rounds up log
device size to 195048 4k blocks i.e. 798916608. This value is larger
than the device size. Hence the last call to write(2) inside
libxfs_device_zero() would end up returning an error.
To fix this bug, we now round down the log device size if the newly
computed size is larger than the actual log device size.
Signed-off-by: Chandan Rajendra <chandan@linux.ibm.com>
---
mkfs/xfs_mkfs.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
index d1387ddf..bd05d071 100644
--- a/mkfs/xfs_mkfs.c
+++ b/mkfs/xfs_mkfs.c
@@ -2938,7 +2938,8 @@ _("log size %lld is not a multiple of the log stripe unit %d\n"),
/* If the log is too large, round down instead of round up */
if ((tmp_logblocks > XFS_MAX_LOG_BLOCKS) ||
- ((tmp_logblocks << cfg->blocklog) > XFS_MAX_LOG_BYTES)) {
+ ((tmp_logblocks << cfg->blocklog) > XFS_MAX_LOG_BYTES) ||
+ (tmp_logblocks > cfg->logblocks)) {
tmp_logblocks = (cfg->logblocks / sunit) * sunit;
}
cfg->logblocks = tmp_logblocks;
--
2.19.1
next reply other threads:[~2019-03-17 9:19 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-17 9:19 Chandan Rajendra [this message]
2019-03-18 15:57 ` [PATCH] mkfs: Round down log device size if aligned value is larger than device size Darrick J. Wong
2019-03-19 5:10 ` [PATCH V2] " Chandan Rajendra
2019-03-19 15:17 ` Darrick J. Wong
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=20190317091943.18222-1-chandan@linux.ibm.com \
--to=chandan@linux.ibm.com \
--cc=darrick.wong@oracle.com \
--cc=linux-xfs@vger.kernel.org \
--cc=sandeen@sandeen.net \
/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