Re: Tux3 report: New news for the new year

OGAWA Hirofumi
2013-01-04T10:04:47Z

Tero Roponen <tero.roponen@gmail.com> writes:

>> martin@merkaba:~[…]> sudo ./tux3fuse tux3.img /mnt/zeit
>> [sudo] password for martin:
>>
>> martin@merkaba:~[…]> mount | grep fuse
>> fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
>> tux3.img on /mnt/zeit type fuse.tux3.img (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
>>
>>
>>
>> But I am stuck with accessing it:
>>
>> martin@merkaba:~[…]> LANG=C ls -l /mnt/zeit
>> ls: cannot access /mnt/zeit: Permission denied
>>
>> martin@merkaba:~[…]> LANG=C sudo chown martin:martin /mnt/zeit
>> chown: cannot access '/mnt/zeit': Transport endpoint is not connected
>> martin@merkaba:~[…]> LANG=C sudo ls -l /mnt/zeit
>> ls: cannot access /mnt/zeit: Transport endpoint is not connected
>> martin@merkaba:~[…]>
>
> Hi,
>
> I have not looked at Tux3 for a long time, but there seems to be
> a simple fix for at least this problem, and two workarounds:
>
> 1) Run the program in foreground (-f):
>
> sudo ./tux3fuse tux3.img /mnt/zeit -f
>
> 2) Use absolute path for image file:
>
> sudo ./tux3fuse $(pwd)/tux3.img /mnt/zeit
>
> The following patch should hopefully fix this for good.

Thanks for report, Martin. Thanks for fixing, Tero.

Applied with free() for make valgrind happy to temp-atomic-commit branch
(will be merged to master soon).

Thanks!

> commit efc0cf49f6dd00dfbb84e88336d2c5d147a09ed0
> Author: Tero Roponen <tero.roponen@gmail.com>
> Date: Wed Jan 2 11:20:46 2013 +0200
>
> Use absolute path for volume name
>
> If fuse_daemonize() puts us into background it also switches our
> working directory to '/', breaking the use of relative paths.
>
> This patch fixes the problem by converting the relative path to
> an absolute one.
>
> Signed-off-by: Tero Roponen <tero.roponen@gmail.com>
>
> diff --git a/user/tux3fuse.c b/user/tux3fuse.c
> index 6401204..5047cab 100644
> --- a/user/tux3fuse.c
> +++ b/user/tux3fuse.c
> @@ -993,7 +993,7 @@ int main(int argc, char *argv[])
> goto error;
>
> struct tux3fuse tux3fuse = {
> - .volname = argv[1],
> + .volname = canonicalize_file_name(argv[1]),
> };
> fs = fuse_lowlevel_new(&args, &tux3_ops, sizeof(tux3_ops), &tux3fuse);
> if (fs) {

--
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>