On Thursday 02 April 2015, Karel Zak wrote: > On Wed, Apr 01, 2015 at 02:04:27PM +0200, Ruediger Meier wrote: > > ts_init_subtest "umount" > > [ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT > > $TS_CMD_MOUNT $DEVICE $TS_MOUNTPOINT &> /dev/null > > OLD_SUM=$(mtab_checksum) > > ( > > ulimit -f 1 > > $TS_CMD_UMOUNT $TS_MOUNTPOINT &> /dev/null > > ) &> /dev/null > > NEW_SUM=$(mtab_checksum) > > $TS_CMD_UMOUNT $TS_MOUNTPOINT &> /dev/null > > [ $NEW_SUM = $OLD_SUM ] && echo "OK: mtab unmodified by umount" >> > > $TS_OUTPUT > > ts_finalize_subtest > > ........... > > > > I do not fully understand what is expected. Obviously the first > > "umount" should NOT modify /etc/mtab. But should it umount or not, > > or doesn't matter? Why we call a second umount then? > > I guess the second umount is just copy & past (from mount test) and Ah, now it makes sense. So the first umount should work and we could check "ismounted" too. BTW could it be that in past "umount" always removed the mtab entry like "--fake" still does for umounted devices? > it's there to be sure that the device has been really unmounted (and > this is unnecessary because ts_device_deinit() calls umount too). > > The problem is that in case that the first umount works we are > > leaving the test with a broken mtab file. This is not nice and also > > problematic because later tests may find a mounted /dev/loop0 in > > /etc/mtab. > > It would be probably better to replace the second umount with "umount > --fake" to only remove entry from mtab. Ah that's good. I'll send a patch with some other fixes later. The umount part would look like this: $TS_CMD_UMOUNT $TS_MOUNTPOINT &> /dev/null ) &> /dev/null NEW_SUM=$(mtab_checksum) -$TS_CMD_UMOUNT $TS_MOUNTPOINT &> /dev/null [ $NEW_SUM = $OLD_SUM ] && echo "OK: mtab unmodified by umount" >> $TS_OUTPUT +ts_is_mounted $DEVICE && echo "FAIL: $DEVICE is still mounted" >> $TS_OUTPUT +# repair /etc/mtab +$TS_CMD_UMOUNT --fake $TS_MOUNTPOINT &> /dev/null +ts_is_mounted $DEVICE && ts_die "$DEVICE is still mounted" ts_finalize_subtest > > Should we restore the original mtab? I guess it's a bit unsafe to > > copy back a backed up one. Or is there a way to "repair/sync" > > from /proc/mounts.? > > Don't use /proc/mounts. It's bad idea as the files maybe very > different. > > use the --fake or you can try to redirect libmount to use > non-standard mtab by env. variable LIBMOUNT_MTAB=, but it will > increase complexity of the test. > > Karel -- To unsubscribe from this list: send the line "unsubscribe util-linux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html