diff options
author | Olaf Hering <olaf@aepfle.de> | 2011-05-20 18:09:26 +0100 |
---|---|---|
committer | Olaf Hering <olaf@aepfle.de> | 2011-05-20 18:09:26 +0100 |
commit | d55ae1cc8f5259cf31fcaf189056c082145487ef (patch) | |
tree | 8a236b124ac39accdc14f3cbe3546d43c1283b59 /tools/hotplug | |
parent | 20c29ef7d36a4aad0facf6eeaaa490887ecda06f (diff) | |
download | xen-d55ae1cc8f5259cf31fcaf189056c082145487ef.tar.gz xen-d55ae1cc8f5259cf31fcaf189056c082145487ef.tar.bz2 xen-d55ae1cc8f5259cf31fcaf189056c082145487ef.zip |
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.
Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/hotplug')
-rw-r--r-- | tools/hotplug/Linux/block | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/tools/hotplug/Linux/block b/tools/hotplug/Linux/block index 06de5c92a2..fb9df6f357 100644 --- a/tools/hotplug/Linux/block +++ b/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 |