From: Ye Bin <yebin10@huawei.com>
To: <tytso@mit.edu>, <adilger.kernel@dilger.ca>,
<linux-ext4@vger.kernel.org>
Cc: <linux-kernel@vger.kernel.org>, <jack@suse.cz>,
Ye Bin <yebin10@huawei.com>
Subject: [PATCH -next v5 1/3] ext4: compare to local seq and nodename when check conflict
Date: Wed, 20 Oct 2021 11:18:00 +0800 [thread overview]
Message-ID: <20211020031802.2312022-2-yebin10@huawei.com> (raw)
In-Reply-To: <20211020031802.2312022-1-yebin10@huawei.com>
As mmp and check_mmp is point to the same data, so there will never
detect conflict.
To solve this issue just compare to local data.
Signed-off-by: Ye Bin <yebin10@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
---
fs/ext4/ext4.h | 5 ++++-
fs/ext4/mmp.c | 9 +++++----
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 404dd50856e5..9a487a558787 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -2601,6 +2601,8 @@ struct ext4_features {
#define EXT4_MMP_SEQ_FSCK 0xE24D4D50U /* mmp_seq value when being fscked */
#define EXT4_MMP_SEQ_MAX 0xE24D4D4FU /* maximum valid mmp_seq value */
+#define EXT4_MMP_NODENAME_LEN 64 /* mmp_nodename length */
+
struct mmp_struct {
__le32 mmp_magic; /* Magic number for MMP */
__le32 mmp_seq; /* Sequence no. updated periodically */
@@ -2610,7 +2612,8 @@ struct mmp_struct {
* purposes and do not affect the correctness of the algorithm
*/
__le64 mmp_time; /* Time last updated */
- char mmp_nodename[64]; /* Node which last updated MMP block */
+ /* Node which last updated MMP block */
+ char mmp_nodename[EXT4_MMP_NODENAME_LEN];
char mmp_bdevname[32]; /* Bdev which last updated MMP block */
/*
diff --git a/fs/ext4/mmp.c b/fs/ext4/mmp.c
index cebea4270817..97d5a8136eb2 100644
--- a/fs/ext4/mmp.c
+++ b/fs/ext4/mmp.c
@@ -138,6 +138,7 @@ static int kmmpd(void *data)
unsigned mmp_check_interval;
unsigned long last_update_time;
unsigned long diff;
+ char nodename[EXT4_MMP_NODENAME_LEN];
int retval = 0;
mmp_block = le64_to_cpu(es->s_mmp_block);
@@ -153,8 +154,8 @@ static int kmmpd(void *data)
BUILD_BUG_ON(sizeof(mmp->mmp_bdevname) < BDEVNAME_SIZE);
bdevname(bh->b_bdev, mmp->mmp_bdevname);
- memcpy(mmp->mmp_nodename, init_utsname()->nodename,
- sizeof(mmp->mmp_nodename));
+ memcpy(nodename, init_utsname()->nodename, sizeof(nodename));
+ memcpy(mmp->mmp_nodename, nodename, sizeof(mmp->mmp_nodename));
while (!kthread_should_stop() && !sb_rdonly(sb)) {
if (!ext4_has_feature_mmp(sb)) {
@@ -206,8 +207,8 @@ static int kmmpd(void *data)
}
mmp_check = (struct mmp_struct *)(bh_check->b_data);
- if (mmp->mmp_seq != mmp_check->mmp_seq ||
- memcmp(mmp->mmp_nodename, mmp_check->mmp_nodename,
+ if (seq != mmp_check->mmp_seq ||
+ memcmp(nodename, mmp_check->mmp_nodename,
sizeof(mmp->mmp_nodename))) {
dump_mmp_msg(sb, mmp_check,
"Error while updating MMP info. "
--
2.31.1
next prev parent reply other threads:[~2021-10-20 3:05 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-20 3:17 [PATCH -next v5 0/3] Fix some issues about mmp Ye Bin
2021-10-20 3:18 ` Ye Bin [this message]
2021-10-20 3:18 ` [PATCH -next v5 2/3] ext4: remove useless bh_check variable Ye Bin
2021-10-20 3:18 ` [PATCH -next v5 3/3] ext4: simplify read_mmp_block fucntion Ye Bin
2021-11-08 2:11 ` [PATCH -next v5 0/3] Fix some issues about mmp yebin
2021-12-01 7:39 ` yebin
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=20211020031802.2312022-2-yebin10@huawei.com \
--to=yebin10@huawei.com \
--cc=adilger.kernel@dilger.ca \
--cc=jack@suse.cz \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tytso@mit.edu \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.