[LTP] [PATCH v3] move_mount03: check allow to mount beneath top mount

Martin Doucha mdoucha@suse.cz
Wed Mar 20 10:25:40 CET 2024


On 20. 03. 24 8:43, Petr Vorel wrote:
>> On 28. 12. 23 3:55, Wei Gao via ltp wrote:
>>> +static void cleanup(void)
>>> +{
>>> +	if (tst_is_mounted_at_tmpdir(DIRA))
>>> +		SAFE_UMOUNT(DIRA);
>>> +
>>> +	if (tst_is_mounted_at_tmpdir(DIRB))
>>> +		SAFE_UMOUNT(DIRB);
> 
>> I believe that DIRB may need to be unmounted twice here. Also please close
>> fda and fdb here if they're still open.
> 
> What would do the second mount? move_mount() ?
> 
> There are SAFE_UMOUNT() in the end of the testing function, that's why usually
> even these 2 SAFE_UMOUNT() aren't needed (but obviously we need to add them if
> SAFE_TOUCH() or something quits testing early):
> 
> move_mount03.c:92: TPASS: move_mount(fda, "", fdb, "", MOVE_MOUNT_BENEATH | MOVE_MOUNT_F_EMPTY_PATH | MOVE_MOUNT_T_EMPTY_PATH) passed
> move_mount03.c:98: TPASS: access(DIRB "/B", F_OK) passed
> move_mount03.c:99: TINFO: Umounting /tmp/LTP_movqeTZGu/LTP_DIR_B
> move_mount03.c:100: TPASS: access(DIRB "/A", F_OK) passed
> move_mount03.c:102: TINFO: Umounting /tmp/LTP_movqeTZGu/LTP_DIR_B
> move_mount03.c:103: TINFO: Umounting /tmp/LTP_movqeTZGu/LTP_DIR_A
> tst_device.c:442: TINFO: No device is mounted at /tmp/LTP_movqeTZGu/LTP_DIR_A
> tst_device.c:442: TINFO: No device is mounted at /tmp/LTP_movqeTZGu/LTP_DIR_B

Yes, open_tree() was called with OPEN_TREE_CLONE so after move_mount(), 
the mounts look like this:
- tmpfs[1] at DIRA
- tmpfs[1] at DIRB
- tmpfs[2] at DIRB

If either SAFE_CLOSE() immediately after move_mount() fails, cleanup() 
will unmount tmpfs[1] from DIRA and tmpfs[2] from DIRB but leave 
tmpfs[1] mounted at DIRB.

-- 
Martin Doucha   mdoucha@suse.cz
SW Quality Engineer
SUSE LINUX, s.r.o.
CORSO IIa
Krizikova 148/34
186 00 Prague 8
Czech Republic



More information about the ltp mailing list