Message ID | 20211019064959.625557-2-yebin10@huawei.com |
---|---|
State | New |
Headers | show |
Series | Fix some issues about mmp | expand |
On Tue 19-10-21 14:49:55, Ye Bin wrote: > 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@huawei.com> ... > @@ -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. Thanks for the patch. After discussing what MMP guards against and what it does not protect, I don't think this change is actually needed. Under normal conditions we expect kmmpd() to only write to MMP block, checking of MMP block is done only in ext4_multi_mount_protect(). And for checking there to trigger, using 'seq' starting from 1 in kmmpd is enough... Honza
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.
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@huawei.com> --- fs/ext4/mmp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)