|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] Cope when the filename returned by losetup for an existi
# HG changeset patch
# User emellor@xxxxxxxxxxxxxxxxxxxxxx
# Node ID 871f768aadc621cf5e44e090c30293074aa27033
# Parent 1a1e3dcbbf19401bb13ff5f304bd2ab65f0af720
Cope when the filename returned by losetup for an existing loop device is not
fully qualified. In this case, the readlink -f call to canonicalise that name
fails.
Closes bug #553.
Signed-off-by: Ewan Mellor <ewan@xxxxxxxxxxxxx>
diff -r 1a1e3dcbbf19 -r 871f768aadc6 tools/examples/block
--- a/tools/examples/block Thu Mar 2 20:45:13 2006
+++ b/tools/examples/block Fri Mar 3 14:32:42 2006
@@ -321,7 +321,28 @@
fi
fi
- f=$(readlink -f "$f")
+ # Canonicalise the filename for the comparison.
+
+ # I have seen this readlink fails because the filename given by
+ # losetup is only the basename. This cannot happen when the loop
+ # device is set up through this script, because file is
+ # canonicalised above, but it may happen when loop devices are set
+ # up some other way. This readlink may also conceivably fail if
+ # the file backing this loop device has been removed.
+
+ # For maximum safety, in the case that $f does not resolve, we
+ # assume that $file and $f are in the same directory.
+
+ # If you create a loopback filesystem, remove it and continue to
+ # run on it, and then create another file with the same name, then
+ # this check will block that -- don't do that.
+
+ # If you create loop devices through some other mechanism, use
+ # relative filenames, and then use the same filename through this
+ # script, then this check will block that -- don't do that either.
+
+ f=$(readlink -f "$f" || echo $(dirname "$file")/$(basename "$f"))
+
if [ "$f" == "$file" ]
then
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-changelog] Cope when the filename returned by losetup for an existing loop device is not,
Xen patchbot -unstable <=
|
|
|
|
|