I am writing/reading to an SSD over NVMe. I would like to unmounts the SSD partitions and remount them after writing and before reading so as to avoid caching problems. It seems when I try to perform this operation, I get an error saying that the device is busy and it does not perform this action.
Here are the commands
/root/bin/mountfs -u sleep 5 /root/bin/mountfs -m sleep 10
Here is mountfs
#!/bin/bash # Mount/unmount ext4 file systems exit_status=1 if [ "-m" = "$1" ] then mount -t ext4 /fsmnt/fs1 mount -t ext4 /fsmnt/fs2 mount -t ext4 /fsmnt/fs3 mount -t ext4 /fsmnt/fs4 exit_status=0 elif [ "-u" = "$1" ] then umount /fsmnt/fs1 umount /fsmnt/fs2 umount /fsmnt/fs3 umount /fsmnt/fs4 exit_status=0 else echo "mountfs -m | -u" fi exit $exit_status
Is there any way in bash to programmatically wait for all reads/writes to complete, so the devices are not busy and I can successfully remount the partitions to clear NVMe Controller/OS caches?