From mboxrd@z Thu Jan 1 00:00:00 1970 From: Olaf Hering Subject: [PATCH] hotplug: fix busy loop device detection Date: Thu, 28 Apr 2011 16:54:58 +0200 Message-ID: <20110428145458.GA9767@aepfle.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org 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 --- tools/hotplug/Linux/block | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Index: xen-unstable.hg-4.2.23282/tools/hotplug/Linux/block =================================================================== --- xen-unstable.hg-4.2.23282.orig/tools/hotplug/Linux/block +++ 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