See my first article about fighting this misleading message. Clearly, Linux's use of the "device already mounted or mountpoint busy" string is woefully overloaded.
Here's the rundown:
I un-mounted md125 on /mnt/share, updated /etc/fstab, and mounted both devices where I wanted them (md125 on oldshare, and md124 on share).
No problems, great! But then I thought, actually, oldshare should probably be mounted read-only, just to prevent any accidental writes to it. No problem: unmount /mnt/oldshare, add the "ro" flag to the mount options in /etc/fstab, and mount... or not:
# mount -o ro /mnt/oldshare/
mount: /dev/md125 is already mounted or /mnt/oldshare busy
Hrm, what? I just unmounted, how could it possibly be mounted or busy?
I tried all the ususal suspects: lsof, fuser, mount, /proc/mounts, /etc/mtab... nope, all those are clean. Next I ran through the useful list of suggestions on this helpful ServerFault post, CentOS thinks Disk is busy, can't mount or fsck.
First up, blkid shows the device as in-use:
# blkid -c /dev/null -o list
device fs_type label mount point UUID
------------------------------------------------------------------------------
/dev/md125 ext4 (in use) 2d72dbd0-70c4-4006-bb17-771c249f531d
OK, it's in use, but by what?
The dmsetup table command doesn't show any references to the device in question, only the LVM partitions used for my system's root partition. Unlike the ServerFault post above, the multipath command did not give me the answer::
# multipath -ll
Dec 16 09:21:38 | DM multipath kernel driver not loaded
Dec 16 09:21:38 | /etc/multipath.conf does not exist, blacklisting all devices.
Dec 16 09:21:38 | A default multipath.conf file is located at
Dec 16 09:21:38 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
Dec 16 09:21:38 | You can run /sbin/mpathconf to create or modify /etc/multipath.conf
Dec 16 09:21:38 | DM multipath kernel driver not loaded
Ugh, so now what? Well, on a whim, I tried to use the remount option with the mount command::
# mount -o remount,ro /mnt/oldshare/
And that was it! After that, I could unmount, then mount read-only using the /etc/fstab's "ro" option.