lkml.org 
[lkml]   [2021]   [Sep]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH -next v2 0/6] Fix some issues about mmp
Date
I test mmp function as follow steps:
1. Inject delay 5s in ext4_multi_mount_protect function after
"skip:" label.
2. Share HostA block device(sda) with HostB(nbd0) by NBD.
3. Enable mmp feature when mkfs.ext4 sda.
4. Mount sda and nbd0 at the same time.

I found kmmpd never trigger detect multi-mount. Reason is as follow:
1. Kmmpd init seq with 0, if two host have same nodename, will lead to
detect confliction very slow, even never detect confliction.
2. When detect confliction in kmmpd, we get 'check_bh' is same with 'bh'.
so we compare data with itself.
3. We only trigger detect when ”diff > mmp_check_interval * HZ“,
'mmp_check_interval' is double of 'mmp_update_interval', 'diff' is
about 'mmp_update_interval'. So 'diff' is little than 'mmp_check_interval * HZ'
normaly.

And i also found that 'check_interval' value store in disk is not sure
after umount.

v1->v2:
Fix 'last_check_time' not initialized before checking.

Ye Bin (6):
ext4: init seq with random value in kmmpd
ext4: introduce last_check_time record previous check time
ext4: compare to local seq and nodename when check conflict
ext4: avoid to re-read mmp check data get from page cache
ext4: avoid to double free s_mmp_bh
ext4: fix possible store wrong check interval value in disk when
umount

fs/ext4/mmp.c | 77 ++++++++++++++++++++++++++++-----------------------
1 file changed, 43 insertions(+), 34 deletions(-)

--
2.31.1

\
 
 \ /
  Last update: 2021-09-11 10:51    [W:0.613 / U:0.008 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site