(c) use proper pool options. You say nothing about your pool. It seems small (100Mb) so I doubt whether it uses more than one vdev (disk).fuse-attr-timeout = 1
fuse-entry-timeout = 1
fuse-mount-options = default_permissions,noatime
max-arc-size = 100
no-kstat-mount
stack-size = 2
vdev-cache-size = 10
> (b) use proper options. (the default /etc/zfs/zfsrc should be fine; Here
> is my list:
>
> fuse-attr-timeout = 1
> fuse-entry-timeout = 1
> fuse-mount-options = default_permissions,noatime
[...]
hint here: note the non-existing whitespace between the two options.
Add a whitespace and you get errors thrown ... just "tested" here ;-)
Stefan
Huh? This is the default contrib zfsrc. It is well tested by many. Could
it be that you actually meant the leading whitespace (which *might* be a
problem, in which case you could report a bug for that).
> Stefan
>
>
I think Stefan is pointing out that it's important to use
'default_permissions,noatime' (or whatever fuse options are wanted)
exactly as specified, and that adding any space after the comma will
cause it to fail (somewhat surprisingly).
And BTW, does anyone know if FUSE supports the 'relatime' mount
option, and which version is needed if so?
> I think Stefan is pointing out that it's important to use
> 'default_permissions,noatime' (or whatever fuse options are wanted)
> exactly as specified, and that adding any space after the comma will
> cause it to fail (somewhat surprisingly).
Use
fuse-mount-options = default_permissions, noatime
and you get some errors, misleading (not really pointing at the reason).
For me zfs-fuse does not start with this setting, I get the
usage-instructions displayed then ...
With
fuse-mount-options = default_permissions,noatime
(no space after the ",")
it starts fine.
BUT:
If I use
fuse-mount-options =default_permissions,noatime
(no leading space, none after ",")
it doesn't start up as well.
And with
fuse-mount-options =default_permissions, noatime
it starts.
Another small bug to file?
Stefan
It is actually quite obvious. zfsrc is actually just a bunch of
commandline options in long-hand spelling but without the --
So specifying
fuse-mount-options = default_permissions, noatime
Actually results in a command line of roughly
zfs-fuse ... --fuse-mount-options=default_permissions, noatime
Everyone with shell experience will know that unless specificly quoted
that will be parsed as
zfs-fuse ... "--fuse-mount-options=default_permissions," "noatime"
instead of
zfs-fuse ... "--fuse-mount-options=default_permissions, noatime"
Now the thing to document is really, that zfsrc is not a shell script
and cannot employ shell quoting or any other shell construct.
I'll think I'll even throw in a bugfix quoting the entries from zfsrc
line by line, because it is not very probable that someone is relying on
something like the following to work (although he could, technically):
fuse-mount-options = default_permissions,noatime --no-daemon -s 8
Hmmm... how broken and confusing that would be :)
I was reading somewhere today that testing image should be at least
128MB or biger.
bash$ zpool create -O mountpoint=/tmp/toosmall1 toosmall1
/tmp/toosmall1_blk/za1 /tmp/toosmall1_blk/zb1
cannot create 'toosmall1': one or more devices is less than the minimum
size (64M)
;-) thanks.
Looking forward to the changes ....
Stefan
> As stated they're in testing. They won't be in maint as I don't think it
> is a minor bugfix (being a rewrite). So pick it up from
>
> http://zfs-fuse.net/releases/0.7.0
>
> or the related testing branch
>
> http://gitweb.zfs-fuse.net/?p=official;a=shortlog;h=refs/heads/testing
>
> or by doing 'git checkout origin/testing' or the equivalent on your
> working copy
OK, have my own ebuild for "testing" here ... just compiled and merged
it (gentoo-terms ...).
A quick test shows:
fuse-mount-options = default_permissions, noatime
does not work for me (the "2 spaces" form).
fuse-mount-options = default_permissions,noatime
WORKS
fuse-mount-options =default_permissions,noatime
DOES NOT WORK
fuse-mount-options =default_permissions, noatime
WORKS
--
I double checked if I really have the correct code ... seems OK to me.
?
S
Could you tell me exactly what "does not work for me" means? See below:
> fuse-mount-options = default_permissions,noatime
> WORKS
>
Breakpoint 1, read_cfg () at zfs-fuse/main.c:397
397 parse_args(argc,argv);
3: argc = 3
2: argv[1] = 0x81ff290 "--fuse-mount-options"
1: argv[2] = 0xbffff361 "default_permissions,noatime"
> fuse-mount-options =default_permissions,noatime
> DOES NOT WORK
>
Breakpoint 1, read_cfg () at zfs-fuse/main.c:397
397 parse_args(argc,argv);
3: argc = 3
2: argv[1] = 0x81ff290 "--fuse-mount-options"
1: argv[2] = 0xbffff360 "default_permissions,noatime"
(gdb)
> fuse-mount-options =default_permissions, noatime
> WORKS
>
Breakpoint 1, read_cfg () at zfs-fuse/main.c:397
397 parse_args(argc,argv);
3: argc = 3
2: argv[1] = 0x81ff290 "--fuse-mount-options"
1: argv[2] = 0xbffff360 "default_permissions, noatime"
(gdb) c
> --
>
> I double checked if I really have the correct code ... seems OK to me.
>
git log -1
> ?
>
> S
>
>
>> I double checked if I really have the correct code ... seems OK to me.
>>
> git log -1
Something wrong with my checkout, sorry.
I get:
commit 1529820b05a00af40f874c6d22f0565f9fca2802
Author: Seth Heeren <sghe...@hotmail.com>
Date: Fri Jun 4 16:41:54 2010 +0200
issue #53 - O_CLOEXEC undefined on RHEL5.5
Will fix that after lunch ...
Stefan
> Will fix that after lunch ...
Yep, got "testing" now.
Somehow I had the wrong code pulled in.
1) fuse-mount-options =default_permissions,noatime
restart works.
says: cannot mount '/tank': directory is not empty
zfs list OK, stuff mounted
2) fuse-mount-options = default_permissions,noatime
same as 1)
3) fuse-mount-options = default_permissions, noatime
* Mounting ZFS filesystems ...
cannot mount '/tank': directory is not empty
cannot mount 'tank/libvirt': Input/output error.
Make sure the FUSE module is loaded.
cannot mount 'tank/src': Input/output error.
Make sure the FUSE module is loaded.
zfs list OK, stuff mounted
4) fuse-mount-options =default_permissions, noatime
same as 3)
At least it restarts and mounts ... ;-)
If important:
Kernel 2.6.34
fuse 2.8.1
Stefan
> directory is not empty
This should be pretty selfexplanatory
You might simply ensure nothing is mounted under /tank (stop zfs-fuse,
for starters) and do something smartish like
find . -type d -print0 | sort -rz | xargs -0 rmdir -v
(note how I try to be needlessly smart in order to remove nested subdirs
in reverse order _and_ allow for funky filenames).
ok then ;)
>> directory is not empty
> This should be pretty selfexplanatory
yep
> You might simply ensure nothing is mounted under /tank (stop zfs-fuse,
> for starters) and do something smartish like
>
> find . -type d -print0 | sort -rz | xargs -0 rmdir -v
>
> (note how I try to be needlessly smart in order to remove nested subdirs
> in reverse order _and_ allow for funky filenames).
sure. but I didn't create anything in /tank manually, so shouldn't
zfs-fuse take care of this itself?
No problem for me, maybe cosmetics ?
Stefan
pool
pool/fs1
pool/fs2
poolThen umountint pool/test/fs[12] will leave you with /pool/test. This makes 'zfs mount pool' complain about the non-empty mountpoint /pool (since it still contains /pool/test). Hence your predicament.
pool/nest/fs1
pool/nest/fs2
Thanks for the explanation. Got it now ;-)
Stefan