[PATCH -next v3 1/5] ext4: init 'seq' with the value which set in 'ext4_multi_mount_protect'

From: Ye Bin
Date: Tue Oct 19 2021 - 02:37:47 EST


If two host have the same nodename, and seq start from 0, May cause the
detection mechanism to fail.
So init 'seq' with the value which set in 'ext4_multi_mount_protect' to
accelerate conflict detection.

Signed-off-by: Ye Bin <yebin10@xxxxxxxxxx>
---
fs/ext4/mmp.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/ext4/mmp.c b/fs/ext4/mmp.c
index cebea4270817..11627ff002d3 100644
--- a/fs/ext4/mmp.c
+++ b/fs/ext4/mmp.c
@@ -132,7 +132,7 @@ static int kmmpd(void *data)
struct buffer_head *bh = EXT4_SB(sb)->s_mmp_bh;
struct mmp_struct *mmp;
ext4_fsblk_t mmp_block;
- u32 seq = 0;
+ u32 seq;
unsigned long failed_writes = 0;
int mmp_update_interval = le16_to_cpu(es->s_mmp_update_interval);
unsigned mmp_check_interval;
@@ -143,6 +143,7 @@ static int kmmpd(void *data)
mmp_block = le64_to_cpu(es->s_mmp_block);
mmp = (struct mmp_struct *)(bh->b_data);
mmp->mmp_time = cpu_to_le64(ktime_get_real_seconds());
+ seq = le32_to_cpu(mmp->mmp_seq);
/*
* Start with the higher mmp_check_interval and reduce it if
* the MMP block is being updated on time.
--
2.31.1