Re: Weird fuse_operations.read calls with Linux 5.4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



st 15. 1. 2020 v 12:41 odesílatel Miklos Szeredi <miklos@xxxxxxxxxx> napsal:
>
> On Wed, Jan 15, 2020 at 9:28 AM Ondrej Holy <oholy@xxxxxxxxxx> wrote:
> >
> > Hi,
> >
> > I have been directed here from https://github.com/libfuse/libfuse/issues/488.
> >
> > My issue is that with Linux Kernel 5.4, one read kernel call (e.g.
> > made by cat tool) triggers two fuse_operations.read executions and in
> > both cases with 0 offset even though that first read successfully
> > returned some bytes.
> >
> > For gvfs, it leads to redundant I/O operations, or to "Operation not
> > supported" errors if seeking is not supported. This doesn't happen
> > with Linux 5.3. Any idea what is wrong here?
> >
> > $ strace cat /run/user/1000/gvfs/ftp\:host\=server\,user\=user/foo
> > ...
> > openat(AT_FDCWD, "/run/user/1000/gvfs/ftp:host=server,user=user/foo",
>
> Hi, I'm trying to reproduce this on fedora30, but even failing to get
> that "cat" to work.  I've  replaced "server" with a public ftp server,
> but it's not even getting to the ftp backend.  Is there a trick to
> enable the ftp backend?  Haven't found the answer by googling...

Hi Miklos,

you need gvfs and gvfs-fuse packages installed. Then it should be
enough to mount some share, e.g. over Nautilus, or using just "gio
mount ftp://user@server/";. Once some share is mounted, then you should
see it in /run/user/$UID/gvfs. I can reproduce on Fedora 31 with
kernel-5.4.10-200.fc31.x86_64, whereas kernel-5.3.16-300.fc31.x86_64
works without any issues.

Thanks

Ondrej

>
> Thanks,
> Miklos
>
>
> > O_RDONLY) = 3
> > fstat(3, {st_mode=S_IFREG|0644, st_size=20, ...}) = 0
> > fadvise64(3, 0, 0, POSIX_FADV_SEQUENTIAL) = 0
> > mmap(NULL, 139264, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
> > -1, 0) = 0x7fbc42b92000
> > read(3, 0x7fbc42b93000, 131072)         = -1 EOPNOTSUPP (Operation not
> > supported)
> > ...
> >
> > $ /usr/libexec/gvfsd-fuse /run/user/1000/gvfs -d
> > ...
> > open flags: 0x8000 /ftp:host=server,user=user/foo
> >    open[139679517117488] flags: 0x8000 /ftp:host=server,user=user/foo
> >    unique: 8, success, outsize: 32
> > unique: 10, opcode: READ (15), nodeid: 3, insize: 80, pid: 5053
> > read[139679517117488] 4096 bytes from 0 flags: 0x8000
> >    read[139679517117488] 20 bytes from 0
> >    unique: 10, success, outsize: 36
> > unique: 12, opcode: READ (15), nodeid: 3, insize: 80, pid: 5053
> > read[139679517117488] 4096 bytes from 0 flags: 0x8000
> >    unique: 12, error: -95 (Operation not supported), outsize: 16
> > ...
> >
> > See for other information: https://gitlab.gnome.org/GNOME/gvfs/issues/441
> >
> > Regards
> >
> > Ondrej
> > --
> > Ondrej Holy
> > Software Engineer, Core Desktop Development
> > Red Hat Czech s.r.o
> >
>





[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux