]> err.no Git - util-linux/commitdiff
mount: Don't call canonicalize_*(SPEC) for 9p
authorSven Eckelmann <sven.eckelmann@gmx.de>
Sun, 26 Sep 2010 19:18:15 +0000 (21:18 +0200)
committerKarel Zak <kzak@redhat.com>
Thu, 30 Sep 2010 20:32:50 +0000 (22:32 +0200)
When calling "mount -t 9p -o trans=virtio foobar /mnt/bar" and foobar
exists in the current path, the 9p virtio transport driver will be
called with $CWD/foobar and fail with "9p: no channels available".

Similar problems exist with remote file servers
 "mount -t 9p 23.42.08.15 /mnt/bar"
and Plan 9 From User Space applications
 "mount -t 9p -o trans=unix,uname=$USER `namespace`/acme /mnt/bar"

A similar exception like for nfs, cifs and smbfs must be added for 9p.

Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
mount/mount.c

index 22828b4e2a77145045775b664bd515b98f1fd70b..0567418db367938fe0857d0b6d8c63ce25555c14 100644 (file)
@@ -1805,7 +1805,8 @@ mount_one (const char *spec, const char *node, const char *types,
        }
 
        /* Handle possible LABEL= and UUID= forms of spec */
-       if (types == NULL || (strncmp(types, "nfs", 3) &&
+       if (types == NULL || (strncmp(types, "9p", 2) &&
+                             strncmp(types, "nfs", 3) &&
                              strncmp(types, "cifs", 4) &&
                              strncmp(types, "smbfs", 5))) {
                nspec = spec_to_devname(spec);