https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230258

Jakub Kruszona-Zawadzki <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #4 from Jakub Kruszona-Zawadzki <[email protected]> ---
I've checked it using "DIRECT" flag - result is almost the same:

hello1:
t1
t3
t5
t6

hello2:
t1
t3
t5
t6

Still no 't2' and no 't4'. Our problem is not in data caching - this can be
fixed using 'direct_io' (not vary good solution, but it works). The problem is
connected with dentry cache - i.e. file length. Because of this cache operation
"echo 't3' >> /mnt/llfuse/hello1" uses old file length and overwrites 't2'.

In Linux and OS X this works fine. On FreeBSD it looks like 'timeout' parameter
returned with attributes (getattr) and entry data (lookup) is totally ignored.

For example - output from OS X (original version - without direct):


hello1:
t1
t2
t3
t4
t5

hello2:
t1
t2
t3
t4
t5
t6


Still no 't6' in 'hello1' - probably they had similar issue and 'fixed' this by
invoking 'getattr' whenever file is opened with O_APPEND, so data are appended
properly, but then when 'hello1' is read without 'O_APPEND' it also uses "old"
file length.

On Linux there is 't6' in 'hello1' (proper timeouting attributes).


As for now there is no work-around for this issue. We've mentioned
'fuse_lowlevel_notify_inval_entry' only because it could be used as a
work-around. We do not use this function in our current implementation.

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "[email protected]"

Reply via email to