Skip to contentSkip to conversation

hotplug: fix busy loop device detection

PATCH In review Olaf Hering 2 participants 2 messages Apr 28, 2011 – May 20, 2011

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 hotplug: fix busy loop device detection

Improve busy loop device detection after changeset 22773:02c0af2bf280

The intention is not to find the file to be mounted in the losetup -a output. What matters are existing mounted files with the same dev:inode as the new file. So the fix is to apply variable expansion which happens only without double quotes. Otherwise $dev will contain newlines for hardlinked files, as mentioned in the commit message from the changeset above.

losetup -a does also truncate long filenames to 62 chars due to ioctl limitations. This part is fixed with 2.6.37 where the filename can be obtained from sysfs. As a result very long filenames will be missed.

---
 tools/hotplug/Linux/block |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
tools/hotplug/Linux/block +2 -2
Index: xen-unstable.hg-4.2.23282/tools/hotplug/Linux/block
===================================================================
@@ -280,8 +280,8 @@ mount it read-write in a guest domain."
           fi
 
           shared_list=$(losetup -a |
-                sed -n -e "s@^\([^:]\+\)\(:[[:blank:]]\[${dev}\]:${inode}[[:blank:]](${file})\)@\1@p" )
-          for dev in "$shared_list"
+                sed -n -e "s@^\([^:]\+\)\(:[[:blank:]]\[${dev}\]:${inode}[[:blank:]](.*)\)@\1@p" )
+          for dev in $shared_list
           do
             if [ -n "$dev" ]
             then