[PATCH v2 000/109] virtiofs daemon [all]

Dr. David Alan Gilbert (git) posted 109 patches 4 years, 2 months ago
Test FreeBSD passed
Test docker-mingw@fedora passed
Test checkpatch failed
Test docker-quick@centos7 passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200121122433.50803-1-dgilbert@redhat.com
Maintainers: Stefan Hajnoczi <stefanha@redhat.com>, Cornelia Huck <cohuck@redhat.com>, Peter Maydell <peter.maydell@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>
.gitignore                                |    1 +
MAINTAINERS                               |    8 +
Makefile                                  |   27 +-
Makefile.objs                             |    1 +
configure                                 |   16 +
contrib/libvhost-user/libvhost-user.c     |   57 +-
contrib/libvhost-user/libvhost-user.h     |    6 +
docs/index.rst                            |    1 +
docs/interop/vhost-user.json              |    4 +-
docs/tools/conf.py                        |   16 +
docs/tools/index.rst                      |   14 +
docs/tools/virtiofsd-security.rst         |  118 +
hw/virtio/vhost-user.c                    |    2 +-
include/standard-headers/linux/fuse.h     |  891 ++++++
scripts/update-linux-headers.sh           |    1 +
tools/virtiofsd/50-qemu-virtiofsd.json.in |    5 +
tools/virtiofsd/Makefile.objs             |   12 +
tools/virtiofsd/buffer.c                  |  351 +++
tools/virtiofsd/fuse.h                    | 1249 +++++++++
tools/virtiofsd/fuse_common.h             |  860 ++++++
tools/virtiofsd/fuse_i.h                  |  115 +
tools/virtiofsd/fuse_log.c                |   40 +
tools/virtiofsd/fuse_log.h                |   74 +
tools/virtiofsd/fuse_lowlevel.c           | 2779 +++++++++++++++++++
tools/virtiofsd/fuse_lowlevel.h           | 2023 ++++++++++++++
tools/virtiofsd/fuse_misc.h               |   60 +
tools/virtiofsd/fuse_opt.c                |  449 +++
tools/virtiofsd/fuse_opt.h                |  272 ++
tools/virtiofsd/fuse_signals.c            |   97 +
tools/virtiofsd/fuse_virtio.c             |  985 +++++++
tools/virtiofsd/fuse_virtio.h             |   33 +
tools/virtiofsd/helper.c                  |  349 +++
tools/virtiofsd/passthrough_helpers.h     |   51 +
tools/virtiofsd/passthrough_ll.c          | 3006 +++++++++++++++++++++
tools/virtiofsd/seccomp.c                 |  164 ++
tools/virtiofsd/seccomp.h                 |   16 +
tools/virtiofsd/virtiofsd.texi            |  104 +
37 files changed, 14242 insertions(+), 15 deletions(-)
create mode 100644 docs/tools/conf.py
create mode 100644 docs/tools/index.rst
create mode 100644 docs/tools/virtiofsd-security.rst
create mode 100644 include/standard-headers/linux/fuse.h
create mode 100644 tools/virtiofsd/50-qemu-virtiofsd.json.in
create mode 100644 tools/virtiofsd/Makefile.objs
create mode 100644 tools/virtiofsd/buffer.c
create mode 100644 tools/virtiofsd/fuse.h
create mode 100644 tools/virtiofsd/fuse_common.h
create mode 100644 tools/virtiofsd/fuse_i.h
create mode 100644 tools/virtiofsd/fuse_log.c
create mode 100644 tools/virtiofsd/fuse_log.h
create mode 100644 tools/virtiofsd/fuse_lowlevel.c
create mode 100644 tools/virtiofsd/fuse_lowlevel.h
create mode 100644 tools/virtiofsd/fuse_misc.h
create mode 100644 tools/virtiofsd/fuse_opt.c
create mode 100644 tools/virtiofsd/fuse_opt.h
create mode 100644 tools/virtiofsd/fuse_signals.c
create mode 100644 tools/virtiofsd/fuse_virtio.c
create mode 100644 tools/virtiofsd/fuse_virtio.h
create mode 100644 tools/virtiofsd/helper.c
create mode 100644 tools/virtiofsd/passthrough_helpers.h
create mode 100644 tools/virtiofsd/passthrough_ll.c
create mode 100644 tools/virtiofsd/seccomp.c
create mode 100644 tools/virtiofsd/seccomp.h
create mode 100644 tools/virtiofsd/virtiofsd.texi
[PATCH v2 000/109] virtiofs daemon [all]
Posted by Dr. David Alan Gilbert (git) 4 years, 2 months ago
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>

Hi,
  This is a full set for virtiofsd - a daemon
that implements the user space side of virtiofs.

I've addressed most review comments from V1; we've got
95 Reviewed-by's out of 110 - I'd like to get a PULL out ASAP.

The set pulls in a big chunk of the upstream libfuse library
(unmodified so that it's easy to check it really is upstream),
chops all the stuff out we don't need and then adds the
new transport we need.  I've formatted everything into qemu's code style -
using indent and the clang tools for the files I've imported.

We can't just link with libfuse, since we have to make ABI incompatible
changes for the new transport and it's quite invasive; the library is
designed to be the basis for multiple filesystems, but all on the same
transport.

Running this daemon is typically done with:

   ./virtiofsd --socket-path=/path/socket -o source=/path/to/fs

connected to a qemu that's then started with:
   -chardev socket,id=char0,path=/path/socket -device vhost-user-fs-pci,queue-size=1024,chardev=char0,tag=myfs

and then in the guest mount with:
   mount -t virtiofs myfs /mnt

Our development branch is: https://gitlab.com/virtio-fs/qemu/tree/virtio-fs-dev

This code is going into tools/virtiofsd  based on the previous long
discussion.

Thank you to all those who have contributed code and to those who have
reviewed the previous version.

Dave

Dr. David Alan Gilbert (35):
  virtiofsd: Pull in upstream headers
  virtiofsd: Pull in kernel's fuse.h
  virtiofsd: Add auxiliary .c's
  virtiofsd: Add fuse_lowlevel.c
  virtiofsd: Add passthrough_ll
  virtiofsd: Trim down imported files
  virtiofsd: Format imported files to qemu style
  virtiofsd: Fix fuse_daemonize ignored return values
  virtiofsd: Fix common header and define for QEMU builds
  virtiofsd: Trim out compatibility code
  virtiofsd: Add options for virtio
  virtiofsd: Open vhost connection instead of mounting
  virtiofsd: Start wiring up vhost-user
  virtiofsd: Add main virtio loop
  virtiofsd: get/set features callbacks
  virtiofsd: Start queue threads
  virtiofsd: Poll kick_fd for queue
  virtiofsd: Start reading commands from queue
  virtiofsd: Send replies to messages
  virtiofsd: Keep track of replies
  virtiofsd: Add Makefile wiring for virtiofsd contrib
  virtiofsd: Fast path for virtio read
  virtiofs: Add maintainers entry
  virtiofsd: Plumb fuse_bufvec through to do_write_buf
  virtiofsd: Pass write iov's all the way through
  virtiofsd: cap-ng helpers
  docs:  Add docs/tools
  virtiofsd: Handle reinit
  virtiofsd: Handle hard reboot
  virtiofsd: Kill threads when queues are stopped
  vhost-user: Print unexpected slave message types
  contrib/libvhost-user: Protect slave fd with mutex
  virtiofsd: Clean up inodes on destroy
  libvhost-user: Fix some memtable remap cases
  virtiofsd: Convert lo_destroy to take the lo->mutex lock itself

Eric Ren (1):
  virtiofsd: fix incorrect error handling in lo_do_lookup

Eryu Guan (3):
  virtiofsd: print log only when priority is high enough
  virtiofsd: convert more fprintf and perror to use fuse log infra
  virtiofsd: stop all queue threads on exit in virtio_loop()

Jiufei Xue (1):
  virtiofsd: support nanosecond resolution for file timestamp

Liu Bo (6):
  virtiofsd: fix error handling in main()
  virtiofsd: cleanup allocated resource in se
  virtiofsd: fix memory leak on lo.source
  virtiofsd: add helper for lo_data cleanup
  virtiofsd: enable PARALLEL_DIROPS during INIT
  Virtiofsd: fix memory leak on fuse queueinfo

Masayoshi Mizuma (4):
  virtiofsd: Add ID to the log with FUSE_LOG_DEBUG level
  virtiofsd: Add timestamp to the log with FUSE_LOG_DEBUG level
  virtiofsd: Prevent multiply running with same vhost_user_socket
  virtiofsd: add some options to the help message

Miklos Szeredi (10):
  virtiofsd: passthrough_ll: add fallback for racy ops
  virtiofsd: passthrough_ll: add renameat2 support
  virtiofsd: passthrough_ll: disable readdirplus on cache=never
  virtiofsd: passthrough_ll: control readdirplus
  virtiofsd: rename unref_inode() to unref_inode_lolocked()
  virtiofsd: fail when parent inode isn't known in lo_do_lookup()
  virtiofsd: extract root inode init into setup_root()
  virtiofsd: passthrough_ll: clean up cache related options
  virtiofsd: passthrough_ll: use hashtable
  virtiofsd: passthrough_ll: fix refcounting on remove/rename

Misono Tomohiro (1):
  virtiofsd: Fix data corruption with O_APPEND write in writeback mode

Peng Tao (1):
  virtiofsd: do not always set FUSE_FLOCK_LOCKS

Stefan Hajnoczi (37):
  virtiofsd: remove mountpoint dummy argument
  virtiofsd: remove unused notify reply support
  virtiofsd: add -o source=PATH to help output
  virtiofsd: add --fd=FDNUM fd passing option
  virtiofsd: make -f (foreground) the default
  virtiofsd: add vhost-user.json file
  virtiofsd: add --print-capabilities option
  virtiofsd: passthrough_ll: add lo_map for ino/fh indirection
  virtiofsd: passthrough_ll: add ino_map to hide lo_inode pointers
  virtiofsd: passthrough_ll: add dirp_map to hide lo_dirp pointers
  virtiofsd: passthrough_ll: add fd_map to hide file descriptors
  virtiofsd: validate path components
  virtiofsd: add fuse_mbuf_iter API
  virtiofsd: validate input buffer sizes in do_write_buf()
  virtiofsd: check input buffer size in fuse_lowlevel.c ops
  virtiofsd: prevent ".." escape in lo_do_lookup()
  virtiofsd: prevent ".." escape in lo_do_readdir()
  virtiofsd: use /proc/self/fd/ O_PATH file descriptor
  virtiofsd: sandbox mount namespace
  virtiofsd: move to an empty network namespace
  virtiofsd: move to a new pid namespace
  virtiofsd: add seccomp whitelist
  virtiofsd: set maximum RLIMIT_NOFILE limit
  virtiofsd: fix libfuse information leaks
  virtiofsd: add security guide document
  virtiofsd: add --syslog command-line option
  virtiofsd: use fuse_lowlevel_is_virtio() in fuse_session_destroy()
  virtiofsd: prevent fv_queue_thread() vs virtio_loop() races
  virtiofsd: make lo_release() atomic
  virtiofsd: prevent races with lo_dirp_put()
  virtiofsd: rename inode->refcount to inode->nlookup
  virtiofsd: add man page
  virtiofsd: introduce inode refcount to prevent use-after-free
  virtiofsd: process requests in a thread pool
  virtiofsd: prevent FUSE_INIT/FUSE_DESTROY races
  virtiofsd: fix lo_destroy() resource leaks
  virtiofsd: add --thread-pool-size=NUM option

Vivek Goyal (6):
  virtiofsd: Make fsync work even if only inode is passed in
  virtiofsd: passthrough_ll: create new files in caller's context
  virtiofsd: Parse flag FUSE_WRITE_KILL_PRIV
  virtiofsd: Drop CAP_FSETID if client asked for it
  virtiofsd: Support remote posix locks
  virtiofsd: Reset O_DIRECT flag during file open

Xiao Yang (2):
  vitriofsd/passthrough_ll: fix fallocate() ifdefs
  virtiofsd/passthrough_ll: Pass errno to fuse_reply_err()

piaojun (2):
  virtiofsd: add definition of fuse_buf_writev()
  virtiofsd: use fuse_buf_writev to replace fuse_buf_write for better
    performance

 .gitignore                                |    1 +
 MAINTAINERS                               |    8 +
 Makefile                                  |   27 +-
 Makefile.objs                             |    1 +
 configure                                 |   16 +
 contrib/libvhost-user/libvhost-user.c     |   57 +-
 contrib/libvhost-user/libvhost-user.h     |    6 +
 docs/index.rst                            |    1 +
 docs/interop/vhost-user.json              |    4 +-
 docs/tools/conf.py                        |   16 +
 docs/tools/index.rst                      |   14 +
 docs/tools/virtiofsd-security.rst         |  118 +
 hw/virtio/vhost-user.c                    |    2 +-
 include/standard-headers/linux/fuse.h     |  891 ++++++
 scripts/update-linux-headers.sh           |    1 +
 tools/virtiofsd/50-qemu-virtiofsd.json.in |    5 +
 tools/virtiofsd/Makefile.objs             |   12 +
 tools/virtiofsd/buffer.c                  |  351 +++
 tools/virtiofsd/fuse.h                    | 1249 +++++++++
 tools/virtiofsd/fuse_common.h             |  860 ++++++
 tools/virtiofsd/fuse_i.h                  |  115 +
 tools/virtiofsd/fuse_log.c                |   40 +
 tools/virtiofsd/fuse_log.h                |   74 +
 tools/virtiofsd/fuse_lowlevel.c           | 2779 +++++++++++++++++++
 tools/virtiofsd/fuse_lowlevel.h           | 2023 ++++++++++++++
 tools/virtiofsd/fuse_misc.h               |   60 +
 tools/virtiofsd/fuse_opt.c                |  449 +++
 tools/virtiofsd/fuse_opt.h                |  272 ++
 tools/virtiofsd/fuse_signals.c            |   97 +
 tools/virtiofsd/fuse_virtio.c             |  985 +++++++
 tools/virtiofsd/fuse_virtio.h             |   33 +
 tools/virtiofsd/helper.c                  |  349 +++
 tools/virtiofsd/passthrough_helpers.h     |   51 +
 tools/virtiofsd/passthrough_ll.c          | 3006 +++++++++++++++++++++
 tools/virtiofsd/seccomp.c                 |  164 ++
 tools/virtiofsd/seccomp.h                 |   16 +
 tools/virtiofsd/virtiofsd.texi            |  104 +
 37 files changed, 14242 insertions(+), 15 deletions(-)
 create mode 100644 docs/tools/conf.py
 create mode 100644 docs/tools/index.rst
 create mode 100644 docs/tools/virtiofsd-security.rst
 create mode 100644 include/standard-headers/linux/fuse.h
 create mode 100644 tools/virtiofsd/50-qemu-virtiofsd.json.in
 create mode 100644 tools/virtiofsd/Makefile.objs
 create mode 100644 tools/virtiofsd/buffer.c
 create mode 100644 tools/virtiofsd/fuse.h
 create mode 100644 tools/virtiofsd/fuse_common.h
 create mode 100644 tools/virtiofsd/fuse_i.h
 create mode 100644 tools/virtiofsd/fuse_log.c
 create mode 100644 tools/virtiofsd/fuse_log.h
 create mode 100644 tools/virtiofsd/fuse_lowlevel.c
 create mode 100644 tools/virtiofsd/fuse_lowlevel.h
 create mode 100644 tools/virtiofsd/fuse_misc.h
 create mode 100644 tools/virtiofsd/fuse_opt.c
 create mode 100644 tools/virtiofsd/fuse_opt.h
 create mode 100644 tools/virtiofsd/fuse_signals.c
 create mode 100644 tools/virtiofsd/fuse_virtio.c
 create mode 100644 tools/virtiofsd/fuse_virtio.h
 create mode 100644 tools/virtiofsd/helper.c
 create mode 100644 tools/virtiofsd/passthrough_helpers.h
 create mode 100644 tools/virtiofsd/passthrough_ll.c
 create mode 100644 tools/virtiofsd/seccomp.c
 create mode 100644 tools/virtiofsd/seccomp.h
 create mode 100644 tools/virtiofsd/virtiofsd.texi

-- 
2.24.1


Re: [PATCH v2 000/109] virtiofs daemon [all]
Posted by Philippe Mathieu-Daudé 4 years, 2 months ago
On 1/21/20 1:22 PM, Dr. David Alan Gilbert (git) wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> 
> Hi,
>    This is a full set for virtiofsd - a daemon
> that implements the user space side of virtiofs.
> 
> I've addressed most review comments from V1; we've got
> 95 Reviewed-by's out of 110 - I'd like to get a PULL out ASAP.
> 
> The set pulls in a big chunk of the upstream libfuse library
> (unmodified so that it's easy to check it really is upstream),
> chops all the stuff out we don't need and then adds the
> new transport we need.  I've formatted everything into qemu's code style -
> using indent and the clang tools for the files I've imported.
> 
> We can't just link with libfuse, since we have to make ABI incompatible
> changes for the new transport and it's quite invasive; the library is
> designed to be the basis for multiple filesystems, but all on the same
> transport.
> 
> Running this daemon is typically done with:
> 
>     ./virtiofsd --socket-path=/path/socket -o source=/path/to/fs
> 
> connected to a qemu that's then started with:
>     -chardev socket,id=char0,path=/path/socket -device vhost-user-fs-pci,queue-size=1024,chardev=char0,tag=myfs
> 
> and then in the guest mount with:
>     mount -t virtiofs myfs /mnt
> 
> Our development branch is: https://gitlab.com/virtio-fs/qemu/tree/virtio-fs-dev

FWIW this branch contains more than this series, because it failed to 
build on 32-bit:

$ make virtiofsd
   CC      tools/virtiofsd/fuse_lowlevel.o
tools/virtiofsd/fuse_lowlevel.c: In function 'do_removemapping':
tools/virtiofsd/fuse_lowlevel.c:1956:60: error: format '%ld' expects 
argument of type 'long int', but argument 4 has type 'unsigned int' 
[-Werror=format=]
              "do_removemapping: invalid in, expected %d * %ld, has %ld 
- %ld\n",
                                                             ^
tools/virtiofsd/fuse_lowlevel.c:1956:69: error: format '%ld' expects 
argument of type 'long int', but argument 5 has type 'size_t {aka 
unsigned int}' [-Werror=format=]
              "do_removemapping: invalid in, expected %d * %ld, has %ld 
- %ld\n",
                                                                      ^
tools/virtiofsd/fuse_lowlevel.c:1956:75: error: format '%ld' expects 
argument of type 'long int', but argument 6 has type 'size_t {aka 
unsigned int}' [-Werror=format=]
              "do_removemapping: invalid in, expected %d * %ld, has %ld 
- %ld\n",
 
    ^

And the offending patch is not included in the 109:

$ git show 62d82cfbe5a
commit 62d82cfbe5a2ad05ae3215f2461b76aa9915108d
Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
Date:   Fri Jul 6 18:03:49 2018 +0100

     DAX: virtiofsd: Add setup/remove mappings fuse commands

Consider pushing tags with version, so it is easier to diff 
(virtio-fs-dev got force-pushed).


We don't need libslirp/capstone/dtc but they are still built:

$ make virtiofsd
   GEN     config-host.h
make[1]: Entering directory 'slirp'
   CC      slirp/src/state.o
   CC      slirp/src/tcp_timer.o
   CC      slirp/src/dhcpv6.o
   CC      slirp/src/ip_input.o
   CC      slirp/src/ip6_icmp.o
   CC      slirp/src/bootp.o
   CC      slirp/src/ip6_input.o
   CC      slirp/src/slirp.o
   CC      slirp/src/vmstate.o
   CC      slirp/src/ip_output.o
   CC      slirp/src/ncsi.o
   CC      slirp/src/tcp_output.o
   CC      slirp/src/ndp_table.o
   CC      slirp/src/version.o
   CC      slirp/src/misc.o
   CC      slirp/src/ip6_output.o
   CC      slirp/src/mbuf.o
   CC      slirp/src/tftp.o
   CC      slirp/src/arp_table.o
   CC      slirp/src/util.o
   CC      slirp/src/socket.o
   CC      slirp/src/sbuf.o
   CC      slirp/src/stream.o
   CC      slirp/src/dnssearch.o
   CC      slirp/src/udp.o
   CC      slirp/src/tcp_input.o
   CC      slirp/src/if.o
   CC      slirp/src/cksum.o
   CC      slirp/src/tcp_subr.o
   CC      slirp/src/udp6.o
   CC      slirp/src/ip_icmp.o
   AR      slirp/libslirp.a
make[1]: Leaving directory 'slirp'
          DEP dtc/libfdt/fdt_overlay.c
          DEP dtc/libfdt/fdt_addresses.c
          DEP dtc/libfdt/fdt_empty_tree.c
          DEP dtc/libfdt/fdt_strerror.c
          DEP dtc/libfdt/fdt_rw.c
          DEP dtc/libfdt/fdt_sw.c
          DEP dtc/libfdt/fdt_wip.c
          DEP dtc/libfdt/fdt_ro.c
          DEP dtc/libfdt/fdt.c
          DEP dtc/util.c
          DEP dtc/fdtoverlay.c
          DEP dtc/fdtput.c
          DEP dtc/fdtget.c
          DEP dtc/fdtdump.c
          DEP convert-dtsv0-lexer.lex.c
          DEP dtc/srcpos.c
          BISON dtc-parser.tab.c
          DEP dtc-parser.tab.c
          LEX dtc-lexer.lex.c
          DEP dtc-lexer.lex.c
          DEP dtc/treesource.c
          DEP dtc/livetree.c
          DEP dtc/fstree.c
          DEP dtc/flattree.c
          DEP dtc/dtc.c
          DEP dtc/data.c
          DEP dtc/checks.c
          CC libfdt/fdt.o
          CC libfdt/fdt_ro.o
          CC libfdt/fdt_wip.o
          CC libfdt/fdt_sw.o
          CC libfdt/fdt_rw.o
          CC libfdt/fdt_strerror.o
          CC libfdt/fdt_empty_tree.o
          CC libfdt/fdt_addresses.o
          CC libfdt/fdt_overlay.o
          AR libfdt/libfdt.a
arm-linux-gnueabihf-ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
   CC      cs.o
   CC      utils.o
   CC      SStream.o
   CC      MCInstrDesc.o
   CC      MCRegisterInfo.o
   CC      arch/ARM/ARMDisassembler.o
   CC      arch/ARM/ARMInstPrinter.o
   CC      arch/ARM/ARMMapping.o
   CC      arch/ARM/ARMModule.o
   CC      arch/AArch64/AArch64BaseInfo.o
   CC      arch/AArch64/AArch64Disassembler.o
   CC      arch/AArch64/AArch64InstPrinter.o
   CC      arch/AArch64/AArch64Mapping.o
   CC      arch/AArch64/AArch64Module.o
   CC      arch/Mips/MipsDisassembler.o
   CC      arch/Mips/MipsInstPrinter.o
   CC      arch/Mips/MipsMapping.o
   CC      arch/Mips/MipsModule.o
   CC      arch/PowerPC/PPCDisassembler.o
   CC      arch/PowerPC/PPCInstPrinter.o
   CC      arch/PowerPC/PPCMapping.o
   CC      arch/PowerPC/PPCModule.o
   CC      arch/Sparc/SparcDisassembler.o
   CC      arch/Sparc/SparcInstPrinter.o
   CC      arch/Sparc/SparcMapping.o
   CC      arch/Sparc/SparcModule.o
   CC      arch/SystemZ/SystemZDisassembler.o
   CC      arch/SystemZ/SystemZInstPrinter.o
   CC      arch/SystemZ/SystemZMapping.o
   CC      arch/SystemZ/SystemZModule.o
   CC      arch/SystemZ/SystemZMCTargetDesc.o
   CC      arch/X86/X86DisassemblerDecoder.o
   CC      arch/X86/X86Disassembler.o
   CC      arch/X86/X86IntelInstPrinter.o
   CC      arch/X86/X86ATTInstPrinter.o
   CC      arch/X86/X86Mapping.o
   CC      arch/X86/X86Module.o
   CC      arch/XCore/XCoreDisassembler.o
   CC      arch/XCore/XCoreInstPrinter.o
   CC      arch/XCore/XCoreMapping.o
   CC      arch/XCore/XCoreModule.o
   CC      MCInst.o
   AR      libcapstone.a
   CC      tools/virtiofsd/buffer.o
   CC      tools/virtiofsd/fuse_opt.o
   CC      tools/virtiofsd/fuse_log.o
   CC      tools/virtiofsd/fuse_lowlevel.o
   ...

FYI Paolo queued this patch, so libfdt shouldn't get compiled anymore:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg671667.html

> This code is going into tools/virtiofsd  based on the previous long
> discussion.
> 
> Thank you to all those who have contributed code and to those who have
> reviewed the previous version.
> 
> Dave
> 
> Dr. David Alan Gilbert (35):
>    virtiofsd: Pull in upstream headers
>    virtiofsd: Pull in kernel's fuse.h
>    virtiofsd: Add auxiliary .c's
>    virtiofsd: Add fuse_lowlevel.c
>    virtiofsd: Add passthrough_ll
>    virtiofsd: Trim down imported files
>    virtiofsd: Format imported files to qemu style
>    virtiofsd: Fix fuse_daemonize ignored return values
>    virtiofsd: Fix common header and define for QEMU builds
>    virtiofsd: Trim out compatibility code
>    virtiofsd: Add options for virtio
>    virtiofsd: Open vhost connection instead of mounting
>    virtiofsd: Start wiring up vhost-user
>    virtiofsd: Add main virtio loop
>    virtiofsd: get/set features callbacks
>    virtiofsd: Start queue threads
>    virtiofsd: Poll kick_fd for queue
>    virtiofsd: Start reading commands from queue
>    virtiofsd: Send replies to messages
>    virtiofsd: Keep track of replies
>    virtiofsd: Add Makefile wiring for virtiofsd contrib
>    virtiofsd: Fast path for virtio read
>    virtiofs: Add maintainers entry
>    virtiofsd: Plumb fuse_bufvec through to do_write_buf
>    virtiofsd: Pass write iov's all the way through
>    virtiofsd: cap-ng helpers
>    docs:  Add docs/tools
>    virtiofsd: Handle reinit
>    virtiofsd: Handle hard reboot
>    virtiofsd: Kill threads when queues are stopped
>    vhost-user: Print unexpected slave message types
>    contrib/libvhost-user: Protect slave fd with mutex
>    virtiofsd: Clean up inodes on destroy
>    libvhost-user: Fix some memtable remap cases
>    virtiofsd: Convert lo_destroy to take the lo->mutex lock itself
> 
> Eric Ren (1):
>    virtiofsd: fix incorrect error handling in lo_do_lookup
> 
> Eryu Guan (3):
>    virtiofsd: print log only when priority is high enough
>    virtiofsd: convert more fprintf and perror to use fuse log infra
>    virtiofsd: stop all queue threads on exit in virtio_loop()
> 
> Jiufei Xue (1):
>    virtiofsd: support nanosecond resolution for file timestamp
> 
> Liu Bo (6):
>    virtiofsd: fix error handling in main()
>    virtiofsd: cleanup allocated resource in se
>    virtiofsd: fix memory leak on lo.source
>    virtiofsd: add helper for lo_data cleanup
>    virtiofsd: enable PARALLEL_DIROPS during INIT
>    Virtiofsd: fix memory leak on fuse queueinfo
> 
> Masayoshi Mizuma (4):
>    virtiofsd: Add ID to the log with FUSE_LOG_DEBUG level
>    virtiofsd: Add timestamp to the log with FUSE_LOG_DEBUG level
>    virtiofsd: Prevent multiply running with same vhost_user_socket
>    virtiofsd: add some options to the help message
> 
> Miklos Szeredi (10):
>    virtiofsd: passthrough_ll: add fallback for racy ops
>    virtiofsd: passthrough_ll: add renameat2 support
>    virtiofsd: passthrough_ll: disable readdirplus on cache=never
>    virtiofsd: passthrough_ll: control readdirplus
>    virtiofsd: rename unref_inode() to unref_inode_lolocked()
>    virtiofsd: fail when parent inode isn't known in lo_do_lookup()
>    virtiofsd: extract root inode init into setup_root()
>    virtiofsd: passthrough_ll: clean up cache related options
>    virtiofsd: passthrough_ll: use hashtable
>    virtiofsd: passthrough_ll: fix refcounting on remove/rename
> 
> Misono Tomohiro (1):
>    virtiofsd: Fix data corruption with O_APPEND write in writeback mode
> 
> Peng Tao (1):
>    virtiofsd: do not always set FUSE_FLOCK_LOCKS
> 
> Stefan Hajnoczi (37):
>    virtiofsd: remove mountpoint dummy argument
>    virtiofsd: remove unused notify reply support
>    virtiofsd: add -o source=PATH to help output
>    virtiofsd: add --fd=FDNUM fd passing option
>    virtiofsd: make -f (foreground) the default
>    virtiofsd: add vhost-user.json file
>    virtiofsd: add --print-capabilities option
>    virtiofsd: passthrough_ll: add lo_map for ino/fh indirection
>    virtiofsd: passthrough_ll: add ino_map to hide lo_inode pointers
>    virtiofsd: passthrough_ll: add dirp_map to hide lo_dirp pointers
>    virtiofsd: passthrough_ll: add fd_map to hide file descriptors
>    virtiofsd: validate path components
>    virtiofsd: add fuse_mbuf_iter API
>    virtiofsd: validate input buffer sizes in do_write_buf()
>    virtiofsd: check input buffer size in fuse_lowlevel.c ops
>    virtiofsd: prevent ".." escape in lo_do_lookup()
>    virtiofsd: prevent ".." escape in lo_do_readdir()
>    virtiofsd: use /proc/self/fd/ O_PATH file descriptor
>    virtiofsd: sandbox mount namespace
>    virtiofsd: move to an empty network namespace
>    virtiofsd: move to a new pid namespace
>    virtiofsd: add seccomp whitelist
>    virtiofsd: set maximum RLIMIT_NOFILE limit
>    virtiofsd: fix libfuse information leaks
>    virtiofsd: add security guide document
>    virtiofsd: add --syslog command-line option
>    virtiofsd: use fuse_lowlevel_is_virtio() in fuse_session_destroy()
>    virtiofsd: prevent fv_queue_thread() vs virtio_loop() races
>    virtiofsd: make lo_release() atomic
>    virtiofsd: prevent races with lo_dirp_put()
>    virtiofsd: rename inode->refcount to inode->nlookup
>    virtiofsd: add man page
>    virtiofsd: introduce inode refcount to prevent use-after-free
>    virtiofsd: process requests in a thread pool
>    virtiofsd: prevent FUSE_INIT/FUSE_DESTROY races
>    virtiofsd: fix lo_destroy() resource leaks
>    virtiofsd: add --thread-pool-size=NUM option
> 
> Vivek Goyal (6):
>    virtiofsd: Make fsync work even if only inode is passed in
>    virtiofsd: passthrough_ll: create new files in caller's context
>    virtiofsd: Parse flag FUSE_WRITE_KILL_PRIV
>    virtiofsd: Drop CAP_FSETID if client asked for it
>    virtiofsd: Support remote posix locks
>    virtiofsd: Reset O_DIRECT flag during file open
> 
> Xiao Yang (2):
>    vitriofsd/passthrough_ll: fix fallocate() ifdefs
>    virtiofsd/passthrough_ll: Pass errno to fuse_reply_err()
> 
> piaojun (2):
>    virtiofsd: add definition of fuse_buf_writev()
>    virtiofsd: use fuse_buf_writev to replace fuse_buf_write for better
>      performance
> 
>   .gitignore                                |    1 +
>   MAINTAINERS                               |    8 +
>   Makefile                                  |   27 +-
>   Makefile.objs                             |    1 +
>   configure                                 |   16 +
>   contrib/libvhost-user/libvhost-user.c     |   57 +-
>   contrib/libvhost-user/libvhost-user.h     |    6 +
>   docs/index.rst                            |    1 +
>   docs/interop/vhost-user.json              |    4 +-
>   docs/tools/conf.py                        |   16 +
>   docs/tools/index.rst                      |   14 +
>   docs/tools/virtiofsd-security.rst         |  118 +
>   hw/virtio/vhost-user.c                    |    2 +-
>   include/standard-headers/linux/fuse.h     |  891 ++++++
>   scripts/update-linux-headers.sh           |    1 +
>   tools/virtiofsd/50-qemu-virtiofsd.json.in |    5 +
>   tools/virtiofsd/Makefile.objs             |   12 +
>   tools/virtiofsd/buffer.c                  |  351 +++
>   tools/virtiofsd/fuse.h                    | 1249 +++++++++
>   tools/virtiofsd/fuse_common.h             |  860 ++++++
>   tools/virtiofsd/fuse_i.h                  |  115 +
>   tools/virtiofsd/fuse_log.c                |   40 +
>   tools/virtiofsd/fuse_log.h                |   74 +
>   tools/virtiofsd/fuse_lowlevel.c           | 2779 +++++++++++++++++++
>   tools/virtiofsd/fuse_lowlevel.h           | 2023 ++++++++++++++
>   tools/virtiofsd/fuse_misc.h               |   60 +
>   tools/virtiofsd/fuse_opt.c                |  449 +++
>   tools/virtiofsd/fuse_opt.h                |  272 ++
>   tools/virtiofsd/fuse_signals.c            |   97 +
>   tools/virtiofsd/fuse_virtio.c             |  985 +++++++
>   tools/virtiofsd/fuse_virtio.h             |   33 +
>   tools/virtiofsd/helper.c                  |  349 +++
>   tools/virtiofsd/passthrough_helpers.h     |   51 +
>   tools/virtiofsd/passthrough_ll.c          | 3006 +++++++++++++++++++++
>   tools/virtiofsd/seccomp.c                 |  164 ++
>   tools/virtiofsd/seccomp.h                 |   16 +
>   tools/virtiofsd/virtiofsd.texi            |  104 +
>   37 files changed, 14242 insertions(+), 15 deletions(-)
>   create mode 100644 docs/tools/conf.py
>   create mode 100644 docs/tools/index.rst
>   create mode 100644 docs/tools/virtiofsd-security.rst
>   create mode 100644 include/standard-headers/linux/fuse.h
>   create mode 100644 tools/virtiofsd/50-qemu-virtiofsd.json.in
>   create mode 100644 tools/virtiofsd/Makefile.objs
>   create mode 100644 tools/virtiofsd/buffer.c
>   create mode 100644 tools/virtiofsd/fuse.h
>   create mode 100644 tools/virtiofsd/fuse_common.h
>   create mode 100644 tools/virtiofsd/fuse_i.h
>   create mode 100644 tools/virtiofsd/fuse_log.c
>   create mode 100644 tools/virtiofsd/fuse_log.h
>   create mode 100644 tools/virtiofsd/fuse_lowlevel.c
>   create mode 100644 tools/virtiofsd/fuse_lowlevel.h
>   create mode 100644 tools/virtiofsd/fuse_misc.h
>   create mode 100644 tools/virtiofsd/fuse_opt.c
>   create mode 100644 tools/virtiofsd/fuse_opt.h
>   create mode 100644 tools/virtiofsd/fuse_signals.c
>   create mode 100644 tools/virtiofsd/fuse_virtio.c
>   create mode 100644 tools/virtiofsd/fuse_virtio.h
>   create mode 100644 tools/virtiofsd/helper.c
>   create mode 100644 tools/virtiofsd/passthrough_helpers.h
>   create mode 100644 tools/virtiofsd/passthrough_ll.c
>   create mode 100644 tools/virtiofsd/seccomp.c
>   create mode 100644 tools/virtiofsd/seccomp.h
>   create mode 100644 tools/virtiofsd/virtiofsd.texi
> 


Re: [PATCH v2 000/109] virtiofs daemon [all]
Posted by Dr. David Alan Gilbert 4 years, 2 months ago
* Philippe Mathieu-Daudé (philmd@redhat.com) wrote:
> On 1/21/20 1:22 PM, Dr. David Alan Gilbert (git) wrote:
> > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> > 
> > Hi,
> >    This is a full set for virtiofsd - a daemon
> > that implements the user space side of virtiofs.
> > 
> > I've addressed most review comments from V1; we've got
> > 95 Reviewed-by's out of 110 - I'd like to get a PULL out ASAP.
> > 
> > The set pulls in a big chunk of the upstream libfuse library
> > (unmodified so that it's easy to check it really is upstream),
> > chops all the stuff out we don't need and then adds the
> > new transport we need.  I've formatted everything into qemu's code style -
> > using indent and the clang tools for the files I've imported.
> > 
> > We can't just link with libfuse, since we have to make ABI incompatible
> > changes for the new transport and it's quite invasive; the library is
> > designed to be the basis for multiple filesystems, but all on the same
> > transport.
> > 
> > Running this daemon is typically done with:
> > 
> >     ./virtiofsd --socket-path=/path/socket -o source=/path/to/fs
> > 
> > connected to a qemu that's then started with:
> >     -chardev socket,id=char0,path=/path/socket -device vhost-user-fs-pci,queue-size=1024,chardev=char0,tag=myfs
> > 
> > and then in the guest mount with:
> >     mount -t virtiofs myfs /mnt
> > 
> > Our development branch is: https://gitlab.com/virtio-fs/qemu/tree/virtio-fs-dev
> 
> FWIW this branch contains more than this series, because it failed to build
> on 32-bit:

Right; it's got a whole bunch of stuff that's not ready yet - that's why
it's -dev.

> $ make virtiofsd
>   CC      tools/virtiofsd/fuse_lowlevel.o
> tools/virtiofsd/fuse_lowlevel.c: In function 'do_removemapping':
> tools/virtiofsd/fuse_lowlevel.c:1956:60: error: format '%ld' expects
> argument of type 'long int', but argument 4 has type 'unsigned int'
> [-Werror=format=]
>              "do_removemapping: invalid in, expected %d * %ld, has %ld -
> %ld\n",
>                                                             ^
> tools/virtiofsd/fuse_lowlevel.c:1956:69: error: format '%ld' expects
> argument of type 'long int', but argument 5 has type 'size_t {aka unsigned
> int}' [-Werror=format=]
>              "do_removemapping: invalid in, expected %d * %ld, has %ld -
> %ld\n",
>                                                                      ^
> tools/virtiofsd/fuse_lowlevel.c:1956:75: error: format '%ld' expects
> argument of type 'long int', but argument 6 has type 'size_t {aka unsigned
> int}' [-Werror=format=]
>              "do_removemapping: invalid in, expected %d * %ld, has %ld -
> %ld\n",
> 
>    ^
> 
> And the offending patch is not included in the 109:
> 
> $ git show 62d82cfbe5a
> commit 62d82cfbe5a2ad05ae3215f2461b76aa9915108d
> Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
> Date:   Fri Jul 6 18:03:49 2018 +0100
> 
>     DAX: virtiofsd: Add setup/remove mappings fuse commands
> 
> Consider pushing tags with version, so it is easier to diff (virtio-fs-dev
> got force-pushed).

Yep, I already did; it's:

https://gitlab.com/virtio-fs/qemu/tree/virtio-fs-as-posted-2020-01-21

> 
> We don't need libslirp/capstone/dtc but they are still built:

Hmm now wth are those dependencies coming from....

Dave

> $ make virtiofsd
>   GEN     config-host.h
> make[1]: Entering directory 'slirp'
>   CC      slirp/src/state.o
>   CC      slirp/src/tcp_timer.o
>   CC      slirp/src/dhcpv6.o
>   CC      slirp/src/ip_input.o
>   CC      slirp/src/ip6_icmp.o
>   CC      slirp/src/bootp.o
>   CC      slirp/src/ip6_input.o
>   CC      slirp/src/slirp.o
>   CC      slirp/src/vmstate.o
>   CC      slirp/src/ip_output.o
>   CC      slirp/src/ncsi.o
>   CC      slirp/src/tcp_output.o
>   CC      slirp/src/ndp_table.o
>   CC      slirp/src/version.o
>   CC      slirp/src/misc.o
>   CC      slirp/src/ip6_output.o
>   CC      slirp/src/mbuf.o
>   CC      slirp/src/tftp.o
>   CC      slirp/src/arp_table.o
>   CC      slirp/src/util.o
>   CC      slirp/src/socket.o
>   CC      slirp/src/sbuf.o
>   CC      slirp/src/stream.o
>   CC      slirp/src/dnssearch.o
>   CC      slirp/src/udp.o
>   CC      slirp/src/tcp_input.o
>   CC      slirp/src/if.o
>   CC      slirp/src/cksum.o
>   CC      slirp/src/tcp_subr.o
>   CC      slirp/src/udp6.o
>   CC      slirp/src/ip_icmp.o
>   AR      slirp/libslirp.a
> make[1]: Leaving directory 'slirp'
>          DEP dtc/libfdt/fdt_overlay.c
>          DEP dtc/libfdt/fdt_addresses.c
>          DEP dtc/libfdt/fdt_empty_tree.c
>          DEP dtc/libfdt/fdt_strerror.c
>          DEP dtc/libfdt/fdt_rw.c
>          DEP dtc/libfdt/fdt_sw.c
>          DEP dtc/libfdt/fdt_wip.c
>          DEP dtc/libfdt/fdt_ro.c
>          DEP dtc/libfdt/fdt.c
>          DEP dtc/util.c
>          DEP dtc/fdtoverlay.c
>          DEP dtc/fdtput.c
>          DEP dtc/fdtget.c
>          DEP dtc/fdtdump.c
>          DEP convert-dtsv0-lexer.lex.c
>          DEP dtc/srcpos.c
>          BISON dtc-parser.tab.c
>          DEP dtc-parser.tab.c
>          LEX dtc-lexer.lex.c
>          DEP dtc-lexer.lex.c
>          DEP dtc/treesource.c
>          DEP dtc/livetree.c
>          DEP dtc/fstree.c
>          DEP dtc/flattree.c
>          DEP dtc/dtc.c
>          DEP dtc/data.c
>          DEP dtc/checks.c
>          CC libfdt/fdt.o
>          CC libfdt/fdt_ro.o
>          CC libfdt/fdt_wip.o
>          CC libfdt/fdt_sw.o
>          CC libfdt/fdt_rw.o
>          CC libfdt/fdt_strerror.o
>          CC libfdt/fdt_empty_tree.o
>          CC libfdt/fdt_addresses.o
>          CC libfdt/fdt_overlay.o
>          AR libfdt/libfdt.a
> arm-linux-gnueabihf-ar: creating libfdt/libfdt.a
> a - libfdt/fdt.o
> a - libfdt/fdt_ro.o
> a - libfdt/fdt_wip.o
> a - libfdt/fdt_sw.o
> a - libfdt/fdt_rw.o
> a - libfdt/fdt_strerror.o
> a - libfdt/fdt_empty_tree.o
> a - libfdt/fdt_addresses.o
> a - libfdt/fdt_overlay.o
>   CC      cs.o
>   CC      utils.o
>   CC      SStream.o
>   CC      MCInstrDesc.o
>   CC      MCRegisterInfo.o
>   CC      arch/ARM/ARMDisassembler.o
>   CC      arch/ARM/ARMInstPrinter.o
>   CC      arch/ARM/ARMMapping.o
>   CC      arch/ARM/ARMModule.o
>   CC      arch/AArch64/AArch64BaseInfo.o
>   CC      arch/AArch64/AArch64Disassembler.o
>   CC      arch/AArch64/AArch64InstPrinter.o
>   CC      arch/AArch64/AArch64Mapping.o
>   CC      arch/AArch64/AArch64Module.o
>   CC      arch/Mips/MipsDisassembler.o
>   CC      arch/Mips/MipsInstPrinter.o
>   CC      arch/Mips/MipsMapping.o
>   CC      arch/Mips/MipsModule.o
>   CC      arch/PowerPC/PPCDisassembler.o
>   CC      arch/PowerPC/PPCInstPrinter.o
>   CC      arch/PowerPC/PPCMapping.o
>   CC      arch/PowerPC/PPCModule.o
>   CC      arch/Sparc/SparcDisassembler.o
>   CC      arch/Sparc/SparcInstPrinter.o
>   CC      arch/Sparc/SparcMapping.o
>   CC      arch/Sparc/SparcModule.o
>   CC      arch/SystemZ/SystemZDisassembler.o
>   CC      arch/SystemZ/SystemZInstPrinter.o
>   CC      arch/SystemZ/SystemZMapping.o
>   CC      arch/SystemZ/SystemZModule.o
>   CC      arch/SystemZ/SystemZMCTargetDesc.o
>   CC      arch/X86/X86DisassemblerDecoder.o
>   CC      arch/X86/X86Disassembler.o
>   CC      arch/X86/X86IntelInstPrinter.o
>   CC      arch/X86/X86ATTInstPrinter.o
>   CC      arch/X86/X86Mapping.o
>   CC      arch/X86/X86Module.o
>   CC      arch/XCore/XCoreDisassembler.o
>   CC      arch/XCore/XCoreInstPrinter.o
>   CC      arch/XCore/XCoreMapping.o
>   CC      arch/XCore/XCoreModule.o
>   CC      MCInst.o
>   AR      libcapstone.a
>   CC      tools/virtiofsd/buffer.o
>   CC      tools/virtiofsd/fuse_opt.o
>   CC      tools/virtiofsd/fuse_log.o
>   CC      tools/virtiofsd/fuse_lowlevel.o
>   ...
> 
> FYI Paolo queued this patch, so libfdt shouldn't get compiled anymore:
> https://www.mail-archive.com/qemu-devel@nongnu.org/msg671667.html
> 
> > This code is going into tools/virtiofsd  based on the previous long
> > discussion.
> > 
> > Thank you to all those who have contributed code and to those who have
> > reviewed the previous version.
> > 
> > Dave
> > 
> > Dr. David Alan Gilbert (35):
> >    virtiofsd: Pull in upstream headers
> >    virtiofsd: Pull in kernel's fuse.h
> >    virtiofsd: Add auxiliary .c's
> >    virtiofsd: Add fuse_lowlevel.c
> >    virtiofsd: Add passthrough_ll
> >    virtiofsd: Trim down imported files
> >    virtiofsd: Format imported files to qemu style
> >    virtiofsd: Fix fuse_daemonize ignored return values
> >    virtiofsd: Fix common header and define for QEMU builds
> >    virtiofsd: Trim out compatibility code
> >    virtiofsd: Add options for virtio
> >    virtiofsd: Open vhost connection instead of mounting
> >    virtiofsd: Start wiring up vhost-user
> >    virtiofsd: Add main virtio loop
> >    virtiofsd: get/set features callbacks
> >    virtiofsd: Start queue threads
> >    virtiofsd: Poll kick_fd for queue
> >    virtiofsd: Start reading commands from queue
> >    virtiofsd: Send replies to messages
> >    virtiofsd: Keep track of replies
> >    virtiofsd: Add Makefile wiring for virtiofsd contrib
> >    virtiofsd: Fast path for virtio read
> >    virtiofs: Add maintainers entry
> >    virtiofsd: Plumb fuse_bufvec through to do_write_buf
> >    virtiofsd: Pass write iov's all the way through
> >    virtiofsd: cap-ng helpers
> >    docs:  Add docs/tools
> >    virtiofsd: Handle reinit
> >    virtiofsd: Handle hard reboot
> >    virtiofsd: Kill threads when queues are stopped
> >    vhost-user: Print unexpected slave message types
> >    contrib/libvhost-user: Protect slave fd with mutex
> >    virtiofsd: Clean up inodes on destroy
> >    libvhost-user: Fix some memtable remap cases
> >    virtiofsd: Convert lo_destroy to take the lo->mutex lock itself
> > 
> > Eric Ren (1):
> >    virtiofsd: fix incorrect error handling in lo_do_lookup
> > 
> > Eryu Guan (3):
> >    virtiofsd: print log only when priority is high enough
> >    virtiofsd: convert more fprintf and perror to use fuse log infra
> >    virtiofsd: stop all queue threads on exit in virtio_loop()
> > 
> > Jiufei Xue (1):
> >    virtiofsd: support nanosecond resolution for file timestamp
> > 
> > Liu Bo (6):
> >    virtiofsd: fix error handling in main()
> >    virtiofsd: cleanup allocated resource in se
> >    virtiofsd: fix memory leak on lo.source
> >    virtiofsd: add helper for lo_data cleanup
> >    virtiofsd: enable PARALLEL_DIROPS during INIT
> >    Virtiofsd: fix memory leak on fuse queueinfo
> > 
> > Masayoshi Mizuma (4):
> >    virtiofsd: Add ID to the log with FUSE_LOG_DEBUG level
> >    virtiofsd: Add timestamp to the log with FUSE_LOG_DEBUG level
> >    virtiofsd: Prevent multiply running with same vhost_user_socket
> >    virtiofsd: add some options to the help message
> > 
> > Miklos Szeredi (10):
> >    virtiofsd: passthrough_ll: add fallback for racy ops
> >    virtiofsd: passthrough_ll: add renameat2 support
> >    virtiofsd: passthrough_ll: disable readdirplus on cache=never
> >    virtiofsd: passthrough_ll: control readdirplus
> >    virtiofsd: rename unref_inode() to unref_inode_lolocked()
> >    virtiofsd: fail when parent inode isn't known in lo_do_lookup()
> >    virtiofsd: extract root inode init into setup_root()
> >    virtiofsd: passthrough_ll: clean up cache related options
> >    virtiofsd: passthrough_ll: use hashtable
> >    virtiofsd: passthrough_ll: fix refcounting on remove/rename
> > 
> > Misono Tomohiro (1):
> >    virtiofsd: Fix data corruption with O_APPEND write in writeback mode
> > 
> > Peng Tao (1):
> >    virtiofsd: do not always set FUSE_FLOCK_LOCKS
> > 
> > Stefan Hajnoczi (37):
> >    virtiofsd: remove mountpoint dummy argument
> >    virtiofsd: remove unused notify reply support
> >    virtiofsd: add -o source=PATH to help output
> >    virtiofsd: add --fd=FDNUM fd passing option
> >    virtiofsd: make -f (foreground) the default
> >    virtiofsd: add vhost-user.json file
> >    virtiofsd: add --print-capabilities option
> >    virtiofsd: passthrough_ll: add lo_map for ino/fh indirection
> >    virtiofsd: passthrough_ll: add ino_map to hide lo_inode pointers
> >    virtiofsd: passthrough_ll: add dirp_map to hide lo_dirp pointers
> >    virtiofsd: passthrough_ll: add fd_map to hide file descriptors
> >    virtiofsd: validate path components
> >    virtiofsd: add fuse_mbuf_iter API
> >    virtiofsd: validate input buffer sizes in do_write_buf()
> >    virtiofsd: check input buffer size in fuse_lowlevel.c ops
> >    virtiofsd: prevent ".." escape in lo_do_lookup()
> >    virtiofsd: prevent ".." escape in lo_do_readdir()
> >    virtiofsd: use /proc/self/fd/ O_PATH file descriptor
> >    virtiofsd: sandbox mount namespace
> >    virtiofsd: move to an empty network namespace
> >    virtiofsd: move to a new pid namespace
> >    virtiofsd: add seccomp whitelist
> >    virtiofsd: set maximum RLIMIT_NOFILE limit
> >    virtiofsd: fix libfuse information leaks
> >    virtiofsd: add security guide document
> >    virtiofsd: add --syslog command-line option
> >    virtiofsd: use fuse_lowlevel_is_virtio() in fuse_session_destroy()
> >    virtiofsd: prevent fv_queue_thread() vs virtio_loop() races
> >    virtiofsd: make lo_release() atomic
> >    virtiofsd: prevent races with lo_dirp_put()
> >    virtiofsd: rename inode->refcount to inode->nlookup
> >    virtiofsd: add man page
> >    virtiofsd: introduce inode refcount to prevent use-after-free
> >    virtiofsd: process requests in a thread pool
> >    virtiofsd: prevent FUSE_INIT/FUSE_DESTROY races
> >    virtiofsd: fix lo_destroy() resource leaks
> >    virtiofsd: add --thread-pool-size=NUM option
> > 
> > Vivek Goyal (6):
> >    virtiofsd: Make fsync work even if only inode is passed in
> >    virtiofsd: passthrough_ll: create new files in caller's context
> >    virtiofsd: Parse flag FUSE_WRITE_KILL_PRIV
> >    virtiofsd: Drop CAP_FSETID if client asked for it
> >    virtiofsd: Support remote posix locks
> >    virtiofsd: Reset O_DIRECT flag during file open
> > 
> > Xiao Yang (2):
> >    vitriofsd/passthrough_ll: fix fallocate() ifdefs
> >    virtiofsd/passthrough_ll: Pass errno to fuse_reply_err()
> > 
> > piaojun (2):
> >    virtiofsd: add definition of fuse_buf_writev()
> >    virtiofsd: use fuse_buf_writev to replace fuse_buf_write for better
> >      performance
> > 
> >   .gitignore                                |    1 +
> >   MAINTAINERS                               |    8 +
> >   Makefile                                  |   27 +-
> >   Makefile.objs                             |    1 +
> >   configure                                 |   16 +
> >   contrib/libvhost-user/libvhost-user.c     |   57 +-
> >   contrib/libvhost-user/libvhost-user.h     |    6 +
> >   docs/index.rst                            |    1 +
> >   docs/interop/vhost-user.json              |    4 +-
> >   docs/tools/conf.py                        |   16 +
> >   docs/tools/index.rst                      |   14 +
> >   docs/tools/virtiofsd-security.rst         |  118 +
> >   hw/virtio/vhost-user.c                    |    2 +-
> >   include/standard-headers/linux/fuse.h     |  891 ++++++
> >   scripts/update-linux-headers.sh           |    1 +
> >   tools/virtiofsd/50-qemu-virtiofsd.json.in |    5 +
> >   tools/virtiofsd/Makefile.objs             |   12 +
> >   tools/virtiofsd/buffer.c                  |  351 +++
> >   tools/virtiofsd/fuse.h                    | 1249 +++++++++
> >   tools/virtiofsd/fuse_common.h             |  860 ++++++
> >   tools/virtiofsd/fuse_i.h                  |  115 +
> >   tools/virtiofsd/fuse_log.c                |   40 +
> >   tools/virtiofsd/fuse_log.h                |   74 +
> >   tools/virtiofsd/fuse_lowlevel.c           | 2779 +++++++++++++++++++
> >   tools/virtiofsd/fuse_lowlevel.h           | 2023 ++++++++++++++
> >   tools/virtiofsd/fuse_misc.h               |   60 +
> >   tools/virtiofsd/fuse_opt.c                |  449 +++
> >   tools/virtiofsd/fuse_opt.h                |  272 ++
> >   tools/virtiofsd/fuse_signals.c            |   97 +
> >   tools/virtiofsd/fuse_virtio.c             |  985 +++++++
> >   tools/virtiofsd/fuse_virtio.h             |   33 +
> >   tools/virtiofsd/helper.c                  |  349 +++
> >   tools/virtiofsd/passthrough_helpers.h     |   51 +
> >   tools/virtiofsd/passthrough_ll.c          | 3006 +++++++++++++++++++++
> >   tools/virtiofsd/seccomp.c                 |  164 ++
> >   tools/virtiofsd/seccomp.h                 |   16 +
> >   tools/virtiofsd/virtiofsd.texi            |  104 +
> >   37 files changed, 14242 insertions(+), 15 deletions(-)
> >   create mode 100644 docs/tools/conf.py
> >   create mode 100644 docs/tools/index.rst
> >   create mode 100644 docs/tools/virtiofsd-security.rst
> >   create mode 100644 include/standard-headers/linux/fuse.h
> >   create mode 100644 tools/virtiofsd/50-qemu-virtiofsd.json.in
> >   create mode 100644 tools/virtiofsd/Makefile.objs
> >   create mode 100644 tools/virtiofsd/buffer.c
> >   create mode 100644 tools/virtiofsd/fuse.h
> >   create mode 100644 tools/virtiofsd/fuse_common.h
> >   create mode 100644 tools/virtiofsd/fuse_i.h
> >   create mode 100644 tools/virtiofsd/fuse_log.c
> >   create mode 100644 tools/virtiofsd/fuse_log.h
> >   create mode 100644 tools/virtiofsd/fuse_lowlevel.c
> >   create mode 100644 tools/virtiofsd/fuse_lowlevel.h
> >   create mode 100644 tools/virtiofsd/fuse_misc.h
> >   create mode 100644 tools/virtiofsd/fuse_opt.c
> >   create mode 100644 tools/virtiofsd/fuse_opt.h
> >   create mode 100644 tools/virtiofsd/fuse_signals.c
> >   create mode 100644 tools/virtiofsd/fuse_virtio.c
> >   create mode 100644 tools/virtiofsd/fuse_virtio.h
> >   create mode 100644 tools/virtiofsd/helper.c
> >   create mode 100644 tools/virtiofsd/passthrough_helpers.h
> >   create mode 100644 tools/virtiofsd/passthrough_ll.c
> >   create mode 100644 tools/virtiofsd/seccomp.c
> >   create mode 100644 tools/virtiofsd/seccomp.h
> >   create mode 100644 tools/virtiofsd/virtiofsd.texi
> > 
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK


Re: [PATCH v2 000/109] virtiofs daemon [all]
Posted by no-reply@patchew.org 4 years, 2 months ago
Patchew URL: https://patchew.org/QEMU/20200121122433.50803-1-dgilbert@redhat.com/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20200121122433.50803-1-dgilbert@redhat.com
Subject: [PATCH v2 000/109] virtiofs daemon [all]

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Switched to a new branch 'test'
a8772f4 virtiofsd: add some options to the help message
5de75ca virtiofsd: stop all queue threads on exit in virtio_loop()
e408daa virtiofsd/passthrough_ll: Pass errno to fuse_reply_err()
666dfff virtiofsd: Convert lo_destroy to take the lo->mutex lock itself
685e049 virtiofsd: add --thread-pool-size=NUM option
ed1bf33 virtiofsd: fix lo_destroy() resource leaks
d5f6038 virtiofsd: prevent FUSE_INIT/FUSE_DESTROY races
68b4996 virtiofsd: process requests in a thread pool
3efc97a virtiofsd: use fuse_buf_writev to replace fuse_buf_write for better performance
ac87055 virtiofsd: add definition of fuse_buf_writev()
5bcecff virtiofsd: Fix data corruption with O_APPEND write in writeback mode
85c9154 virtiofsd: Reset O_DIRECT flag during file open
0a73f29 virtiofsd: convert more fprintf and perror to use fuse log infra
5089e4a virtiofsd: do not always set FUSE_FLOCK_LOCKS
8e1ba8b virtiofsd: introduce inode refcount to prevent use-after-free
ae82e36 virtiofsd: passthrough_ll: fix refcounting on remove/rename
b341c29 virtiofsd: add man page
e186f1f libvhost-user: Fix some memtable remap cases
c8bf890 virtiofsd: rename inode->refcount to inode->nlookup
26f3777 virtiofsd: prevent races with lo_dirp_put()
a5dcf06 virtiofsd: make lo_release() atomic
0cc4d67 virtiofsd: prevent fv_queue_thread() vs virtio_loop() races
2e3eb7d virtiofsd: use fuse_lowlevel_is_virtio() in fuse_session_destroy()
c428a7b virtiofsd: Support remote posix locks
9f0856c Virtiofsd: fix memory leak on fuse queueinfo
961aacb virtiofsd: fix incorrect error handling in lo_do_lookup
cdf841a virtiofsd: enable PARALLEL_DIROPS during INIT
467dd68 virtiofsd: Prevent multiply running with same vhost_user_socket
96437e7 virtiofsd: add helper for lo_data cleanup
e684d3f virtiofsd: fix memory leak on lo.source
df9ab38 virtiofsd: cleanup allocated resource in se
508c6fe virtiofsd: fix error handling in main()
63d578f virtiofsd: support nanosecond resolution for file timestamp
7159d81 virtiofsd: Clean up inodes on destroy
a1dc539 virtiofsd: passthrough_ll: use hashtable
4d18c7e virtiofsd: passthrough_ll: clean up cache related options
d8eb059 virtiofsd: extract root inode init into setup_root()
cec9647 virtiofsd: fail when parent inode isn't known in lo_do_lookup()
6fe9f19 virtiofsd: rename unref_inode() to unref_inode_lolocked()
c4b3f6a virtiofsd: passthrough_ll: control readdirplus
7c9cf1f virtiofsd: passthrough_ll: disable readdirplus on cache=never
53b30be virtiofsd: passthrough_ll: add renameat2 support
11361bd contrib/libvhost-user: Protect slave fd with mutex
e3cc2ba vhost-user: Print unexpected slave message types
11020ae virtiofsd: Kill threads when queues are stopped
eb8bcda virtiofsd: Handle hard reboot
e50f35d virtiofsd: Handle reinit
a67a31a virtiofsd: Add timestamp to the log with FUSE_LOG_DEBUG level
3d89fb4 virtiofsd: Add ID to the log with FUSE_LOG_DEBUG level
a81ca7e virtiofsd: print log only when priority is high enough
edd9719 virtiofsd: add --syslog command-line option
efe201e virtiofsd: add security guide document
2dad7b2 docs: Add docs/tools
9f1fa14 virtiofsd: fix libfuse information leaks
c0baae4 virtiofsd: set maximum RLIMIT_NOFILE limit
76446bf virtiofsd: Drop CAP_FSETID if client asked for it
ab43896 virtiofsd: cap-ng helpers
2671d8d virtiofsd: Parse flag FUSE_WRITE_KILL_PRIV
40c8f88 virtiofsd: add seccomp whitelist
ae376f2 virtiofsd: move to a new pid namespace
c16b4a4 virtiofsd: move to an empty network namespace
7c4d13b virtiofsd: sandbox mount namespace
339f772 virtiofsd: use /proc/self/fd/ O_PATH file descriptor
1ef2f81 virtiofsd: prevent ".." escape in lo_do_readdir()
c99dc2e virtiofsd: prevent ".." escape in lo_do_lookup()
50f4f13 virtiofsd: check input buffer size in fuse_lowlevel.c ops
6876dc5 virtiofsd: validate input buffer sizes in do_write_buf()
4387aa0 virtiofsd: add fuse_mbuf_iter API
cc2fbb4 virtiofsd: Pass write iov's all the way through
43ecbf3 virtiofsd: Plumb fuse_bufvec through to do_write_buf
ccdf460 virtiofsd: validate path components
3091d61 virtiofsd: passthrough_ll: add fallback for racy ops
1503ea8 virtiofsd: passthrough_ll: add fd_map to hide file descriptors
8636126 virtiofsd: passthrough_ll: add dirp_map to hide lo_dirp pointers
644fc3d virtiofsd: passthrough_ll: add ino_map to hide lo_inode pointers
939a8c1 virtiofsd: passthrough_ll: add lo_map for ino/fh indirection
c28971c virtiofsd: passthrough_ll: create new files in caller's context
3057356 virtiofs: Add maintainers entry
ccd0ea7 virtiofsd: add --print-capabilities option
45b7e05 virtiofsd: add vhost-user.json file
765bef1 virtiofsd: make -f (foreground) the default
4786066 virtiofsd: add --fd=FDNUM fd passing option
4cc4b1f virtiofsd: Fast path for virtio read
218ed21 virtiofsd: Add Makefile wiring for virtiofsd contrib
8d3af2f virtiofsd: Keep track of replies
f3879c2 virtiofsd: Send replies to messages
3539f64 virtiofsd: Start reading commands from queue
fab13e3 virtiofsd: Poll kick_fd for queue
ab5fc4d virtiofsd: Start queue threads
ae01056 virtiofsd: get/set features callbacks
9aede91 virtiofsd: Add main virtio loop
87ea47a virtiofsd: Start wiring up vhost-user
9c3144f virtiofsd: Open vhost connection instead of mounting
1571a3e virtiofsd: add -o source=PATH to help output
e35e623 virtiofsd: Add options for virtio
6c2c400 virtiofsd: Make fsync work even if only inode is passed in
5df6fea vitriofsd/passthrough_ll: fix fallocate() ifdefs
574d6f0 virtiofsd: Trim out compatibility code
739dd58 virtiofsd: Fix common header and define for QEMU builds
5d45435 virtiofsd: Fix fuse_daemonize ignored return values
e2d7a5a virtiofsd: remove unused notify reply support
cd8ab81 virtiofsd: remove mountpoint dummy argument
16be3a4 virtiofsd: Format imported files to qemu style
6f5a056 virtiofsd: Trim down imported files
3967519 virtiofsd: Add passthrough_ll
00022bc virtiofsd: Add fuse_lowlevel.c
f4d42e2 virtiofsd: Add auxiliary .c's
6244fcd virtiofsd: Pull in kernel's fuse.h
485fb8a virtiofsd: Pull in upstream headers

=== OUTPUT BEGIN ===
1/109 Checking commit 485fb8a6ae57 (virtiofsd: Pull in upstream headers)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#15: 
new file mode 100644

WARNING: Block comments use * on subsequent lines
#21: FILE: tools/virtiofsd/fuse.h:2:
+/*
+  FUSE: Filesystem in Userspace

WARNING: Block comments use a leading /* on a separate line
#31: FILE: tools/virtiofsd/fuse.h:12:
+/** @file

WARNING: architecture specific defines should be avoided
#47: FILE: tools/virtiofsd/fuse.h:28:
+#ifdef __cplusplus

WARNING: Block comments use a leading /* on a separate line
#51: FILE: tools/virtiofsd/fuse.h:32:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#52: FILE: tools/virtiofsd/fuse.h:33:
+ * Basic FUSE API^I^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#53: FILE: tools/virtiofsd/fuse.h:34:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#62: FILE: tools/virtiofsd/fuse.h:43:
+^I/**$

ERROR: code indent should never use tabs
#63: FILE: tools/virtiofsd/fuse.h:44:
+^I * "Plus" mode.$

ERROR: code indent should never use tabs
#64: FILE: tools/virtiofsd/fuse.h:45:
+^I *$

ERROR: code indent should never use tabs
#65: FILE: tools/virtiofsd/fuse.h:46:
+^I * The kernel wants to prefill the inode cache during readdir.  The$

ERROR: code indent should never use tabs
#66: FILE: tools/virtiofsd/fuse.h:47:
+^I * filesystem may honour this by filling in the attributes and setting$

ERROR: code indent should never use tabs
#67: FILE: tools/virtiofsd/fuse.h:48:
+^I * FUSE_FILL_DIR_FLAGS for the filler function.  The filesystem may also$

ERROR: code indent should never use tabs
#68: FILE: tools/virtiofsd/fuse.h:49:
+^I * just ignore this flag completely.$

ERROR: code indent should never use tabs
#69: FILE: tools/virtiofsd/fuse.h:50:
+^I */$

ERROR: code indent should never use tabs
#70: FILE: tools/virtiofsd/fuse.h:51:
+^IFUSE_READDIR_PLUS = (1 << 0),$

ERROR: code indent should never use tabs
#74: FILE: tools/virtiofsd/fuse.h:55:
+^I/**$

ERROR: code indent should never use tabs
#75: FILE: tools/virtiofsd/fuse.h:56:
+^I * "Plus" mode: all file attributes are valid$

ERROR: code indent should never use tabs
#76: FILE: tools/virtiofsd/fuse.h:57:
+^I *$

ERROR: code indent should never use tabs
#77: FILE: tools/virtiofsd/fuse.h:58:
+^I * The attributes are used by the kernel to prefill the inode cache$

ERROR: code indent should never use tabs
#78: FILE: tools/virtiofsd/fuse.h:59:
+^I * during a readdir.$

ERROR: code indent should never use tabs
#79: FILE: tools/virtiofsd/fuse.h:60:
+^I *$

ERROR: code indent should never use tabs
#80: FILE: tools/virtiofsd/fuse.h:61:
+^I * It is okay to set FUSE_FILL_DIR_PLUS if FUSE_READDIR_PLUS is not set$

ERROR: code indent should never use tabs
#81: FILE: tools/virtiofsd/fuse.h:62:
+^I * and vice versa.$

ERROR: code indent should never use tabs
#82: FILE: tools/virtiofsd/fuse.h:63:
+^I */$

ERROR: code indent should never use tabs
#83: FILE: tools/virtiofsd/fuse.h:64:
+^IFUSE_FILL_DIR_PLUS = (1 << 1),$

WARNING: Block comments use a leading /* on a separate line
#86: FILE: tools/virtiofsd/fuse.h:67:
+/** Function to add an entry in a readdir() operation

ERROR: trailing whitespace
#93: FILE: tools/virtiofsd/fuse.h:74:
+ * $

ERROR: code indent should never use tabs
#102: FILE: tools/virtiofsd/fuse.h:83:
+^I^I^I^Iconst struct stat *stbuf, off_t off,$

ERROR: code indent should never use tabs
#103: FILE: tools/virtiofsd/fuse.h:84:
+^I^I^I^Ienum fuse_fill_dir_flags flags);$

ERROR: code indent should never use tabs
#113: FILE: tools/virtiofsd/fuse.h:94:
+^I/**$

ERROR: code indent should never use tabs
#114: FILE: tools/virtiofsd/fuse.h:95:
+^I * If `set_gid` is non-zero, the st_gid attribute of each file$

ERROR: code indent should never use tabs
#115: FILE: tools/virtiofsd/fuse.h:96:
+^I * is overwritten with the value of `gid`.$

ERROR: code indent should never use tabs
#116: FILE: tools/virtiofsd/fuse.h:97:
+^I */$

ERROR: code indent should never use tabs
#117: FILE: tools/virtiofsd/fuse.h:98:
+^Iint set_gid;$

ERROR: code indent should never use tabs
#118: FILE: tools/virtiofsd/fuse.h:99:
+^Iunsigned int gid;$

ERROR: code indent should never use tabs
#120: FILE: tools/virtiofsd/fuse.h:101:
+^I/**$

ERROR: code indent should never use tabs
#121: FILE: tools/virtiofsd/fuse.h:102:
+^I * If `set_uid` is non-zero, the st_uid attribute of each file$

ERROR: code indent should never use tabs
#122: FILE: tools/virtiofsd/fuse.h:103:
+^I * is overwritten with the value of `uid`.$

ERROR: code indent should never use tabs
#123: FILE: tools/virtiofsd/fuse.h:104:
+^I */$

ERROR: code indent should never use tabs
#124: FILE: tools/virtiofsd/fuse.h:105:
+^Iint set_uid;$

ERROR: code indent should never use tabs
#125: FILE: tools/virtiofsd/fuse.h:106:
+^Iunsigned int uid;$

ERROR: code indent should never use tabs
#127: FILE: tools/virtiofsd/fuse.h:108:
+^I/**$

ERROR: code indent should never use tabs
#128: FILE: tools/virtiofsd/fuse.h:109:
+^I * If `set_mode` is non-zero, the any permissions bits set in$

ERROR: code indent should never use tabs
#129: FILE: tools/virtiofsd/fuse.h:110:
+^I * `umask` are unset in the st_mode attribute of each file.$

ERROR: code indent should never use tabs
#130: FILE: tools/virtiofsd/fuse.h:111:
+^I */$

ERROR: code indent should never use tabs
#131: FILE: tools/virtiofsd/fuse.h:112:
+^Iint set_mode;$

ERROR: code indent should never use tabs
#132: FILE: tools/virtiofsd/fuse.h:113:
+^Iunsigned int umask;$

ERROR: code indent should never use tabs
#134: FILE: tools/virtiofsd/fuse.h:115:
+^I/**$

ERROR: code indent should never use tabs
#135: FILE: tools/virtiofsd/fuse.h:116:
+^I * The timeout in seconds for which name lookups will be$

ERROR: code indent should never use tabs
#136: FILE: tools/virtiofsd/fuse.h:117:
+^I * cached.$

ERROR: code indent should never use tabs
#137: FILE: tools/virtiofsd/fuse.h:118:
+^I */$

ERROR: code indent should never use tabs
#138: FILE: tools/virtiofsd/fuse.h:119:
+^Idouble entry_timeout;$

ERROR: code indent should never use tabs
#140: FILE: tools/virtiofsd/fuse.h:121:
+^I/**$

ERROR: code indent should never use tabs
#141: FILE: tools/virtiofsd/fuse.h:122:
+^I * The timeout in seconds for which a negative lookup will be$

ERROR: code indent should never use tabs
#142: FILE: tools/virtiofsd/fuse.h:123:
+^I * cached. This means, that if file did not exist (lookup$

ERROR: code indent should never use tabs
#143: FILE: tools/virtiofsd/fuse.h:124:
+^I * retuned ENOENT), the lookup will only be redone after the$

ERROR: code indent should never use tabs
#144: FILE: tools/virtiofsd/fuse.h:125:
+^I * timeout, and the file/directory will be assumed to not$

ERROR: code indent should never use tabs
#145: FILE: tools/virtiofsd/fuse.h:126:
+^I * exist until then. A value of zero means that negative$

ERROR: code indent should never use tabs
#146: FILE: tools/virtiofsd/fuse.h:127:
+^I * lookups are not cached.$

ERROR: code indent should never use tabs
#147: FILE: tools/virtiofsd/fuse.h:128:
+^I */$

ERROR: code indent should never use tabs
#148: FILE: tools/virtiofsd/fuse.h:129:
+^Idouble negative_timeout;$

ERROR: code indent should never use tabs
#150: FILE: tools/virtiofsd/fuse.h:131:
+^I/**$

ERROR: code indent should never use tabs
#151: FILE: tools/virtiofsd/fuse.h:132:
+^I * The timeout in seconds for which file/directory attributes$

ERROR: code indent should never use tabs
#152: FILE: tools/virtiofsd/fuse.h:133:
+^I * (as returned by e.g. the `getattr` handler) are cached.$

ERROR: code indent should never use tabs
#153: FILE: tools/virtiofsd/fuse.h:134:
+^I */$

ERROR: code indent should never use tabs
#154: FILE: tools/virtiofsd/fuse.h:135:
+^Idouble attr_timeout;$

ERROR: code indent should never use tabs
#156: FILE: tools/virtiofsd/fuse.h:137:
+^I/**$

ERROR: code indent should never use tabs
#157: FILE: tools/virtiofsd/fuse.h:138:
+^I * Allow requests to be interrupted$

ERROR: code indent should never use tabs
#158: FILE: tools/virtiofsd/fuse.h:139:
+^I */$

ERROR: code indent should never use tabs
#159: FILE: tools/virtiofsd/fuse.h:140:
+^Iint intr;$

ERROR: code indent should never use tabs
#161: FILE: tools/virtiofsd/fuse.h:142:
+^I/**$

ERROR: code indent should never use tabs
#162: FILE: tools/virtiofsd/fuse.h:143:
+^I * Specify which signal number to send to the filesystem when$

ERROR: code indent should never use tabs
#163: FILE: tools/virtiofsd/fuse.h:144:
+^I * a request is interrupted.  The default is hardcoded to$

ERROR: code indent should never use tabs
#164: FILE: tools/virtiofsd/fuse.h:145:
+^I * USR1.$

ERROR: code indent should never use tabs
#165: FILE: tools/virtiofsd/fuse.h:146:
+^I */$

ERROR: code indent should never use tabs
#166: FILE: tools/virtiofsd/fuse.h:147:
+^Iint intr_signal;$

ERROR: code indent should never use tabs
#168: FILE: tools/virtiofsd/fuse.h:149:
+^I/**$

ERROR: code indent should never use tabs
#169: FILE: tools/virtiofsd/fuse.h:150:
+^I * Normally, FUSE assigns inodes to paths only for as long as$

ERROR: code indent should never use tabs
#170: FILE: tools/virtiofsd/fuse.h:151:
+^I * the kernel is aware of them. With this option inodes are$

ERROR: code indent should never use tabs
#171: FILE: tools/virtiofsd/fuse.h:152:
+^I * instead remembered for at least this many seconds.  This$

ERROR: code indent should never use tabs
#172: FILE: tools/virtiofsd/fuse.h:153:
+^I * will require more memory, but may be necessary when using$

ERROR: code indent should never use tabs
#173: FILE: tools/virtiofsd/fuse.h:154:
+^I * applications that make use of inode numbers.$

ERROR: code indent should never use tabs
#174: FILE: tools/virtiofsd/fuse.h:155:
+^I *$

ERROR: code indent should never use tabs
#175: FILE: tools/virtiofsd/fuse.h:156:
+^I * A number of -1 means that inodes will be remembered for the$

ERROR: code indent should never use tabs
#176: FILE: tools/virtiofsd/fuse.h:157:
+^I * entire life-time of the file-system process.$

ERROR: code indent should never use tabs
#177: FILE: tools/virtiofsd/fuse.h:158:
+^I */$

ERROR: code indent should never use tabs
#178: FILE: tools/virtiofsd/fuse.h:159:
+^Iint remember;$

ERROR: code indent should never use tabs
#180: FILE: tools/virtiofsd/fuse.h:161:
+^I/**$

ERROR: code indent should never use tabs
#181: FILE: tools/virtiofsd/fuse.h:162:
+^I * The default behavior is that if an open file is deleted,$

ERROR: code indent should never use tabs
#182: FILE: tools/virtiofsd/fuse.h:163:
+^I * the file is renamed to a hidden file (.fuse_hiddenXXX), and$

ERROR: code indent should never use tabs
#183: FILE: tools/virtiofsd/fuse.h:164:
+^I * only removed when the file is finally released.  This$

ERROR: code indent should never use tabs
#184: FILE: tools/virtiofsd/fuse.h:165:
+^I * relieves the filesystem implementation of having to deal$

ERROR: code indent should never use tabs
#185: FILE: tools/virtiofsd/fuse.h:166:
+^I * with this problem. This option disables the hiding$

ERROR: code indent should never use tabs
#186: FILE: tools/virtiofsd/fuse.h:167:
+^I * behavior, and files are removed immediately in an unlink$

ERROR: code indent should never use tabs
#187: FILE: tools/virtiofsd/fuse.h:168:
+^I * operation (or in a rename operation which overwrites an$

ERROR: code indent should never use tabs
#188: FILE: tools/virtiofsd/fuse.h:169:
+^I * existing file).$

ERROR: code indent should never use tabs
#189: FILE: tools/virtiofsd/fuse.h:170:
+^I *$

ERROR: code indent should never use tabs
#190: FILE: tools/virtiofsd/fuse.h:171:
+^I * It is recommended that you not use the hard_remove$

ERROR: code indent should never use tabs
#191: FILE: tools/virtiofsd/fuse.h:172:
+^I * option. When hard_remove is set, the following libc$

ERROR: code indent should never use tabs
#192: FILE: tools/virtiofsd/fuse.h:173:
+^I * functions fail on unlinked files (returning errno of$

ERROR: code indent should never use tabs
#193: FILE: tools/virtiofsd/fuse.h:174:
+^I * ENOENT): read(2), write(2), fsync(2), close(2), f*xattr(2),$

ERROR: code indent should never use tabs
#194: FILE: tools/virtiofsd/fuse.h:175:
+^I * ftruncate(2), fstat(2), fchmod(2), fchown(2)$

ERROR: code indent should never use tabs
#195: FILE: tools/virtiofsd/fuse.h:176:
+^I */$

ERROR: code indent should never use tabs
#196: FILE: tools/virtiofsd/fuse.h:177:
+^Iint hard_remove;$

ERROR: code indent should never use tabs
#198: FILE: tools/virtiofsd/fuse.h:179:
+^I/**$

ERROR: code indent should never use tabs
#199: FILE: tools/virtiofsd/fuse.h:180:
+^I * Honor the st_ino field in the functions getattr() and$

ERROR: code indent should never use tabs
#200: FILE: tools/virtiofsd/fuse.h:181:
+^I * fill_dir(). This value is used to fill in the st_ino field$

ERROR: code indent should never use tabs
#201: FILE: tools/virtiofsd/fuse.h:182:
+^I * in the stat(2), lstat(2), fstat(2) functions and the d_ino$

ERROR: code indent should never use tabs
#202: FILE: tools/virtiofsd/fuse.h:183:
+^I * field in the readdir(2) function. The filesystem does not$

ERROR: code indent should never use tabs
#203: FILE: tools/virtiofsd/fuse.h:184:
+^I * have to guarantee uniqueness, however some applications$

ERROR: code indent should never use tabs
#204: FILE: tools/virtiofsd/fuse.h:185:
+^I * rely on this value being unique for the whole filesystem.$

ERROR: code indent should never use tabs
#205: FILE: tools/virtiofsd/fuse.h:186:
+^I *$

ERROR: trailing whitespace
#206: FILE: tools/virtiofsd/fuse.h:187:
+^I * Note that this does *not* affect the inode that libfuse $

ERROR: code indent should never use tabs
#206: FILE: tools/virtiofsd/fuse.h:187:
+^I * Note that this does *not* affect the inode that libfuse $

ERROR: code indent should never use tabs
#207: FILE: tools/virtiofsd/fuse.h:188:
+^I * and the kernel use internally (also called the "nodeid").$

ERROR: code indent should never use tabs
#208: FILE: tools/virtiofsd/fuse.h:189:
+^I */$

ERROR: code indent should never use tabs
#209: FILE: tools/virtiofsd/fuse.h:190:
+^Iint use_ino;$

ERROR: code indent should never use tabs
#211: FILE: tools/virtiofsd/fuse.h:192:
+^I/**$

ERROR: code indent should never use tabs
#212: FILE: tools/virtiofsd/fuse.h:193:
+^I * If use_ino option is not given, still try to fill in the$

ERROR: code indent should never use tabs
#213: FILE: tools/virtiofsd/fuse.h:194:
+^I * d_ino field in readdir(2). If the name was previously$

ERROR: code indent should never use tabs
#214: FILE: tools/virtiofsd/fuse.h:195:
+^I * looked up, and is still in the cache, the inode number$

ERROR: code indent should never use tabs
#215: FILE: tools/virtiofsd/fuse.h:196:
+^I * found there will be used.  Otherwise it will be set to -1.$

ERROR: code indent should never use tabs
#216: FILE: tools/virtiofsd/fuse.h:197:
+^I * If use_ino option is given, this option is ignored.$

ERROR: code indent should never use tabs
#217: FILE: tools/virtiofsd/fuse.h:198:
+^I */$

ERROR: code indent should never use tabs
#218: FILE: tools/virtiofsd/fuse.h:199:
+^Iint readdir_ino;$

ERROR: code indent should never use tabs
#220: FILE: tools/virtiofsd/fuse.h:201:
+^I/**$

ERROR: code indent should never use tabs
#221: FILE: tools/virtiofsd/fuse.h:202:
+^I * This option disables the use of page cache (file content cache)$

ERROR: code indent should never use tabs
#222: FILE: tools/virtiofsd/fuse.h:203:
+^I * in the kernel for this filesystem. This has several affects:$

ERROR: code indent should never use tabs
#223: FILE: tools/virtiofsd/fuse.h:204:
+^I *$

ERROR: code indent should never use tabs
#224: FILE: tools/virtiofsd/fuse.h:205:
+^I * 1. Each read(2) or write(2) system call will initiate one$

ERROR: code indent should never use tabs
#225: FILE: tools/virtiofsd/fuse.h:206:
+^I *    or more read or write operations, data will not be$

ERROR: code indent should never use tabs
#226: FILE: tools/virtiofsd/fuse.h:207:
+^I *    cached in the kernel.$

ERROR: code indent should never use tabs
#227: FILE: tools/virtiofsd/fuse.h:208:
+^I *$

ERROR: code indent should never use tabs
#228: FILE: tools/virtiofsd/fuse.h:209:
+^I * 2. The return value of the read() and write() system calls$

ERROR: code indent should never use tabs
#229: FILE: tools/virtiofsd/fuse.h:210:
+^I *    will correspond to the return values of the read and$

ERROR: code indent should never use tabs
#230: FILE: tools/virtiofsd/fuse.h:211:
+^I *    write operations. This is useful for example if the$

ERROR: code indent should never use tabs
#231: FILE: tools/virtiofsd/fuse.h:212:
+^I *    file size is not known in advance (before reading it).$

ERROR: code indent should never use tabs
#232: FILE: tools/virtiofsd/fuse.h:213:
+^I *$

ERROR: code indent should never use tabs
#233: FILE: tools/virtiofsd/fuse.h:214:
+^I * Internally, enabling this option causes fuse to set the$

ERROR: code indent should never use tabs
#234: FILE: tools/virtiofsd/fuse.h:215:
+^I * `direct_io` field of `struct fuse_file_info` - overwriting$

ERROR: code indent should never use tabs
#235: FILE: tools/virtiofsd/fuse.h:216:
+^I * any value that was put there by the file system.$

ERROR: code indent should never use tabs
#236: FILE: tools/virtiofsd/fuse.h:217:
+^I */$

ERROR: code indent should never use tabs
#237: FILE: tools/virtiofsd/fuse.h:218:
+^Iint direct_io;$

ERROR: code indent should never use tabs
#239: FILE: tools/virtiofsd/fuse.h:220:
+^I/**$

ERROR: code indent should never use tabs
#240: FILE: tools/virtiofsd/fuse.h:221:
+^I * This option disables flushing the cache of the file$

ERROR: code indent should never use tabs
#241: FILE: tools/virtiofsd/fuse.h:222:
+^I * contents on every open(2).  This should only be enabled on$

ERROR: code indent should never use tabs
#242: FILE: tools/virtiofsd/fuse.h:223:
+^I * filesystems where the file data is never changed$

ERROR: code indent should never use tabs
#243: FILE: tools/virtiofsd/fuse.h:224:
+^I * externally (not through the mounted FUSE filesystem).  Thus$

ERROR: code indent should never use tabs
#244: FILE: tools/virtiofsd/fuse.h:225:
+^I * it is not suitable for network filesystems and other$

ERROR: code indent should never use tabs
#245: FILE: tools/virtiofsd/fuse.h:226:
+^I * intermediate filesystems.$

ERROR: code indent should never use tabs
#246: FILE: tools/virtiofsd/fuse.h:227:
+^I *$

ERROR: code indent should never use tabs
#247: FILE: tools/virtiofsd/fuse.h:228:
+^I * NOTE: if this option is not specified (and neither$

ERROR: code indent should never use tabs
#248: FILE: tools/virtiofsd/fuse.h:229:
+^I * direct_io) data is still cached after the open(2), so a$

ERROR: code indent should never use tabs
#249: FILE: tools/virtiofsd/fuse.h:230:
+^I * read(2) system call will not always initiate a read$

ERROR: code indent should never use tabs
#250: FILE: tools/virtiofsd/fuse.h:231:
+^I * operation.$

ERROR: code indent should never use tabs
#251: FILE: tools/virtiofsd/fuse.h:232:
+^I *$

ERROR: code indent should never use tabs
#252: FILE: tools/virtiofsd/fuse.h:233:
+^I * Internally, enabling this option causes fuse to set the$

ERROR: code indent should never use tabs
#253: FILE: tools/virtiofsd/fuse.h:234:
+^I * `keep_cache` field of `struct fuse_file_info` - overwriting$

ERROR: code indent should never use tabs
#254: FILE: tools/virtiofsd/fuse.h:235:
+^I * any value that was put there by the file system.$

ERROR: code indent should never use tabs
#255: FILE: tools/virtiofsd/fuse.h:236:
+^I */$

ERROR: code indent should never use tabs
#256: FILE: tools/virtiofsd/fuse.h:237:
+^Iint kernel_cache;$

ERROR: code indent should never use tabs
#258: FILE: tools/virtiofsd/fuse.h:239:
+^I/**$

ERROR: code indent should never use tabs
#259: FILE: tools/virtiofsd/fuse.h:240:
+^I * This option is an alternative to `kernel_cache`. Instead of$

ERROR: code indent should never use tabs
#260: FILE: tools/virtiofsd/fuse.h:241:
+^I * unconditionally keeping cached data, the cached data is$

ERROR: code indent should never use tabs
#261: FILE: tools/virtiofsd/fuse.h:242:
+^I * invalidated on open(2) if if the modification time or the$

ERROR: code indent should never use tabs
#262: FILE: tools/virtiofsd/fuse.h:243:
+^I * size of the file has changed since it was last opened.$

ERROR: code indent should never use tabs
#263: FILE: tools/virtiofsd/fuse.h:244:
+^I */$

ERROR: code indent should never use tabs
#264: FILE: tools/virtiofsd/fuse.h:245:
+^Iint auto_cache;$

ERROR: code indent should never use tabs
#266: FILE: tools/virtiofsd/fuse.h:247:
+^I/**$

ERROR: code indent should never use tabs
#267: FILE: tools/virtiofsd/fuse.h:248:
+^I * The timeout in seconds for which file attributes are cached$

ERROR: code indent should never use tabs
#268: FILE: tools/virtiofsd/fuse.h:249:
+^I * for the purpose of checking if auto_cache should flush the$

ERROR: code indent should never use tabs
#269: FILE: tools/virtiofsd/fuse.h:250:
+^I * file data on open.$

ERROR: code indent should never use tabs
#270: FILE: tools/virtiofsd/fuse.h:251:
+^I */$

ERROR: code indent should never use tabs
#271: FILE: tools/virtiofsd/fuse.h:252:
+^Iint ac_attr_timeout_set;$

ERROR: code indent should never use tabs
#272: FILE: tools/virtiofsd/fuse.h:253:
+^Idouble ac_attr_timeout;$

ERROR: code indent should never use tabs
#274: FILE: tools/virtiofsd/fuse.h:255:
+^I/**$

ERROR: code indent should never use tabs
#275: FILE: tools/virtiofsd/fuse.h:256:
+^I * If this option is given the file-system handlers for the$

ERROR: code indent should never use tabs
#276: FILE: tools/virtiofsd/fuse.h:257:
+^I * following operations will not receive path information:$

ERROR: code indent should never use tabs
#277: FILE: tools/virtiofsd/fuse.h:258:
+^I * read, write, flush, release, fsync, readdir, releasedir,$

ERROR: code indent should never use tabs
#278: FILE: tools/virtiofsd/fuse.h:259:
+^I * fsyncdir, lock, ioctl and poll.$

ERROR: code indent should never use tabs
#279: FILE: tools/virtiofsd/fuse.h:260:
+^I *$

ERROR: code indent should never use tabs
#280: FILE: tools/virtiofsd/fuse.h:261:
+^I * For the truncate, getattr, chmod, chown and utimens$

ERROR: code indent should never use tabs
#281: FILE: tools/virtiofsd/fuse.h:262:
+^I * operations the path will be provided only if the struct$

ERROR: code indent should never use tabs
#282: FILE: tools/virtiofsd/fuse.h:263:
+^I * fuse_file_info argument is NULL.$

ERROR: code indent should never use tabs
#283: FILE: tools/virtiofsd/fuse.h:264:
+^I */$

ERROR: code indent should never use tabs
#284: FILE: tools/virtiofsd/fuse.h:265:
+^Iint nullpath_ok;$

ERROR: code indent should never use tabs
#286: FILE: tools/virtiofsd/fuse.h:267:
+^I/**$

ERROR: code indent should never use tabs
#287: FILE: tools/virtiofsd/fuse.h:268:
+^I * The remaining options are used by libfuse internally and$

ERROR: code indent should never use tabs
#288: FILE: tools/virtiofsd/fuse.h:269:
+^I * should not be touched.$

ERROR: code indent should never use tabs
#289: FILE: tools/virtiofsd/fuse.h:270:
+^I */$

ERROR: code indent should never use tabs
#290: FILE: tools/virtiofsd/fuse.h:271:
+^Iint show_help;$

ERROR: code indent should never use tabs
#291: FILE: tools/virtiofsd/fuse.h:272:
+^Ichar *modules;$

ERROR: code indent should never use tabs
#292: FILE: tools/virtiofsd/fuse.h:273:
+^Iint debug;$

ERROR: code indent should never use tabs
#319: FILE: tools/virtiofsd/fuse.h:300:
+^I/** Get file attributes.$

WARNING: Block comments use a leading /* on a separate line
#319: FILE: tools/virtiofsd/fuse.h:300:
+       /** Get file attributes.

ERROR: code indent should never use tabs
#320: FILE: tools/virtiofsd/fuse.h:301:
+^I *$

ERROR: code indent should never use tabs
#321: FILE: tools/virtiofsd/fuse.h:302:
+^I * Similar to stat().  The 'st_dev' and 'st_blksize' fields are$

ERROR: code indent should never use tabs
#322: FILE: tools/virtiofsd/fuse.h:303:
+^I * ignored. The 'st_ino' field is ignored except if the 'use_ino'$

ERROR: code indent should never use tabs
#323: FILE: tools/virtiofsd/fuse.h:304:
+^I * mount option is given. In that case it is passed to userspace,$

ERROR: code indent should never use tabs
#324: FILE: tools/virtiofsd/fuse.h:305:
+^I * but libfuse and the kernel will still assign a different$

ERROR: code indent should never use tabs
#325: FILE: tools/virtiofsd/fuse.h:306:
+^I * inode for internal use (called the "nodeid").$

ERROR: code indent should never use tabs
#326: FILE: tools/virtiofsd/fuse.h:307:
+^I *$

ERROR: code indent should never use tabs
#327: FILE: tools/virtiofsd/fuse.h:308:
+^I * `fi` will always be NULL if the file is not currently open, but$

ERROR: code indent should never use tabs
#328: FILE: tools/virtiofsd/fuse.h:309:
+^I * may also be NULL if the file is open.$

ERROR: code indent should never use tabs
#329: FILE: tools/virtiofsd/fuse.h:310:
+^I */$

ERROR: code indent should never use tabs
#330: FILE: tools/virtiofsd/fuse.h:311:
+^Iint (*getattr) (const char *, struct stat *, struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#332: FILE: tools/virtiofsd/fuse.h:313:
+^I/** Read the target of a symbolic link$

WARNING: Block comments use a leading /* on a separate line
#332: FILE: tools/virtiofsd/fuse.h:313:
+       /** Read the target of a symbolic link

ERROR: code indent should never use tabs
#333: FILE: tools/virtiofsd/fuse.h:314:
+^I *$

ERROR: code indent should never use tabs
#334: FILE: tools/virtiofsd/fuse.h:315:
+^I * The buffer should be filled with a null terminated string.  The$

ERROR: code indent should never use tabs
#335: FILE: tools/virtiofsd/fuse.h:316:
+^I * buffer size argument includes the space for the terminating$

ERROR: code indent should never use tabs
#336: FILE: tools/virtiofsd/fuse.h:317:
+^I * null character.^IIf the linkname is too long to fit in the$

ERROR: code indent should never use tabs
#337: FILE: tools/virtiofsd/fuse.h:318:
+^I * buffer, it should be truncated.^IThe return value should be 0$

ERROR: code indent should never use tabs
#338: FILE: tools/virtiofsd/fuse.h:319:
+^I * for success.$

ERROR: code indent should never use tabs
#339: FILE: tools/virtiofsd/fuse.h:320:
+^I */$

ERROR: code indent should never use tabs
#340: FILE: tools/virtiofsd/fuse.h:321:
+^Iint (*readlink) (const char *, char *, size_t);$

ERROR: code indent should never use tabs
#342: FILE: tools/virtiofsd/fuse.h:323:
+^I/** Create a file node$

WARNING: Block comments use a leading /* on a separate line
#342: FILE: tools/virtiofsd/fuse.h:323:
+       /** Create a file node

ERROR: code indent should never use tabs
#343: FILE: tools/virtiofsd/fuse.h:324:
+^I *$

ERROR: code indent should never use tabs
#344: FILE: tools/virtiofsd/fuse.h:325:
+^I * This is called for creation of all non-directory, non-symlink$

ERROR: code indent should never use tabs
#345: FILE: tools/virtiofsd/fuse.h:326:
+^I * nodes.  If the filesystem defines a create() method, then for$

ERROR: code indent should never use tabs
#346: FILE: tools/virtiofsd/fuse.h:327:
+^I * regular files that will be called instead.$

ERROR: code indent should never use tabs
#347: FILE: tools/virtiofsd/fuse.h:328:
+^I */$

ERROR: code indent should never use tabs
#348: FILE: tools/virtiofsd/fuse.h:329:
+^Iint (*mknod) (const char *, mode_t, dev_t);$

ERROR: code indent should never use tabs
#350: FILE: tools/virtiofsd/fuse.h:331:
+^I/** Create a directory$

WARNING: Block comments use a leading /* on a separate line
#350: FILE: tools/virtiofsd/fuse.h:331:
+       /** Create a directory

ERROR: code indent should never use tabs
#351: FILE: tools/virtiofsd/fuse.h:332:
+^I *$

ERROR: code indent should never use tabs
#352: FILE: tools/virtiofsd/fuse.h:333:
+^I * Note that the mode argument may not have the type specification$

ERROR: code indent should never use tabs
#353: FILE: tools/virtiofsd/fuse.h:334:
+^I * bits set, i.e. S_ISDIR(mode) can be false.  To obtain the$

ERROR: code indent should never use tabs
#354: FILE: tools/virtiofsd/fuse.h:335:
+^I * correct directory type bits use  mode|S_IFDIR$

ERROR: code indent should never use tabs
#355: FILE: tools/virtiofsd/fuse.h:336:
+^I * */$

WARNING: Block comments use a trailing */ on a separate line
#355: FILE: tools/virtiofsd/fuse.h:336:
+        * */

ERROR: code indent should never use tabs
#356: FILE: tools/virtiofsd/fuse.h:337:
+^Iint (*mkdir) (const char *, mode_t);$

ERROR: code indent should never use tabs
#358: FILE: tools/virtiofsd/fuse.h:339:
+^I/** Remove a file */$

ERROR: code indent should never use tabs
#359: FILE: tools/virtiofsd/fuse.h:340:
+^Iint (*unlink) (const char *);$

ERROR: code indent should never use tabs
#361: FILE: tools/virtiofsd/fuse.h:342:
+^I/** Remove a directory */$

ERROR: code indent should never use tabs
#362: FILE: tools/virtiofsd/fuse.h:343:
+^Iint (*rmdir) (const char *);$

ERROR: code indent should never use tabs
#364: FILE: tools/virtiofsd/fuse.h:345:
+^I/** Create a symbolic link */$

ERROR: code indent should never use tabs
#365: FILE: tools/virtiofsd/fuse.h:346:
+^Iint (*symlink) (const char *, const char *);$

ERROR: code indent should never use tabs
#367: FILE: tools/virtiofsd/fuse.h:348:
+^I/** Rename a file$

WARNING: Block comments use a leading /* on a separate line
#367: FILE: tools/virtiofsd/fuse.h:348:
+       /** Rename a file

ERROR: code indent should never use tabs
#368: FILE: tools/virtiofsd/fuse.h:349:
+^I *$

ERROR: code indent should never use tabs
#369: FILE: tools/virtiofsd/fuse.h:350:
+^I * *flags* may be `RENAME_EXCHANGE` or `RENAME_NOREPLACE`. If$

ERROR: code indent should never use tabs
#370: FILE: tools/virtiofsd/fuse.h:351:
+^I * RENAME_NOREPLACE is specified, the filesystem must not$

ERROR: code indent should never use tabs
#371: FILE: tools/virtiofsd/fuse.h:352:
+^I * overwrite *newname* if it exists and return an error$

ERROR: code indent should never use tabs
#372: FILE: tools/virtiofsd/fuse.h:353:
+^I * instead. If `RENAME_EXCHANGE` is specified, the filesystem$

ERROR: code indent should never use tabs
#373: FILE: tools/virtiofsd/fuse.h:354:
+^I * must atomically exchange the two files, i.e. both must$

ERROR: code indent should never use tabs
#374: FILE: tools/virtiofsd/fuse.h:355:
+^I * exist and neither may be deleted.$

ERROR: code indent should never use tabs
#375: FILE: tools/virtiofsd/fuse.h:356:
+^I */$

ERROR: code indent should never use tabs
#376: FILE: tools/virtiofsd/fuse.h:357:
+^Iint (*rename) (const char *, const char *, unsigned int flags);$

ERROR: code indent should never use tabs
#378: FILE: tools/virtiofsd/fuse.h:359:
+^I/** Create a hard link to a file */$

ERROR: code indent should never use tabs
#379: FILE: tools/virtiofsd/fuse.h:360:
+^Iint (*link) (const char *, const char *);$

ERROR: code indent should never use tabs
#381: FILE: tools/virtiofsd/fuse.h:362:
+^I/** Change the permission bits of a file$

WARNING: Block comments use a leading /* on a separate line
#381: FILE: tools/virtiofsd/fuse.h:362:
+       /** Change the permission bits of a file

ERROR: code indent should never use tabs
#382: FILE: tools/virtiofsd/fuse.h:363:
+^I *$

ERROR: code indent should never use tabs
#383: FILE: tools/virtiofsd/fuse.h:364:
+^I * `fi` will always be NULL if the file is not currenlty open, but$

ERROR: code indent should never use tabs
#384: FILE: tools/virtiofsd/fuse.h:365:
+^I * may also be NULL if the file is open.$

ERROR: code indent should never use tabs
#385: FILE: tools/virtiofsd/fuse.h:366:
+^I */$

ERROR: code indent should never use tabs
#386: FILE: tools/virtiofsd/fuse.h:367:
+^Iint (*chmod) (const char *, mode_t, struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#388: FILE: tools/virtiofsd/fuse.h:369:
+^I/** Change the owner and group of a file$

WARNING: Block comments use a leading /* on a separate line
#388: FILE: tools/virtiofsd/fuse.h:369:
+       /** Change the owner and group of a file

ERROR: code indent should never use tabs
#389: FILE: tools/virtiofsd/fuse.h:370:
+^I *$

ERROR: code indent should never use tabs
#390: FILE: tools/virtiofsd/fuse.h:371:
+^I * `fi` will always be NULL if the file is not currenlty open, but$

ERROR: code indent should never use tabs
#391: FILE: tools/virtiofsd/fuse.h:372:
+^I * may also be NULL if the file is open.$

ERROR: code indent should never use tabs
#392: FILE: tools/virtiofsd/fuse.h:373:
+^I *$

ERROR: code indent should never use tabs
#393: FILE: tools/virtiofsd/fuse.h:374:
+^I * Unless FUSE_CAP_HANDLE_KILLPRIV is disabled, this method is$

ERROR: code indent should never use tabs
#394: FILE: tools/virtiofsd/fuse.h:375:
+^I * expected to reset the setuid and setgid bits.$

ERROR: code indent should never use tabs
#395: FILE: tools/virtiofsd/fuse.h:376:
+^I */$

ERROR: code indent should never use tabs
#396: FILE: tools/virtiofsd/fuse.h:377:
+^Iint (*chown) (const char *, uid_t, gid_t, struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#398: FILE: tools/virtiofsd/fuse.h:379:
+^I/** Change the size of a file$

WARNING: Block comments use a leading /* on a separate line
#398: FILE: tools/virtiofsd/fuse.h:379:
+       /** Change the size of a file

ERROR: code indent should never use tabs
#399: FILE: tools/virtiofsd/fuse.h:380:
+^I *$

ERROR: code indent should never use tabs
#400: FILE: tools/virtiofsd/fuse.h:381:
+^I * `fi` will always be NULL if the file is not currenlty open, but$

ERROR: code indent should never use tabs
#401: FILE: tools/virtiofsd/fuse.h:382:
+^I * may also be NULL if the file is open.$

ERROR: code indent should never use tabs
#402: FILE: tools/virtiofsd/fuse.h:383:
+^I *$

ERROR: code indent should never use tabs
#403: FILE: tools/virtiofsd/fuse.h:384:
+^I * Unless FUSE_CAP_HANDLE_KILLPRIV is disabled, this method is$

ERROR: code indent should never use tabs
#404: FILE: tools/virtiofsd/fuse.h:385:
+^I * expected to reset the setuid and setgid bits.$

ERROR: code indent should never use tabs
#405: FILE: tools/virtiofsd/fuse.h:386:
+^I */$

ERROR: code indent should never use tabs
#406: FILE: tools/virtiofsd/fuse.h:387:
+^Iint (*truncate) (const char *, off_t, struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#408: FILE: tools/virtiofsd/fuse.h:389:
+^I/** Open a file$

WARNING: Block comments use a leading /* on a separate line
#408: FILE: tools/virtiofsd/fuse.h:389:
+       /** Open a file

ERROR: code indent should never use tabs
#409: FILE: tools/virtiofsd/fuse.h:390:
+^I *$

ERROR: code indent should never use tabs
#410: FILE: tools/virtiofsd/fuse.h:391:
+^I * Open flags are available in fi->flags. The following rules$

ERROR: code indent should never use tabs
#411: FILE: tools/virtiofsd/fuse.h:392:
+^I * apply.$

ERROR: code indent should never use tabs
#412: FILE: tools/virtiofsd/fuse.h:393:
+^I *$

ERROR: code indent should never use tabs
#413: FILE: tools/virtiofsd/fuse.h:394:
+^I *  - Creation (O_CREAT, O_EXCL, O_NOCTTY) flags will be$

ERROR: code indent should never use tabs
#414: FILE: tools/virtiofsd/fuse.h:395:
+^I *    filtered out / handled by the kernel.$

ERROR: code indent should never use tabs
#415: FILE: tools/virtiofsd/fuse.h:396:
+^I *$

ERROR: code indent should never use tabs
#416: FILE: tools/virtiofsd/fuse.h:397:
+^I *  - Access modes (O_RDONLY, O_WRONLY, O_RDWR, O_EXEC, O_SEARCH)$

ERROR: code indent should never use tabs
#417: FILE: tools/virtiofsd/fuse.h:398:
+^I *    should be used by the filesystem to check if the operation is$

ERROR: code indent should never use tabs
#418: FILE: tools/virtiofsd/fuse.h:399:
+^I *    permitted.  If the ``-o default_permissions`` mount option is$

ERROR: code indent should never use tabs
#419: FILE: tools/virtiofsd/fuse.h:400:
+^I *    given, this check is already done by the kernel before calling$

ERROR: code indent should never use tabs
#420: FILE: tools/virtiofsd/fuse.h:401:
+^I *    open() and may thus be omitted by the filesystem.$

ERROR: code indent should never use tabs
#421: FILE: tools/virtiofsd/fuse.h:402:
+^I *$

ERROR: code indent should never use tabs
#422: FILE: tools/virtiofsd/fuse.h:403:
+^I *  - When writeback caching is enabled, the kernel may send$

ERROR: code indent should never use tabs
#423: FILE: tools/virtiofsd/fuse.h:404:
+^I *    read requests even for files opened with O_WRONLY. The$

ERROR: code indent should never use tabs
#424: FILE: tools/virtiofsd/fuse.h:405:
+^I *    filesystem should be prepared to handle this.$

ERROR: code indent should never use tabs
#425: FILE: tools/virtiofsd/fuse.h:406:
+^I *$

ERROR: code indent should never use tabs
#426: FILE: tools/virtiofsd/fuse.h:407:
+^I *  - When writeback caching is disabled, the filesystem is$

ERROR: code indent should never use tabs
#427: FILE: tools/virtiofsd/fuse.h:408:
+^I *    expected to properly handle the O_APPEND flag and ensure$

ERROR: code indent should never use tabs
#428: FILE: tools/virtiofsd/fuse.h:409:
+^I *    that each write is appending to the end of the file.$

ERROR: trailing whitespace
#429: FILE: tools/virtiofsd/fuse.h:410:
+^I * $

ERROR: code indent should never use tabs
#429: FILE: tools/virtiofsd/fuse.h:410:
+^I * $

ERROR: code indent should never use tabs
#431: FILE: tools/virtiofsd/fuse.h:412:
+^I *    handle O_APPEND. However, unless all changes to the file$

ERROR: code indent should never use tabs
#432: FILE: tools/virtiofsd/fuse.h:413:
+^I *    come through the kernel this will not work reliably. The$

ERROR: code indent should never use tabs
#433: FILE: tools/virtiofsd/fuse.h:414:
+^I *    filesystem should thus either ignore the O_APPEND flag$

ERROR: code indent should never use tabs
#434: FILE: tools/virtiofsd/fuse.h:415:
+^I *    (and let the kernel handle it), or return an error$

ERROR: code indent should never use tabs
#435: FILE: tools/virtiofsd/fuse.h:416:
+^I *    (indicating that reliably O_APPEND is not available).$

ERROR: code indent should never use tabs
#436: FILE: tools/virtiofsd/fuse.h:417:
+^I *$

ERROR: code indent should never use tabs
#437: FILE: tools/virtiofsd/fuse.h:418:
+^I * Filesystem may store an arbitrary file handle (pointer,$

ERROR: code indent should never use tabs
#438: FILE: tools/virtiofsd/fuse.h:419:
+^I * index, etc) in fi->fh, and use this in other all other file$

ERROR: code indent should never use tabs
#439: FILE: tools/virtiofsd/fuse.h:420:
+^I * operations (read, write, flush, release, fsync).$

ERROR: code indent should never use tabs
#440: FILE: tools/virtiofsd/fuse.h:421:
+^I *$

ERROR: code indent should never use tabs
#441: FILE: tools/virtiofsd/fuse.h:422:
+^I * Filesystem may also implement stateless file I/O and not store$

ERROR: code indent should never use tabs
#442: FILE: tools/virtiofsd/fuse.h:423:
+^I * anything in fi->fh.$

ERROR: code indent should never use tabs
#443: FILE: tools/virtiofsd/fuse.h:424:
+^I *$

ERROR: code indent should never use tabs
#444: FILE: tools/virtiofsd/fuse.h:425:
+^I * There are also some flags (direct_io, keep_cache) which the$

ERROR: code indent should never use tabs
#445: FILE: tools/virtiofsd/fuse.h:426:
+^I * filesystem may set in fi, to change the way the file is opened.$

ERROR: code indent should never use tabs
#446: FILE: tools/virtiofsd/fuse.h:427:
+^I * See fuse_file_info structure in <fuse_common.h> for more details.$

ERROR: code indent should never use tabs
#447: FILE: tools/virtiofsd/fuse.h:428:
+^I *$

ERROR: code indent should never use tabs
#448: FILE: tools/virtiofsd/fuse.h:429:
+^I * If this request is answered with an error code of ENOSYS$

ERROR: code indent should never use tabs
#449: FILE: tools/virtiofsd/fuse.h:430:
+^I * and FUSE_CAP_NO_OPEN_SUPPORT is set in$

ERROR: code indent should never use tabs
#450: FILE: tools/virtiofsd/fuse.h:431:
+^I * `fuse_conn_info.capable`, this is treated as success and$

ERROR: code indent should never use tabs
#451: FILE: tools/virtiofsd/fuse.h:432:
+^I * future calls to open will also succeed without being send$

ERROR: code indent should never use tabs
#452: FILE: tools/virtiofsd/fuse.h:433:
+^I * to the filesystem process.$

ERROR: code indent should never use tabs
#453: FILE: tools/virtiofsd/fuse.h:434:
+^I *$

ERROR: code indent should never use tabs
#454: FILE: tools/virtiofsd/fuse.h:435:
+^I */$

ERROR: code indent should never use tabs
#455: FILE: tools/virtiofsd/fuse.h:436:
+^Iint (*open) (const char *, struct fuse_file_info *);$

ERROR: code indent should never use tabs
#457: FILE: tools/virtiofsd/fuse.h:438:
+^I/** Read data from an open file$

WARNING: Block comments use a leading /* on a separate line
#457: FILE: tools/virtiofsd/fuse.h:438:
+       /** Read data from an open file

ERROR: code indent should never use tabs
#458: FILE: tools/virtiofsd/fuse.h:439:
+^I *$

ERROR: code indent should never use tabs
#459: FILE: tools/virtiofsd/fuse.h:440:
+^I * Read should return exactly the number of bytes requested except$

ERROR: code indent should never use tabs
#460: FILE: tools/virtiofsd/fuse.h:441:
+^I * on EOF or error, otherwise the rest of the data will be$

ERROR: code indent should never use tabs
#461: FILE: tools/virtiofsd/fuse.h:442:
+^I * substituted with zeroes.^I An exception to this is when the$

ERROR: code indent should never use tabs
#462: FILE: tools/virtiofsd/fuse.h:443:
+^I * 'direct_io' mount option is specified, in which case the return$

ERROR: code indent should never use tabs
#463: FILE: tools/virtiofsd/fuse.h:444:
+^I * value of the read system call will reflect the return value of$

ERROR: code indent should never use tabs
#464: FILE: tools/virtiofsd/fuse.h:445:
+^I * this operation.$

ERROR: code indent should never use tabs
#465: FILE: tools/virtiofsd/fuse.h:446:
+^I */$

ERROR: code indent should never use tabs
#466: FILE: tools/virtiofsd/fuse.h:447:
+^Iint (*read) (const char *, char *, size_t, off_t,$

ERROR: code indent should never use tabs
#467: FILE: tools/virtiofsd/fuse.h:448:
+^I^I     struct fuse_file_info *);$

ERROR: code indent should never use tabs
#469: FILE: tools/virtiofsd/fuse.h:450:
+^I/** Write data to an open file$

WARNING: Block comments use a leading /* on a separate line
#469: FILE: tools/virtiofsd/fuse.h:450:
+       /** Write data to an open file

ERROR: code indent should never use tabs
#470: FILE: tools/virtiofsd/fuse.h:451:
+^I *$

ERROR: code indent should never use tabs
#471: FILE: tools/virtiofsd/fuse.h:452:
+^I * Write should return exactly the number of bytes requested$

ERROR: code indent should never use tabs
#472: FILE: tools/virtiofsd/fuse.h:453:
+^I * except on error.^I An exception to this is when the 'direct_io'$

ERROR: code indent should never use tabs
#473: FILE: tools/virtiofsd/fuse.h:454:
+^I * mount option is specified (see read operation).$

ERROR: code indent should never use tabs
#474: FILE: tools/virtiofsd/fuse.h:455:
+^I *$

ERROR: code indent should never use tabs
#475: FILE: tools/virtiofsd/fuse.h:456:
+^I * Unless FUSE_CAP_HANDLE_KILLPRIV is disabled, this method is$

ERROR: code indent should never use tabs
#476: FILE: tools/virtiofsd/fuse.h:457:
+^I * expected to reset the setuid and setgid bits.$

ERROR: code indent should never use tabs
#477: FILE: tools/virtiofsd/fuse.h:458:
+^I */$

ERROR: code indent should never use tabs
#478: FILE: tools/virtiofsd/fuse.h:459:
+^Iint (*write) (const char *, const char *, size_t, off_t,$

ERROR: code indent should never use tabs
#479: FILE: tools/virtiofsd/fuse.h:460:
+^I^I      struct fuse_file_info *);$

ERROR: code indent should never use tabs
#481: FILE: tools/virtiofsd/fuse.h:462:
+^I/** Get file system statistics$

WARNING: Block comments use a leading /* on a separate line
#481: FILE: tools/virtiofsd/fuse.h:462:
+       /** Get file system statistics

ERROR: code indent should never use tabs
#482: FILE: tools/virtiofsd/fuse.h:463:
+^I *$

ERROR: code indent should never use tabs
#483: FILE: tools/virtiofsd/fuse.h:464:
+^I * The 'f_favail', 'f_fsid' and 'f_flag' fields are ignored$

ERROR: code indent should never use tabs
#484: FILE: tools/virtiofsd/fuse.h:465:
+^I */$

ERROR: code indent should never use tabs
#485: FILE: tools/virtiofsd/fuse.h:466:
+^Iint (*statfs) (const char *, struct statvfs *);$

ERROR: code indent should never use tabs
#487: FILE: tools/virtiofsd/fuse.h:468:
+^I/** Possibly flush cached data$

WARNING: Block comments use a leading /* on a separate line
#487: FILE: tools/virtiofsd/fuse.h:468:
+       /** Possibly flush cached data

ERROR: code indent should never use tabs
#488: FILE: tools/virtiofsd/fuse.h:469:
+^I *$

ERROR: code indent should never use tabs
#489: FILE: tools/virtiofsd/fuse.h:470:
+^I * BIG NOTE: This is not equivalent to fsync().  It's not a$

ERROR: code indent should never use tabs
#490: FILE: tools/virtiofsd/fuse.h:471:
+^I * request to sync dirty data.$

ERROR: code indent should never use tabs
#491: FILE: tools/virtiofsd/fuse.h:472:
+^I *$

ERROR: code indent should never use tabs
#492: FILE: tools/virtiofsd/fuse.h:473:
+^I * Flush is called on each close() of a file descriptor, as opposed to$

ERROR: code indent should never use tabs
#493: FILE: tools/virtiofsd/fuse.h:474:
+^I * release which is called on the close of the last file descriptor for$

ERROR: trailing whitespace
#494: FILE: tools/virtiofsd/fuse.h:475:
+^I * a file.  Under Linux, errors returned by flush() will be passed to $

ERROR: code indent should never use tabs
#494: FILE: tools/virtiofsd/fuse.h:475:
+^I * a file.  Under Linux, errors returned by flush() will be passed to $

ERROR: code indent should never use tabs
#495: FILE: tools/virtiofsd/fuse.h:476:
+^I * userspace as errors from close(), so flush() is a good place to write$

ERROR: trailing whitespace
#496: FILE: tools/virtiofsd/fuse.h:477:
+^I * back any cached dirty data. However, many applications ignore errors $

ERROR: code indent should never use tabs
#496: FILE: tools/virtiofsd/fuse.h:477:
+^I * back any cached dirty data. However, many applications ignore errors $

WARNING: line over 80 characters
#497: FILE: tools/virtiofsd/fuse.h:478:
+        * on close(), and on non-Linux systems, close() may succeed even if flush()

ERROR: code indent should never use tabs
#497: FILE: tools/virtiofsd/fuse.h:478:
+^I * on close(), and on non-Linux systems, close() may succeed even if flush()$

ERROR: code indent should never use tabs
#498: FILE: tools/virtiofsd/fuse.h:479:
+^I * returns an error. For these reasons, filesystems should not assume$

ERROR: code indent should never use tabs
#499: FILE: tools/virtiofsd/fuse.h:480:
+^I * that errors returned by flush will ever be noticed or even$

ERROR: code indent should never use tabs
#500: FILE: tools/virtiofsd/fuse.h:481:
+^I * delivered.$

ERROR: code indent should never use tabs
#501: FILE: tools/virtiofsd/fuse.h:482:
+^I *$

ERROR: code indent should never use tabs
#502: FILE: tools/virtiofsd/fuse.h:483:
+^I * NOTE: The flush() method may be called more than once for each$

ERROR: code indent should never use tabs
#503: FILE: tools/virtiofsd/fuse.h:484:
+^I * open().  This happens if more than one file descriptor refers to an$

ERROR: code indent should never use tabs
#504: FILE: tools/virtiofsd/fuse.h:485:
+^I * open file handle, e.g. due to dup(), dup2() or fork() calls.  It is$

ERROR: code indent should never use tabs
#505: FILE: tools/virtiofsd/fuse.h:486:
+^I * not possible to determine if a flush is final, so each flush should$

ERROR: code indent should never use tabs
#506: FILE: tools/virtiofsd/fuse.h:487:
+^I * be treated equally.  Multiple write-flush sequences are relatively$

ERROR: code indent should never use tabs
#507: FILE: tools/virtiofsd/fuse.h:488:
+^I * rare, so this shouldn't be a problem.$

ERROR: code indent should never use tabs
#508: FILE: tools/virtiofsd/fuse.h:489:
+^I *$

ERROR: code indent should never use tabs
#509: FILE: tools/virtiofsd/fuse.h:490:
+^I * Filesystems shouldn't assume that flush will be called at any$

ERROR: code indent should never use tabs
#510: FILE: tools/virtiofsd/fuse.h:491:
+^I * particular point.  It may be called more times than expected, or not$

ERROR: code indent should never use tabs
#511: FILE: tools/virtiofsd/fuse.h:492:
+^I * at all.$

ERROR: code indent should never use tabs
#512: FILE: tools/virtiofsd/fuse.h:493:
+^I *$

WARNING: line over 80 characters
#513: FILE: tools/virtiofsd/fuse.h:494:
+        * [close]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/close.html

ERROR: code indent should never use tabs
#513: FILE: tools/virtiofsd/fuse.h:494:
+^I * [close]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/close.html$

ERROR: code indent should never use tabs
#514: FILE: tools/virtiofsd/fuse.h:495:
+^I */$

ERROR: code indent should never use tabs
#515: FILE: tools/virtiofsd/fuse.h:496:
+^Iint (*flush) (const char *, struct fuse_file_info *);$

ERROR: code indent should never use tabs
#517: FILE: tools/virtiofsd/fuse.h:498:
+^I/** Release an open file$

WARNING: Block comments use a leading /* on a separate line
#517: FILE: tools/virtiofsd/fuse.h:498:
+       /** Release an open file

ERROR: code indent should never use tabs
#518: FILE: tools/virtiofsd/fuse.h:499:
+^I *$

ERROR: code indent should never use tabs
#519: FILE: tools/virtiofsd/fuse.h:500:
+^I * Release is called when there are no more references to an open$

ERROR: code indent should never use tabs
#520: FILE: tools/virtiofsd/fuse.h:501:
+^I * file: all file descriptors are closed and all memory mappings$

ERROR: code indent should never use tabs
#521: FILE: tools/virtiofsd/fuse.h:502:
+^I * are unmapped.$

ERROR: code indent should never use tabs
#522: FILE: tools/virtiofsd/fuse.h:503:
+^I *$

ERROR: code indent should never use tabs
#523: FILE: tools/virtiofsd/fuse.h:504:
+^I * For every open() call there will be exactly one release() call$

ERROR: code indent should never use tabs
#524: FILE: tools/virtiofsd/fuse.h:505:
+^I * with the same flags and file handle.  It is possible to$

ERROR: code indent should never use tabs
#525: FILE: tools/virtiofsd/fuse.h:506:
+^I * have a file opened more than once, in which case only the last$

ERROR: code indent should never use tabs
#526: FILE: tools/virtiofsd/fuse.h:507:
+^I * release will mean, that no more reads/writes will happen on the$

ERROR: code indent should never use tabs
#527: FILE: tools/virtiofsd/fuse.h:508:
+^I * file.  The return value of release is ignored.$

ERROR: code indent should never use tabs
#528: FILE: tools/virtiofsd/fuse.h:509:
+^I */$

ERROR: code indent should never use tabs
#529: FILE: tools/virtiofsd/fuse.h:510:
+^Iint (*release) (const char *, struct fuse_file_info *);$

ERROR: code indent should never use tabs
#531: FILE: tools/virtiofsd/fuse.h:512:
+^I/** Synchronize file contents$

WARNING: Block comments use a leading /* on a separate line
#531: FILE: tools/virtiofsd/fuse.h:512:
+       /** Synchronize file contents

ERROR: code indent should never use tabs
#532: FILE: tools/virtiofsd/fuse.h:513:
+^I *$

ERROR: code indent should never use tabs
#533: FILE: tools/virtiofsd/fuse.h:514:
+^I * If the datasync parameter is non-zero, then only the user data$

ERROR: code indent should never use tabs
#534: FILE: tools/virtiofsd/fuse.h:515:
+^I * should be flushed, not the meta data.$

ERROR: code indent should never use tabs
#535: FILE: tools/virtiofsd/fuse.h:516:
+^I */$

ERROR: code indent should never use tabs
#536: FILE: tools/virtiofsd/fuse.h:517:
+^Iint (*fsync) (const char *, int, struct fuse_file_info *);$

ERROR: code indent should never use tabs
#538: FILE: tools/virtiofsd/fuse.h:519:
+^I/** Set extended attributes */$

ERROR: code indent should never use tabs
#539: FILE: tools/virtiofsd/fuse.h:520:
+^Iint (*setxattr) (const char *, const char *, const char *, size_t, int);$

ERROR: code indent should never use tabs
#541: FILE: tools/virtiofsd/fuse.h:522:
+^I/** Get extended attributes */$

ERROR: code indent should never use tabs
#542: FILE: tools/virtiofsd/fuse.h:523:
+^Iint (*getxattr) (const char *, const char *, char *, size_t);$

ERROR: code indent should never use tabs
#544: FILE: tools/virtiofsd/fuse.h:525:
+^I/** List extended attributes */$

ERROR: code indent should never use tabs
#545: FILE: tools/virtiofsd/fuse.h:526:
+^Iint (*listxattr) (const char *, char *, size_t);$

ERROR: code indent should never use tabs
#547: FILE: tools/virtiofsd/fuse.h:528:
+^I/** Remove extended attributes */$

ERROR: code indent should never use tabs
#548: FILE: tools/virtiofsd/fuse.h:529:
+^Iint (*removexattr) (const char *, const char *);$

ERROR: code indent should never use tabs
#550: FILE: tools/virtiofsd/fuse.h:531:
+^I/** Open directory$

WARNING: Block comments use a leading /* on a separate line
#550: FILE: tools/virtiofsd/fuse.h:531:
+       /** Open directory

ERROR: code indent should never use tabs
#551: FILE: tools/virtiofsd/fuse.h:532:
+^I *$

ERROR: code indent should never use tabs
#552: FILE: tools/virtiofsd/fuse.h:533:
+^I * Unless the 'default_permissions' mount option is given,$

ERROR: code indent should never use tabs
#553: FILE: tools/virtiofsd/fuse.h:534:
+^I * this method should check if opendir is permitted for this$

ERROR: code indent should never use tabs
#554: FILE: tools/virtiofsd/fuse.h:535:
+^I * directory. Optionally opendir may also return an arbitrary$

ERROR: code indent should never use tabs
#555: FILE: tools/virtiofsd/fuse.h:536:
+^I * filehandle in the fuse_file_info structure, which will be$

ERROR: code indent should never use tabs
#556: FILE: tools/virtiofsd/fuse.h:537:
+^I * passed to readdir, releasedir and fsyncdir.$

ERROR: code indent should never use tabs
#557: FILE: tools/virtiofsd/fuse.h:538:
+^I */$

ERROR: code indent should never use tabs
#558: FILE: tools/virtiofsd/fuse.h:539:
+^Iint (*opendir) (const char *, struct fuse_file_info *);$

ERROR: code indent should never use tabs
#560: FILE: tools/virtiofsd/fuse.h:541:
+^I/** Read directory$

WARNING: Block comments use a leading /* on a separate line
#560: FILE: tools/virtiofsd/fuse.h:541:
+       /** Read directory

ERROR: code indent should never use tabs
#561: FILE: tools/virtiofsd/fuse.h:542:
+^I *$

ERROR: code indent should never use tabs
#562: FILE: tools/virtiofsd/fuse.h:543:
+^I * The filesystem may choose between two modes of operation:$

ERROR: code indent should never use tabs
#563: FILE: tools/virtiofsd/fuse.h:544:
+^I *$

ERROR: code indent should never use tabs
#564: FILE: tools/virtiofsd/fuse.h:545:
+^I * 1) The readdir implementation ignores the offset parameter, and$

ERROR: code indent should never use tabs
#565: FILE: tools/virtiofsd/fuse.h:546:
+^I * passes zero to the filler function's offset.  The filler$

ERROR: code indent should never use tabs
#566: FILE: tools/virtiofsd/fuse.h:547:
+^I * function will not return '1' (unless an error happens), so the$

ERROR: code indent should never use tabs
#567: FILE: tools/virtiofsd/fuse.h:548:
+^I * whole directory is read in a single readdir operation.$

ERROR: code indent should never use tabs
#568: FILE: tools/virtiofsd/fuse.h:549:
+^I *$

ERROR: code indent should never use tabs
#569: FILE: tools/virtiofsd/fuse.h:550:
+^I * 2) The readdir implementation keeps track of the offsets of the$

ERROR: code indent should never use tabs
#570: FILE: tools/virtiofsd/fuse.h:551:
+^I * directory entries.  It uses the offset parameter and always$

ERROR: code indent should never use tabs
#571: FILE: tools/virtiofsd/fuse.h:552:
+^I * passes non-zero offset to the filler function.  When the buffer$

ERROR: code indent should never use tabs
#572: FILE: tools/virtiofsd/fuse.h:553:
+^I * is full (or an error happens) the filler function will return$

ERROR: code indent should never use tabs
#573: FILE: tools/virtiofsd/fuse.h:554:
+^I * '1'.$

ERROR: code indent should never use tabs
#574: FILE: tools/virtiofsd/fuse.h:555:
+^I */$

ERROR: code indent should never use tabs
#575: FILE: tools/virtiofsd/fuse.h:556:
+^Iint (*readdir) (const char *, void *, fuse_fill_dir_t, off_t,$

ERROR: code indent should never use tabs
#576: FILE: tools/virtiofsd/fuse.h:557:
+^I^I^Istruct fuse_file_info *, enum fuse_readdir_flags);$

ERROR: code indent should never use tabs
#578: FILE: tools/virtiofsd/fuse.h:559:
+^I/** Release directory$

WARNING: Block comments use a leading /* on a separate line
#578: FILE: tools/virtiofsd/fuse.h:559:
+       /** Release directory

ERROR: code indent should never use tabs
#579: FILE: tools/virtiofsd/fuse.h:560:
+^I */$

ERROR: code indent should never use tabs
#580: FILE: tools/virtiofsd/fuse.h:561:
+^Iint (*releasedir) (const char *, struct fuse_file_info *);$

ERROR: code indent should never use tabs
#582: FILE: tools/virtiofsd/fuse.h:563:
+^I/** Synchronize directory contents$

WARNING: Block comments use a leading /* on a separate line
#582: FILE: tools/virtiofsd/fuse.h:563:
+       /** Synchronize directory contents

ERROR: code indent should never use tabs
#583: FILE: tools/virtiofsd/fuse.h:564:
+^I *$

ERROR: code indent should never use tabs
#584: FILE: tools/virtiofsd/fuse.h:565:
+^I * If the datasync parameter is non-zero, then only the user data$

ERROR: code indent should never use tabs
#585: FILE: tools/virtiofsd/fuse.h:566:
+^I * should be flushed, not the meta data$

ERROR: code indent should never use tabs
#586: FILE: tools/virtiofsd/fuse.h:567:
+^I */$

ERROR: code indent should never use tabs
#587: FILE: tools/virtiofsd/fuse.h:568:
+^Iint (*fsyncdir) (const char *, int, struct fuse_file_info *);$

ERROR: code indent should never use tabs
#589: FILE: tools/virtiofsd/fuse.h:570:
+^I/**$

ERROR: code indent should never use tabs
#590: FILE: tools/virtiofsd/fuse.h:571:
+^I * Initialize filesystem$

ERROR: code indent should never use tabs
#591: FILE: tools/virtiofsd/fuse.h:572:
+^I *$

ERROR: code indent should never use tabs
#592: FILE: tools/virtiofsd/fuse.h:573:
+^I * The return value will passed in the `private_data` field of$

ERROR: code indent should never use tabs
#593: FILE: tools/virtiofsd/fuse.h:574:
+^I * `struct fuse_context` to all file operations, and as a$

ERROR: code indent should never use tabs
#594: FILE: tools/virtiofsd/fuse.h:575:
+^I * parameter to the destroy() method. It overrides the initial$

ERROR: code indent should never use tabs
#595: FILE: tools/virtiofsd/fuse.h:576:
+^I * value provided to fuse_main() / fuse_new().$

ERROR: code indent should never use tabs
#596: FILE: tools/virtiofsd/fuse.h:577:
+^I */$

ERROR: code indent should never use tabs
#597: FILE: tools/virtiofsd/fuse.h:578:
+^Ivoid *(*init) (struct fuse_conn_info *conn,$

ERROR: code indent should never use tabs
#598: FILE: tools/virtiofsd/fuse.h:579:
+^I^I       struct fuse_config *cfg);$

ERROR: code indent should never use tabs
#600: FILE: tools/virtiofsd/fuse.h:581:
+^I/**$

ERROR: code indent should never use tabs
#601: FILE: tools/virtiofsd/fuse.h:582:
+^I * Clean up filesystem$

ERROR: code indent should never use tabs
#602: FILE: tools/virtiofsd/fuse.h:583:
+^I *$

ERROR: code indent should never use tabs
#603: FILE: tools/virtiofsd/fuse.h:584:
+^I * Called on filesystem exit.$

ERROR: code indent should never use tabs
#604: FILE: tools/virtiofsd/fuse.h:585:
+^I */$

ERROR: code indent should never use tabs
#605: FILE: tools/virtiofsd/fuse.h:586:
+^Ivoid (*destroy) (void *private_data);$

ERROR: code indent should never use tabs
#607: FILE: tools/virtiofsd/fuse.h:588:
+^I/**$

ERROR: code indent should never use tabs
#608: FILE: tools/virtiofsd/fuse.h:589:
+^I * Check file access permissions$

ERROR: code indent should never use tabs
#609: FILE: tools/virtiofsd/fuse.h:590:
+^I *$

ERROR: code indent should never use tabs
#610: FILE: tools/virtiofsd/fuse.h:591:
+^I * This will be called for the access() system call.  If the$

ERROR: code indent should never use tabs
#611: FILE: tools/virtiofsd/fuse.h:592:
+^I * 'default_permissions' mount option is given, this method is not$

ERROR: code indent should never use tabs
#612: FILE: tools/virtiofsd/fuse.h:593:
+^I * called.$

ERROR: code indent should never use tabs
#613: FILE: tools/virtiofsd/fuse.h:594:
+^I *$

ERROR: code indent should never use tabs
#614: FILE: tools/virtiofsd/fuse.h:595:
+^I * This method is not called under Linux kernel versions 2.4.x$

ERROR: code indent should never use tabs
#615: FILE: tools/virtiofsd/fuse.h:596:
+^I */$

ERROR: code indent should never use tabs
#616: FILE: tools/virtiofsd/fuse.h:597:
+^Iint (*access) (const char *, int);$

ERROR: code indent should never use tabs
#618: FILE: tools/virtiofsd/fuse.h:599:
+^I/**$

ERROR: code indent should never use tabs
#619: FILE: tools/virtiofsd/fuse.h:600:
+^I * Create and open a file$

ERROR: code indent should never use tabs
#620: FILE: tools/virtiofsd/fuse.h:601:
+^I *$

ERROR: code indent should never use tabs
#621: FILE: tools/virtiofsd/fuse.h:602:
+^I * If the file does not exist, first create it with the specified$

ERROR: code indent should never use tabs
#622: FILE: tools/virtiofsd/fuse.h:603:
+^I * mode, and then open it.$

ERROR: code indent should never use tabs
#623: FILE: tools/virtiofsd/fuse.h:604:
+^I *$

ERROR: code indent should never use tabs
#624: FILE: tools/virtiofsd/fuse.h:605:
+^I * If this method is not implemented or under Linux kernel$

ERROR: code indent should never use tabs
#625: FILE: tools/virtiofsd/fuse.h:606:
+^I * versions earlier than 2.6.15, the mknod() and open() methods$

ERROR: code indent should never use tabs
#626: FILE: tools/virtiofsd/fuse.h:607:
+^I * will be called instead.$

ERROR: code indent should never use tabs
#627: FILE: tools/virtiofsd/fuse.h:608:
+^I */$

ERROR: code indent should never use tabs
#628: FILE: tools/virtiofsd/fuse.h:609:
+^Iint (*create) (const char *, mode_t, struct fuse_file_info *);$

ERROR: code indent should never use tabs
#630: FILE: tools/virtiofsd/fuse.h:611:
+^I/**$

ERROR: code indent should never use tabs
#631: FILE: tools/virtiofsd/fuse.h:612:
+^I * Perform POSIX file locking operation$

ERROR: code indent should never use tabs
#632: FILE: tools/virtiofsd/fuse.h:613:
+^I *$

ERROR: code indent should never use tabs
#633: FILE: tools/virtiofsd/fuse.h:614:
+^I * The cmd argument will be either F_GETLK, F_SETLK or F_SETLKW.$

ERROR: code indent should never use tabs
#634: FILE: tools/virtiofsd/fuse.h:615:
+^I *$

ERROR: code indent should never use tabs
#635: FILE: tools/virtiofsd/fuse.h:616:
+^I * For the meaning of fields in 'struct flock' see the man page$

ERROR: code indent should never use tabs
#636: FILE: tools/virtiofsd/fuse.h:617:
+^I * for fcntl(2).  The l_whence field will always be set to$

ERROR: code indent should never use tabs
#637: FILE: tools/virtiofsd/fuse.h:618:
+^I * SEEK_SET.$

ERROR: code indent should never use tabs
#638: FILE: tools/virtiofsd/fuse.h:619:
+^I *$

ERROR: code indent should never use tabs
#639: FILE: tools/virtiofsd/fuse.h:620:
+^I * For checking lock ownership, the 'fuse_file_info->owner'$

ERROR: code indent should never use tabs
#640: FILE: tools/virtiofsd/fuse.h:621:
+^I * argument must be used.$

ERROR: code indent should never use tabs
#641: FILE: tools/virtiofsd/fuse.h:622:
+^I *$

ERROR: code indent should never use tabs
#642: FILE: tools/virtiofsd/fuse.h:623:
+^I * For F_GETLK operation, the library will first check currently$

ERROR: code indent should never use tabs
#643: FILE: tools/virtiofsd/fuse.h:624:
+^I * held locks, and if a conflicting lock is found it will return$

ERROR: code indent should never use tabs
#644: FILE: tools/virtiofsd/fuse.h:625:
+^I * information without calling this method.^I This ensures, that$

ERROR: code indent should never use tabs
#645: FILE: tools/virtiofsd/fuse.h:626:
+^I * for local locks the l_pid field is correctly filled in.^IThe$

ERROR: code indent should never use tabs
#646: FILE: tools/virtiofsd/fuse.h:627:
+^I * results may not be accurate in case of race conditions and in$

ERROR: code indent should never use tabs
#647: FILE: tools/virtiofsd/fuse.h:628:
+^I * the presence of hard links, but it's unlikely that an$

ERROR: code indent should never use tabs
#648: FILE: tools/virtiofsd/fuse.h:629:
+^I * application would rely on accurate GETLK results in these$

ERROR: code indent should never use tabs
#649: FILE: tools/virtiofsd/fuse.h:630:
+^I * cases.  If a conflicting lock is not found, this method will be$

ERROR: code indent should never use tabs
#650: FILE: tools/virtiofsd/fuse.h:631:
+^I * called, and the filesystem may fill out l_pid by a meaningful$

ERROR: code indent should never use tabs
#651: FILE: tools/virtiofsd/fuse.h:632:
+^I * value, or it may leave this field zero.$

ERROR: code indent should never use tabs
#652: FILE: tools/virtiofsd/fuse.h:633:
+^I *$

ERROR: code indent should never use tabs
#653: FILE: tools/virtiofsd/fuse.h:634:
+^I * For F_SETLK and F_SETLKW the l_pid field will be set to the pid$

ERROR: code indent should never use tabs
#654: FILE: tools/virtiofsd/fuse.h:635:
+^I * of the process performing the locking operation.$

ERROR: code indent should never use tabs
#655: FILE: tools/virtiofsd/fuse.h:636:
+^I *$

ERROR: code indent should never use tabs
#656: FILE: tools/virtiofsd/fuse.h:637:
+^I * Note: if this method is not implemented, the kernel will still$

ERROR: code indent should never use tabs
#657: FILE: tools/virtiofsd/fuse.h:638:
+^I * allow file locking to work locally.  Hence it is only$

ERROR: code indent should never use tabs
#658: FILE: tools/virtiofsd/fuse.h:639:
+^I * interesting for network filesystems and similar.$

ERROR: code indent should never use tabs
#659: FILE: tools/virtiofsd/fuse.h:640:
+^I */$

ERROR: code indent should never use tabs
#660: FILE: tools/virtiofsd/fuse.h:641:
+^Iint (*lock) (const char *, struct fuse_file_info *, int cmd,$

ERROR: code indent should never use tabs
#661: FILE: tools/virtiofsd/fuse.h:642:
+^I^I     struct flock *);$

ERROR: code indent should never use tabs
#663: FILE: tools/virtiofsd/fuse.h:644:
+^I/**$

ERROR: code indent should never use tabs
#664: FILE: tools/virtiofsd/fuse.h:645:
+^I * Change the access and modification times of a file with$

ERROR: code indent should never use tabs
#665: FILE: tools/virtiofsd/fuse.h:646:
+^I * nanosecond resolution$

ERROR: code indent should never use tabs
#666: FILE: tools/virtiofsd/fuse.h:647:
+^I *$

ERROR: code indent should never use tabs
#667: FILE: tools/virtiofsd/fuse.h:648:
+^I * This supersedes the old utime() interface.  New applications$

ERROR: code indent should never use tabs
#668: FILE: tools/virtiofsd/fuse.h:649:
+^I * should use this.$

ERROR: code indent should never use tabs
#669: FILE: tools/virtiofsd/fuse.h:650:
+^I *$

ERROR: code indent should never use tabs
#670: FILE: tools/virtiofsd/fuse.h:651:
+^I * `fi` will always be NULL if the file is not currenlty open, but$

ERROR: code indent should never use tabs
#671: FILE: tools/virtiofsd/fuse.h:652:
+^I * may also be NULL if the file is open.$

ERROR: code indent should never use tabs
#672: FILE: tools/virtiofsd/fuse.h:653:
+^I *$

ERROR: code indent should never use tabs
#673: FILE: tools/virtiofsd/fuse.h:654:
+^I * See the utimensat(2) man page for details.$

ERROR: code indent should never use tabs
#674: FILE: tools/virtiofsd/fuse.h:655:
+^I */$

ERROR: code indent should never use tabs
#675: FILE: tools/virtiofsd/fuse.h:656:
+^I int (*utimens) (const char *, const struct timespec tv[2],$

ERROR: code indent should never use tabs
#676: FILE: tools/virtiofsd/fuse.h:657:
+^I^I^I struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#678: FILE: tools/virtiofsd/fuse.h:659:
+^I/**$

ERROR: code indent should never use tabs
#679: FILE: tools/virtiofsd/fuse.h:660:
+^I * Map block index within file to block index within device$

ERROR: code indent should never use tabs
#680: FILE: tools/virtiofsd/fuse.h:661:
+^I *$

ERROR: code indent should never use tabs
#681: FILE: tools/virtiofsd/fuse.h:662:
+^I * Note: This makes sense only for block device backed filesystems$

ERROR: code indent should never use tabs
#682: FILE: tools/virtiofsd/fuse.h:663:
+^I * mounted with the 'blkdev' option$

ERROR: code indent should never use tabs
#683: FILE: tools/virtiofsd/fuse.h:664:
+^I */$

ERROR: code indent should never use tabs
#684: FILE: tools/virtiofsd/fuse.h:665:
+^Iint (*bmap) (const char *, size_t blocksize, uint64_t *idx);$

ERROR: code indent should never use tabs
#686: FILE: tools/virtiofsd/fuse.h:667:
+^I/**$

ERROR: code indent should never use tabs
#687: FILE: tools/virtiofsd/fuse.h:668:
+^I * Ioctl$

ERROR: code indent should never use tabs
#688: FILE: tools/virtiofsd/fuse.h:669:
+^I *$

ERROR: code indent should never use tabs
#689: FILE: tools/virtiofsd/fuse.h:670:
+^I * flags will have FUSE_IOCTL_COMPAT set for 32bit ioctls in$

ERROR: code indent should never use tabs
#690: FILE: tools/virtiofsd/fuse.h:671:
+^I * 64bit environment.  The size and direction of data is$

ERROR: code indent should never use tabs
#691: FILE: tools/virtiofsd/fuse.h:672:
+^I * determined by _IOC_*() decoding of cmd.  For _IOC_NONE,$

ERROR: code indent should never use tabs
#692: FILE: tools/virtiofsd/fuse.h:673:
+^I * data will be NULL, for _IOC_WRITE data is out area, for$

ERROR: code indent should never use tabs
#693: FILE: tools/virtiofsd/fuse.h:674:
+^I * _IOC_READ in area and if both are set in/out area.  In all$

ERROR: code indent should never use tabs
#694: FILE: tools/virtiofsd/fuse.h:675:
+^I * non-NULL cases, the area is of _IOC_SIZE(cmd) bytes.$

ERROR: code indent should never use tabs
#695: FILE: tools/virtiofsd/fuse.h:676:
+^I *$

ERROR: code indent should never use tabs
#696: FILE: tools/virtiofsd/fuse.h:677:
+^I * If flags has FUSE_IOCTL_DIR then the fuse_file_info refers to a$

ERROR: code indent should never use tabs
#697: FILE: tools/virtiofsd/fuse.h:678:
+^I * directory file handle.$

ERROR: code indent should never use tabs
#698: FILE: tools/virtiofsd/fuse.h:679:
+^I *$

ERROR: code indent should never use tabs
#699: FILE: tools/virtiofsd/fuse.h:680:
+^I * Note : the unsigned long request submitted by the application$

ERROR: code indent should never use tabs
#700: FILE: tools/virtiofsd/fuse.h:681:
+^I * is truncated to 32 bits.$

ERROR: code indent should never use tabs
#701: FILE: tools/virtiofsd/fuse.h:682:
+^I */$

ERROR: code indent should never use tabs
#702: FILE: tools/virtiofsd/fuse.h:683:
+^Iint (*ioctl) (const char *, unsigned int cmd, void *arg,$

ERROR: code indent should never use tabs
#703: FILE: tools/virtiofsd/fuse.h:684:
+^I^I      struct fuse_file_info *, unsigned int flags, void *data);$

ERROR: code indent should never use tabs
#705: FILE: tools/virtiofsd/fuse.h:686:
+^I/**$

ERROR: code indent should never use tabs
#706: FILE: tools/virtiofsd/fuse.h:687:
+^I * Poll for IO readiness events$

ERROR: code indent should never use tabs
#707: FILE: tools/virtiofsd/fuse.h:688:
+^I *$

ERROR: code indent should never use tabs
#708: FILE: tools/virtiofsd/fuse.h:689:
+^I * Note: If ph is non-NULL, the client should notify$

ERROR: code indent should never use tabs
#709: FILE: tools/virtiofsd/fuse.h:690:
+^I * when IO readiness events occur by calling$

ERROR: code indent should never use tabs
#710: FILE: tools/virtiofsd/fuse.h:691:
+^I * fuse_notify_poll() with the specified ph.$

ERROR: code indent should never use tabs
#711: FILE: tools/virtiofsd/fuse.h:692:
+^I *$

ERROR: code indent should never use tabs
#712: FILE: tools/virtiofsd/fuse.h:693:
+^I * Regardless of the number of times poll with a non-NULL ph$

ERROR: code indent should never use tabs
#713: FILE: tools/virtiofsd/fuse.h:694:
+^I * is received, single notification is enough to clear all.$

ERROR: code indent should never use tabs
#714: FILE: tools/virtiofsd/fuse.h:695:
+^I * Notifying more times incurs overhead but doesn't harm$

ERROR: code indent should never use tabs
#715: FILE: tools/virtiofsd/fuse.h:696:
+^I * correctness.$

ERROR: code indent should never use tabs
#716: FILE: tools/virtiofsd/fuse.h:697:
+^I *$

ERROR: code indent should never use tabs
#717: FILE: tools/virtiofsd/fuse.h:698:
+^I * The callee is responsible for destroying ph with$

ERROR: code indent should never use tabs
#718: FILE: tools/virtiofsd/fuse.h:699:
+^I * fuse_pollhandle_destroy() when no longer in use.$

ERROR: code indent should never use tabs
#719: FILE: tools/virtiofsd/fuse.h:700:
+^I */$

ERROR: code indent should never use tabs
#720: FILE: tools/virtiofsd/fuse.h:701:
+^Iint (*poll) (const char *, struct fuse_file_info *,$

ERROR: code indent should never use tabs
#721: FILE: tools/virtiofsd/fuse.h:702:
+^I^I     struct fuse_pollhandle *ph, unsigned *reventsp);$

ERROR: code indent should never use tabs
#723: FILE: tools/virtiofsd/fuse.h:704:
+^I/** Write contents of buffer to an open file$

WARNING: Block comments use a leading /* on a separate line
#723: FILE: tools/virtiofsd/fuse.h:704:
+       /** Write contents of buffer to an open file

ERROR: code indent should never use tabs
#724: FILE: tools/virtiofsd/fuse.h:705:
+^I *$

ERROR: code indent should never use tabs
#725: FILE: tools/virtiofsd/fuse.h:706:
+^I * Similar to the write() method, but data is supplied in a$

ERROR: code indent should never use tabs
#726: FILE: tools/virtiofsd/fuse.h:707:
+^I * generic buffer.  Use fuse_buf_copy() to transfer data to$

ERROR: code indent should never use tabs
#727: FILE: tools/virtiofsd/fuse.h:708:
+^I * the destination.$

ERROR: code indent should never use tabs
#728: FILE: tools/virtiofsd/fuse.h:709:
+^I *$

ERROR: code indent should never use tabs
#729: FILE: tools/virtiofsd/fuse.h:710:
+^I * Unless FUSE_CAP_HANDLE_KILLPRIV is disabled, this method is$

ERROR: code indent should never use tabs
#730: FILE: tools/virtiofsd/fuse.h:711:
+^I * expected to reset the setuid and setgid bits.$

ERROR: code indent should never use tabs
#731: FILE: tools/virtiofsd/fuse.h:712:
+^I */$

ERROR: code indent should never use tabs
#732: FILE: tools/virtiofsd/fuse.h:713:
+^Iint (*write_buf) (const char *, struct fuse_bufvec *buf, off_t off,$

ERROR: code indent should never use tabs
#733: FILE: tools/virtiofsd/fuse.h:714:
+^I^I^I  struct fuse_file_info *);$

ERROR: code indent should never use tabs
#735: FILE: tools/virtiofsd/fuse.h:716:
+^I/** Store data from an open file in a buffer$

WARNING: Block comments use a leading /* on a separate line
#735: FILE: tools/virtiofsd/fuse.h:716:
+       /** Store data from an open file in a buffer

ERROR: code indent should never use tabs
#736: FILE: tools/virtiofsd/fuse.h:717:
+^I *$

ERROR: code indent should never use tabs
#737: FILE: tools/virtiofsd/fuse.h:718:
+^I * Similar to the read() method, but data is stored and$

ERROR: code indent should never use tabs
#738: FILE: tools/virtiofsd/fuse.h:719:
+^I * returned in a generic buffer.$

ERROR: code indent should never use tabs
#739: FILE: tools/virtiofsd/fuse.h:720:
+^I *$

ERROR: code indent should never use tabs
#740: FILE: tools/virtiofsd/fuse.h:721:
+^I * No actual copying of data has to take place, the source$

ERROR: code indent should never use tabs
#741: FILE: tools/virtiofsd/fuse.h:722:
+^I * file descriptor may simply be stored in the buffer for$

ERROR: code indent should never use tabs
#742: FILE: tools/virtiofsd/fuse.h:723:
+^I * later data transfer.$

ERROR: code indent should never use tabs
#743: FILE: tools/virtiofsd/fuse.h:724:
+^I *$

ERROR: code indent should never use tabs
#744: FILE: tools/virtiofsd/fuse.h:725:
+^I * The buffer must be allocated dynamically and stored at the$

ERROR: code indent should never use tabs
#745: FILE: tools/virtiofsd/fuse.h:726:
+^I * location pointed to by bufp.  If the buffer contains memory$

ERROR: code indent should never use tabs
#746: FILE: tools/virtiofsd/fuse.h:727:
+^I * regions, they too must be allocated using malloc().  The$

ERROR: code indent should never use tabs
#747: FILE: tools/virtiofsd/fuse.h:728:
+^I * allocated memory will be freed by the caller.$

ERROR: code indent should never use tabs
#748: FILE: tools/virtiofsd/fuse.h:729:
+^I */$

ERROR: code indent should never use tabs
#749: FILE: tools/virtiofsd/fuse.h:730:
+^Iint (*read_buf) (const char *, struct fuse_bufvec **bufp,$

ERROR: code indent should never use tabs
#750: FILE: tools/virtiofsd/fuse.h:731:
+^I^I^I size_t size, off_t off, struct fuse_file_info *);$

ERROR: code indent should never use tabs
#751: FILE: tools/virtiofsd/fuse.h:732:
+^I/**$

ERROR: code indent should never use tabs
#752: FILE: tools/virtiofsd/fuse.h:733:
+^I * Perform BSD file locking operation$

ERROR: code indent should never use tabs
#753: FILE: tools/virtiofsd/fuse.h:734:
+^I *$

ERROR: code indent should never use tabs
#754: FILE: tools/virtiofsd/fuse.h:735:
+^I * The op argument will be either LOCK_SH, LOCK_EX or LOCK_UN$

ERROR: code indent should never use tabs
#755: FILE: tools/virtiofsd/fuse.h:736:
+^I *$

ERROR: code indent should never use tabs
#756: FILE: tools/virtiofsd/fuse.h:737:
+^I * Nonblocking requests will be indicated by ORing LOCK_NB to$

ERROR: code indent should never use tabs
#757: FILE: tools/virtiofsd/fuse.h:738:
+^I * the above operations$

ERROR: code indent should never use tabs
#758: FILE: tools/virtiofsd/fuse.h:739:
+^I *$

ERROR: code indent should never use tabs
#759: FILE: tools/virtiofsd/fuse.h:740:
+^I * For more information see the flock(2) manual page.$

ERROR: code indent should never use tabs
#760: FILE: tools/virtiofsd/fuse.h:741:
+^I *$

ERROR: code indent should never use tabs
#761: FILE: tools/virtiofsd/fuse.h:742:
+^I * Additionally fi->owner will be set to a value unique to$

ERROR: code indent should never use tabs
#762: FILE: tools/virtiofsd/fuse.h:743:
+^I * this open file.  This same value will be supplied to$

ERROR: code indent should never use tabs
#763: FILE: tools/virtiofsd/fuse.h:744:
+^I * ->release() when the file is released.$

ERROR: code indent should never use tabs
#764: FILE: tools/virtiofsd/fuse.h:745:
+^I *$

ERROR: code indent should never use tabs
#765: FILE: tools/virtiofsd/fuse.h:746:
+^I * Note: if this method is not implemented, the kernel will still$

ERROR: code indent should never use tabs
#766: FILE: tools/virtiofsd/fuse.h:747:
+^I * allow file locking to work locally.  Hence it is only$

ERROR: code indent should never use tabs
#767: FILE: tools/virtiofsd/fuse.h:748:
+^I * interesting for network filesystems and similar.$

ERROR: code indent should never use tabs
#768: FILE: tools/virtiofsd/fuse.h:749:
+^I */$

ERROR: code indent should never use tabs
#769: FILE: tools/virtiofsd/fuse.h:750:
+^Iint (*flock) (const char *, struct fuse_file_info *, int op);$

ERROR: code indent should never use tabs
#771: FILE: tools/virtiofsd/fuse.h:752:
+^I/**$

ERROR: code indent should never use tabs
#772: FILE: tools/virtiofsd/fuse.h:753:
+^I * Allocates space for an open file$

ERROR: code indent should never use tabs
#773: FILE: tools/virtiofsd/fuse.h:754:
+^I *$

ERROR: code indent should never use tabs
#774: FILE: tools/virtiofsd/fuse.h:755:
+^I * This function ensures that required space is allocated for specified$

ERROR: code indent should never use tabs
#775: FILE: tools/virtiofsd/fuse.h:756:
+^I * file.  If this function returns success then any subsequent write$

ERROR: code indent should never use tabs
#776: FILE: tools/virtiofsd/fuse.h:757:
+^I * request to specified range is guaranteed not to fail because of lack$

ERROR: code indent should never use tabs
#777: FILE: tools/virtiofsd/fuse.h:758:
+^I * of space on the file system media.$

ERROR: code indent should never use tabs
#778: FILE: tools/virtiofsd/fuse.h:759:
+^I */$

ERROR: code indent should never use tabs
#779: FILE: tools/virtiofsd/fuse.h:760:
+^Iint (*fallocate) (const char *, int, off_t, off_t,$

ERROR: code indent should never use tabs
#780: FILE: tools/virtiofsd/fuse.h:761:
+^I^I^I  struct fuse_file_info *);$

ERROR: code indent should never use tabs
#782: FILE: tools/virtiofsd/fuse.h:763:
+^I/**$

ERROR: code indent should never use tabs
#783: FILE: tools/virtiofsd/fuse.h:764:
+^I * Copy a range of data from one file to another$

ERROR: code indent should never use tabs
#784: FILE: tools/virtiofsd/fuse.h:765:
+^I *$

ERROR: code indent should never use tabs
#785: FILE: tools/virtiofsd/fuse.h:766:
+^I * Performs an optimized copy between two file descriptors without the$

ERROR: code indent should never use tabs
#786: FILE: tools/virtiofsd/fuse.h:767:
+^I * additional cost of transferring data through the FUSE kernel module$

ERROR: code indent should never use tabs
#787: FILE: tools/virtiofsd/fuse.h:768:
+^I * to user space (glibc) and then back into the FUSE filesystem again.$

ERROR: code indent should never use tabs
#788: FILE: tools/virtiofsd/fuse.h:769:
+^I *$

ERROR: code indent should never use tabs
#789: FILE: tools/virtiofsd/fuse.h:770:
+^I * In case this method is not implemented, glibc falls back to reading$

ERROR: code indent should never use tabs
#790: FILE: tools/virtiofsd/fuse.h:771:
+^I * data from the source and writing to the destination. Effectively$

ERROR: code indent should never use tabs
#791: FILE: tools/virtiofsd/fuse.h:772:
+^I * doing an inefficient copy of the data.$

ERROR: code indent should never use tabs
#792: FILE: tools/virtiofsd/fuse.h:773:
+^I */$

ERROR: code indent should never use tabs
#793: FILE: tools/virtiofsd/fuse.h:774:
+^Issize_t (*copy_file_range) (const char *path_in,$

ERROR: code indent should never use tabs
#794: FILE: tools/virtiofsd/fuse.h:775:
+^I^I^I^I    struct fuse_file_info *fi_in,$

ERROR: code indent should never use tabs
#795: FILE: tools/virtiofsd/fuse.h:776:
+^I^I^I^I    off_t offset_in, const char *path_out,$

ERROR: code indent should never use tabs
#796: FILE: tools/virtiofsd/fuse.h:777:
+^I^I^I^I    struct fuse_file_info *fi_out,$

ERROR: code indent should never use tabs
#797: FILE: tools/virtiofsd/fuse.h:778:
+^I^I^I^I    off_t offset_out, size_t size, int flags);$

ERROR: code indent should never use tabs
#799: FILE: tools/virtiofsd/fuse.h:780:
+^I/**$

ERROR: code indent should never use tabs
#800: FILE: tools/virtiofsd/fuse.h:781:
+^I * Find next data or hole after the specified offset$

ERROR: code indent should never use tabs
#801: FILE: tools/virtiofsd/fuse.h:782:
+^I */$

WARNING: line over 80 characters
#802: FILE: tools/virtiofsd/fuse.h:783:
+       off_t (*lseek) (const char *, off_t off, int whence, struct fuse_file_info *);

ERROR: code indent should never use tabs
#802: FILE: tools/virtiofsd/fuse.h:783:
+^Ioff_t (*lseek) (const char *, off_t off, int whence, struct fuse_file_info *);$

WARNING: Block comments use a leading /* on a separate line
#805: FILE: tools/virtiofsd/fuse.h:786:
+/** Extra context that may be needed by some filesystems

ERROR: code indent should never use tabs
#811: FILE: tools/virtiofsd/fuse.h:792:
+^I/** Pointer to the fuse object */$

ERROR: code indent should never use tabs
#812: FILE: tools/virtiofsd/fuse.h:793:
+^Istruct fuse *fuse;$

ERROR: code indent should never use tabs
#814: FILE: tools/virtiofsd/fuse.h:795:
+^I/** User ID of the calling process */$

ERROR: code indent should never use tabs
#815: FILE: tools/virtiofsd/fuse.h:796:
+^Iuid_t uid;$

ERROR: code indent should never use tabs
#817: FILE: tools/virtiofsd/fuse.h:798:
+^I/** Group ID of the calling process */$

ERROR: code indent should never use tabs
#818: FILE: tools/virtiofsd/fuse.h:799:
+^Igid_t gid;$

ERROR: code indent should never use tabs
#820: FILE: tools/virtiofsd/fuse.h:801:
+^I/** Process ID of the calling thread */$

ERROR: code indent should never use tabs
#821: FILE: tools/virtiofsd/fuse.h:802:
+^Ipid_t pid;$

ERROR: code indent should never use tabs
#823: FILE: tools/virtiofsd/fuse.h:804:
+^I/** Private filesystem data */$

ERROR: code indent should never use tabs
#824: FILE: tools/virtiofsd/fuse.h:805:
+^Ivoid *private_data;$

ERROR: code indent should never use tabs
#826: FILE: tools/virtiofsd/fuse.h:807:
+^I/** Umask of the calling process */$

ERROR: code indent should never use tabs
#827: FILE: tools/virtiofsd/fuse.h:808:
+^Imode_t umask;$

WARNING: Block comments use * on subsequent lines
#885: FILE: tools/virtiofsd/fuse.h:866:
+/*
+  int fuse_main(int argc, char *argv[], const struct fuse_operations *op,

ERROR: code indent should never use tabs
#888: FILE: tools/virtiofsd/fuse.h:869:
+#define fuse_main(argc, argv, op, private_data)^I^I^I^I\$

ERROR: code indent should never use tabs
#889: FILE: tools/virtiofsd/fuse.h:870:
+^Ifuse_main_real(argc, argv, op, sizeof(*(op)), private_data)$

WARNING: Block comments use a leading /* on a separate line
#891: FILE: tools/virtiofsd/fuse.h:872:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#892: FILE: tools/virtiofsd/fuse.h:873:
+ * More detailed API^I^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#893: FILE: tools/virtiofsd/fuse.h:874:
+ * ----------------------------------------------------------- */

WARNING: line over 80 characters
#936: FILE: tools/virtiofsd/fuse.h:917:
+struct fuse *fuse_new_30(struct fuse_args *args, const struct fuse_operations *op,

ERROR: code indent should never use tabs
#937: FILE: tools/virtiofsd/fuse.h:918:
+^I^I^I size_t op_size, void *private_data);$

ERROR: code indent should never use tabs
#941: FILE: tools/virtiofsd/fuse.h:922:
+^I^I      size_t op_size, void *private_data);$

ERROR: code indent should never use tabs
#966: FILE: tools/virtiofsd/fuse.h:947:
+ * NOTE: This function does not unmount the filesystem.^I If this is$

ERROR: code indent should never use tabs
#1094: FILE: tools/virtiofsd/fuse.h:1075:
+^I^I   size_t op_size, void *private_data);$

ERROR: code indent should never use tabs
#1145: FILE: tools/virtiofsd/fuse.h:1126:
+^I^I    struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1147: FILE: tools/virtiofsd/fuse.h:1128:
+^I^I   const char *newpath, unsigned int flags);$

ERROR: code indent should never use tabs
#1151: FILE: tools/virtiofsd/fuse.h:1132:
+^I^I    const char *path);$

ERROR: code indent should never use tabs
#1153: FILE: tools/virtiofsd/fuse.h:1134:
+int fuse_fs_release(struct fuse_fs *fs,^I const char *path,$

ERROR: code indent should never use tabs
#1154: FILE: tools/virtiofsd/fuse.h:1135:
+^I^I    struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1156: FILE: tools/virtiofsd/fuse.h:1137:
+^I^I struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1158: FILE: tools/virtiofsd/fuse.h:1139:
+^I^I off_t off, struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1160: FILE: tools/virtiofsd/fuse.h:1141:
+^I^I     struct fuse_bufvec **bufp, size_t size, off_t off,$

ERROR: code indent should never use tabs
#1161: FILE: tools/virtiofsd/fuse.h:1142:
+^I^I     struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1163: FILE: tools/virtiofsd/fuse.h:1144:
+^I^I  size_t size, off_t off, struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1165: FILE: tools/virtiofsd/fuse.h:1146:
+^I^I      struct fuse_bufvec *buf, off_t off,$

ERROR: code indent should never use tabs
#1166: FILE: tools/virtiofsd/fuse.h:1147:
+^I^I      struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1168: FILE: tools/virtiofsd/fuse.h:1149:
+^I^I  struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1170: FILE: tools/virtiofsd/fuse.h:1151:
+^I^I  struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1173: FILE: tools/virtiofsd/fuse.h:1154:
+^I^I    struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1175: FILE: tools/virtiofsd/fuse.h:1156:
+^I^I    fuse_fill_dir_t filler, off_t off,$

ERROR: code indent should never use tabs
#1176: FILE: tools/virtiofsd/fuse.h:1157:
+^I^I    struct fuse_file_info *fi, enum fuse_readdir_flags flags);$

ERROR: code indent should never use tabs
#1178: FILE: tools/virtiofsd/fuse.h:1159:
+^I^I     struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1180: FILE: tools/virtiofsd/fuse.h:1161:
+^I^I       struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1182: FILE: tools/virtiofsd/fuse.h:1163:
+^I^I   struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1184: FILE: tools/virtiofsd/fuse.h:1165:
+^I^I struct fuse_file_info *fi, int cmd, struct flock *lock);$

ERROR: code indent should never use tabs
#1186: FILE: tools/virtiofsd/fuse.h:1167:
+^I^I  struct fuse_file_info *fi, int op);$

ERROR: code indent should never use tabs
#1188: FILE: tools/virtiofsd/fuse.h:1169:
+^I^I  struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1190: FILE: tools/virtiofsd/fuse.h:1171:
+^I^I  struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1192: FILE: tools/virtiofsd/fuse.h:1173:
+^I^I     struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1194: FILE: tools/virtiofsd/fuse.h:1175:
+^I^I    const struct timespec tv[2], struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1197: FILE: tools/virtiofsd/fuse.h:1178:
+^I^I     size_t len);$

ERROR: code indent should never use tabs
#1199: FILE: tools/virtiofsd/fuse.h:1180:
+^I^I  dev_t rdev);$

ERROR: code indent should never use tabs
#1202: FILE: tools/virtiofsd/fuse.h:1183:
+^I^I     const char *value, size_t size, int flags);$

ERROR: code indent should never use tabs
#1204: FILE: tools/virtiofsd/fuse.h:1185:
+^I^I     char *value, size_t size);$

ERROR: code indent should never use tabs
#1206: FILE: tools/virtiofsd/fuse.h:1187:
+^I^I      size_t size);$

ERROR: code indent should never use tabs
#1208: FILE: tools/virtiofsd/fuse.h:1189:
+^I^I^Iconst char *name);$

ERROR: code indent should never use tabs
#1210: FILE: tools/virtiofsd/fuse.h:1191:
+^I^I uint64_t *idx);$

ERROR: code indent should never use tabs
#1212: FILE: tools/virtiofsd/fuse.h:1193:
+^I^I  void *arg, struct fuse_file_info *fi, unsigned int flags,$

ERROR: code indent should never use tabs
#1213: FILE: tools/virtiofsd/fuse.h:1194:
+^I^I  void *data);$

ERROR: code indent should never use tabs
#1215: FILE: tools/virtiofsd/fuse.h:1196:
+^I^I struct fuse_file_info *fi, struct fuse_pollhandle *ph,$

ERROR: code indent should never use tabs
#1216: FILE: tools/virtiofsd/fuse.h:1197:
+^I^I unsigned *reventsp);$

ERROR: code indent should never use tabs
#1218: FILE: tools/virtiofsd/fuse.h:1199:
+^I^I off_t offset, off_t length, struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1220: FILE: tools/virtiofsd/fuse.h:1201:
+^I^I^I^Istruct fuse_file_info *fi_in, off_t off_in,$

ERROR: code indent should never use tabs
#1221: FILE: tools/virtiofsd/fuse.h:1202:
+^I^I^I^Iconst char *path_out,$

ERROR: code indent should never use tabs
#1222: FILE: tools/virtiofsd/fuse.h:1203:
+^I^I^I^Istruct fuse_file_info *fi_out, off_t off_out,$

ERROR: code indent should never use tabs
#1223: FILE: tools/virtiofsd/fuse.h:1204:
+^I^I^I^Isize_t len, int flags);$

ERROR: code indent should never use tabs
#1225: FILE: tools/virtiofsd/fuse.h:1206:
+^I^I    struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#1227: FILE: tools/virtiofsd/fuse.h:1208:
+^I^Istruct fuse_config *cfg);$

ERROR: code indent should never use tabs
#1246: FILE: tools/virtiofsd/fuse.h:1227:
+^I^I^I    void *private_data);$

ERROR: code indent should never use tabs
#1263: FILE: tools/virtiofsd/fuse.h:1244:
+^I^I^I^I^I^I struct fuse_fs *fs[]);$

ERROR: code indent should never use tabs
#1275: FILE: tools/virtiofsd/fuse.h:1256:
+^Ifuse_module_factory_t fuse_module_ ## name_ ## _factory = factory_$

WARNING: architecture specific defines should be avoided
#1290: FILE: tools/virtiofsd/fuse.h:1271:
+#ifdef __cplusplus

WARNING: Block comments use a leading /* on a separate line
#1301: FILE: tools/virtiofsd/fuse_common.h:1:
+/*  FUSE: Filesystem in Userspace

WARNING: Block comments use * on subsequent lines
#1302: FILE: tools/virtiofsd/fuse_common.h:2:
+/*  FUSE: Filesystem in Userspace
+  Copyright (C) 2001-2007  Miklos Szeredi <miklos@szeredi.hu>

ERROR: line over 90 characters
#1311: FILE: tools/virtiofsd/fuse_common.h:11:
+#error "Never include <fuse_common.h> directly; use <fuse.h> or <fuse_lowlevel.h> instead."

WARNING: architecture specific defines should be avoided
#1331: FILE: tools/virtiofsd/fuse_common.h:31:
+#ifdef __cplusplus

ERROR: code indent should never use tabs
#1345: FILE: tools/virtiofsd/fuse_common.h:45:
+^I/** Open flags.^I Available in open() and release() */$

ERROR: code indent should never use tabs
#1346: FILE: tools/virtiofsd/fuse_common.h:46:
+^Iint flags;$

ERROR: code indent should never use tabs
#1348: FILE: tools/virtiofsd/fuse_common.h:48:
+^I/** In case of a write operation indicates if this was caused$

WARNING: Block comments use a leading /* on a separate line
#1348: FILE: tools/virtiofsd/fuse_common.h:48:
+       /** In case of a write operation indicates if this was caused

ERROR: code indent should never use tabs
#1349: FILE: tools/virtiofsd/fuse_common.h:49:
+^I    by a delayed write from the page cache. If so, then the$

WARNING: Block comments use * on subsequent lines
#1349: FILE: tools/virtiofsd/fuse_common.h:49:
+       /** In case of a write operation indicates if this was caused
+           by a delayed write from the page cache. If so, then the

ERROR: code indent should never use tabs
#1350: FILE: tools/virtiofsd/fuse_common.h:50:
+^I    context's pid, uid, and gid fields will not be valid, and$

ERROR: code indent should never use tabs
#1351: FILE: tools/virtiofsd/fuse_common.h:51:
+^I    the *fh* value may not match the *fh* value that would$

ERROR: code indent should never use tabs
#1352: FILE: tools/virtiofsd/fuse_common.h:52:
+^I    have been sent with the corresponding individual write$

ERROR: code indent should never use tabs
#1353: FILE: tools/virtiofsd/fuse_common.h:53:
+^I    requests if write caching had been disabled. */$

WARNING: Block comments use a trailing */ on a separate line
#1353: FILE: tools/virtiofsd/fuse_common.h:53:
+           requests if write caching had been disabled. */

ERROR: code indent should never use tabs
#1354: FILE: tools/virtiofsd/fuse_common.h:54:
+^Iunsigned int writepage : 1;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1354: FILE: tools/virtiofsd/fuse_common.h:54:
+       unsigned int writepage : 1;
                               ^

ERROR: code indent should never use tabs
#1356: FILE: tools/virtiofsd/fuse_common.h:56:
+^I/** Can be filled in by open, to use direct I/O on this file. */$

ERROR: code indent should never use tabs
#1357: FILE: tools/virtiofsd/fuse_common.h:57:
+^Iunsigned int direct_io : 1;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1357: FILE: tools/virtiofsd/fuse_common.h:57:
+       unsigned int direct_io : 1;
                               ^

ERROR: code indent should never use tabs
#1359: FILE: tools/virtiofsd/fuse_common.h:59:
+^I/** Can be filled in by open. It signals the kernel that any$

WARNING: Block comments use a leading /* on a separate line
#1359: FILE: tools/virtiofsd/fuse_common.h:59:
+       /** Can be filled in by open. It signals the kernel that any

ERROR: code indent should never use tabs
#1360: FILE: tools/virtiofsd/fuse_common.h:60:
+^I    currently cached file data (ie., data that the filesystem$

WARNING: Block comments use * on subsequent lines
#1360: FILE: tools/virtiofsd/fuse_common.h:60:
+       /** Can be filled in by open. It signals the kernel that any
+           currently cached file data (ie., data that the filesystem

ERROR: code indent should never use tabs
#1361: FILE: tools/virtiofsd/fuse_common.h:61:
+^I    provided the last time the file was open) need not be$

ERROR: code indent should never use tabs
#1362: FILE: tools/virtiofsd/fuse_common.h:62:
+^I    invalidated. Has no effect when set in other contexts (in$

ERROR: code indent should never use tabs
#1363: FILE: tools/virtiofsd/fuse_common.h:63:
+^I    particular it does nothing when set by opendir()). */$

WARNING: Block comments use a trailing */ on a separate line
#1363: FILE: tools/virtiofsd/fuse_common.h:63:
+           particular it does nothing when set by opendir()). */

ERROR: code indent should never use tabs
#1364: FILE: tools/virtiofsd/fuse_common.h:64:
+^Iunsigned int keep_cache : 1;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1364: FILE: tools/virtiofsd/fuse_common.h:64:
+       unsigned int keep_cache : 1;
                                ^

ERROR: code indent should never use tabs
#1366: FILE: tools/virtiofsd/fuse_common.h:66:
+^I/** Indicates a flush operation.  Set in flush operation, also$

WARNING: Block comments use a leading /* on a separate line
#1366: FILE: tools/virtiofsd/fuse_common.h:66:
+       /** Indicates a flush operation.  Set in flush operation, also

ERROR: code indent should never use tabs
#1367: FILE: tools/virtiofsd/fuse_common.h:67:
+^I    maybe set in highlevel lock operation and lowlevel release$

WARNING: Block comments use * on subsequent lines
#1367: FILE: tools/virtiofsd/fuse_common.h:67:
+       /** Indicates a flush operation.  Set in flush operation, also
+           maybe set in highlevel lock operation and lowlevel release

ERROR: code indent should never use tabs
#1368: FILE: tools/virtiofsd/fuse_common.h:68:
+^I    operation. */$

WARNING: Block comments use a trailing */ on a separate line
#1368: FILE: tools/virtiofsd/fuse_common.h:68:
+           operation. */

ERROR: code indent should never use tabs
#1369: FILE: tools/virtiofsd/fuse_common.h:69:
+^Iunsigned int flush : 1;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1369: FILE: tools/virtiofsd/fuse_common.h:69:
+       unsigned int flush : 1;
                           ^

ERROR: code indent should never use tabs
#1371: FILE: tools/virtiofsd/fuse_common.h:71:
+^I/** Can be filled in by open, to indicate that the file is not$

WARNING: Block comments use a leading /* on a separate line
#1371: FILE: tools/virtiofsd/fuse_common.h:71:
+       /** Can be filled in by open, to indicate that the file is not

ERROR: code indent should never use tabs
#1372: FILE: tools/virtiofsd/fuse_common.h:72:
+^I    seekable. */$

WARNING: Block comments use * on subsequent lines
#1372: FILE: tools/virtiofsd/fuse_common.h:72:
+       /** Can be filled in by open, to indicate that the file is not
+           seekable. */

WARNING: Block comments use a trailing */ on a separate line
#1372: FILE: tools/virtiofsd/fuse_common.h:72:
+           seekable. */

ERROR: code indent should never use tabs
#1373: FILE: tools/virtiofsd/fuse_common.h:73:
+^Iunsigned int nonseekable : 1;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1373: FILE: tools/virtiofsd/fuse_common.h:73:
+       unsigned int nonseekable : 1;
                                 ^

ERROR: code indent should never use tabs
#1375: FILE: tools/virtiofsd/fuse_common.h:75:
+^I/* Indicates that flock locks for this file should be$

WARNING: Block comments use a leading /* on a separate line
#1375: FILE: tools/virtiofsd/fuse_common.h:75:
+       /* Indicates that flock locks for this file should be

ERROR: code indent should never use tabs
#1376: FILE: tools/virtiofsd/fuse_common.h:76:
+^I   released.  If set, lock_owner shall contain a valid value.$

WARNING: Block comments use * on subsequent lines
#1376: FILE: tools/virtiofsd/fuse_common.h:76:
+       /* Indicates that flock locks for this file should be
+          released.  If set, lock_owner shall contain a valid value.

ERROR: code indent should never use tabs
#1377: FILE: tools/virtiofsd/fuse_common.h:77:
+^I   May only be set in ->release(). */$

WARNING: Block comments use a trailing */ on a separate line
#1377: FILE: tools/virtiofsd/fuse_common.h:77:
+          May only be set in ->release(). */

ERROR: code indent should never use tabs
#1378: FILE: tools/virtiofsd/fuse_common.h:78:
+^Iunsigned int flock_release : 1;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1378: FILE: tools/virtiofsd/fuse_common.h:78:
+       unsigned int flock_release : 1;
                                   ^

ERROR: code indent should never use tabs
#1380: FILE: tools/virtiofsd/fuse_common.h:80:
+^I/** Can be filled in by opendir. It signals the kernel to$

WARNING: Block comments use a leading /* on a separate line
#1380: FILE: tools/virtiofsd/fuse_common.h:80:
+       /** Can be filled in by opendir. It signals the kernel to

ERROR: code indent should never use tabs
#1381: FILE: tools/virtiofsd/fuse_common.h:81:
+^I    enable caching of entries returned by readdir().  Has no$

WARNING: Block comments use * on subsequent lines
#1381: FILE: tools/virtiofsd/fuse_common.h:81:
+       /** Can be filled in by opendir. It signals the kernel to
+           enable caching of entries returned by readdir().  Has no

ERROR: code indent should never use tabs
#1382: FILE: tools/virtiofsd/fuse_common.h:82:
+^I    effect when set in other contexts (in particular it does$

ERROR: code indent should never use tabs
#1383: FILE: tools/virtiofsd/fuse_common.h:83:
+^I    nothing when set by open()). */$

WARNING: Block comments use a trailing */ on a separate line
#1383: FILE: tools/virtiofsd/fuse_common.h:83:
+           nothing when set by open()). */

ERROR: code indent should never use tabs
#1384: FILE: tools/virtiofsd/fuse_common.h:84:
+^Iunsigned int cache_readdir : 1;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1384: FILE: tools/virtiofsd/fuse_common.h:84:
+       unsigned int cache_readdir : 1;
                                   ^

ERROR: code indent should never use tabs
#1386: FILE: tools/virtiofsd/fuse_common.h:86:
+^I/** Padding.  Reserved for future use*/$

ERROR: code indent should never use tabs
#1387: FILE: tools/virtiofsd/fuse_common.h:87:
+^Iunsigned int padding : 25;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1387: FILE: tools/virtiofsd/fuse_common.h:87:
+       unsigned int padding : 25;
                             ^

ERROR: code indent should never use tabs
#1388: FILE: tools/virtiofsd/fuse_common.h:88:
+^Iunsigned int padding2 : 32;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1388: FILE: tools/virtiofsd/fuse_common.h:88:
+       unsigned int padding2 : 32;
                              ^

ERROR: code indent should never use tabs
#1390: FILE: tools/virtiofsd/fuse_common.h:90:
+^I/** File handle id.  May be filled in by filesystem in create,$

WARNING: Block comments use a leading /* on a separate line
#1390: FILE: tools/virtiofsd/fuse_common.h:90:
+       /** File handle id.  May be filled in by filesystem in create,

ERROR: code indent should never use tabs
#1391: FILE: tools/virtiofsd/fuse_common.h:91:
+^I * open, and opendir().  Available in most other file operations on the$

ERROR: code indent should never use tabs
#1392: FILE: tools/virtiofsd/fuse_common.h:92:
+^I * same file handle. */$

WARNING: Block comments use a trailing */ on a separate line
#1392: FILE: tools/virtiofsd/fuse_common.h:92:
+        * same file handle. */

ERROR: code indent should never use tabs
#1393: FILE: tools/virtiofsd/fuse_common.h:93:
+^Iuint64_t fh;$

ERROR: code indent should never use tabs
#1395: FILE: tools/virtiofsd/fuse_common.h:95:
+^I/** Lock owner id.  Available in locking operations and flush */$

ERROR: code indent should never use tabs
#1396: FILE: tools/virtiofsd/fuse_common.h:96:
+^Iuint64_t lock_owner;$

ERROR: code indent should never use tabs
#1398: FILE: tools/virtiofsd/fuse_common.h:98:
+^I/** Requested poll events.  Available in ->poll.  Only set on kernels$

WARNING: Block comments use a leading /* on a separate line
#1398: FILE: tools/virtiofsd/fuse_common.h:98:
+       /** Requested poll events.  Available in ->poll.  Only set on kernels

ERROR: code indent should never use tabs
#1399: FILE: tools/virtiofsd/fuse_common.h:99:
+^I    which support it.  If unsupported, this field is set to zero. */$

WARNING: Block comments use * on subsequent lines
#1399: FILE: tools/virtiofsd/fuse_common.h:99:
+       /** Requested poll events.  Available in ->poll.  Only set on kernels
+           which support it.  If unsupported, this field is set to zero. */

WARNING: Block comments use a trailing */ on a separate line
#1399: FILE: tools/virtiofsd/fuse_common.h:99:
+           which support it.  If unsupported, this field is set to zero. */

ERROR: code indent should never use tabs
#1400: FILE: tools/virtiofsd/fuse_common.h:100:
+^Iuint32_t poll_events;$

ERROR: code indent should never use tabs
#1408: FILE: tools/virtiofsd/fuse_common.h:108:
+^I/**$

ERROR: code indent should never use tabs
#1409: FILE: tools/virtiofsd/fuse_common.h:109:
+^I * whether to use separate device fds for each thread$

ERROR: code indent should never use tabs
#1410: FILE: tools/virtiofsd/fuse_common.h:110:
+^I * (may increase performance)$

ERROR: code indent should never use tabs
#1411: FILE: tools/virtiofsd/fuse_common.h:111:
+^I */$

ERROR: code indent should never use tabs
#1412: FILE: tools/virtiofsd/fuse_common.h:112:
+^Iint clone_fd;$

ERROR: code indent should never use tabs
#1414: FILE: tools/virtiofsd/fuse_common.h:114:
+^I/**$

ERROR: code indent should never use tabs
#1415: FILE: tools/virtiofsd/fuse_common.h:115:
+^I * The maximum number of available worker threads before they$

ERROR: code indent should never use tabs
#1416: FILE: tools/virtiofsd/fuse_common.h:116:
+^I * start to get deleted when they become idle. If not$

ERROR: code indent should never use tabs
#1417: FILE: tools/virtiofsd/fuse_common.h:117:
+^I * specified, the default is 10.$

ERROR: code indent should never use tabs
#1418: FILE: tools/virtiofsd/fuse_common.h:118:
+^I *$

ERROR: code indent should never use tabs
#1419: FILE: tools/virtiofsd/fuse_common.h:119:
+^I * Adjusting this has performance implications; a very small number$

ERROR: code indent should never use tabs
#1420: FILE: tools/virtiofsd/fuse_common.h:120:
+^I * of threads in the pool will cause a lot of thread creation and$

ERROR: code indent should never use tabs
#1421: FILE: tools/virtiofsd/fuse_common.h:121:
+^I * deletion overhead and performance may suffer. When set to 0, a new$

ERROR: code indent should never use tabs
#1422: FILE: tools/virtiofsd/fuse_common.h:122:
+^I * thread will be created to service every operation.$

ERROR: code indent should never use tabs
#1423: FILE: tools/virtiofsd/fuse_common.h:123:
+^I */$

ERROR: code indent should never use tabs
#1424: FILE: tools/virtiofsd/fuse_common.h:124:
+^Iunsigned int max_idle_threads;$

WARNING: Block comments use a leading /* on a separate line
#1427: FILE: tools/virtiofsd/fuse_common.h:127:
+/**************************************************************************

ERROR: code indent should never use tabs
#1441: FILE: tools/virtiofsd/fuse_common.h:141:
+#define FUSE_CAP_ASYNC_READ^I^I(1 << 0)$

ERROR: code indent should never use tabs
#1449: FILE: tools/virtiofsd/fuse_common.h:149:
+#define FUSE_CAP_POSIX_LOCKS^I^I(1 << 1)$

ERROR: code indent should never use tabs
#1458: FILE: tools/virtiofsd/fuse_common.h:158:
+#define FUSE_CAP_ATOMIC_O_TRUNC^I^I(1 << 3)$

ERROR: code indent should never use tabs
#1465: FILE: tools/virtiofsd/fuse_common.h:165:
+#define FUSE_CAP_EXPORT_SUPPORT^I^I(1 << 4)$

ERROR: code indent should never use tabs
#1473: FILE: tools/virtiofsd/fuse_common.h:173:
+#define FUSE_CAP_DONT_MASK^I^I(1 << 6)$

ERROR: code indent should never use tabs
#1481: FILE: tools/virtiofsd/fuse_common.h:181:
+#define FUSE_CAP_SPLICE_WRITE^I^I(1 << 7)$

ERROR: code indent should never use tabs
#1489: FILE: tools/virtiofsd/fuse_common.h:189:
+#define FUSE_CAP_SPLICE_MOVE^I^I(1 << 8)$

ERROR: code indent should never use tabs
#1498: FILE: tools/virtiofsd/fuse_common.h:198:
+#define FUSE_CAP_SPLICE_READ^I^I(1 << 9)$

ERROR: code indent should never use tabs
#1511: FILE: tools/virtiofsd/fuse_common.h:211:
+#define FUSE_CAP_FLOCK_LOCKS^I^I(1 << 10)$

ERROR: code indent should never use tabs
#1518: FILE: tools/virtiofsd/fuse_common.h:218:
+#define FUSE_CAP_IOCTL_DIR^I^I(1 << 11)$

ERROR: code indent should never use tabs
#1540: FILE: tools/virtiofsd/fuse_common.h:240:
+#define FUSE_CAP_AUTO_INVAL_DATA^I(1 << 12)$

ERROR: code indent should never use tabs
#1548: FILE: tools/virtiofsd/fuse_common.h:248:
+#define FUSE_CAP_READDIRPLUS^I^I(1 << 13)$

ERROR: code indent should never use tabs
#1576: FILE: tools/virtiofsd/fuse_common.h:276:
+#define FUSE_CAP_READDIRPLUS_AUTO^I(1 << 14)$

ERROR: code indent should never use tabs
#1587: FILE: tools/virtiofsd/fuse_common.h:287:
+#define FUSE_CAP_ASYNC_DIO^I^I(1 << 15)$

ERROR: code indent should never use tabs
#1596: FILE: tools/virtiofsd/fuse_common.h:296:
+#define FUSE_CAP_WRITEBACK_CACHE^I(1 << 16)$

ERROR: code indent should never use tabs
#1609: FILE: tools/virtiofsd/fuse_common.h:309:
+#define FUSE_CAP_NO_OPEN_SUPPORT^I(1 << 17)$

ERROR: code indent should never use tabs
#1671: FILE: tools/virtiofsd/fuse_common.h:371:
+#define FUSE_IOCTL_COMPAT^I(1 << 0)$

ERROR: code indent should never use tabs
#1672: FILE: tools/virtiofsd/fuse_common.h:372:
+#define FUSE_IOCTL_UNRESTRICTED^I(1 << 1)$

ERROR: code indent should never use tabs
#1673: FILE: tools/virtiofsd/fuse_common.h:373:
+#define FUSE_IOCTL_RETRY^I(1 << 2)$

ERROR: code indent should never use tabs
#1674: FILE: tools/virtiofsd/fuse_common.h:374:
+#define FUSE_IOCTL_DIR^I^I(1 << 4)$

ERROR: code indent should never use tabs
#1676: FILE: tools/virtiofsd/fuse_common.h:376:
+#define FUSE_IOCTL_MAX_IOV^I256$

ERROR: code indent should never use tabs
#1686: FILE: tools/virtiofsd/fuse_common.h:386:
+^I/**$

ERROR: code indent should never use tabs
#1687: FILE: tools/virtiofsd/fuse_common.h:387:
+^I * Major version of the protocol (read-only)$

ERROR: code indent should never use tabs
#1688: FILE: tools/virtiofsd/fuse_common.h:388:
+^I */$

ERROR: code indent should never use tabs
#1689: FILE: tools/virtiofsd/fuse_common.h:389:
+^Iunsigned proto_major;$

ERROR: code indent should never use tabs
#1691: FILE: tools/virtiofsd/fuse_common.h:391:
+^I/**$

ERROR: code indent should never use tabs
#1692: FILE: tools/virtiofsd/fuse_common.h:392:
+^I * Minor version of the protocol (read-only)$

ERROR: code indent should never use tabs
#1693: FILE: tools/virtiofsd/fuse_common.h:393:
+^I */$

ERROR: code indent should never use tabs
#1694: FILE: tools/virtiofsd/fuse_common.h:394:
+^Iunsigned proto_minor;$

ERROR: code indent should never use tabs
#1696: FILE: tools/virtiofsd/fuse_common.h:396:
+^I/**$

ERROR: code indent should never use tabs
#1697: FILE: tools/virtiofsd/fuse_common.h:397:
+^I * Maximum size of the write buffer$

ERROR: code indent should never use tabs
#1698: FILE: tools/virtiofsd/fuse_common.h:398:
+^I */$

ERROR: code indent should never use tabs
#1699: FILE: tools/virtiofsd/fuse_common.h:399:
+^Iunsigned max_write;$

ERROR: code indent should never use tabs
#1701: FILE: tools/virtiofsd/fuse_common.h:401:
+^I/**$

ERROR: code indent should never use tabs
#1702: FILE: tools/virtiofsd/fuse_common.h:402:
+^I * Maximum size of read requests. A value of zero indicates no$

ERROR: code indent should never use tabs
#1703: FILE: tools/virtiofsd/fuse_common.h:403:
+^I * limit. However, even if the filesystem does not specify a$

ERROR: code indent should never use tabs
#1704: FILE: tools/virtiofsd/fuse_common.h:404:
+^I * limit, the maximum size of read requests will still be$

ERROR: code indent should never use tabs
#1705: FILE: tools/virtiofsd/fuse_common.h:405:
+^I * limited by the kernel.$

ERROR: code indent should never use tabs
#1706: FILE: tools/virtiofsd/fuse_common.h:406:
+^I *$

ERROR: code indent should never use tabs
#1707: FILE: tools/virtiofsd/fuse_common.h:407:
+^I * NOTE: For the time being, the maximum size of read requests$

ERROR: code indent should never use tabs
#1708: FILE: tools/virtiofsd/fuse_common.h:408:
+^I * must be set both here *and* passed to fuse_session_new()$

ERROR: code indent should never use tabs
#1709: FILE: tools/virtiofsd/fuse_common.h:409:
+^I * using the ``-o max_read=<n>`` mount option. At some point$

ERROR: code indent should never use tabs
#1710: FILE: tools/virtiofsd/fuse_common.h:410:
+^I * in the future, specifying the mount option will no longer$

ERROR: code indent should never use tabs
#1711: FILE: tools/virtiofsd/fuse_common.h:411:
+^I * be necessary.$

ERROR: code indent should never use tabs
#1712: FILE: tools/virtiofsd/fuse_common.h:412:
+^I */$

ERROR: code indent should never use tabs
#1713: FILE: tools/virtiofsd/fuse_common.h:413:
+^Iunsigned max_read;$

ERROR: code indent should never use tabs
#1715: FILE: tools/virtiofsd/fuse_common.h:415:
+^I/**$

ERROR: code indent should never use tabs
#1716: FILE: tools/virtiofsd/fuse_common.h:416:
+^I * Maximum readahead$

ERROR: code indent should never use tabs
#1717: FILE: tools/virtiofsd/fuse_common.h:417:
+^I */$

ERROR: code indent should never use tabs
#1718: FILE: tools/virtiofsd/fuse_common.h:418:
+^Iunsigned max_readahead;$

ERROR: code indent should never use tabs
#1720: FILE: tools/virtiofsd/fuse_common.h:420:
+^I/**$

ERROR: code indent should never use tabs
#1721: FILE: tools/virtiofsd/fuse_common.h:421:
+^I * Capability flags that the kernel supports (read-only)$

ERROR: code indent should never use tabs
#1722: FILE: tools/virtiofsd/fuse_common.h:422:
+^I */$

ERROR: code indent should never use tabs
#1723: FILE: tools/virtiofsd/fuse_common.h:423:
+^Iunsigned capable;$

ERROR: code indent should never use tabs
#1725: FILE: tools/virtiofsd/fuse_common.h:425:
+^I/**$

ERROR: code indent should never use tabs
#1726: FILE: tools/virtiofsd/fuse_common.h:426:
+^I * Capability flags that the filesystem wants to enable.$

ERROR: code indent should never use tabs
#1727: FILE: tools/virtiofsd/fuse_common.h:427:
+^I *$

ERROR: code indent should never use tabs
#1728: FILE: tools/virtiofsd/fuse_common.h:428:
+^I * libfuse attempts to initialize this field with$

ERROR: code indent should never use tabs
#1729: FILE: tools/virtiofsd/fuse_common.h:429:
+^I * reasonable default values before calling the init() handler.$

ERROR: code indent should never use tabs
#1730: FILE: tools/virtiofsd/fuse_common.h:430:
+^I */$

ERROR: code indent should never use tabs
#1731: FILE: tools/virtiofsd/fuse_common.h:431:
+^Iunsigned want;$

ERROR: code indent should never use tabs
#1733: FILE: tools/virtiofsd/fuse_common.h:433:
+^I/**$

ERROR: code indent should never use tabs
#1734: FILE: tools/virtiofsd/fuse_common.h:434:
+^I * Maximum number of pending "background" requests. A$

ERROR: code indent should never use tabs
#1735: FILE: tools/virtiofsd/fuse_common.h:435:
+^I * background request is any type of request for which the$

ERROR: code indent should never use tabs
#1736: FILE: tools/virtiofsd/fuse_common.h:436:
+^I * total number is not limited by other means. As of kernel$

ERROR: code indent should never use tabs
#1737: FILE: tools/virtiofsd/fuse_common.h:437:
+^I * 4.8, only two types of requests fall into this category:$

ERROR: code indent should never use tabs
#1738: FILE: tools/virtiofsd/fuse_common.h:438:
+^I *$

ERROR: code indent should never use tabs
#1739: FILE: tools/virtiofsd/fuse_common.h:439:
+^I *   1. Read-ahead requests$

ERROR: code indent should never use tabs
#1740: FILE: tools/virtiofsd/fuse_common.h:440:
+^I *   2. Asynchronous direct I/O requests$

ERROR: code indent should never use tabs
#1741: FILE: tools/virtiofsd/fuse_common.h:441:
+^I *$

ERROR: code indent should never use tabs
#1742: FILE: tools/virtiofsd/fuse_common.h:442:
+^I * Read-ahead requests are generated (if max_readahead is$

ERROR: code indent should never use tabs
#1743: FILE: tools/virtiofsd/fuse_common.h:443:
+^I * non-zero) by the kernel to preemptively fill its caches$

ERROR: code indent should never use tabs
#1744: FILE: tools/virtiofsd/fuse_common.h:444:
+^I * when it anticipates that userspace will soon read more$

ERROR: code indent should never use tabs
#1745: FILE: tools/virtiofsd/fuse_common.h:445:
+^I * data.$

ERROR: code indent should never use tabs
#1746: FILE: tools/virtiofsd/fuse_common.h:446:
+^I *$

ERROR: code indent should never use tabs
#1747: FILE: tools/virtiofsd/fuse_common.h:447:
+^I * Asynchronous direct I/O requests are generated if$

ERROR: code indent should never use tabs
#1748: FILE: tools/virtiofsd/fuse_common.h:448:
+^I * FUSE_CAP_ASYNC_DIO is enabled and userspace submits a large$

ERROR: code indent should never use tabs
#1749: FILE: tools/virtiofsd/fuse_common.h:449:
+^I * direct I/O request. In this case the kernel will internally$

ERROR: code indent should never use tabs
#1750: FILE: tools/virtiofsd/fuse_common.h:450:
+^I * split it up into multiple smaller requests and submit them$

ERROR: code indent should never use tabs
#1751: FILE: tools/virtiofsd/fuse_common.h:451:
+^I * to the filesystem concurrently.$

ERROR: code indent should never use tabs
#1752: FILE: tools/virtiofsd/fuse_common.h:452:
+^I *$

ERROR: code indent should never use tabs
#1753: FILE: tools/virtiofsd/fuse_common.h:453:
+^I * Note that the following requests are *not* background$

ERROR: code indent should never use tabs
#1754: FILE: tools/virtiofsd/fuse_common.h:454:
+^I * requests: writeback requests (limited by the kernel's$

ERROR: code indent should never use tabs
#1755: FILE: tools/virtiofsd/fuse_common.h:455:
+^I * flusher algorithm), regular (i.e., synchronous and$

ERROR: code indent should never use tabs
#1756: FILE: tools/virtiofsd/fuse_common.h:456:
+^I * buffered) userspace read/write requests (limited to one per$

ERROR: code indent should never use tabs
#1757: FILE: tools/virtiofsd/fuse_common.h:457:
+^I * thread), asynchronous read requests (Linux's io_submit(2)$

ERROR: code indent should never use tabs
#1758: FILE: tools/virtiofsd/fuse_common.h:458:
+^I * call actually blocks, so these are also limited to one per$

ERROR: code indent should never use tabs
#1759: FILE: tools/virtiofsd/fuse_common.h:459:
+^I * thread).$

ERROR: code indent should never use tabs
#1760: FILE: tools/virtiofsd/fuse_common.h:460:
+^I */$

ERROR: code indent should never use tabs
#1761: FILE: tools/virtiofsd/fuse_common.h:461:
+^Iunsigned max_background;$

ERROR: code indent should never use tabs
#1763: FILE: tools/virtiofsd/fuse_common.h:463:
+^I/**$

ERROR: code indent should never use tabs
#1764: FILE: tools/virtiofsd/fuse_common.h:464:
+^I * Kernel congestion threshold parameter. If the number of pending$

ERROR: code indent should never use tabs
#1765: FILE: tools/virtiofsd/fuse_common.h:465:
+^I * background requests exceeds this number, the FUSE kernel module will$

ERROR: code indent should never use tabs
#1766: FILE: tools/virtiofsd/fuse_common.h:466:
+^I * mark the filesystem as "congested". This instructs the kernel to$

ERROR: code indent should never use tabs
#1767: FILE: tools/virtiofsd/fuse_common.h:467:
+^I * expect that queued requests will take some time to complete, and to$

ERROR: code indent should never use tabs
#1768: FILE: tools/virtiofsd/fuse_common.h:468:
+^I * adjust its algorithms accordingly (e.g. by putting a waiting thread$

ERROR: code indent should never use tabs
#1769: FILE: tools/virtiofsd/fuse_common.h:469:
+^I * to sleep instead of using a busy-loop).$

ERROR: code indent should never use tabs
#1770: FILE: tools/virtiofsd/fuse_common.h:470:
+^I */$

ERROR: code indent should never use tabs
#1771: FILE: tools/virtiofsd/fuse_common.h:471:
+^Iunsigned congestion_threshold;$

ERROR: code indent should never use tabs
#1773: FILE: tools/virtiofsd/fuse_common.h:473:
+^I/**$

ERROR: code indent should never use tabs
#1774: FILE: tools/virtiofsd/fuse_common.h:474:
+^I * When FUSE_CAP_WRITEBACK_CACHE is enabled, the kernel is responsible$

ERROR: code indent should never use tabs
#1775: FILE: tools/virtiofsd/fuse_common.h:475:
+^I * for updating mtime and ctime when write requests are received. The$

ERROR: code indent should never use tabs
#1776: FILE: tools/virtiofsd/fuse_common.h:476:
+^I * updated values are passed to the filesystem with setattr() requests.$

ERROR: code indent should never use tabs
#1777: FILE: tools/virtiofsd/fuse_common.h:477:
+^I * However, if the filesystem does not support the full resolution of$

ERROR: code indent should never use tabs
#1778: FILE: tools/virtiofsd/fuse_common.h:478:
+^I * the kernel timestamps (nanoseconds), the mtime and ctime values used$

ERROR: code indent should never use tabs
#1779: FILE: tools/virtiofsd/fuse_common.h:479:
+^I * by kernel and filesystem will differ (and result in an apparent$

ERROR: code indent should never use tabs
#1780: FILE: tools/virtiofsd/fuse_common.h:480:
+^I * change of times after a cache flush).$

ERROR: code indent should never use tabs
#1781: FILE: tools/virtiofsd/fuse_common.h:481:
+^I *$

ERROR: code indent should never use tabs
#1782: FILE: tools/virtiofsd/fuse_common.h:482:
+^I * To prevent this problem, this variable can be used to inform the$

ERROR: code indent should never use tabs
#1783: FILE: tools/virtiofsd/fuse_common.h:483:
+^I * kernel about the timestamp granularity supported by the file-system.$

ERROR: code indent should never use tabs
#1784: FILE: tools/virtiofsd/fuse_common.h:484:
+^I * The value should be power of 10.  The default is 1, i.e. full$

ERROR: code indent should never use tabs
#1785: FILE: tools/virtiofsd/fuse_common.h:485:
+^I * nano-second resolution. Filesystems supporting only second resolution$

ERROR: code indent should never use tabs
#1786: FILE: tools/virtiofsd/fuse_common.h:486:
+^I * should set this to 1000000000.$

ERROR: code indent should never use tabs
#1787: FILE: tools/virtiofsd/fuse_common.h:487:
+^I */$

ERROR: code indent should never use tabs
#1788: FILE: tools/virtiofsd/fuse_common.h:488:
+^Iunsigned time_gran;$

ERROR: code indent should never use tabs
#1790: FILE: tools/virtiofsd/fuse_common.h:490:
+^I/**$

ERROR: code indent should never use tabs
#1791: FILE: tools/virtiofsd/fuse_common.h:491:
+^I * For future use.$

ERROR: code indent should never use tabs
#1792: FILE: tools/virtiofsd/fuse_common.h:492:
+^I */$

ERROR: code indent should never use tabs
#1793: FILE: tools/virtiofsd/fuse_common.h:493:
+^Iunsigned reserved[22];$

WARNING: line over 80 characters
#1820: FILE: tools/virtiofsd/fuse_common.h:520:
+ *   -o no_remote_lock      Equivalent to -o no_remote_flock,no_remote_posix_lock

ERROR: "foo* bar" should be "foo *bar"
#1842: FILE: tools/virtiofsd/fuse_common.h:542:
+struct fuse_conn_info_opts* fuse_parse_conn_info_opts(struct fuse_args *args);

ERROR: code indent should never use tabs
#1852: FILE: tools/virtiofsd/fuse_common.h:552:
+^I^I^I  struct fuse_conn_info *conn);$

WARNING: Block comments use a leading /* on a separate line
#1883: FILE: tools/virtiofsd/fuse_common.h:583:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#1884: FILE: tools/virtiofsd/fuse_common.h:584:
+ * Data buffer^I^I^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#1885: FILE: tools/virtiofsd/fuse_common.h:585:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#1891: FILE: tools/virtiofsd/fuse_common.h:591:
+^I/**$

ERROR: code indent should never use tabs
#1892: FILE: tools/virtiofsd/fuse_common.h:592:
+^I * Buffer contains a file descriptor$

ERROR: code indent should never use tabs
#1893: FILE: tools/virtiofsd/fuse_common.h:593:
+^I *$

ERROR: code indent should never use tabs
#1894: FILE: tools/virtiofsd/fuse_common.h:594:
+^I * If this flag is set, the .fd field is valid, otherwise the$

ERROR: code indent should never use tabs
#1895: FILE: tools/virtiofsd/fuse_common.h:595:
+^I * .mem fields is valid.$

ERROR: code indent should never use tabs
#1896: FILE: tools/virtiofsd/fuse_common.h:596:
+^I */$

ERROR: code indent should never use tabs
#1897: FILE: tools/virtiofsd/fuse_common.h:597:
+^IFUSE_BUF_IS_FD^I^I= (1 << 1),$

ERROR: code indent should never use tabs
#1899: FILE: tools/virtiofsd/fuse_common.h:599:
+^I/**$

ERROR: code indent should never use tabs
#1900: FILE: tools/virtiofsd/fuse_common.h:600:
+^I * Seek on the file descriptor$

ERROR: code indent should never use tabs
#1901: FILE: tools/virtiofsd/fuse_common.h:601:
+^I *$

ERROR: code indent should never use tabs
#1902: FILE: tools/virtiofsd/fuse_common.h:602:
+^I * If this flag is set then the .pos field is valid and is$

ERROR: code indent should never use tabs
#1903: FILE: tools/virtiofsd/fuse_common.h:603:
+^I * used to seek to the given offset before performing$

ERROR: code indent should never use tabs
#1904: FILE: tools/virtiofsd/fuse_common.h:604:
+^I * operation on file descriptor.$

ERROR: code indent should never use tabs
#1905: FILE: tools/virtiofsd/fuse_common.h:605:
+^I */$

ERROR: code indent should never use tabs
#1906: FILE: tools/virtiofsd/fuse_common.h:606:
+^IFUSE_BUF_FD_SEEK^I= (1 << 2),$

ERROR: code indent should never use tabs
#1908: FILE: tools/virtiofsd/fuse_common.h:608:
+^I/**$

ERROR: code indent should never use tabs
#1909: FILE: tools/virtiofsd/fuse_common.h:609:
+^I * Retry operation on file descriptor$

ERROR: code indent should never use tabs
#1910: FILE: tools/virtiofsd/fuse_common.h:610:
+^I *$

ERROR: code indent should never use tabs
#1911: FILE: tools/virtiofsd/fuse_common.h:611:
+^I * If this flag is set then retry operation on file descriptor$

ERROR: code indent should never use tabs
#1912: FILE: tools/virtiofsd/fuse_common.h:612:
+^I * until .size bytes have been copied or an error or EOF is$

ERROR: code indent should never use tabs
#1913: FILE: tools/virtiofsd/fuse_common.h:613:
+^I * detected.$

ERROR: code indent should never use tabs
#1914: FILE: tools/virtiofsd/fuse_common.h:614:
+^I */$

ERROR: code indent should never use tabs
#1915: FILE: tools/virtiofsd/fuse_common.h:615:
+^IFUSE_BUF_FD_RETRY^I= (1 << 3),$

ERROR: code indent should never use tabs
#1922: FILE: tools/virtiofsd/fuse_common.h:622:
+^I/**$

ERROR: code indent should never use tabs
#1923: FILE: tools/virtiofsd/fuse_common.h:623:
+^I * Don't use splice(2)$

ERROR: code indent should never use tabs
#1924: FILE: tools/virtiofsd/fuse_common.h:624:
+^I *$

ERROR: code indent should never use tabs
#1925: FILE: tools/virtiofsd/fuse_common.h:625:
+^I * Always fall back to using read and write instead of$

ERROR: code indent should never use tabs
#1926: FILE: tools/virtiofsd/fuse_common.h:626:
+^I * splice(2) to copy data from one file descriptor to another.$

ERROR: code indent should never use tabs
#1927: FILE: tools/virtiofsd/fuse_common.h:627:
+^I *$

ERROR: code indent should never use tabs
#1928: FILE: tools/virtiofsd/fuse_common.h:628:
+^I * If this flag is not set, then only fall back if splice is$

ERROR: code indent should never use tabs
#1929: FILE: tools/virtiofsd/fuse_common.h:629:
+^I * unavailable.$

ERROR: code indent should never use tabs
#1930: FILE: tools/virtiofsd/fuse_common.h:630:
+^I */$

ERROR: code indent should never use tabs
#1931: FILE: tools/virtiofsd/fuse_common.h:631:
+^IFUSE_BUF_NO_SPLICE^I= (1 << 1),$

ERROR: code indent should never use tabs
#1933: FILE: tools/virtiofsd/fuse_common.h:633:
+^I/**$

ERROR: code indent should never use tabs
#1934: FILE: tools/virtiofsd/fuse_common.h:634:
+^I * Force splice$

ERROR: code indent should never use tabs
#1935: FILE: tools/virtiofsd/fuse_common.h:635:
+^I *$

ERROR: code indent should never use tabs
#1936: FILE: tools/virtiofsd/fuse_common.h:636:
+^I * Always use splice(2) to copy data from one file descriptor$

ERROR: code indent should never use tabs
#1937: FILE: tools/virtiofsd/fuse_common.h:637:
+^I * to another.  If splice is not available, return -EINVAL.$

ERROR: code indent should never use tabs
#1938: FILE: tools/virtiofsd/fuse_common.h:638:
+^I */$

ERROR: code indent should never use tabs
#1939: FILE: tools/virtiofsd/fuse_common.h:639:
+^IFUSE_BUF_FORCE_SPLICE^I= (1 << 2),$

ERROR: code indent should never use tabs
#1941: FILE: tools/virtiofsd/fuse_common.h:641:
+^I/**$

ERROR: code indent should never use tabs
#1942: FILE: tools/virtiofsd/fuse_common.h:642:
+^I * Try to move data with splice.$

ERROR: code indent should never use tabs
#1943: FILE: tools/virtiofsd/fuse_common.h:643:
+^I *$

ERROR: code indent should never use tabs
#1944: FILE: tools/virtiofsd/fuse_common.h:644:
+^I * If splice is used, try to move pages from the source to the$

ERROR: code indent should never use tabs
#1945: FILE: tools/virtiofsd/fuse_common.h:645:
+^I * destination instead of copying.  See documentation of$

ERROR: code indent should never use tabs
#1946: FILE: tools/virtiofsd/fuse_common.h:646:
+^I * SPLICE_F_MOVE in splice(2) man page.$

ERROR: code indent should never use tabs
#1947: FILE: tools/virtiofsd/fuse_common.h:647:
+^I */$

ERROR: code indent should never use tabs
#1948: FILE: tools/virtiofsd/fuse_common.h:648:
+^IFUSE_BUF_SPLICE_MOVE^I= (1 << 3),$

ERROR: code indent should never use tabs
#1950: FILE: tools/virtiofsd/fuse_common.h:650:
+^I/**$

ERROR: code indent should never use tabs
#1951: FILE: tools/virtiofsd/fuse_common.h:651:
+^I * Don't block on the pipe when copying data with splice$

ERROR: code indent should never use tabs
#1952: FILE: tools/virtiofsd/fuse_common.h:652:
+^I *$

ERROR: code indent should never use tabs
#1953: FILE: tools/virtiofsd/fuse_common.h:653:
+^I * Makes the operations on the pipe non-blocking (if the pipe$

ERROR: code indent should never use tabs
#1954: FILE: tools/virtiofsd/fuse_common.h:654:
+^I * is full or empty).  See SPLICE_F_NONBLOCK in the splice(2)$

ERROR: code indent should never use tabs
#1955: FILE: tools/virtiofsd/fuse_common.h:655:
+^I * man page.$

ERROR: code indent should never use tabs
#1956: FILE: tools/virtiofsd/fuse_common.h:656:
+^I */$

ERROR: code indent should never use tabs
#1957: FILE: tools/virtiofsd/fuse_common.h:657:
+^IFUSE_BUF_SPLICE_NONBLOCK= (1 << 4),$

ERROR: spaces required around that '=' (ctx:VxW)
#1957: FILE: tools/virtiofsd/fuse_common.h:657:
+       FUSE_BUF_SPLICE_NONBLOCK= (1 << 4),
                                ^

ERROR: code indent should never use tabs
#1967: FILE: tools/virtiofsd/fuse_common.h:667:
+^I/**$

ERROR: code indent should never use tabs
#1968: FILE: tools/virtiofsd/fuse_common.h:668:
+^I * Size of data in bytes$

ERROR: code indent should never use tabs
#1969: FILE: tools/virtiofsd/fuse_common.h:669:
+^I */$

ERROR: code indent should never use tabs
#1970: FILE: tools/virtiofsd/fuse_common.h:670:
+^Isize_t size;$

ERROR: code indent should never use tabs
#1972: FILE: tools/virtiofsd/fuse_common.h:672:
+^I/**$

ERROR: code indent should never use tabs
#1973: FILE: tools/virtiofsd/fuse_common.h:673:
+^I * Buffer flags$

ERROR: code indent should never use tabs
#1974: FILE: tools/virtiofsd/fuse_common.h:674:
+^I */$

ERROR: code indent should never use tabs
#1975: FILE: tools/virtiofsd/fuse_common.h:675:
+^Ienum fuse_buf_flags flags;$

ERROR: code indent should never use tabs
#1977: FILE: tools/virtiofsd/fuse_common.h:677:
+^I/**$

ERROR: code indent should never use tabs
#1978: FILE: tools/virtiofsd/fuse_common.h:678:
+^I * Memory pointer$

ERROR: code indent should never use tabs
#1979: FILE: tools/virtiofsd/fuse_common.h:679:
+^I *$

ERROR: code indent should never use tabs
#1980: FILE: tools/virtiofsd/fuse_common.h:680:
+^I * Used unless FUSE_BUF_IS_FD flag is set.$

ERROR: code indent should never use tabs
#1981: FILE: tools/virtiofsd/fuse_common.h:681:
+^I */$

ERROR: code indent should never use tabs
#1982: FILE: tools/virtiofsd/fuse_common.h:682:
+^Ivoid *mem;$

ERROR: code indent should never use tabs
#1984: FILE: tools/virtiofsd/fuse_common.h:684:
+^I/**$

ERROR: code indent should never use tabs
#1985: FILE: tools/virtiofsd/fuse_common.h:685:
+^I * File descriptor$

ERROR: code indent should never use tabs
#1986: FILE: tools/virtiofsd/fuse_common.h:686:
+^I *$

ERROR: code indent should never use tabs
#1987: FILE: tools/virtiofsd/fuse_common.h:687:
+^I * Used if FUSE_BUF_IS_FD flag is set.$

ERROR: code indent should never use tabs
#1988: FILE: tools/virtiofsd/fuse_common.h:688:
+^I */$

ERROR: code indent should never use tabs
#1989: FILE: tools/virtiofsd/fuse_common.h:689:
+^Iint fd;$

ERROR: code indent should never use tabs
#1991: FILE: tools/virtiofsd/fuse_common.h:691:
+^I/**$

ERROR: code indent should never use tabs
#1992: FILE: tools/virtiofsd/fuse_common.h:692:
+^I * File position$

ERROR: code indent should never use tabs
#1993: FILE: tools/virtiofsd/fuse_common.h:693:
+^I *$

ERROR: code indent should never use tabs
#1994: FILE: tools/virtiofsd/fuse_common.h:694:
+^I * Used if FUSE_BUF_FD_SEEK flag is set.$

ERROR: code indent should never use tabs
#1995: FILE: tools/virtiofsd/fuse_common.h:695:
+^I */$

ERROR: code indent should never use tabs
#1996: FILE: tools/virtiofsd/fuse_common.h:696:
+^Ioff_t pos;$

ERROR: code indent should never use tabs
#2008: FILE: tools/virtiofsd/fuse_common.h:708:
+^I/**$

ERROR: code indent should never use tabs
#2009: FILE: tools/virtiofsd/fuse_common.h:709:
+^I * Number of buffers in the array$

ERROR: code indent should never use tabs
#2010: FILE: tools/virtiofsd/fuse_common.h:710:
+^I */$

ERROR: code indent should never use tabs
#2011: FILE: tools/virtiofsd/fuse_common.h:711:
+^Isize_t count;$

ERROR: code indent should never use tabs
#2013: FILE: tools/virtiofsd/fuse_common.h:713:
+^I/**$

ERROR: code indent should never use tabs
#2014: FILE: tools/virtiofsd/fuse_common.h:714:
+^I * Index of current buffer within the array$

ERROR: code indent should never use tabs
#2015: FILE: tools/virtiofsd/fuse_common.h:715:
+^I */$

ERROR: code indent should never use tabs
#2016: FILE: tools/virtiofsd/fuse_common.h:716:
+^Isize_t idx;$

ERROR: code indent should never use tabs
#2018: FILE: tools/virtiofsd/fuse_common.h:718:
+^I/**$

ERROR: code indent should never use tabs
#2019: FILE: tools/virtiofsd/fuse_common.h:719:
+^I * Current offset within the current buffer$

ERROR: code indent should never use tabs
#2020: FILE: tools/virtiofsd/fuse_common.h:720:
+^I */$

ERROR: code indent should never use tabs
#2021: FILE: tools/virtiofsd/fuse_common.h:721:
+^Isize_t off;$

ERROR: code indent should never use tabs
#2023: FILE: tools/virtiofsd/fuse_common.h:723:
+^I/**$

ERROR: code indent should never use tabs
#2024: FILE: tools/virtiofsd/fuse_common.h:724:
+^I * Array of buffers$

ERROR: code indent should never use tabs
#2025: FILE: tools/virtiofsd/fuse_common.h:725:
+^I */$

ERROR: code indent should never use tabs
#2026: FILE: tools/virtiofsd/fuse_common.h:726:
+^Istruct fuse_buf buf[1];$

ERROR: code indent should never use tabs
#2030: FILE: tools/virtiofsd/fuse_common.h:730:
+#define FUSE_BUFVEC_INIT(size__)^I^I^I^I\$

ERROR: code indent should never use tabs
#2031: FILE: tools/virtiofsd/fuse_common.h:731:
+^I((struct fuse_bufvec) {^I^I^I^I^I\$

ERROR: code indent should never use tabs
#2032: FILE: tools/virtiofsd/fuse_common.h:732:
+^I^I/* .count= */ 1,^I^I^I^I\$

WARNING: Block comments use a leading /* on a separate line
#2032: FILE: tools/virtiofsd/fuse_common.h:732:
+               /* .count= */ 1,                                \

ERROR: code indent should never use tabs
#2033: FILE: tools/virtiofsd/fuse_common.h:733:
+^I^I/* .idx =  */ 0,^I^I^I^I\$

WARNING: Block comments use a leading /* on a separate line
#2033: FILE: tools/virtiofsd/fuse_common.h:733:
+               /* .idx =  */ 0,                                \

ERROR: code indent should never use tabs
#2034: FILE: tools/virtiofsd/fuse_common.h:734:
+^I^I/* .off =  */ 0,^I^I^I^I\$

WARNING: Block comments use a leading /* on a separate line
#2034: FILE: tools/virtiofsd/fuse_common.h:734:
+               /* .off =  */ 0,                                \

ERROR: code indent should never use tabs
#2035: FILE: tools/virtiofsd/fuse_common.h:735:
+^I^I/* .buf =  */ { /* [0] = */ {^I^I^I\$

WARNING: Block comments use a leading /* on a separate line
#2035: FILE: tools/virtiofsd/fuse_common.h:735:
+               /* .buf =  */ { /* [0] = */ {                   \

ERROR: code indent should never use tabs
#2036: FILE: tools/virtiofsd/fuse_common.h:736:
+^I^I^I/* .size =  */ (size__),^I^I\$

WARNING: Block comments use a leading /* on a separate line
#2036: FILE: tools/virtiofsd/fuse_common.h:736:
+                       /* .size =  */ (size__),                \

ERROR: code indent should never use tabs
#2037: FILE: tools/virtiofsd/fuse_common.h:737:
+^I^I^I/* .flags = */ (enum fuse_buf_flags) 0,^I\$

WARNING: Block comments use a leading /* on a separate line
#2037: FILE: tools/virtiofsd/fuse_common.h:737:
+                       /* .flags = */ (enum fuse_buf_flags) 0, \

ERROR: code indent should never use tabs
#2038: FILE: tools/virtiofsd/fuse_common.h:738:
+^I^I^I/* .mem =   */ NULL,^I^I^I\$

WARNING: Block comments use a leading /* on a separate line
#2038: FILE: tools/virtiofsd/fuse_common.h:738:
+                       /* .mem =   */ NULL,                    \

ERROR: code indent should never use tabs
#2039: FILE: tools/virtiofsd/fuse_common.h:739:
+^I^I^I/* .fd =    */ -1,^I^I^I\$

WARNING: Block comments use a leading /* on a separate line
#2039: FILE: tools/virtiofsd/fuse_common.h:739:
+                       /* .fd =    */ -1,                      \

ERROR: code indent should never use tabs
#2040: FILE: tools/virtiofsd/fuse_common.h:740:
+^I^I^I/* .pos =   */ 0,^I^I^I\$

WARNING: Block comments use a leading /* on a separate line
#2040: FILE: tools/virtiofsd/fuse_common.h:740:
+                       /* .pos =   */ 0,                       \

ERROR: code indent should never use tabs
#2041: FILE: tools/virtiofsd/fuse_common.h:741:
+^I^I} }^I^I^I^I^I^I\$

ERROR: code indent should never use tabs
#2042: FILE: tools/virtiofsd/fuse_common.h:742:
+^I} )$

ERROR: space prohibited before that close parenthesis ')'
#2042: FILE: tools/virtiofsd/fuse_common.h:742:
+       } )

ERROR: code indent should never use tabs
#2061: FILE: tools/virtiofsd/fuse_common.h:761:
+^I^I      enum fuse_buf_copy_flags flags);$

WARNING: Block comments use a leading /* on a separate line
#2063: FILE: tools/virtiofsd/fuse_common.h:763:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#2064: FILE: tools/virtiofsd/fuse_common.h:764:
+ * Signal handling^I^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#2065: FILE: tools/virtiofsd/fuse_common.h:765:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#2070: FILE: tools/virtiofsd/fuse_common.h:770:
+ * Stores session in a global variable.^I May only be called once per$

WARNING: Block comments use a leading /* on a separate line
#2097: FILE: tools/virtiofsd/fuse_common.h:797:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#2098: FILE: tools/virtiofsd/fuse_common.h:798:
+ * Compatibility stuff^I^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#2099: FILE: tools/virtiofsd/fuse_common.h:799:
+ * ----------------------------------------------------------- */

WARNING: architecture specific defines should be avoided
#2105: FILE: tools/virtiofsd/fuse_common.h:805:
+#ifdef __cplusplus

ERROR: line over 90 characters
#2116: FILE: tools/virtiofsd/fuse_common.h:816:
+#if defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 6) && !defined __cplusplus

WARNING: architecture specific defines should be avoided
#2116: FILE: tools/virtiofsd/fuse_common.h:816:
+#if defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 6) && !defined __cplusplus

ERROR: code indent should never use tabs
#2120: FILE: tools/virtiofsd/fuse_common.h:820:
+^I{ unsigned _fuse_off_t_must_be_64bit:((sizeof(off_t) == 8) ? 1 : -1); };$

WARNING: Block comments use * on subsequent lines
#2131: FILE: tools/virtiofsd/fuse_i.h:2:
+/*
+  FUSE: Filesystem in Userspace

ERROR: code indent should never use tabs
#2144: FILE: tools/virtiofsd/fuse_i.h:15:
+^Istruct fuse_session *se;$

ERROR: code indent should never use tabs
#2145: FILE: tools/virtiofsd/fuse_i.h:16:
+^Iuint64_t unique;$

ERROR: code indent should never use tabs
#2146: FILE: tools/virtiofsd/fuse_i.h:17:
+^Iint ctr;$

ERROR: code indent should never use tabs
#2147: FILE: tools/virtiofsd/fuse_i.h:18:
+^Ipthread_mutex_t lock;$

ERROR: code indent should never use tabs
#2148: FILE: tools/virtiofsd/fuse_i.h:19:
+^Istruct fuse_ctx ctx;$

ERROR: code indent should never use tabs
#2149: FILE: tools/virtiofsd/fuse_i.h:20:
+^Istruct fuse_chan *ch;$

ERROR: code indent should never use tabs
#2150: FILE: tools/virtiofsd/fuse_i.h:21:
+^Iint interrupted;$

ERROR: code indent should never use tabs
#2151: FILE: tools/virtiofsd/fuse_i.h:22:
+^Iunsigned int ioctl_64bit : 1;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#2151: FILE: tools/virtiofsd/fuse_i.h:22:
+       unsigned int ioctl_64bit : 1;
                                 ^

ERROR: code indent should never use tabs
#2152: FILE: tools/virtiofsd/fuse_i.h:23:
+^Iunion {$

ERROR: code indent should never use tabs
#2153: FILE: tools/virtiofsd/fuse_i.h:24:
+^I^Istruct {$

ERROR: code indent should never use tabs
#2154: FILE: tools/virtiofsd/fuse_i.h:25:
+^I^I^Iuint64_t unique;$

ERROR: code indent should never use tabs
#2155: FILE: tools/virtiofsd/fuse_i.h:26:
+^I^I} i;$

ERROR: code indent should never use tabs
#2156: FILE: tools/virtiofsd/fuse_i.h:27:
+^I^Istruct {$

ERROR: code indent should never use tabs
#2157: FILE: tools/virtiofsd/fuse_i.h:28:
+^I^I^Ifuse_interrupt_func_t func;$

ERROR: code indent should never use tabs
#2158: FILE: tools/virtiofsd/fuse_i.h:29:
+^I^I^Ivoid *data;$

ERROR: code indent should never use tabs
#2159: FILE: tools/virtiofsd/fuse_i.h:30:
+^I^I} ni;$

ERROR: code indent should never use tabs
#2160: FILE: tools/virtiofsd/fuse_i.h:31:
+^I} u;$

ERROR: code indent should never use tabs
#2161: FILE: tools/virtiofsd/fuse_i.h:32:
+^Istruct fuse_req *next;$

ERROR: code indent should never use tabs
#2162: FILE: tools/virtiofsd/fuse_i.h:33:
+^Istruct fuse_req *prev;$

ERROR: code indent should never use tabs
#2166: FILE: tools/virtiofsd/fuse_i.h:37:
+^Iuint64_t unique;$

ERROR: code indent should never use tabs
#2167: FILE: tools/virtiofsd/fuse_i.h:38:
+^Ivoid (*reply)(struct fuse_notify_req *, fuse_req_t, fuse_ino_t,$

ERROR: code indent should never use tabs
#2168: FILE: tools/virtiofsd/fuse_i.h:39:
+^I^I      const void *, const struct fuse_buf *);$

ERROR: code indent should never use tabs
#2169: FILE: tools/virtiofsd/fuse_i.h:40:
+^Istruct fuse_notify_req *next;$

ERROR: code indent should never use tabs
#2170: FILE: tools/virtiofsd/fuse_i.h:41:
+^Istruct fuse_notify_req *prev;$

ERROR: code indent should never use tabs
#2174: FILE: tools/virtiofsd/fuse_i.h:45:
+^Ichar *mountpoint;$

ERROR: code indent should never use tabs
#2175: FILE: tools/virtiofsd/fuse_i.h:46:
+^Ivolatile int exited;$

ERROR: Use of volatile is usually wrong, please add a comment
#2175: FILE: tools/virtiofsd/fuse_i.h:46:
+       volatile int exited;

ERROR: code indent should never use tabs
#2176: FILE: tools/virtiofsd/fuse_i.h:47:
+^Iint fd;$

ERROR: code indent should never use tabs
#2177: FILE: tools/virtiofsd/fuse_i.h:48:
+^Istruct mount_opts *mo;$

ERROR: code indent should never use tabs
#2178: FILE: tools/virtiofsd/fuse_i.h:49:
+^Iint debug;$

ERROR: code indent should never use tabs
#2179: FILE: tools/virtiofsd/fuse_i.h:50:
+^Iint deny_others;$

ERROR: code indent should never use tabs
#2180: FILE: tools/virtiofsd/fuse_i.h:51:
+^Istruct fuse_lowlevel_ops op;$

ERROR: code indent should never use tabs
#2181: FILE: tools/virtiofsd/fuse_i.h:52:
+^Iint got_init;$

ERROR: code indent should never use tabs
#2182: FILE: tools/virtiofsd/fuse_i.h:53:
+^Istruct cuse_data *cuse_data;$

ERROR: code indent should never use tabs
#2183: FILE: tools/virtiofsd/fuse_i.h:54:
+^Ivoid *userdata;$

ERROR: code indent should never use tabs
#2184: FILE: tools/virtiofsd/fuse_i.h:55:
+^Iuid_t owner;$

ERROR: code indent should never use tabs
#2185: FILE: tools/virtiofsd/fuse_i.h:56:
+^Istruct fuse_conn_info conn;$

ERROR: code indent should never use tabs
#2186: FILE: tools/virtiofsd/fuse_i.h:57:
+^Istruct fuse_req list;$

ERROR: code indent should never use tabs
#2187: FILE: tools/virtiofsd/fuse_i.h:58:
+^Istruct fuse_req interrupts;$

ERROR: code indent should never use tabs
#2188: FILE: tools/virtiofsd/fuse_i.h:59:
+^Ipthread_mutex_t lock;$

ERROR: code indent should never use tabs
#2189: FILE: tools/virtiofsd/fuse_i.h:60:
+^Iint got_destroy;$

ERROR: code indent should never use tabs
#2190: FILE: tools/virtiofsd/fuse_i.h:61:
+^Ipthread_key_t pipe_key;$

ERROR: code indent should never use tabs
#2191: FILE: tools/virtiofsd/fuse_i.h:62:
+^Iint broken_splice_nonblock;$

ERROR: code indent should never use tabs
#2192: FILE: tools/virtiofsd/fuse_i.h:63:
+^Iuint64_t notify_ctr;$

ERROR: code indent should never use tabs
#2193: FILE: tools/virtiofsd/fuse_i.h:64:
+^Istruct fuse_notify_req notify_list;$

ERROR: code indent should never use tabs
#2194: FILE: tools/virtiofsd/fuse_i.h:65:
+^Isize_t bufsize;$

ERROR: code indent should never use tabs
#2195: FILE: tools/virtiofsd/fuse_i.h:66:
+^Iint error;$

ERROR: code indent should never use tabs
#2199: FILE: tools/virtiofsd/fuse_i.h:70:
+^Ipthread_mutex_t lock;$

ERROR: code indent should never use tabs
#2200: FILE: tools/virtiofsd/fuse_i.h:71:
+^Iint ctr;$

ERROR: code indent should never use tabs
#2201: FILE: tools/virtiofsd/fuse_i.h:72:
+^Iint fd;$

ERROR: code indent should never use tabs
#2212: FILE: tools/virtiofsd/fuse_i.h:83:
+^Ichar *name;$

ERROR: code indent should never use tabs
#2213: FILE: tools/virtiofsd/fuse_i.h:84:
+^Ifuse_module_factory_t factory;$

ERROR: code indent should never use tabs
#2214: FILE: tools/virtiofsd/fuse_i.h:85:
+^Istruct fuse_module *next;$

ERROR: code indent should never use tabs
#2215: FILE: tools/virtiofsd/fuse_i.h:86:
+^Istruct fusemod_so *so;$

ERROR: code indent should never use tabs
#2216: FILE: tools/virtiofsd/fuse_i.h:87:
+^Iint ctr;$

WARNING: Block comments use a leading /* on a separate line
#2219: FILE: tools/virtiofsd/fuse_i.h:90:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#2220: FILE: tools/virtiofsd/fuse_i.h:91:
+ * Channel interface (when using -o clone_fd)^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#2221: FILE: tools/virtiofsd/fuse_i.h:92:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#2246: FILE: tools/virtiofsd/fuse_i.h:117:
+^I^I^I       int count);$

ERROR: code indent should never use tabs
#2254: FILE: tools/virtiofsd/fuse_i.h:125:
+^I^I^I^I struct fuse_chan *ch);$

WARNING: line over 80 characters
#2256: FILE: tools/virtiofsd/fuse_i.h:127:
+                                 const struct fuse_buf *buf, struct fuse_chan *ch);

ERROR: code indent should never use tabs
#2256: FILE: tools/virtiofsd/fuse_i.h:127:
+^I^I^I^I  const struct fuse_buf *buf, struct fuse_chan *ch);$

WARNING: line over 80 characters
#2258: FILE: tools/virtiofsd/fuse_i.h:129:
+struct fuse *fuse_new_31(struct fuse_args *args, const struct fuse_operations *op,

ERROR: code indent should never use tabs
#2259: FILE: tools/virtiofsd/fuse_i.h:130:
+^I^I      size_t op_size, void *private_data);$

WARNING: line over 80 characters
#2261: FILE: tools/virtiofsd/fuse_i.h:132:
+int fuse_session_loop_mt_32(struct fuse_session *se, struct fuse_loop_config *config);

WARNING: Block comments use * on subsequent lines
#2276: FILE: tools/virtiofsd/fuse_log.h:2:
+/*
+  FUSE: Filesystem in Userspace

WARNING: Block comments use a leading /* on a separate line
#2286: FILE: tools/virtiofsd/fuse_log.h:12:
+/** @file

WARNING: architecture specific defines should be avoided
#2293: FILE: tools/virtiofsd/fuse_log.h:19:
+#ifdef __cplusplus

ERROR: code indent should never use tabs
#2303: FILE: tools/virtiofsd/fuse_log.h:29:
+^IFUSE_LOG_EMERG,$

ERROR: code indent should never use tabs
#2304: FILE: tools/virtiofsd/fuse_log.h:30:
+^IFUSE_LOG_ALERT,$

ERROR: code indent should never use tabs
#2305: FILE: tools/virtiofsd/fuse_log.h:31:
+^IFUSE_LOG_CRIT,$

ERROR: code indent should never use tabs
#2306: FILE: tools/virtiofsd/fuse_log.h:32:
+^IFUSE_LOG_ERR,$

ERROR: code indent should never use tabs
#2307: FILE: tools/virtiofsd/fuse_log.h:33:
+^IFUSE_LOG_WARNING,$

ERROR: code indent should never use tabs
#2308: FILE: tools/virtiofsd/fuse_log.h:34:
+^IFUSE_LOG_NOTICE,$

ERROR: code indent should never use tabs
#2309: FILE: tools/virtiofsd/fuse_log.h:35:
+^IFUSE_LOG_INFO,$

ERROR: code indent should never use tabs
#2310: FILE: tools/virtiofsd/fuse_log.h:36:
+^IFUSE_LOG_DEBUG$

ERROR: code indent should never use tabs
#2327: FILE: tools/virtiofsd/fuse_log.h:53:
+^I^I^I^Iconst char *fmt, va_list ap);$

WARNING: architecture specific defines should be avoided
#2352: FILE: tools/virtiofsd/fuse_log.h:78:
+#ifdef __cplusplus

WARNING: Block comments use * on subsequent lines
#2364: FILE: tools/virtiofsd/fuse_lowlevel.h:2:
+/*
+  FUSE: Filesystem in Userspace

WARNING: Block comments use a leading /* on a separate line
#2374: FILE: tools/virtiofsd/fuse_lowlevel.h:12:
+/** @file

WARNING: architecture specific defines should be avoided
#2396: FILE: tools/virtiofsd/fuse_lowlevel.h:34:
+#ifdef __cplusplus

WARNING: Block comments use a leading /* on a separate line
#2400: FILE: tools/virtiofsd/fuse_lowlevel.h:38:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#2401: FILE: tools/virtiofsd/fuse_lowlevel.h:39:
+ * Miscellaneous definitions^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#2402: FILE: tools/virtiofsd/fuse_lowlevel.h:40:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#2422: FILE: tools/virtiofsd/fuse_lowlevel.h:60:
+^I/** Unique inode number$

WARNING: Block comments use a leading /* on a separate line
#2422: FILE: tools/virtiofsd/fuse_lowlevel.h:60:
+       /** Unique inode number

ERROR: code indent should never use tabs
#2423: FILE: tools/virtiofsd/fuse_lowlevel.h:61:
+^I *$

ERROR: code indent should never use tabs
#2424: FILE: tools/virtiofsd/fuse_lowlevel.h:62:
+^I * In lookup, zero means negative entry (from version 2.5)$

ERROR: code indent should never use tabs
#2425: FILE: tools/virtiofsd/fuse_lowlevel.h:63:
+^I * Returning ENOENT also means negative entry, but by setting zero$

ERROR: code indent should never use tabs
#2426: FILE: tools/virtiofsd/fuse_lowlevel.h:64:
+^I * ino the kernel may cache negative entries for entry_timeout$

ERROR: code indent should never use tabs
#2427: FILE: tools/virtiofsd/fuse_lowlevel.h:65:
+^I * seconds.$

ERROR: code indent should never use tabs
#2428: FILE: tools/virtiofsd/fuse_lowlevel.h:66:
+^I */$

ERROR: code indent should never use tabs
#2429: FILE: tools/virtiofsd/fuse_lowlevel.h:67:
+^Ifuse_ino_t ino;$

ERROR: code indent should never use tabs
#2431: FILE: tools/virtiofsd/fuse_lowlevel.h:69:
+^I/** Generation number for this entry.$

WARNING: Block comments use a leading /* on a separate line
#2431: FILE: tools/virtiofsd/fuse_lowlevel.h:69:
+       /** Generation number for this entry.

ERROR: code indent should never use tabs
#2432: FILE: tools/virtiofsd/fuse_lowlevel.h:70:
+^I *$

ERROR: code indent should never use tabs
#2433: FILE: tools/virtiofsd/fuse_lowlevel.h:71:
+^I * If the file system will be exported over NFS, the$

ERROR: code indent should never use tabs
#2434: FILE: tools/virtiofsd/fuse_lowlevel.h:72:
+^I * ino/generation pairs need to be unique over the file$

ERROR: code indent should never use tabs
#2435: FILE: tools/virtiofsd/fuse_lowlevel.h:73:
+^I * system's lifetime (rather than just the mount time). So if$

ERROR: code indent should never use tabs
#2436: FILE: tools/virtiofsd/fuse_lowlevel.h:74:
+^I * the file system reuses an inode after it has been deleted,$

ERROR: code indent should never use tabs
#2437: FILE: tools/virtiofsd/fuse_lowlevel.h:75:
+^I * it must assign a new, previously unused generation number$

ERROR: code indent should never use tabs
#2438: FILE: tools/virtiofsd/fuse_lowlevel.h:76:
+^I * to the inode at the same time.$

ERROR: code indent should never use tabs
#2439: FILE: tools/virtiofsd/fuse_lowlevel.h:77:
+^I *$

ERROR: code indent should never use tabs
#2440: FILE: tools/virtiofsd/fuse_lowlevel.h:78:
+^I */$

ERROR: code indent should never use tabs
#2441: FILE: tools/virtiofsd/fuse_lowlevel.h:79:
+^Iuint64_t generation;$

ERROR: code indent should never use tabs
#2443: FILE: tools/virtiofsd/fuse_lowlevel.h:81:
+^I/** Inode attributes.$

WARNING: Block comments use a leading /* on a separate line
#2443: FILE: tools/virtiofsd/fuse_lowlevel.h:81:
+       /** Inode attributes.

ERROR: code indent should never use tabs
#2444: FILE: tools/virtiofsd/fuse_lowlevel.h:82:
+^I *$

ERROR: code indent should never use tabs
#2445: FILE: tools/virtiofsd/fuse_lowlevel.h:83:
+^I * Even if attr_timeout == 0, attr must be correct. For example,$

ERROR: code indent should never use tabs
#2446: FILE: tools/virtiofsd/fuse_lowlevel.h:84:
+^I * for open(), FUSE uses attr.st_size from lookup() to determine$

ERROR: code indent should never use tabs
#2447: FILE: tools/virtiofsd/fuse_lowlevel.h:85:
+^I * how many bytes to request. If this value is not correct,$

ERROR: code indent should never use tabs
#2448: FILE: tools/virtiofsd/fuse_lowlevel.h:86:
+^I * incorrect data will be returned.$

ERROR: code indent should never use tabs
#2449: FILE: tools/virtiofsd/fuse_lowlevel.h:87:
+^I */$

ERROR: code indent should never use tabs
#2450: FILE: tools/virtiofsd/fuse_lowlevel.h:88:
+^Istruct stat attr;$

ERROR: code indent should never use tabs
#2452: FILE: tools/virtiofsd/fuse_lowlevel.h:90:
+^I/** Validity timeout (in seconds) for inode attributes. If$

WARNING: Block comments use a leading /* on a separate line
#2452: FILE: tools/virtiofsd/fuse_lowlevel.h:90:
+       /** Validity timeout (in seconds) for inode attributes. If

ERROR: code indent should never use tabs
#2453: FILE: tools/virtiofsd/fuse_lowlevel.h:91:
+^I    attributes only change as a result of requests that come$

WARNING: Block comments use * on subsequent lines
#2453: FILE: tools/virtiofsd/fuse_lowlevel.h:91:
+       /** Validity timeout (in seconds) for inode attributes. If
+           attributes only change as a result of requests that come

ERROR: code indent should never use tabs
#2454: FILE: tools/virtiofsd/fuse_lowlevel.h:92:
+^I    through the kernel, this should be set to a very large$

ERROR: code indent should never use tabs
#2455: FILE: tools/virtiofsd/fuse_lowlevel.h:93:
+^I    value. */$

WARNING: Block comments use a trailing */ on a separate line
#2455: FILE: tools/virtiofsd/fuse_lowlevel.h:93:
+           value. */

ERROR: code indent should never use tabs
#2456: FILE: tools/virtiofsd/fuse_lowlevel.h:94:
+^Idouble attr_timeout;$

ERROR: code indent should never use tabs
#2458: FILE: tools/virtiofsd/fuse_lowlevel.h:96:
+^I/** Validity timeout (in seconds) for the name. If directory$

WARNING: Block comments use a leading /* on a separate line
#2458: FILE: tools/virtiofsd/fuse_lowlevel.h:96:
+       /** Validity timeout (in seconds) for the name. If directory

ERROR: code indent should never use tabs
#2459: FILE: tools/virtiofsd/fuse_lowlevel.h:97:
+^I    entries are changed/deleted only as a result of requests$

WARNING: Block comments use * on subsequent lines
#2459: FILE: tools/virtiofsd/fuse_lowlevel.h:97:
+       /** Validity timeout (in seconds) for the name. If directory
+           entries are changed/deleted only as a result of requests

ERROR: code indent should never use tabs
#2460: FILE: tools/virtiofsd/fuse_lowlevel.h:98:
+^I    that come through the kernel, this should be set to a very$

ERROR: code indent should never use tabs
#2461: FILE: tools/virtiofsd/fuse_lowlevel.h:99:
+^I    large value. */$

WARNING: Block comments use a trailing */ on a separate line
#2461: FILE: tools/virtiofsd/fuse_lowlevel.h:99:
+           large value. */

ERROR: code indent should never use tabs
#2462: FILE: tools/virtiofsd/fuse_lowlevel.h:100:
+^Idouble entry_timeout;$

ERROR: code indent should never use tabs
#2474: FILE: tools/virtiofsd/fuse_lowlevel.h:112:
+^I/** User ID of the calling process */$

ERROR: code indent should never use tabs
#2475: FILE: tools/virtiofsd/fuse_lowlevel.h:113:
+^Iuid_t uid;$

ERROR: code indent should never use tabs
#2477: FILE: tools/virtiofsd/fuse_lowlevel.h:115:
+^I/** Group ID of the calling process */$

ERROR: code indent should never use tabs
#2478: FILE: tools/virtiofsd/fuse_lowlevel.h:116:
+^Igid_t gid;$

ERROR: code indent should never use tabs
#2480: FILE: tools/virtiofsd/fuse_lowlevel.h:118:
+^I/** Thread ID of the calling process */$

ERROR: code indent should never use tabs
#2481: FILE: tools/virtiofsd/fuse_lowlevel.h:119:
+^Ipid_t pid;$

ERROR: code indent should never use tabs
#2483: FILE: tools/virtiofsd/fuse_lowlevel.h:121:
+^I/** Umask of the calling process */$

ERROR: code indent should never use tabs
#2484: FILE: tools/virtiofsd/fuse_lowlevel.h:122:
+^Imode_t umask;$

ERROR: code indent should never use tabs
#2488: FILE: tools/virtiofsd/fuse_lowlevel.h:126:
+^Ifuse_ino_t ino;$

ERROR: code indent should never use tabs
#2489: FILE: tools/virtiofsd/fuse_lowlevel.h:127:
+^Iuint64_t nlookup;$

ERROR: code indent should never use tabs
#2493: FILE: tools/virtiofsd/fuse_lowlevel.h:131:
+#define FUSE_SET_ATTR_MODE^I(1 << 0)$

ERROR: code indent should never use tabs
#2494: FILE: tools/virtiofsd/fuse_lowlevel.h:132:
+#define FUSE_SET_ATTR_UID^I(1 << 1)$

ERROR: code indent should never use tabs
#2495: FILE: tools/virtiofsd/fuse_lowlevel.h:133:
+#define FUSE_SET_ATTR_GID^I(1 << 2)$

ERROR: code indent should never use tabs
#2496: FILE: tools/virtiofsd/fuse_lowlevel.h:134:
+#define FUSE_SET_ATTR_SIZE^I(1 << 3)$

ERROR: code indent should never use tabs
#2497: FILE: tools/virtiofsd/fuse_lowlevel.h:135:
+#define FUSE_SET_ATTR_ATIME^I(1 << 4)$

ERROR: code indent should never use tabs
#2498: FILE: tools/virtiofsd/fuse_lowlevel.h:136:
+#define FUSE_SET_ATTR_MTIME^I(1 << 5)$

ERROR: code indent should never use tabs
#2499: FILE: tools/virtiofsd/fuse_lowlevel.h:137:
+#define FUSE_SET_ATTR_ATIME_NOW^I(1 << 7)$

ERROR: code indent should never use tabs
#2500: FILE: tools/virtiofsd/fuse_lowlevel.h:138:
+#define FUSE_SET_ATTR_MTIME_NOW^I(1 << 8)$

ERROR: code indent should never use tabs
#2501: FILE: tools/virtiofsd/fuse_lowlevel.h:139:
+#define FUSE_SET_ATTR_CTIME^I(1 << 10)$

WARNING: Block comments use a leading /* on a separate line
#2503: FILE: tools/virtiofsd/fuse_lowlevel.h:141:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#2504: FILE: tools/virtiofsd/fuse_lowlevel.h:142:
+ * Request methods and replies^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#2505: FILE: tools/virtiofsd/fuse_lowlevel.h:143:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#2535: FILE: tools/virtiofsd/fuse_lowlevel.h:173:
+^I/**$

ERROR: code indent should never use tabs
#2536: FILE: tools/virtiofsd/fuse_lowlevel.h:174:
+^I * Initialize filesystem$

ERROR: code indent should never use tabs
#2537: FILE: tools/virtiofsd/fuse_lowlevel.h:175:
+^I *$

ERROR: code indent should never use tabs
#2538: FILE: tools/virtiofsd/fuse_lowlevel.h:176:
+^I * This function is called when libfuse establishes$

ERROR: code indent should never use tabs
#2539: FILE: tools/virtiofsd/fuse_lowlevel.h:177:
+^I * communication with the FUSE kernel module. The file system$

ERROR: code indent should never use tabs
#2540: FILE: tools/virtiofsd/fuse_lowlevel.h:178:
+^I * should use this module to inspect and/or modify the$

ERROR: code indent should never use tabs
#2541: FILE: tools/virtiofsd/fuse_lowlevel.h:179:
+^I * connection parameters provided in the `conn` structure.$

ERROR: code indent should never use tabs
#2542: FILE: tools/virtiofsd/fuse_lowlevel.h:180:
+^I *$

ERROR: code indent should never use tabs
#2543: FILE: tools/virtiofsd/fuse_lowlevel.h:181:
+^I * Note that some parameters may be overwritten by options$

ERROR: code indent should never use tabs
#2544: FILE: tools/virtiofsd/fuse_lowlevel.h:182:
+^I * passed to fuse_session_new() which take precedence over the$

ERROR: code indent should never use tabs
#2545: FILE: tools/virtiofsd/fuse_lowlevel.h:183:
+^I * values set in this handler.$

ERROR: code indent should never use tabs
#2546: FILE: tools/virtiofsd/fuse_lowlevel.h:184:
+^I *$

ERROR: code indent should never use tabs
#2547: FILE: tools/virtiofsd/fuse_lowlevel.h:185:
+^I * There's no reply to this function$

ERROR: code indent should never use tabs
#2548: FILE: tools/virtiofsd/fuse_lowlevel.h:186:
+^I *$

ERROR: code indent should never use tabs
#2549: FILE: tools/virtiofsd/fuse_lowlevel.h:187:
+^I * @param userdata the user data passed to fuse_session_new()$

ERROR: code indent should never use tabs
#2550: FILE: tools/virtiofsd/fuse_lowlevel.h:188:
+^I */$

ERROR: code indent should never use tabs
#2551: FILE: tools/virtiofsd/fuse_lowlevel.h:189:
+^Ivoid (*init) (void *userdata, struct fuse_conn_info *conn);$

ERROR: code indent should never use tabs
#2553: FILE: tools/virtiofsd/fuse_lowlevel.h:191:
+^I/**$

ERROR: code indent should never use tabs
#2554: FILE: tools/virtiofsd/fuse_lowlevel.h:192:
+^I * Clean up filesystem.$

ERROR: code indent should never use tabs
#2555: FILE: tools/virtiofsd/fuse_lowlevel.h:193:
+^I *$

ERROR: code indent should never use tabs
#2556: FILE: tools/virtiofsd/fuse_lowlevel.h:194:
+^I * Called on filesystem exit. When this method is called, the$

ERROR: code indent should never use tabs
#2557: FILE: tools/virtiofsd/fuse_lowlevel.h:195:
+^I * connection to the kernel may be gone already, so that eg. calls$

ERROR: code indent should never use tabs
#2558: FILE: tools/virtiofsd/fuse_lowlevel.h:196:
+^I * to fuse_lowlevel_notify_* will fail.$

ERROR: code indent should never use tabs
#2559: FILE: tools/virtiofsd/fuse_lowlevel.h:197:
+^I *$

ERROR: code indent should never use tabs
#2560: FILE: tools/virtiofsd/fuse_lowlevel.h:198:
+^I * There's no reply to this function$

ERROR: code indent should never use tabs
#2561: FILE: tools/virtiofsd/fuse_lowlevel.h:199:
+^I *$

ERROR: code indent should never use tabs
#2562: FILE: tools/virtiofsd/fuse_lowlevel.h:200:
+^I * @param userdata the user data passed to fuse_session_new()$

ERROR: code indent should never use tabs
#2563: FILE: tools/virtiofsd/fuse_lowlevel.h:201:
+^I */$

ERROR: code indent should never use tabs
#2564: FILE: tools/virtiofsd/fuse_lowlevel.h:202:
+^Ivoid (*destroy) (void *userdata);$

ERROR: code indent should never use tabs
#2566: FILE: tools/virtiofsd/fuse_lowlevel.h:204:
+^I/**$

ERROR: code indent should never use tabs
#2567: FILE: tools/virtiofsd/fuse_lowlevel.h:205:
+^I * Look up a directory entry by name and get its attributes.$

ERROR: code indent should never use tabs
#2568: FILE: tools/virtiofsd/fuse_lowlevel.h:206:
+^I *$

ERROR: code indent should never use tabs
#2569: FILE: tools/virtiofsd/fuse_lowlevel.h:207:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2570: FILE: tools/virtiofsd/fuse_lowlevel.h:208:
+^I *   fuse_reply_entry$

ERROR: code indent should never use tabs
#2571: FILE: tools/virtiofsd/fuse_lowlevel.h:209:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2572: FILE: tools/virtiofsd/fuse_lowlevel.h:210:
+^I *$

ERROR: code indent should never use tabs
#2573: FILE: tools/virtiofsd/fuse_lowlevel.h:211:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2574: FILE: tools/virtiofsd/fuse_lowlevel.h:212:
+^I * @param parent inode number of the parent directory$

ERROR: code indent should never use tabs
#2575: FILE: tools/virtiofsd/fuse_lowlevel.h:213:
+^I * @param name the name to look up$

ERROR: code indent should never use tabs
#2576: FILE: tools/virtiofsd/fuse_lowlevel.h:214:
+^I */$

ERROR: code indent should never use tabs
#2577: FILE: tools/virtiofsd/fuse_lowlevel.h:215:
+^Ivoid (*lookup) (fuse_req_t req, fuse_ino_t parent, const char *name);$

ERROR: code indent should never use tabs
#2579: FILE: tools/virtiofsd/fuse_lowlevel.h:217:
+^I/**$

ERROR: code indent should never use tabs
#2580: FILE: tools/virtiofsd/fuse_lowlevel.h:218:
+^I * Forget about an inode$

ERROR: code indent should never use tabs
#2581: FILE: tools/virtiofsd/fuse_lowlevel.h:219:
+^I *$

ERROR: code indent should never use tabs
#2582: FILE: tools/virtiofsd/fuse_lowlevel.h:220:
+^I * This function is called when the kernel removes an inode$

ERROR: code indent should never use tabs
#2583: FILE: tools/virtiofsd/fuse_lowlevel.h:221:
+^I * from its internal caches.$

ERROR: code indent should never use tabs
#2584: FILE: tools/virtiofsd/fuse_lowlevel.h:222:
+^I *$

ERROR: code indent should never use tabs
#2585: FILE: tools/virtiofsd/fuse_lowlevel.h:223:
+^I * The inode's lookup count increases by one for every call to$

ERROR: code indent should never use tabs
#2586: FILE: tools/virtiofsd/fuse_lowlevel.h:224:
+^I * fuse_reply_entry and fuse_reply_create. The nlookup parameter$

ERROR: code indent should never use tabs
#2587: FILE: tools/virtiofsd/fuse_lowlevel.h:225:
+^I * indicates by how much the lookup count should be decreased.$

ERROR: code indent should never use tabs
#2588: FILE: tools/virtiofsd/fuse_lowlevel.h:226:
+^I *$

ERROR: code indent should never use tabs
#2589: FILE: tools/virtiofsd/fuse_lowlevel.h:227:
+^I * Inodes with a non-zero lookup count may receive request from$

ERROR: code indent should never use tabs
#2590: FILE: tools/virtiofsd/fuse_lowlevel.h:228:
+^I * the kernel even after calls to unlink, rmdir or (when$

ERROR: code indent should never use tabs
#2591: FILE: tools/virtiofsd/fuse_lowlevel.h:229:
+^I * overwriting an existing file) rename. Filesystems must handle$

ERROR: code indent should never use tabs
#2592: FILE: tools/virtiofsd/fuse_lowlevel.h:230:
+^I * such requests properly and it is recommended to defer removal$

ERROR: code indent should never use tabs
#2593: FILE: tools/virtiofsd/fuse_lowlevel.h:231:
+^I * of the inode until the lookup count reaches zero. Calls to$

ERROR: code indent should never use tabs
#2594: FILE: tools/virtiofsd/fuse_lowlevel.h:232:
+^I * unlink, rmdir or rename will be followed closely by forget$

ERROR: code indent should never use tabs
#2595: FILE: tools/virtiofsd/fuse_lowlevel.h:233:
+^I * unless the file or directory is open, in which case the$

ERROR: code indent should never use tabs
#2596: FILE: tools/virtiofsd/fuse_lowlevel.h:234:
+^I * kernel issues forget only after the release or releasedir$

ERROR: code indent should never use tabs
#2597: FILE: tools/virtiofsd/fuse_lowlevel.h:235:
+^I * calls.$

ERROR: code indent should never use tabs
#2598: FILE: tools/virtiofsd/fuse_lowlevel.h:236:
+^I *$

ERROR: code indent should never use tabs
#2599: FILE: tools/virtiofsd/fuse_lowlevel.h:237:
+^I * Note that if a file system will be exported over NFS the$

ERROR: code indent should never use tabs
#2600: FILE: tools/virtiofsd/fuse_lowlevel.h:238:
+^I * inodes lifetime must extend even beyond forget. See the$

ERROR: code indent should never use tabs
#2601: FILE: tools/virtiofsd/fuse_lowlevel.h:239:
+^I * generation field in struct fuse_entry_param above.$

ERROR: code indent should never use tabs
#2602: FILE: tools/virtiofsd/fuse_lowlevel.h:240:
+^I *$

ERROR: code indent should never use tabs
#2603: FILE: tools/virtiofsd/fuse_lowlevel.h:241:
+^I * On unmount the lookup count for all inodes implicitly drops$

ERROR: code indent should never use tabs
#2604: FILE: tools/virtiofsd/fuse_lowlevel.h:242:
+^I * to zero. It is not guaranteed that the file system will$

ERROR: code indent should never use tabs
#2605: FILE: tools/virtiofsd/fuse_lowlevel.h:243:
+^I * receive corresponding forget messages for the affected$

ERROR: code indent should never use tabs
#2606: FILE: tools/virtiofsd/fuse_lowlevel.h:244:
+^I * inodes.$

ERROR: code indent should never use tabs
#2607: FILE: tools/virtiofsd/fuse_lowlevel.h:245:
+^I *$

ERROR: code indent should never use tabs
#2608: FILE: tools/virtiofsd/fuse_lowlevel.h:246:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2609: FILE: tools/virtiofsd/fuse_lowlevel.h:247:
+^I *   fuse_reply_none$

ERROR: code indent should never use tabs
#2610: FILE: tools/virtiofsd/fuse_lowlevel.h:248:
+^I *$

ERROR: code indent should never use tabs
#2611: FILE: tools/virtiofsd/fuse_lowlevel.h:249:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2612: FILE: tools/virtiofsd/fuse_lowlevel.h:250:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2613: FILE: tools/virtiofsd/fuse_lowlevel.h:251:
+^I * @param nlookup the number of lookups to forget$

ERROR: code indent should never use tabs
#2614: FILE: tools/virtiofsd/fuse_lowlevel.h:252:
+^I */$

ERROR: code indent should never use tabs
#2615: FILE: tools/virtiofsd/fuse_lowlevel.h:253:
+^Ivoid (*forget) (fuse_req_t req, fuse_ino_t ino, uint64_t nlookup);$

ERROR: code indent should never use tabs
#2617: FILE: tools/virtiofsd/fuse_lowlevel.h:255:
+^I/**$

ERROR: code indent should never use tabs
#2618: FILE: tools/virtiofsd/fuse_lowlevel.h:256:
+^I * Get file attributes.$

ERROR: code indent should never use tabs
#2619: FILE: tools/virtiofsd/fuse_lowlevel.h:257:
+^I *$

ERROR: code indent should never use tabs
#2620: FILE: tools/virtiofsd/fuse_lowlevel.h:258:
+^I * If writeback caching is enabled, the kernel may have a$

ERROR: code indent should never use tabs
#2621: FILE: tools/virtiofsd/fuse_lowlevel.h:259:
+^I * better idea of a file's length than the FUSE file system$

ERROR: code indent should never use tabs
#2622: FILE: tools/virtiofsd/fuse_lowlevel.h:260:
+^I * (eg if there has been a write that extended the file size,$

ERROR: code indent should never use tabs
#2623: FILE: tools/virtiofsd/fuse_lowlevel.h:261:
+^I * but that has not yet been passed to the filesystem.n$

ERROR: code indent should never use tabs
#2624: FILE: tools/virtiofsd/fuse_lowlevel.h:262:
+^I *$

ERROR: code indent should never use tabs
#2625: FILE: tools/virtiofsd/fuse_lowlevel.h:263:
+^I * In this case, the st_size value provided by the file system$

ERROR: code indent should never use tabs
#2626: FILE: tools/virtiofsd/fuse_lowlevel.h:264:
+^I * will be ignored.$

ERROR: code indent should never use tabs
#2627: FILE: tools/virtiofsd/fuse_lowlevel.h:265:
+^I *$

ERROR: code indent should never use tabs
#2628: FILE: tools/virtiofsd/fuse_lowlevel.h:266:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2629: FILE: tools/virtiofsd/fuse_lowlevel.h:267:
+^I *   fuse_reply_attr$

ERROR: code indent should never use tabs
#2630: FILE: tools/virtiofsd/fuse_lowlevel.h:268:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2631: FILE: tools/virtiofsd/fuse_lowlevel.h:269:
+^I *$

ERROR: code indent should never use tabs
#2632: FILE: tools/virtiofsd/fuse_lowlevel.h:270:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2633: FILE: tools/virtiofsd/fuse_lowlevel.h:271:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2634: FILE: tools/virtiofsd/fuse_lowlevel.h:272:
+^I * @param fi for future use, currently always NULL$

ERROR: code indent should never use tabs
#2635: FILE: tools/virtiofsd/fuse_lowlevel.h:273:
+^I */$

ERROR: code indent should never use tabs
#2636: FILE: tools/virtiofsd/fuse_lowlevel.h:274:
+^Ivoid (*getattr) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#2637: FILE: tools/virtiofsd/fuse_lowlevel.h:275:
+^I^I^I struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#2639: FILE: tools/virtiofsd/fuse_lowlevel.h:277:
+^I/**$

ERROR: code indent should never use tabs
#2640: FILE: tools/virtiofsd/fuse_lowlevel.h:278:
+^I * Set file attributes$

ERROR: code indent should never use tabs
#2641: FILE: tools/virtiofsd/fuse_lowlevel.h:279:
+^I *$

ERROR: code indent should never use tabs
#2642: FILE: tools/virtiofsd/fuse_lowlevel.h:280:
+^I * In the 'attr' argument only members indicated by the 'to_set'$

ERROR: code indent should never use tabs
#2643: FILE: tools/virtiofsd/fuse_lowlevel.h:281:
+^I * bitmask contain valid values.  Other members contain undefined$

ERROR: code indent should never use tabs
#2644: FILE: tools/virtiofsd/fuse_lowlevel.h:282:
+^I * values.$

ERROR: code indent should never use tabs
#2645: FILE: tools/virtiofsd/fuse_lowlevel.h:283:
+^I *$

ERROR: code indent should never use tabs
#2646: FILE: tools/virtiofsd/fuse_lowlevel.h:284:
+^I * Unless FUSE_CAP_HANDLE_KILLPRIV is disabled, this method is$

ERROR: code indent should never use tabs
#2647: FILE: tools/virtiofsd/fuse_lowlevel.h:285:
+^I * expected to reset the setuid and setgid bits if the file$

ERROR: code indent should never use tabs
#2648: FILE: tools/virtiofsd/fuse_lowlevel.h:286:
+^I * size or owner is being changed.$

ERROR: code indent should never use tabs
#2649: FILE: tools/virtiofsd/fuse_lowlevel.h:287:
+^I *$

ERROR: code indent should never use tabs
#2650: FILE: tools/virtiofsd/fuse_lowlevel.h:288:
+^I * If the setattr was invoked from the ftruncate() system call$

ERROR: code indent should never use tabs
#2651: FILE: tools/virtiofsd/fuse_lowlevel.h:289:
+^I * under Linux kernel versions 2.6.15 or later, the fi->fh will$

ERROR: code indent should never use tabs
#2652: FILE: tools/virtiofsd/fuse_lowlevel.h:290:
+^I * contain the value set by the open method or will be undefined$

ERROR: code indent should never use tabs
#2653: FILE: tools/virtiofsd/fuse_lowlevel.h:291:
+^I * if the open method didn't set any value.  Otherwise (not$

ERROR: code indent should never use tabs
#2654: FILE: tools/virtiofsd/fuse_lowlevel.h:292:
+^I * ftruncate call, or kernel version earlier than 2.6.15) the fi$

ERROR: code indent should never use tabs
#2655: FILE: tools/virtiofsd/fuse_lowlevel.h:293:
+^I * parameter will be NULL.$

ERROR: code indent should never use tabs
#2656: FILE: tools/virtiofsd/fuse_lowlevel.h:294:
+^I *$

ERROR: code indent should never use tabs
#2657: FILE: tools/virtiofsd/fuse_lowlevel.h:295:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2658: FILE: tools/virtiofsd/fuse_lowlevel.h:296:
+^I *   fuse_reply_attr$

ERROR: code indent should never use tabs
#2659: FILE: tools/virtiofsd/fuse_lowlevel.h:297:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2660: FILE: tools/virtiofsd/fuse_lowlevel.h:298:
+^I *$

ERROR: code indent should never use tabs
#2661: FILE: tools/virtiofsd/fuse_lowlevel.h:299:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2662: FILE: tools/virtiofsd/fuse_lowlevel.h:300:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2663: FILE: tools/virtiofsd/fuse_lowlevel.h:301:
+^I * @param attr the attributes$

ERROR: code indent should never use tabs
#2664: FILE: tools/virtiofsd/fuse_lowlevel.h:302:
+^I * @param to_set bit mask of attributes which should be set$

ERROR: code indent should never use tabs
#2665: FILE: tools/virtiofsd/fuse_lowlevel.h:303:
+^I * @param fi file information, or NULL$

ERROR: code indent should never use tabs
#2666: FILE: tools/virtiofsd/fuse_lowlevel.h:304:
+^I */$

ERROR: code indent should never use tabs
#2667: FILE: tools/virtiofsd/fuse_lowlevel.h:305:
+^Ivoid (*setattr) (fuse_req_t req, fuse_ino_t ino, struct stat *attr,$

ERROR: code indent should never use tabs
#2668: FILE: tools/virtiofsd/fuse_lowlevel.h:306:
+^I^I^I int to_set, struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#2670: FILE: tools/virtiofsd/fuse_lowlevel.h:308:
+^I/**$

ERROR: code indent should never use tabs
#2671: FILE: tools/virtiofsd/fuse_lowlevel.h:309:
+^I * Read symbolic link$

ERROR: code indent should never use tabs
#2672: FILE: tools/virtiofsd/fuse_lowlevel.h:310:
+^I *$

ERROR: code indent should never use tabs
#2673: FILE: tools/virtiofsd/fuse_lowlevel.h:311:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2674: FILE: tools/virtiofsd/fuse_lowlevel.h:312:
+^I *   fuse_reply_readlink$

ERROR: code indent should never use tabs
#2675: FILE: tools/virtiofsd/fuse_lowlevel.h:313:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2676: FILE: tools/virtiofsd/fuse_lowlevel.h:314:
+^I *$

ERROR: code indent should never use tabs
#2677: FILE: tools/virtiofsd/fuse_lowlevel.h:315:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2678: FILE: tools/virtiofsd/fuse_lowlevel.h:316:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2679: FILE: tools/virtiofsd/fuse_lowlevel.h:317:
+^I */$

ERROR: code indent should never use tabs
#2680: FILE: tools/virtiofsd/fuse_lowlevel.h:318:
+^Ivoid (*readlink) (fuse_req_t req, fuse_ino_t ino);$

ERROR: code indent should never use tabs
#2682: FILE: tools/virtiofsd/fuse_lowlevel.h:320:
+^I/**$

ERROR: code indent should never use tabs
#2683: FILE: tools/virtiofsd/fuse_lowlevel.h:321:
+^I * Create file node$

ERROR: code indent should never use tabs
#2684: FILE: tools/virtiofsd/fuse_lowlevel.h:322:
+^I *$

ERROR: code indent should never use tabs
#2685: FILE: tools/virtiofsd/fuse_lowlevel.h:323:
+^I * Create a regular file, character device, block device, fifo or$

ERROR: code indent should never use tabs
#2686: FILE: tools/virtiofsd/fuse_lowlevel.h:324:
+^I * socket node.$

ERROR: code indent should never use tabs
#2687: FILE: tools/virtiofsd/fuse_lowlevel.h:325:
+^I *$

ERROR: code indent should never use tabs
#2688: FILE: tools/virtiofsd/fuse_lowlevel.h:326:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2689: FILE: tools/virtiofsd/fuse_lowlevel.h:327:
+^I *   fuse_reply_entry$

ERROR: code indent should never use tabs
#2690: FILE: tools/virtiofsd/fuse_lowlevel.h:328:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2691: FILE: tools/virtiofsd/fuse_lowlevel.h:329:
+^I *$

ERROR: code indent should never use tabs
#2692: FILE: tools/virtiofsd/fuse_lowlevel.h:330:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2693: FILE: tools/virtiofsd/fuse_lowlevel.h:331:
+^I * @param parent inode number of the parent directory$

ERROR: code indent should never use tabs
#2694: FILE: tools/virtiofsd/fuse_lowlevel.h:332:
+^I * @param name to create$

ERROR: code indent should never use tabs
#2695: FILE: tools/virtiofsd/fuse_lowlevel.h:333:
+^I * @param mode file type and mode with which to create the new file$

WARNING: line over 80 characters
#2696: FILE: tools/virtiofsd/fuse_lowlevel.h:334:
+        * @param rdev the device number (only valid if created file is a device)

ERROR: code indent should never use tabs
#2696: FILE: tools/virtiofsd/fuse_lowlevel.h:334:
+^I * @param rdev the device number (only valid if created file is a device)$

ERROR: code indent should never use tabs
#2697: FILE: tools/virtiofsd/fuse_lowlevel.h:335:
+^I */$

ERROR: code indent should never use tabs
#2698: FILE: tools/virtiofsd/fuse_lowlevel.h:336:
+^Ivoid (*mknod) (fuse_req_t req, fuse_ino_t parent, const char *name,$

ERROR: code indent should never use tabs
#2699: FILE: tools/virtiofsd/fuse_lowlevel.h:337:
+^I^I       mode_t mode, dev_t rdev);$

ERROR: code indent should never use tabs
#2701: FILE: tools/virtiofsd/fuse_lowlevel.h:339:
+^I/**$

ERROR: code indent should never use tabs
#2702: FILE: tools/virtiofsd/fuse_lowlevel.h:340:
+^I * Create a directory$

ERROR: code indent should never use tabs
#2703: FILE: tools/virtiofsd/fuse_lowlevel.h:341:
+^I *$

ERROR: code indent should never use tabs
#2704: FILE: tools/virtiofsd/fuse_lowlevel.h:342:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2705: FILE: tools/virtiofsd/fuse_lowlevel.h:343:
+^I *   fuse_reply_entry$

ERROR: code indent should never use tabs
#2706: FILE: tools/virtiofsd/fuse_lowlevel.h:344:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2707: FILE: tools/virtiofsd/fuse_lowlevel.h:345:
+^I *$

ERROR: code indent should never use tabs
#2708: FILE: tools/virtiofsd/fuse_lowlevel.h:346:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2709: FILE: tools/virtiofsd/fuse_lowlevel.h:347:
+^I * @param parent inode number of the parent directory$

ERROR: code indent should never use tabs
#2710: FILE: tools/virtiofsd/fuse_lowlevel.h:348:
+^I * @param name to create$

ERROR: code indent should never use tabs
#2711: FILE: tools/virtiofsd/fuse_lowlevel.h:349:
+^I * @param mode with which to create the new file$

ERROR: code indent should never use tabs
#2712: FILE: tools/virtiofsd/fuse_lowlevel.h:350:
+^I */$

ERROR: code indent should never use tabs
#2713: FILE: tools/virtiofsd/fuse_lowlevel.h:351:
+^Ivoid (*mkdir) (fuse_req_t req, fuse_ino_t parent, const char *name,$

ERROR: code indent should never use tabs
#2714: FILE: tools/virtiofsd/fuse_lowlevel.h:352:
+^I^I       mode_t mode);$

ERROR: code indent should never use tabs
#2716: FILE: tools/virtiofsd/fuse_lowlevel.h:354:
+^I/**$

ERROR: code indent should never use tabs
#2717: FILE: tools/virtiofsd/fuse_lowlevel.h:355:
+^I * Remove a file$

ERROR: code indent should never use tabs
#2718: FILE: tools/virtiofsd/fuse_lowlevel.h:356:
+^I *$

ERROR: code indent should never use tabs
#2719: FILE: tools/virtiofsd/fuse_lowlevel.h:357:
+^I * If the file's inode's lookup count is non-zero, the file$

ERROR: code indent should never use tabs
#2720: FILE: tools/virtiofsd/fuse_lowlevel.h:358:
+^I * system is expected to postpone any removal of the inode$

ERROR: code indent should never use tabs
#2721: FILE: tools/virtiofsd/fuse_lowlevel.h:359:
+^I * until the lookup count reaches zero (see description of the$

ERROR: code indent should never use tabs
#2722: FILE: tools/virtiofsd/fuse_lowlevel.h:360:
+^I * forget function).$

ERROR: code indent should never use tabs
#2723: FILE: tools/virtiofsd/fuse_lowlevel.h:361:
+^I *$

ERROR: code indent should never use tabs
#2724: FILE: tools/virtiofsd/fuse_lowlevel.h:362:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2725: FILE: tools/virtiofsd/fuse_lowlevel.h:363:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2726: FILE: tools/virtiofsd/fuse_lowlevel.h:364:
+^I *$

ERROR: code indent should never use tabs
#2727: FILE: tools/virtiofsd/fuse_lowlevel.h:365:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2728: FILE: tools/virtiofsd/fuse_lowlevel.h:366:
+^I * @param parent inode number of the parent directory$

ERROR: code indent should never use tabs
#2729: FILE: tools/virtiofsd/fuse_lowlevel.h:367:
+^I * @param name to remove$

ERROR: code indent should never use tabs
#2730: FILE: tools/virtiofsd/fuse_lowlevel.h:368:
+^I */$

ERROR: code indent should never use tabs
#2731: FILE: tools/virtiofsd/fuse_lowlevel.h:369:
+^Ivoid (*unlink) (fuse_req_t req, fuse_ino_t parent, const char *name);$

ERROR: code indent should never use tabs
#2733: FILE: tools/virtiofsd/fuse_lowlevel.h:371:
+^I/**$

ERROR: code indent should never use tabs
#2734: FILE: tools/virtiofsd/fuse_lowlevel.h:372:
+^I * Remove a directory$

ERROR: code indent should never use tabs
#2735: FILE: tools/virtiofsd/fuse_lowlevel.h:373:
+^I *$

ERROR: code indent should never use tabs
#2736: FILE: tools/virtiofsd/fuse_lowlevel.h:374:
+^I * If the directory's inode's lookup count is non-zero, the$

ERROR: code indent should never use tabs
#2737: FILE: tools/virtiofsd/fuse_lowlevel.h:375:
+^I * file system is expected to postpone any removal of the$

ERROR: code indent should never use tabs
#2738: FILE: tools/virtiofsd/fuse_lowlevel.h:376:
+^I * inode until the lookup count reaches zero (see description$

ERROR: code indent should never use tabs
#2739: FILE: tools/virtiofsd/fuse_lowlevel.h:377:
+^I * of the forget function).$

ERROR: code indent should never use tabs
#2740: FILE: tools/virtiofsd/fuse_lowlevel.h:378:
+^I *$

ERROR: code indent should never use tabs
#2741: FILE: tools/virtiofsd/fuse_lowlevel.h:379:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2742: FILE: tools/virtiofsd/fuse_lowlevel.h:380:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2743: FILE: tools/virtiofsd/fuse_lowlevel.h:381:
+^I *$

ERROR: code indent should never use tabs
#2744: FILE: tools/virtiofsd/fuse_lowlevel.h:382:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2745: FILE: tools/virtiofsd/fuse_lowlevel.h:383:
+^I * @param parent inode number of the parent directory$

ERROR: code indent should never use tabs
#2746: FILE: tools/virtiofsd/fuse_lowlevel.h:384:
+^I * @param name to remove$

ERROR: code indent should never use tabs
#2747: FILE: tools/virtiofsd/fuse_lowlevel.h:385:
+^I */$

ERROR: code indent should never use tabs
#2748: FILE: tools/virtiofsd/fuse_lowlevel.h:386:
+^Ivoid (*rmdir) (fuse_req_t req, fuse_ino_t parent, const char *name);$

ERROR: code indent should never use tabs
#2750: FILE: tools/virtiofsd/fuse_lowlevel.h:388:
+^I/**$

ERROR: code indent should never use tabs
#2751: FILE: tools/virtiofsd/fuse_lowlevel.h:389:
+^I * Create a symbolic link$

ERROR: code indent should never use tabs
#2752: FILE: tools/virtiofsd/fuse_lowlevel.h:390:
+^I *$

ERROR: code indent should never use tabs
#2753: FILE: tools/virtiofsd/fuse_lowlevel.h:391:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2754: FILE: tools/virtiofsd/fuse_lowlevel.h:392:
+^I *   fuse_reply_entry$

ERROR: code indent should never use tabs
#2755: FILE: tools/virtiofsd/fuse_lowlevel.h:393:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2756: FILE: tools/virtiofsd/fuse_lowlevel.h:394:
+^I *$

ERROR: code indent should never use tabs
#2757: FILE: tools/virtiofsd/fuse_lowlevel.h:395:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2758: FILE: tools/virtiofsd/fuse_lowlevel.h:396:
+^I * @param link the contents of the symbolic link$

ERROR: code indent should never use tabs
#2759: FILE: tools/virtiofsd/fuse_lowlevel.h:397:
+^I * @param parent inode number of the parent directory$

ERROR: code indent should never use tabs
#2760: FILE: tools/virtiofsd/fuse_lowlevel.h:398:
+^I * @param name to create$

ERROR: code indent should never use tabs
#2761: FILE: tools/virtiofsd/fuse_lowlevel.h:399:
+^I */$

ERROR: code indent should never use tabs
#2762: FILE: tools/virtiofsd/fuse_lowlevel.h:400:
+^Ivoid (*symlink) (fuse_req_t req, const char *link, fuse_ino_t parent,$

ERROR: code indent should never use tabs
#2763: FILE: tools/virtiofsd/fuse_lowlevel.h:401:
+^I^I^I const char *name);$

ERROR: code indent should never use tabs
#2765: FILE: tools/virtiofsd/fuse_lowlevel.h:403:
+^I/** Rename a file$

WARNING: Block comments use a leading /* on a separate line
#2765: FILE: tools/virtiofsd/fuse_lowlevel.h:403:
+       /** Rename a file

ERROR: code indent should never use tabs
#2766: FILE: tools/virtiofsd/fuse_lowlevel.h:404:
+^I *$

ERROR: code indent should never use tabs
#2767: FILE: tools/virtiofsd/fuse_lowlevel.h:405:
+^I * If the target exists it should be atomically replaced. If$

ERROR: code indent should never use tabs
#2768: FILE: tools/virtiofsd/fuse_lowlevel.h:406:
+^I * the target's inode's lookup count is non-zero, the file$

ERROR: code indent should never use tabs
#2769: FILE: tools/virtiofsd/fuse_lowlevel.h:407:
+^I * system is expected to postpone any removal of the inode$

ERROR: code indent should never use tabs
#2770: FILE: tools/virtiofsd/fuse_lowlevel.h:408:
+^I * until the lookup count reaches zero (see description of the$

ERROR: code indent should never use tabs
#2771: FILE: tools/virtiofsd/fuse_lowlevel.h:409:
+^I * forget function).$

ERROR: code indent should never use tabs
#2772: FILE: tools/virtiofsd/fuse_lowlevel.h:410:
+^I *$

ERROR: code indent should never use tabs
#2773: FILE: tools/virtiofsd/fuse_lowlevel.h:411:
+^I * If this request is answered with an error code of ENOSYS, this is$

ERROR: code indent should never use tabs
#2774: FILE: tools/virtiofsd/fuse_lowlevel.h:412:
+^I * treated as a permanent failure with error code EINVAL, i.e. all$

ERROR: code indent should never use tabs
#2775: FILE: tools/virtiofsd/fuse_lowlevel.h:413:
+^I * future bmap requests will fail with EINVAL without being$

ERROR: code indent should never use tabs
#2776: FILE: tools/virtiofsd/fuse_lowlevel.h:414:
+^I * send to the filesystem process.$

ERROR: code indent should never use tabs
#2777: FILE: tools/virtiofsd/fuse_lowlevel.h:415:
+^I *$

ERROR: code indent should never use tabs
#2778: FILE: tools/virtiofsd/fuse_lowlevel.h:416:
+^I * *flags* may be `RENAME_EXCHANGE` or `RENAME_NOREPLACE`. If$

ERROR: code indent should never use tabs
#2779: FILE: tools/virtiofsd/fuse_lowlevel.h:417:
+^I * RENAME_NOREPLACE is specified, the filesystem must not$

ERROR: code indent should never use tabs
#2780: FILE: tools/virtiofsd/fuse_lowlevel.h:418:
+^I * overwrite *newname* if it exists and return an error$

ERROR: code indent should never use tabs
#2781: FILE: tools/virtiofsd/fuse_lowlevel.h:419:
+^I * instead. If `RENAME_EXCHANGE` is specified, the filesystem$

ERROR: code indent should never use tabs
#2782: FILE: tools/virtiofsd/fuse_lowlevel.h:420:
+^I * must atomically exchange the two files, i.e. both must$

ERROR: code indent should never use tabs
#2783: FILE: tools/virtiofsd/fuse_lowlevel.h:421:
+^I * exist and neither may be deleted.$

ERROR: code indent should never use tabs
#2784: FILE: tools/virtiofsd/fuse_lowlevel.h:422:
+^I *$

ERROR: code indent should never use tabs
#2785: FILE: tools/virtiofsd/fuse_lowlevel.h:423:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2786: FILE: tools/virtiofsd/fuse_lowlevel.h:424:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2787: FILE: tools/virtiofsd/fuse_lowlevel.h:425:
+^I *$

ERROR: code indent should never use tabs
#2788: FILE: tools/virtiofsd/fuse_lowlevel.h:426:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2789: FILE: tools/virtiofsd/fuse_lowlevel.h:427:
+^I * @param parent inode number of the old parent directory$

ERROR: code indent should never use tabs
#2790: FILE: tools/virtiofsd/fuse_lowlevel.h:428:
+^I * @param name old name$

ERROR: code indent should never use tabs
#2791: FILE: tools/virtiofsd/fuse_lowlevel.h:429:
+^I * @param newparent inode number of the new parent directory$

ERROR: code indent should never use tabs
#2792: FILE: tools/virtiofsd/fuse_lowlevel.h:430:
+^I * @param newname new name$

ERROR: code indent should never use tabs
#2793: FILE: tools/virtiofsd/fuse_lowlevel.h:431:
+^I */$

ERROR: code indent should never use tabs
#2794: FILE: tools/virtiofsd/fuse_lowlevel.h:432:
+^Ivoid (*rename) (fuse_req_t req, fuse_ino_t parent, const char *name,$

ERROR: code indent should never use tabs
#2795: FILE: tools/virtiofsd/fuse_lowlevel.h:433:
+^I^I^Ifuse_ino_t newparent, const char *newname,$

ERROR: code indent should never use tabs
#2796: FILE: tools/virtiofsd/fuse_lowlevel.h:434:
+^I^I^Iunsigned int flags);$

ERROR: code indent should never use tabs
#2798: FILE: tools/virtiofsd/fuse_lowlevel.h:436:
+^I/**$

ERROR: code indent should never use tabs
#2799: FILE: tools/virtiofsd/fuse_lowlevel.h:437:
+^I * Create a hard link$

ERROR: code indent should never use tabs
#2800: FILE: tools/virtiofsd/fuse_lowlevel.h:438:
+^I *$

ERROR: code indent should never use tabs
#2801: FILE: tools/virtiofsd/fuse_lowlevel.h:439:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2802: FILE: tools/virtiofsd/fuse_lowlevel.h:440:
+^I *   fuse_reply_entry$

ERROR: code indent should never use tabs
#2803: FILE: tools/virtiofsd/fuse_lowlevel.h:441:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2804: FILE: tools/virtiofsd/fuse_lowlevel.h:442:
+^I *$

ERROR: code indent should never use tabs
#2805: FILE: tools/virtiofsd/fuse_lowlevel.h:443:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2806: FILE: tools/virtiofsd/fuse_lowlevel.h:444:
+^I * @param ino the old inode number$

ERROR: code indent should never use tabs
#2807: FILE: tools/virtiofsd/fuse_lowlevel.h:445:
+^I * @param newparent inode number of the new parent directory$

ERROR: code indent should never use tabs
#2808: FILE: tools/virtiofsd/fuse_lowlevel.h:446:
+^I * @param newname new name to create$

ERROR: code indent should never use tabs
#2809: FILE: tools/virtiofsd/fuse_lowlevel.h:447:
+^I */$

ERROR: code indent should never use tabs
#2810: FILE: tools/virtiofsd/fuse_lowlevel.h:448:
+^Ivoid (*link) (fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent,$

ERROR: code indent should never use tabs
#2811: FILE: tools/virtiofsd/fuse_lowlevel.h:449:
+^I^I      const char *newname);$

ERROR: code indent should never use tabs
#2813: FILE: tools/virtiofsd/fuse_lowlevel.h:451:
+^I/**$

ERROR: code indent should never use tabs
#2814: FILE: tools/virtiofsd/fuse_lowlevel.h:452:
+^I * Open a file$

ERROR: code indent should never use tabs
#2815: FILE: tools/virtiofsd/fuse_lowlevel.h:453:
+^I *$

ERROR: code indent should never use tabs
#2816: FILE: tools/virtiofsd/fuse_lowlevel.h:454:
+^I * Open flags are available in fi->flags. The following rules$

ERROR: code indent should never use tabs
#2817: FILE: tools/virtiofsd/fuse_lowlevel.h:455:
+^I * apply.$

ERROR: code indent should never use tabs
#2818: FILE: tools/virtiofsd/fuse_lowlevel.h:456:
+^I *$

ERROR: code indent should never use tabs
#2819: FILE: tools/virtiofsd/fuse_lowlevel.h:457:
+^I *  - Creation (O_CREAT, O_EXCL, O_NOCTTY) flags will be$

ERROR: code indent should never use tabs
#2820: FILE: tools/virtiofsd/fuse_lowlevel.h:458:
+^I *    filtered out / handled by the kernel.$

ERROR: code indent should never use tabs
#2821: FILE: tools/virtiofsd/fuse_lowlevel.h:459:
+^I *$

ERROR: code indent should never use tabs
#2822: FILE: tools/virtiofsd/fuse_lowlevel.h:460:
+^I *  - Access modes (O_RDONLY, O_WRONLY, O_RDWR) should be used$

ERROR: code indent should never use tabs
#2823: FILE: tools/virtiofsd/fuse_lowlevel.h:461:
+^I *    by the filesystem to check if the operation is$

ERROR: code indent should never use tabs
#2824: FILE: tools/virtiofsd/fuse_lowlevel.h:462:
+^I *    permitted.  If the ``-o default_permissions`` mount$

ERROR: code indent should never use tabs
#2825: FILE: tools/virtiofsd/fuse_lowlevel.h:463:
+^I *    option is given, this check is already done by the$

ERROR: code indent should never use tabs
#2826: FILE: tools/virtiofsd/fuse_lowlevel.h:464:
+^I *    kernel before calling open() and may thus be omitted by$

ERROR: code indent should never use tabs
#2827: FILE: tools/virtiofsd/fuse_lowlevel.h:465:
+^I *    the filesystem.$

ERROR: code indent should never use tabs
#2828: FILE: tools/virtiofsd/fuse_lowlevel.h:466:
+^I *$

ERROR: code indent should never use tabs
#2829: FILE: tools/virtiofsd/fuse_lowlevel.h:467:
+^I *  - When writeback caching is enabled, the kernel may send$

ERROR: code indent should never use tabs
#2830: FILE: tools/virtiofsd/fuse_lowlevel.h:468:
+^I *    read requests even for files opened with O_WRONLY. The$

ERROR: code indent should never use tabs
#2831: FILE: tools/virtiofsd/fuse_lowlevel.h:469:
+^I *    filesystem should be prepared to handle this.$

ERROR: code indent should never use tabs
#2832: FILE: tools/virtiofsd/fuse_lowlevel.h:470:
+^I *$

ERROR: code indent should never use tabs
#2833: FILE: tools/virtiofsd/fuse_lowlevel.h:471:
+^I *  - When writeback caching is disabled, the filesystem is$

ERROR: code indent should never use tabs
#2834: FILE: tools/virtiofsd/fuse_lowlevel.h:472:
+^I *    expected to properly handle the O_APPEND flag and ensure$

ERROR: code indent should never use tabs
#2835: FILE: tools/virtiofsd/fuse_lowlevel.h:473:
+^I *    that each write is appending to the end of the file.$

ERROR: trailing whitespace
#2836: FILE: tools/virtiofsd/fuse_lowlevel.h:474:
+^I * $

ERROR: code indent should never use tabs
#2836: FILE: tools/virtiofsd/fuse_lowlevel.h:474:
+^I * $

ERROR: code indent should never use tabs
#2838: FILE: tools/virtiofsd/fuse_lowlevel.h:476:
+^I *    handle O_APPEND. However, unless all changes to the file$

ERROR: code indent should never use tabs
#2839: FILE: tools/virtiofsd/fuse_lowlevel.h:477:
+^I *    come through the kernel this will not work reliably. The$

ERROR: code indent should never use tabs
#2840: FILE: tools/virtiofsd/fuse_lowlevel.h:478:
+^I *    filesystem should thus either ignore the O_APPEND flag$

ERROR: code indent should never use tabs
#2841: FILE: tools/virtiofsd/fuse_lowlevel.h:479:
+^I *    (and let the kernel handle it), or return an error$

ERROR: code indent should never use tabs
#2842: FILE: tools/virtiofsd/fuse_lowlevel.h:480:
+^I *    (indicating that reliably O_APPEND is not available).$

ERROR: code indent should never use tabs
#2843: FILE: tools/virtiofsd/fuse_lowlevel.h:481:
+^I *$

ERROR: code indent should never use tabs
#2844: FILE: tools/virtiofsd/fuse_lowlevel.h:482:
+^I * Filesystem may store an arbitrary file handle (pointer,$

ERROR: code indent should never use tabs
#2845: FILE: tools/virtiofsd/fuse_lowlevel.h:483:
+^I * index, etc) in fi->fh, and use this in other all other file$

ERROR: code indent should never use tabs
#2846: FILE: tools/virtiofsd/fuse_lowlevel.h:484:
+^I * operations (read, write, flush, release, fsync).$

ERROR: code indent should never use tabs
#2847: FILE: tools/virtiofsd/fuse_lowlevel.h:485:
+^I *$

ERROR: code indent should never use tabs
#2848: FILE: tools/virtiofsd/fuse_lowlevel.h:486:
+^I * Filesystem may also implement stateless file I/O and not store$

ERROR: code indent should never use tabs
#2849: FILE: tools/virtiofsd/fuse_lowlevel.h:487:
+^I * anything in fi->fh.$

ERROR: code indent should never use tabs
#2850: FILE: tools/virtiofsd/fuse_lowlevel.h:488:
+^I *$

ERROR: code indent should never use tabs
#2851: FILE: tools/virtiofsd/fuse_lowlevel.h:489:
+^I * There are also some flags (direct_io, keep_cache) which the$

ERROR: code indent should never use tabs
#2852: FILE: tools/virtiofsd/fuse_lowlevel.h:490:
+^I * filesystem may set in fi, to change the way the file is opened.$

ERROR: code indent should never use tabs
#2853: FILE: tools/virtiofsd/fuse_lowlevel.h:491:
+^I * See fuse_file_info structure in <fuse_common.h> for more details.$

ERROR: code indent should never use tabs
#2854: FILE: tools/virtiofsd/fuse_lowlevel.h:492:
+^I *$

ERROR: code indent should never use tabs
#2855: FILE: tools/virtiofsd/fuse_lowlevel.h:493:
+^I * If this request is answered with an error code of ENOSYS$

ERROR: code indent should never use tabs
#2856: FILE: tools/virtiofsd/fuse_lowlevel.h:494:
+^I * and FUSE_CAP_NO_OPEN_SUPPORT is set in$

ERROR: code indent should never use tabs
#2857: FILE: tools/virtiofsd/fuse_lowlevel.h:495:
+^I * `fuse_conn_info.capable`, this is treated as success and$

ERROR: code indent should never use tabs
#2858: FILE: tools/virtiofsd/fuse_lowlevel.h:496:
+^I * future calls to open and release will also succeed without being$

ERROR: code indent should never use tabs
#2859: FILE: tools/virtiofsd/fuse_lowlevel.h:497:
+^I * sent to the filesystem process.$

ERROR: code indent should never use tabs
#2860: FILE: tools/virtiofsd/fuse_lowlevel.h:498:
+^I *$

ERROR: code indent should never use tabs
#2861: FILE: tools/virtiofsd/fuse_lowlevel.h:499:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2862: FILE: tools/virtiofsd/fuse_lowlevel.h:500:
+^I *   fuse_reply_open$

ERROR: code indent should never use tabs
#2863: FILE: tools/virtiofsd/fuse_lowlevel.h:501:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2864: FILE: tools/virtiofsd/fuse_lowlevel.h:502:
+^I *$

ERROR: code indent should never use tabs
#2865: FILE: tools/virtiofsd/fuse_lowlevel.h:503:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2866: FILE: tools/virtiofsd/fuse_lowlevel.h:504:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2867: FILE: tools/virtiofsd/fuse_lowlevel.h:505:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#2868: FILE: tools/virtiofsd/fuse_lowlevel.h:506:
+^I */$

ERROR: code indent should never use tabs
#2869: FILE: tools/virtiofsd/fuse_lowlevel.h:507:
+^Ivoid (*open) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#2870: FILE: tools/virtiofsd/fuse_lowlevel.h:508:
+^I^I      struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#2872: FILE: tools/virtiofsd/fuse_lowlevel.h:510:
+^I/**$

ERROR: code indent should never use tabs
#2873: FILE: tools/virtiofsd/fuse_lowlevel.h:511:
+^I * Read data$

ERROR: code indent should never use tabs
#2874: FILE: tools/virtiofsd/fuse_lowlevel.h:512:
+^I *$

ERROR: code indent should never use tabs
#2875: FILE: tools/virtiofsd/fuse_lowlevel.h:513:
+^I * Read should send exactly the number of bytes requested except$

ERROR: code indent should never use tabs
#2876: FILE: tools/virtiofsd/fuse_lowlevel.h:514:
+^I * on EOF or error, otherwise the rest of the data will be$

ERROR: code indent should never use tabs
#2877: FILE: tools/virtiofsd/fuse_lowlevel.h:515:
+^I * substituted with zeroes.  An exception to this is when the file$

ERROR: code indent should never use tabs
#2878: FILE: tools/virtiofsd/fuse_lowlevel.h:516:
+^I * has been opened in 'direct_io' mode, in which case the return$

ERROR: code indent should never use tabs
#2879: FILE: tools/virtiofsd/fuse_lowlevel.h:517:
+^I * value of the read system call will reflect the return value of$

ERROR: code indent should never use tabs
#2880: FILE: tools/virtiofsd/fuse_lowlevel.h:518:
+^I * this operation.$

ERROR: code indent should never use tabs
#2881: FILE: tools/virtiofsd/fuse_lowlevel.h:519:
+^I *$

ERROR: code indent should never use tabs
#2882: FILE: tools/virtiofsd/fuse_lowlevel.h:520:
+^I * fi->fh will contain the value set by the open method, or will$

ERROR: code indent should never use tabs
#2883: FILE: tools/virtiofsd/fuse_lowlevel.h:521:
+^I * be undefined if the open method didn't set any value.$

ERROR: code indent should never use tabs
#2884: FILE: tools/virtiofsd/fuse_lowlevel.h:522:
+^I *$

ERROR: code indent should never use tabs
#2885: FILE: tools/virtiofsd/fuse_lowlevel.h:523:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2886: FILE: tools/virtiofsd/fuse_lowlevel.h:524:
+^I *   fuse_reply_buf$

ERROR: code indent should never use tabs
#2887: FILE: tools/virtiofsd/fuse_lowlevel.h:525:
+^I *   fuse_reply_iov$

ERROR: code indent should never use tabs
#2888: FILE: tools/virtiofsd/fuse_lowlevel.h:526:
+^I *   fuse_reply_data$

ERROR: code indent should never use tabs
#2889: FILE: tools/virtiofsd/fuse_lowlevel.h:527:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2890: FILE: tools/virtiofsd/fuse_lowlevel.h:528:
+^I *$

ERROR: code indent should never use tabs
#2891: FILE: tools/virtiofsd/fuse_lowlevel.h:529:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2892: FILE: tools/virtiofsd/fuse_lowlevel.h:530:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2893: FILE: tools/virtiofsd/fuse_lowlevel.h:531:
+^I * @param size number of bytes to read$

ERROR: code indent should never use tabs
#2894: FILE: tools/virtiofsd/fuse_lowlevel.h:532:
+^I * @param off offset to read from$

ERROR: code indent should never use tabs
#2895: FILE: tools/virtiofsd/fuse_lowlevel.h:533:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#2896: FILE: tools/virtiofsd/fuse_lowlevel.h:534:
+^I */$

ERROR: code indent should never use tabs
#2897: FILE: tools/virtiofsd/fuse_lowlevel.h:535:
+^Ivoid (*read) (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off,$

ERROR: code indent should never use tabs
#2898: FILE: tools/virtiofsd/fuse_lowlevel.h:536:
+^I^I      struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#2900: FILE: tools/virtiofsd/fuse_lowlevel.h:538:
+^I/**$

ERROR: code indent should never use tabs
#2901: FILE: tools/virtiofsd/fuse_lowlevel.h:539:
+^I * Write data$

ERROR: code indent should never use tabs
#2902: FILE: tools/virtiofsd/fuse_lowlevel.h:540:
+^I *$

ERROR: code indent should never use tabs
#2903: FILE: tools/virtiofsd/fuse_lowlevel.h:541:
+^I * Write should return exactly the number of bytes requested$

ERROR: code indent should never use tabs
#2904: FILE: tools/virtiofsd/fuse_lowlevel.h:542:
+^I * except on error.  An exception to this is when the file has$

ERROR: code indent should never use tabs
#2905: FILE: tools/virtiofsd/fuse_lowlevel.h:543:
+^I * been opened in 'direct_io' mode, in which case the return value$

ERROR: code indent should never use tabs
#2906: FILE: tools/virtiofsd/fuse_lowlevel.h:544:
+^I * of the write system call will reflect the return value of this$

ERROR: code indent should never use tabs
#2907: FILE: tools/virtiofsd/fuse_lowlevel.h:545:
+^I * operation.$

ERROR: code indent should never use tabs
#2908: FILE: tools/virtiofsd/fuse_lowlevel.h:546:
+^I *$

ERROR: code indent should never use tabs
#2909: FILE: tools/virtiofsd/fuse_lowlevel.h:547:
+^I * Unless FUSE_CAP_HANDLE_KILLPRIV is disabled, this method is$

ERROR: code indent should never use tabs
#2910: FILE: tools/virtiofsd/fuse_lowlevel.h:548:
+^I * expected to reset the setuid and setgid bits.$

ERROR: code indent should never use tabs
#2911: FILE: tools/virtiofsd/fuse_lowlevel.h:549:
+^I *$

ERROR: code indent should never use tabs
#2912: FILE: tools/virtiofsd/fuse_lowlevel.h:550:
+^I * fi->fh will contain the value set by the open method, or will$

ERROR: code indent should never use tabs
#2913: FILE: tools/virtiofsd/fuse_lowlevel.h:551:
+^I * be undefined if the open method didn't set any value.$

ERROR: code indent should never use tabs
#2914: FILE: tools/virtiofsd/fuse_lowlevel.h:552:
+^I *$

ERROR: code indent should never use tabs
#2915: FILE: tools/virtiofsd/fuse_lowlevel.h:553:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2916: FILE: tools/virtiofsd/fuse_lowlevel.h:554:
+^I *   fuse_reply_write$

ERROR: code indent should never use tabs
#2917: FILE: tools/virtiofsd/fuse_lowlevel.h:555:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2918: FILE: tools/virtiofsd/fuse_lowlevel.h:556:
+^I *$

ERROR: code indent should never use tabs
#2919: FILE: tools/virtiofsd/fuse_lowlevel.h:557:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2920: FILE: tools/virtiofsd/fuse_lowlevel.h:558:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2921: FILE: tools/virtiofsd/fuse_lowlevel.h:559:
+^I * @param buf data to write$

ERROR: code indent should never use tabs
#2922: FILE: tools/virtiofsd/fuse_lowlevel.h:560:
+^I * @param size number of bytes to write$

ERROR: code indent should never use tabs
#2923: FILE: tools/virtiofsd/fuse_lowlevel.h:561:
+^I * @param off offset to write to$

ERROR: code indent should never use tabs
#2924: FILE: tools/virtiofsd/fuse_lowlevel.h:562:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#2925: FILE: tools/virtiofsd/fuse_lowlevel.h:563:
+^I */$

ERROR: code indent should never use tabs
#2926: FILE: tools/virtiofsd/fuse_lowlevel.h:564:
+^Ivoid (*write) (fuse_req_t req, fuse_ino_t ino, const char *buf,$

ERROR: code indent should never use tabs
#2927: FILE: tools/virtiofsd/fuse_lowlevel.h:565:
+^I^I       size_t size, off_t off, struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#2929: FILE: tools/virtiofsd/fuse_lowlevel.h:567:
+^I/**$

ERROR: code indent should never use tabs
#2930: FILE: tools/virtiofsd/fuse_lowlevel.h:568:
+^I * Flush method$

ERROR: code indent should never use tabs
#2931: FILE: tools/virtiofsd/fuse_lowlevel.h:569:
+^I *$

ERROR: code indent should never use tabs
#2932: FILE: tools/virtiofsd/fuse_lowlevel.h:570:
+^I * This is called on each close() of the opened file.$

ERROR: code indent should never use tabs
#2933: FILE: tools/virtiofsd/fuse_lowlevel.h:571:
+^I *$

ERROR: code indent should never use tabs
#2934: FILE: tools/virtiofsd/fuse_lowlevel.h:572:
+^I * Since file descriptors can be duplicated (dup, dup2, fork), for$

ERROR: code indent should never use tabs
#2935: FILE: tools/virtiofsd/fuse_lowlevel.h:573:
+^I * one open call there may be many flush calls.$

ERROR: code indent should never use tabs
#2936: FILE: tools/virtiofsd/fuse_lowlevel.h:574:
+^I *$

ERROR: code indent should never use tabs
#2937: FILE: tools/virtiofsd/fuse_lowlevel.h:575:
+^I * Filesystems shouldn't assume that flush will always be called$

ERROR: code indent should never use tabs
#2938: FILE: tools/virtiofsd/fuse_lowlevel.h:576:
+^I * after some writes, or that if will be called at all.$

ERROR: code indent should never use tabs
#2939: FILE: tools/virtiofsd/fuse_lowlevel.h:577:
+^I *$

ERROR: code indent should never use tabs
#2940: FILE: tools/virtiofsd/fuse_lowlevel.h:578:
+^I * fi->fh will contain the value set by the open method, or will$

ERROR: code indent should never use tabs
#2941: FILE: tools/virtiofsd/fuse_lowlevel.h:579:
+^I * be undefined if the open method didn't set any value.$

ERROR: code indent should never use tabs
#2942: FILE: tools/virtiofsd/fuse_lowlevel.h:580:
+^I *$

ERROR: code indent should never use tabs
#2943: FILE: tools/virtiofsd/fuse_lowlevel.h:581:
+^I * NOTE: the name of the method is misleading, since (unlike$

ERROR: code indent should never use tabs
#2944: FILE: tools/virtiofsd/fuse_lowlevel.h:582:
+^I * fsync) the filesystem is not forced to flush pending writes.$

ERROR: code indent should never use tabs
#2945: FILE: tools/virtiofsd/fuse_lowlevel.h:583:
+^I * One reason to flush data is if the filesystem wants to return$

ERROR: code indent should never use tabs
#2946: FILE: tools/virtiofsd/fuse_lowlevel.h:584:
+^I * write errors during close.  However, such use is non-portable$

ERROR: code indent should never use tabs
#2947: FILE: tools/virtiofsd/fuse_lowlevel.h:585:
+^I * because POSIX does not require [close] to wait for delayed I/O to$

ERROR: code indent should never use tabs
#2948: FILE: tools/virtiofsd/fuse_lowlevel.h:586:
+^I * complete.$

ERROR: code indent should never use tabs
#2949: FILE: tools/virtiofsd/fuse_lowlevel.h:587:
+^I *$

ERROR: code indent should never use tabs
#2950: FILE: tools/virtiofsd/fuse_lowlevel.h:588:
+^I * If the filesystem supports file locking operations (setlk,$

ERROR: code indent should never use tabs
#2951: FILE: tools/virtiofsd/fuse_lowlevel.h:589:
+^I * getlk) it should remove all locks belonging to 'fi->owner'.$

ERROR: code indent should never use tabs
#2952: FILE: tools/virtiofsd/fuse_lowlevel.h:590:
+^I *$

ERROR: code indent should never use tabs
#2953: FILE: tools/virtiofsd/fuse_lowlevel.h:591:
+^I * If this request is answered with an error code of ENOSYS,$

ERROR: code indent should never use tabs
#2954: FILE: tools/virtiofsd/fuse_lowlevel.h:592:
+^I * this is treated as success and future calls to flush() will$

ERROR: code indent should never use tabs
#2955: FILE: tools/virtiofsd/fuse_lowlevel.h:593:
+^I * succeed automatically without being send to the filesystem$

ERROR: code indent should never use tabs
#2956: FILE: tools/virtiofsd/fuse_lowlevel.h:594:
+^I * process.$

ERROR: code indent should never use tabs
#2957: FILE: tools/virtiofsd/fuse_lowlevel.h:595:
+^I *$

ERROR: code indent should never use tabs
#2958: FILE: tools/virtiofsd/fuse_lowlevel.h:596:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2959: FILE: tools/virtiofsd/fuse_lowlevel.h:597:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2960: FILE: tools/virtiofsd/fuse_lowlevel.h:598:
+^I *$

ERROR: code indent should never use tabs
#2961: FILE: tools/virtiofsd/fuse_lowlevel.h:599:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2962: FILE: tools/virtiofsd/fuse_lowlevel.h:600:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2963: FILE: tools/virtiofsd/fuse_lowlevel.h:601:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#2964: FILE: tools/virtiofsd/fuse_lowlevel.h:602:
+^I *$

WARNING: line over 80 characters
#2965: FILE: tools/virtiofsd/fuse_lowlevel.h:603:
+        * [close]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/close.html

ERROR: code indent should never use tabs
#2965: FILE: tools/virtiofsd/fuse_lowlevel.h:603:
+^I * [close]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/close.html$

ERROR: code indent should never use tabs
#2966: FILE: tools/virtiofsd/fuse_lowlevel.h:604:
+^I */$

ERROR: code indent should never use tabs
#2967: FILE: tools/virtiofsd/fuse_lowlevel.h:605:
+^Ivoid (*flush) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#2968: FILE: tools/virtiofsd/fuse_lowlevel.h:606:
+^I^I       struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#2970: FILE: tools/virtiofsd/fuse_lowlevel.h:608:
+^I/**$

ERROR: code indent should never use tabs
#2971: FILE: tools/virtiofsd/fuse_lowlevel.h:609:
+^I * Release an open file$

ERROR: code indent should never use tabs
#2972: FILE: tools/virtiofsd/fuse_lowlevel.h:610:
+^I *$

ERROR: code indent should never use tabs
#2973: FILE: tools/virtiofsd/fuse_lowlevel.h:611:
+^I * Release is called when there are no more references to an open$

ERROR: code indent should never use tabs
#2974: FILE: tools/virtiofsd/fuse_lowlevel.h:612:
+^I * file: all file descriptors are closed and all memory mappings$

ERROR: code indent should never use tabs
#2975: FILE: tools/virtiofsd/fuse_lowlevel.h:613:
+^I * are unmapped.$

ERROR: code indent should never use tabs
#2976: FILE: tools/virtiofsd/fuse_lowlevel.h:614:
+^I *$

ERROR: code indent should never use tabs
#2977: FILE: tools/virtiofsd/fuse_lowlevel.h:615:
+^I * For every open call there will be exactly one release call (unless$

ERROR: code indent should never use tabs
#2978: FILE: tools/virtiofsd/fuse_lowlevel.h:616:
+^I * the filesystem is force-unmounted).$

ERROR: code indent should never use tabs
#2979: FILE: tools/virtiofsd/fuse_lowlevel.h:617:
+^I *$

ERROR: code indent should never use tabs
#2980: FILE: tools/virtiofsd/fuse_lowlevel.h:618:
+^I * The filesystem may reply with an error, but error values are$

ERROR: code indent should never use tabs
#2981: FILE: tools/virtiofsd/fuse_lowlevel.h:619:
+^I * not returned to close() or munmap() which triggered the$

ERROR: code indent should never use tabs
#2982: FILE: tools/virtiofsd/fuse_lowlevel.h:620:
+^I * release.$

ERROR: code indent should never use tabs
#2983: FILE: tools/virtiofsd/fuse_lowlevel.h:621:
+^I *$

ERROR: code indent should never use tabs
#2984: FILE: tools/virtiofsd/fuse_lowlevel.h:622:
+^I * fi->fh will contain the value set by the open method, or will$

ERROR: code indent should never use tabs
#2985: FILE: tools/virtiofsd/fuse_lowlevel.h:623:
+^I * be undefined if the open method didn't set any value.$

ERROR: code indent should never use tabs
#2986: FILE: tools/virtiofsd/fuse_lowlevel.h:624:
+^I * fi->flags will contain the same flags as for open.$

ERROR: code indent should never use tabs
#2987: FILE: tools/virtiofsd/fuse_lowlevel.h:625:
+^I *$

ERROR: code indent should never use tabs
#2988: FILE: tools/virtiofsd/fuse_lowlevel.h:626:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2989: FILE: tools/virtiofsd/fuse_lowlevel.h:627:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2990: FILE: tools/virtiofsd/fuse_lowlevel.h:628:
+^I *$

ERROR: code indent should never use tabs
#2991: FILE: tools/virtiofsd/fuse_lowlevel.h:629:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2992: FILE: tools/virtiofsd/fuse_lowlevel.h:630:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2993: FILE: tools/virtiofsd/fuse_lowlevel.h:631:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#2994: FILE: tools/virtiofsd/fuse_lowlevel.h:632:
+^I */$

ERROR: code indent should never use tabs
#2995: FILE: tools/virtiofsd/fuse_lowlevel.h:633:
+^Ivoid (*release) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#2996: FILE: tools/virtiofsd/fuse_lowlevel.h:634:
+^I^I^I struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#2998: FILE: tools/virtiofsd/fuse_lowlevel.h:636:
+^I/**$

ERROR: code indent should never use tabs
#2999: FILE: tools/virtiofsd/fuse_lowlevel.h:637:
+^I * Synchronize file contents$

ERROR: code indent should never use tabs
#3000: FILE: tools/virtiofsd/fuse_lowlevel.h:638:
+^I *$

ERROR: code indent should never use tabs
#3001: FILE: tools/virtiofsd/fuse_lowlevel.h:639:
+^I * If the datasync parameter is non-zero, then only the user data$

ERROR: code indent should never use tabs
#3002: FILE: tools/virtiofsd/fuse_lowlevel.h:640:
+^I * should be flushed, not the meta data.$

ERROR: code indent should never use tabs
#3003: FILE: tools/virtiofsd/fuse_lowlevel.h:641:
+^I *$

ERROR: code indent should never use tabs
#3004: FILE: tools/virtiofsd/fuse_lowlevel.h:642:
+^I * If this request is answered with an error code of ENOSYS,$

ERROR: code indent should never use tabs
#3005: FILE: tools/virtiofsd/fuse_lowlevel.h:643:
+^I * this is treated as success and future calls to fsync() will$

ERROR: code indent should never use tabs
#3006: FILE: tools/virtiofsd/fuse_lowlevel.h:644:
+^I * succeed automatically without being send to the filesystem$

ERROR: code indent should never use tabs
#3007: FILE: tools/virtiofsd/fuse_lowlevel.h:645:
+^I * process.$

ERROR: code indent should never use tabs
#3008: FILE: tools/virtiofsd/fuse_lowlevel.h:646:
+^I *$

ERROR: code indent should never use tabs
#3009: FILE: tools/virtiofsd/fuse_lowlevel.h:647:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3010: FILE: tools/virtiofsd/fuse_lowlevel.h:648:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3011: FILE: tools/virtiofsd/fuse_lowlevel.h:649:
+^I *$

ERROR: code indent should never use tabs
#3012: FILE: tools/virtiofsd/fuse_lowlevel.h:650:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3013: FILE: tools/virtiofsd/fuse_lowlevel.h:651:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3014: FILE: tools/virtiofsd/fuse_lowlevel.h:652:
+^I * @param datasync flag indicating if only data should be flushed$

ERROR: code indent should never use tabs
#3015: FILE: tools/virtiofsd/fuse_lowlevel.h:653:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3016: FILE: tools/virtiofsd/fuse_lowlevel.h:654:
+^I */$

ERROR: code indent should never use tabs
#3017: FILE: tools/virtiofsd/fuse_lowlevel.h:655:
+^Ivoid (*fsync) (fuse_req_t req, fuse_ino_t ino, int datasync,$

ERROR: code indent should never use tabs
#3018: FILE: tools/virtiofsd/fuse_lowlevel.h:656:
+^I^I       struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3020: FILE: tools/virtiofsd/fuse_lowlevel.h:658:
+^I/**$

ERROR: code indent should never use tabs
#3021: FILE: tools/virtiofsd/fuse_lowlevel.h:659:
+^I * Open a directory$

ERROR: code indent should never use tabs
#3022: FILE: tools/virtiofsd/fuse_lowlevel.h:660:
+^I *$

ERROR: code indent should never use tabs
#3023: FILE: tools/virtiofsd/fuse_lowlevel.h:661:
+^I * Filesystem may store an arbitrary file handle (pointer, index,$

ERROR: code indent should never use tabs
#3024: FILE: tools/virtiofsd/fuse_lowlevel.h:662:
+^I * etc) in fi->fh, and use this in other all other directory$

ERROR: code indent should never use tabs
#3025: FILE: tools/virtiofsd/fuse_lowlevel.h:663:
+^I * stream operations (readdir, releasedir, fsyncdir).$

ERROR: code indent should never use tabs
#3026: FILE: tools/virtiofsd/fuse_lowlevel.h:664:
+^I *$

ERROR: code indent should never use tabs
#3027: FILE: tools/virtiofsd/fuse_lowlevel.h:665:
+^I * If this request is answered with an error code of ENOSYS and$

ERROR: code indent should never use tabs
#3028: FILE: tools/virtiofsd/fuse_lowlevel.h:666:
+^I * FUSE_CAP_NO_OPENDIR_SUPPORT is set in `fuse_conn_info.capable`,$

ERROR: code indent should never use tabs
#3029: FILE: tools/virtiofsd/fuse_lowlevel.h:667:
+^I * this is treated as success and future calls to opendir and$

ERROR: code indent should never use tabs
#3030: FILE: tools/virtiofsd/fuse_lowlevel.h:668:
+^I * releasedir will also succeed without being sent to the filesystem$

ERROR: code indent should never use tabs
#3031: FILE: tools/virtiofsd/fuse_lowlevel.h:669:
+^I * process. In addition, the kernel will cache readdir results$

ERROR: code indent should never use tabs
#3032: FILE: tools/virtiofsd/fuse_lowlevel.h:670:
+^I * as if opendir returned FOPEN_KEEP_CACHE | FOPEN_CACHE_DIR.$

ERROR: code indent should never use tabs
#3033: FILE: tools/virtiofsd/fuse_lowlevel.h:671:
+^I *$

ERROR: code indent should never use tabs
#3034: FILE: tools/virtiofsd/fuse_lowlevel.h:672:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3035: FILE: tools/virtiofsd/fuse_lowlevel.h:673:
+^I *   fuse_reply_open$

ERROR: code indent should never use tabs
#3036: FILE: tools/virtiofsd/fuse_lowlevel.h:674:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3037: FILE: tools/virtiofsd/fuse_lowlevel.h:675:
+^I *$

ERROR: code indent should never use tabs
#3038: FILE: tools/virtiofsd/fuse_lowlevel.h:676:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3039: FILE: tools/virtiofsd/fuse_lowlevel.h:677:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3040: FILE: tools/virtiofsd/fuse_lowlevel.h:678:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3041: FILE: tools/virtiofsd/fuse_lowlevel.h:679:
+^I */$

ERROR: code indent should never use tabs
#3042: FILE: tools/virtiofsd/fuse_lowlevel.h:680:
+^Ivoid (*opendir) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#3043: FILE: tools/virtiofsd/fuse_lowlevel.h:681:
+^I^I^I struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3045: FILE: tools/virtiofsd/fuse_lowlevel.h:683:
+^I/**$

ERROR: code indent should never use tabs
#3046: FILE: tools/virtiofsd/fuse_lowlevel.h:684:
+^I * Read directory$

ERROR: code indent should never use tabs
#3047: FILE: tools/virtiofsd/fuse_lowlevel.h:685:
+^I *$

ERROR: code indent should never use tabs
#3048: FILE: tools/virtiofsd/fuse_lowlevel.h:686:
+^I * Send a buffer filled using fuse_add_direntry(), with size not$

ERROR: code indent should never use tabs
#3049: FILE: tools/virtiofsd/fuse_lowlevel.h:687:
+^I * exceeding the requested size.  Send an empty buffer on end of$

ERROR: code indent should never use tabs
#3050: FILE: tools/virtiofsd/fuse_lowlevel.h:688:
+^I * stream.$

ERROR: code indent should never use tabs
#3051: FILE: tools/virtiofsd/fuse_lowlevel.h:689:
+^I *$

ERROR: code indent should never use tabs
#3052: FILE: tools/virtiofsd/fuse_lowlevel.h:690:
+^I * fi->fh will contain the value set by the opendir method, or$

ERROR: code indent should never use tabs
#3053: FILE: tools/virtiofsd/fuse_lowlevel.h:691:
+^I * will be undefined if the opendir method didn't set any value.$

ERROR: code indent should never use tabs
#3054: FILE: tools/virtiofsd/fuse_lowlevel.h:692:
+^I *$

ERROR: code indent should never use tabs
#3055: FILE: tools/virtiofsd/fuse_lowlevel.h:693:
+^I * Returning a directory entry from readdir() does not affect$

ERROR: code indent should never use tabs
#3056: FILE: tools/virtiofsd/fuse_lowlevel.h:694:
+^I * its lookup count.$

ERROR: code indent should never use tabs
#3057: FILE: tools/virtiofsd/fuse_lowlevel.h:695:
+^I *$

ERROR: code indent should never use tabs
#3059: FILE: tools/virtiofsd/fuse_lowlevel.h:697:
+^I * values that was previously returned by readdir() for the same$

ERROR: code indent should never use tabs
#3060: FILE: tools/virtiofsd/fuse_lowlevel.h:698:
+^I * directory handle. In this case, readdir() should skip over entries$

ERROR: code indent should never use tabs
#3061: FILE: tools/virtiofsd/fuse_lowlevel.h:699:
+^I * coming before the position defined by the off_t value. If entries$

WARNING: line over 80 characters
#3062: FILE: tools/virtiofsd/fuse_lowlevel.h:700:
+        * are added or removed while the directory handle is open, they filesystem

ERROR: code indent should never use tabs
#3062: FILE: tools/virtiofsd/fuse_lowlevel.h:700:
+^I * are added or removed while the directory handle is open, they filesystem$

ERROR: code indent should never use tabs
#3063: FILE: tools/virtiofsd/fuse_lowlevel.h:701:
+^I * may still include the entries that have been removed, and may not$

ERROR: code indent should never use tabs
#3064: FILE: tools/virtiofsd/fuse_lowlevel.h:702:
+^I * report the entries that have been created. However, addition or$

ERROR: code indent should never use tabs
#3065: FILE: tools/virtiofsd/fuse_lowlevel.h:703:
+^I * removal of entries must never cause readdir() to skip over unrelated$

ERROR: code indent should never use tabs
#3066: FILE: tools/virtiofsd/fuse_lowlevel.h:704:
+^I * entries or to report them more than once. This means$

ERROR: code indent should never use tabs
#3067: FILE: tools/virtiofsd/fuse_lowlevel.h:705:
+^I * that off_t can not be a simple index that enumerates the entries$

ERROR: code indent should never use tabs
#3068: FILE: tools/virtiofsd/fuse_lowlevel.h:706:
+^I * that have been returned but must contain sufficient information to$

ERROR: code indent should never use tabs
#3069: FILE: tools/virtiofsd/fuse_lowlevel.h:707:
+^I * uniquely determine the next directory entry to return even when the$

ERROR: code indent should never use tabs
#3070: FILE: tools/virtiofsd/fuse_lowlevel.h:708:
+^I * set of entries is changing.$

ERROR: code indent should never use tabs
#3071: FILE: tools/virtiofsd/fuse_lowlevel.h:709:
+^I *$

ERROR: code indent should never use tabs
#3072: FILE: tools/virtiofsd/fuse_lowlevel.h:710:
+^I * The function does not have to report the '.' and '..'$

ERROR: code indent should never use tabs
#3073: FILE: tools/virtiofsd/fuse_lowlevel.h:711:
+^I * entries, but is allowed to do so. Note that, if readdir does$

ERROR: code indent should never use tabs
#3074: FILE: tools/virtiofsd/fuse_lowlevel.h:712:
+^I * not return '.' or '..', they will not be implicitly returned,$

ERROR: code indent should never use tabs
#3075: FILE: tools/virtiofsd/fuse_lowlevel.h:713:
+^I * and this behavior is observable by the caller.$

ERROR: code indent should never use tabs
#3076: FILE: tools/virtiofsd/fuse_lowlevel.h:714:
+^I *$

ERROR: code indent should never use tabs
#3077: FILE: tools/virtiofsd/fuse_lowlevel.h:715:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3078: FILE: tools/virtiofsd/fuse_lowlevel.h:716:
+^I *   fuse_reply_buf$

ERROR: code indent should never use tabs
#3079: FILE: tools/virtiofsd/fuse_lowlevel.h:717:
+^I *   fuse_reply_data$

ERROR: code indent should never use tabs
#3080: FILE: tools/virtiofsd/fuse_lowlevel.h:718:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3081: FILE: tools/virtiofsd/fuse_lowlevel.h:719:
+^I *$

ERROR: code indent should never use tabs
#3082: FILE: tools/virtiofsd/fuse_lowlevel.h:720:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3083: FILE: tools/virtiofsd/fuse_lowlevel.h:721:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3084: FILE: tools/virtiofsd/fuse_lowlevel.h:722:
+^I * @param size maximum number of bytes to send$

ERROR: code indent should never use tabs
#3085: FILE: tools/virtiofsd/fuse_lowlevel.h:723:
+^I * @param off offset to continue reading the directory stream$

ERROR: code indent should never use tabs
#3086: FILE: tools/virtiofsd/fuse_lowlevel.h:724:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3087: FILE: tools/virtiofsd/fuse_lowlevel.h:725:
+^I */$

ERROR: code indent should never use tabs
#3088: FILE: tools/virtiofsd/fuse_lowlevel.h:726:
+^Ivoid (*readdir) (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off,$

ERROR: code indent should never use tabs
#3089: FILE: tools/virtiofsd/fuse_lowlevel.h:727:
+^I^I^I struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3091: FILE: tools/virtiofsd/fuse_lowlevel.h:729:
+^I/**$

ERROR: code indent should never use tabs
#3092: FILE: tools/virtiofsd/fuse_lowlevel.h:730:
+^I * Release an open directory$

ERROR: code indent should never use tabs
#3093: FILE: tools/virtiofsd/fuse_lowlevel.h:731:
+^I *$

ERROR: code indent should never use tabs
#3094: FILE: tools/virtiofsd/fuse_lowlevel.h:732:
+^I * For every opendir call there will be exactly one releasedir$

ERROR: code indent should never use tabs
#3095: FILE: tools/virtiofsd/fuse_lowlevel.h:733:
+^I * call (unless the filesystem is force-unmounted).$

ERROR: code indent should never use tabs
#3096: FILE: tools/virtiofsd/fuse_lowlevel.h:734:
+^I *$

ERROR: code indent should never use tabs
#3097: FILE: tools/virtiofsd/fuse_lowlevel.h:735:
+^I * fi->fh will contain the value set by the opendir method, or$

ERROR: code indent should never use tabs
#3098: FILE: tools/virtiofsd/fuse_lowlevel.h:736:
+^I * will be undefined if the opendir method didn't set any value.$

ERROR: code indent should never use tabs
#3099: FILE: tools/virtiofsd/fuse_lowlevel.h:737:
+^I *$

ERROR: code indent should never use tabs
#3100: FILE: tools/virtiofsd/fuse_lowlevel.h:738:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3101: FILE: tools/virtiofsd/fuse_lowlevel.h:739:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3102: FILE: tools/virtiofsd/fuse_lowlevel.h:740:
+^I *$

ERROR: code indent should never use tabs
#3103: FILE: tools/virtiofsd/fuse_lowlevel.h:741:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3104: FILE: tools/virtiofsd/fuse_lowlevel.h:742:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3105: FILE: tools/virtiofsd/fuse_lowlevel.h:743:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3106: FILE: tools/virtiofsd/fuse_lowlevel.h:744:
+^I */$

ERROR: code indent should never use tabs
#3107: FILE: tools/virtiofsd/fuse_lowlevel.h:745:
+^Ivoid (*releasedir) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#3108: FILE: tools/virtiofsd/fuse_lowlevel.h:746:
+^I^I^I    struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3110: FILE: tools/virtiofsd/fuse_lowlevel.h:748:
+^I/**$

ERROR: code indent should never use tabs
#3111: FILE: tools/virtiofsd/fuse_lowlevel.h:749:
+^I * Synchronize directory contents$

ERROR: code indent should never use tabs
#3112: FILE: tools/virtiofsd/fuse_lowlevel.h:750:
+^I *$

ERROR: code indent should never use tabs
#3113: FILE: tools/virtiofsd/fuse_lowlevel.h:751:
+^I * If the datasync parameter is non-zero, then only the directory$

ERROR: code indent should never use tabs
#3114: FILE: tools/virtiofsd/fuse_lowlevel.h:752:
+^I * contents should be flushed, not the meta data.$

ERROR: code indent should never use tabs
#3115: FILE: tools/virtiofsd/fuse_lowlevel.h:753:
+^I *$

ERROR: code indent should never use tabs
#3116: FILE: tools/virtiofsd/fuse_lowlevel.h:754:
+^I * fi->fh will contain the value set by the opendir method, or$

ERROR: code indent should never use tabs
#3117: FILE: tools/virtiofsd/fuse_lowlevel.h:755:
+^I * will be undefined if the opendir method didn't set any value.$

ERROR: code indent should never use tabs
#3118: FILE: tools/virtiofsd/fuse_lowlevel.h:756:
+^I *$

ERROR: code indent should never use tabs
#3119: FILE: tools/virtiofsd/fuse_lowlevel.h:757:
+^I * If this request is answered with an error code of ENOSYS,$

ERROR: code indent should never use tabs
#3120: FILE: tools/virtiofsd/fuse_lowlevel.h:758:
+^I * this is treated as success and future calls to fsyncdir() will$

ERROR: code indent should never use tabs
#3121: FILE: tools/virtiofsd/fuse_lowlevel.h:759:
+^I * succeed automatically without being send to the filesystem$

ERROR: code indent should never use tabs
#3122: FILE: tools/virtiofsd/fuse_lowlevel.h:760:
+^I * process.$

ERROR: code indent should never use tabs
#3123: FILE: tools/virtiofsd/fuse_lowlevel.h:761:
+^I *$

ERROR: code indent should never use tabs
#3124: FILE: tools/virtiofsd/fuse_lowlevel.h:762:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3125: FILE: tools/virtiofsd/fuse_lowlevel.h:763:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3126: FILE: tools/virtiofsd/fuse_lowlevel.h:764:
+^I *$

ERROR: code indent should never use tabs
#3127: FILE: tools/virtiofsd/fuse_lowlevel.h:765:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3128: FILE: tools/virtiofsd/fuse_lowlevel.h:766:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3129: FILE: tools/virtiofsd/fuse_lowlevel.h:767:
+^I * @param datasync flag indicating if only data should be flushed$

ERROR: code indent should never use tabs
#3130: FILE: tools/virtiofsd/fuse_lowlevel.h:768:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3131: FILE: tools/virtiofsd/fuse_lowlevel.h:769:
+^I */$

ERROR: code indent should never use tabs
#3132: FILE: tools/virtiofsd/fuse_lowlevel.h:770:
+^Ivoid (*fsyncdir) (fuse_req_t req, fuse_ino_t ino, int datasync,$

ERROR: code indent should never use tabs
#3133: FILE: tools/virtiofsd/fuse_lowlevel.h:771:
+^I^I^I  struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3135: FILE: tools/virtiofsd/fuse_lowlevel.h:773:
+^I/**$

ERROR: code indent should never use tabs
#3136: FILE: tools/virtiofsd/fuse_lowlevel.h:774:
+^I * Get file system statistics$

ERROR: code indent should never use tabs
#3137: FILE: tools/virtiofsd/fuse_lowlevel.h:775:
+^I *$

ERROR: code indent should never use tabs
#3138: FILE: tools/virtiofsd/fuse_lowlevel.h:776:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3139: FILE: tools/virtiofsd/fuse_lowlevel.h:777:
+^I *   fuse_reply_statfs$

ERROR: code indent should never use tabs
#3140: FILE: tools/virtiofsd/fuse_lowlevel.h:778:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3141: FILE: tools/virtiofsd/fuse_lowlevel.h:779:
+^I *$

ERROR: code indent should never use tabs
#3142: FILE: tools/virtiofsd/fuse_lowlevel.h:780:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3143: FILE: tools/virtiofsd/fuse_lowlevel.h:781:
+^I * @param ino the inode number, zero means "undefined"$

ERROR: code indent should never use tabs
#3144: FILE: tools/virtiofsd/fuse_lowlevel.h:782:
+^I */$

ERROR: code indent should never use tabs
#3145: FILE: tools/virtiofsd/fuse_lowlevel.h:783:
+^Ivoid (*statfs) (fuse_req_t req, fuse_ino_t ino);$

ERROR: code indent should never use tabs
#3147: FILE: tools/virtiofsd/fuse_lowlevel.h:785:
+^I/**$

ERROR: code indent should never use tabs
#3148: FILE: tools/virtiofsd/fuse_lowlevel.h:786:
+^I * Set an extended attribute$

ERROR: code indent should never use tabs
#3149: FILE: tools/virtiofsd/fuse_lowlevel.h:787:
+^I *$

ERROR: code indent should never use tabs
#3150: FILE: tools/virtiofsd/fuse_lowlevel.h:788:
+^I * If this request is answered with an error code of ENOSYS, this is$

ERROR: code indent should never use tabs
#3151: FILE: tools/virtiofsd/fuse_lowlevel.h:789:
+^I * treated as a permanent failure with error code EOPNOTSUPP, i.e. all$

ERROR: code indent should never use tabs
#3152: FILE: tools/virtiofsd/fuse_lowlevel.h:790:
+^I * future setxattr() requests will fail with EOPNOTSUPP without being$

ERROR: code indent should never use tabs
#3153: FILE: tools/virtiofsd/fuse_lowlevel.h:791:
+^I * send to the filesystem process.$

ERROR: code indent should never use tabs
#3154: FILE: tools/virtiofsd/fuse_lowlevel.h:792:
+^I *$

ERROR: code indent should never use tabs
#3155: FILE: tools/virtiofsd/fuse_lowlevel.h:793:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3156: FILE: tools/virtiofsd/fuse_lowlevel.h:794:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3157: FILE: tools/virtiofsd/fuse_lowlevel.h:795:
+^I */$

ERROR: code indent should never use tabs
#3158: FILE: tools/virtiofsd/fuse_lowlevel.h:796:
+^Ivoid (*setxattr) (fuse_req_t req, fuse_ino_t ino, const char *name,$

ERROR: code indent should never use tabs
#3159: FILE: tools/virtiofsd/fuse_lowlevel.h:797:
+^I^I^I  const char *value, size_t size, int flags);$

ERROR: code indent should never use tabs
#3161: FILE: tools/virtiofsd/fuse_lowlevel.h:799:
+^I/**$

ERROR: code indent should never use tabs
#3162: FILE: tools/virtiofsd/fuse_lowlevel.h:800:
+^I * Get an extended attribute$

ERROR: code indent should never use tabs
#3163: FILE: tools/virtiofsd/fuse_lowlevel.h:801:
+^I *$

ERROR: code indent should never use tabs
#3164: FILE: tools/virtiofsd/fuse_lowlevel.h:802:
+^I * If size is zero, the size of the value should be sent with$

ERROR: code indent should never use tabs
#3165: FILE: tools/virtiofsd/fuse_lowlevel.h:803:
+^I * fuse_reply_xattr.$

ERROR: code indent should never use tabs
#3166: FILE: tools/virtiofsd/fuse_lowlevel.h:804:
+^I *$

ERROR: code indent should never use tabs
#3167: FILE: tools/virtiofsd/fuse_lowlevel.h:805:
+^I * If the size is non-zero, and the value fits in the buffer, the$

ERROR: code indent should never use tabs
#3168: FILE: tools/virtiofsd/fuse_lowlevel.h:806:
+^I * value should be sent with fuse_reply_buf.$

ERROR: code indent should never use tabs
#3169: FILE: tools/virtiofsd/fuse_lowlevel.h:807:
+^I *$

ERROR: code indent should never use tabs
#3170: FILE: tools/virtiofsd/fuse_lowlevel.h:808:
+^I * If the size is too small for the value, the ERANGE error should$

ERROR: code indent should never use tabs
#3171: FILE: tools/virtiofsd/fuse_lowlevel.h:809:
+^I * be sent.$

ERROR: code indent should never use tabs
#3172: FILE: tools/virtiofsd/fuse_lowlevel.h:810:
+^I *$

ERROR: code indent should never use tabs
#3173: FILE: tools/virtiofsd/fuse_lowlevel.h:811:
+^I * If this request is answered with an error code of ENOSYS, this is$

ERROR: code indent should never use tabs
#3174: FILE: tools/virtiofsd/fuse_lowlevel.h:812:
+^I * treated as a permanent failure with error code EOPNOTSUPP, i.e. all$

ERROR: code indent should never use tabs
#3175: FILE: tools/virtiofsd/fuse_lowlevel.h:813:
+^I * future getxattr() requests will fail with EOPNOTSUPP without being$

ERROR: code indent should never use tabs
#3176: FILE: tools/virtiofsd/fuse_lowlevel.h:814:
+^I * send to the filesystem process.$

ERROR: code indent should never use tabs
#3177: FILE: tools/virtiofsd/fuse_lowlevel.h:815:
+^I *$

ERROR: code indent should never use tabs
#3178: FILE: tools/virtiofsd/fuse_lowlevel.h:816:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3179: FILE: tools/virtiofsd/fuse_lowlevel.h:817:
+^I *   fuse_reply_buf$

ERROR: code indent should never use tabs
#3180: FILE: tools/virtiofsd/fuse_lowlevel.h:818:
+^I *   fuse_reply_data$

ERROR: code indent should never use tabs
#3181: FILE: tools/virtiofsd/fuse_lowlevel.h:819:
+^I *   fuse_reply_xattr$

ERROR: code indent should never use tabs
#3182: FILE: tools/virtiofsd/fuse_lowlevel.h:820:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3183: FILE: tools/virtiofsd/fuse_lowlevel.h:821:
+^I *$

ERROR: code indent should never use tabs
#3184: FILE: tools/virtiofsd/fuse_lowlevel.h:822:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3185: FILE: tools/virtiofsd/fuse_lowlevel.h:823:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3186: FILE: tools/virtiofsd/fuse_lowlevel.h:824:
+^I * @param name of the extended attribute$

ERROR: code indent should never use tabs
#3187: FILE: tools/virtiofsd/fuse_lowlevel.h:825:
+^I * @param size maximum size of the value to send$

ERROR: code indent should never use tabs
#3188: FILE: tools/virtiofsd/fuse_lowlevel.h:826:
+^I */$

ERROR: code indent should never use tabs
#3189: FILE: tools/virtiofsd/fuse_lowlevel.h:827:
+^Ivoid (*getxattr) (fuse_req_t req, fuse_ino_t ino, const char *name,$

ERROR: code indent should never use tabs
#3190: FILE: tools/virtiofsd/fuse_lowlevel.h:828:
+^I^I^I  size_t size);$

ERROR: code indent should never use tabs
#3192: FILE: tools/virtiofsd/fuse_lowlevel.h:830:
+^I/**$

ERROR: code indent should never use tabs
#3193: FILE: tools/virtiofsd/fuse_lowlevel.h:831:
+^I * List extended attribute names$

ERROR: code indent should never use tabs
#3194: FILE: tools/virtiofsd/fuse_lowlevel.h:832:
+^I *$

ERROR: code indent should never use tabs
#3195: FILE: tools/virtiofsd/fuse_lowlevel.h:833:
+^I * If size is zero, the total size of the attribute list should be$

ERROR: code indent should never use tabs
#3196: FILE: tools/virtiofsd/fuse_lowlevel.h:834:
+^I * sent with fuse_reply_xattr.$

ERROR: code indent should never use tabs
#3197: FILE: tools/virtiofsd/fuse_lowlevel.h:835:
+^I *$

ERROR: code indent should never use tabs
#3198: FILE: tools/virtiofsd/fuse_lowlevel.h:836:
+^I * If the size is non-zero, and the null character separated$

ERROR: code indent should never use tabs
#3199: FILE: tools/virtiofsd/fuse_lowlevel.h:837:
+^I * attribute list fits in the buffer, the list should be sent with$

ERROR: code indent should never use tabs
#3200: FILE: tools/virtiofsd/fuse_lowlevel.h:838:
+^I * fuse_reply_buf.$

ERROR: code indent should never use tabs
#3201: FILE: tools/virtiofsd/fuse_lowlevel.h:839:
+^I *$

ERROR: code indent should never use tabs
#3202: FILE: tools/virtiofsd/fuse_lowlevel.h:840:
+^I * If the size is too small for the list, the ERANGE error should$

ERROR: code indent should never use tabs
#3203: FILE: tools/virtiofsd/fuse_lowlevel.h:841:
+^I * be sent.$

ERROR: code indent should never use tabs
#3204: FILE: tools/virtiofsd/fuse_lowlevel.h:842:
+^I *$

ERROR: code indent should never use tabs
#3205: FILE: tools/virtiofsd/fuse_lowlevel.h:843:
+^I * If this request is answered with an error code of ENOSYS, this is$

ERROR: code indent should never use tabs
#3206: FILE: tools/virtiofsd/fuse_lowlevel.h:844:
+^I * treated as a permanent failure with error code EOPNOTSUPP, i.e. all$

ERROR: code indent should never use tabs
#3207: FILE: tools/virtiofsd/fuse_lowlevel.h:845:
+^I * future listxattr() requests will fail with EOPNOTSUPP without being$

ERROR: code indent should never use tabs
#3208: FILE: tools/virtiofsd/fuse_lowlevel.h:846:
+^I * send to the filesystem process.$

ERROR: code indent should never use tabs
#3209: FILE: tools/virtiofsd/fuse_lowlevel.h:847:
+^I *$

ERROR: code indent should never use tabs
#3210: FILE: tools/virtiofsd/fuse_lowlevel.h:848:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3211: FILE: tools/virtiofsd/fuse_lowlevel.h:849:
+^I *   fuse_reply_buf$

ERROR: code indent should never use tabs
#3212: FILE: tools/virtiofsd/fuse_lowlevel.h:850:
+^I *   fuse_reply_data$

ERROR: code indent should never use tabs
#3213: FILE: tools/virtiofsd/fuse_lowlevel.h:851:
+^I *   fuse_reply_xattr$

ERROR: code indent should never use tabs
#3214: FILE: tools/virtiofsd/fuse_lowlevel.h:852:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3215: FILE: tools/virtiofsd/fuse_lowlevel.h:853:
+^I *$

ERROR: code indent should never use tabs
#3216: FILE: tools/virtiofsd/fuse_lowlevel.h:854:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3217: FILE: tools/virtiofsd/fuse_lowlevel.h:855:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3218: FILE: tools/virtiofsd/fuse_lowlevel.h:856:
+^I * @param size maximum size of the list to send$

ERROR: code indent should never use tabs
#3219: FILE: tools/virtiofsd/fuse_lowlevel.h:857:
+^I */$

ERROR: code indent should never use tabs
#3220: FILE: tools/virtiofsd/fuse_lowlevel.h:858:
+^Ivoid (*listxattr) (fuse_req_t req, fuse_ino_t ino, size_t size);$

ERROR: code indent should never use tabs
#3222: FILE: tools/virtiofsd/fuse_lowlevel.h:860:
+^I/**$

ERROR: code indent should never use tabs
#3223: FILE: tools/virtiofsd/fuse_lowlevel.h:861:
+^I * Remove an extended attribute$

ERROR: code indent should never use tabs
#3224: FILE: tools/virtiofsd/fuse_lowlevel.h:862:
+^I *$

ERROR: code indent should never use tabs
#3225: FILE: tools/virtiofsd/fuse_lowlevel.h:863:
+^I * If this request is answered with an error code of ENOSYS, this is$

ERROR: code indent should never use tabs
#3226: FILE: tools/virtiofsd/fuse_lowlevel.h:864:
+^I * treated as a permanent failure with error code EOPNOTSUPP, i.e. all$

ERROR: code indent should never use tabs
#3227: FILE: tools/virtiofsd/fuse_lowlevel.h:865:
+^I * future removexattr() requests will fail with EOPNOTSUPP without being$

ERROR: code indent should never use tabs
#3228: FILE: tools/virtiofsd/fuse_lowlevel.h:866:
+^I * send to the filesystem process.$

ERROR: code indent should never use tabs
#3229: FILE: tools/virtiofsd/fuse_lowlevel.h:867:
+^I *$

ERROR: code indent should never use tabs
#3230: FILE: tools/virtiofsd/fuse_lowlevel.h:868:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3231: FILE: tools/virtiofsd/fuse_lowlevel.h:869:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3232: FILE: tools/virtiofsd/fuse_lowlevel.h:870:
+^I *$

ERROR: code indent should never use tabs
#3233: FILE: tools/virtiofsd/fuse_lowlevel.h:871:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3234: FILE: tools/virtiofsd/fuse_lowlevel.h:872:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3235: FILE: tools/virtiofsd/fuse_lowlevel.h:873:
+^I * @param name of the extended attribute$

ERROR: code indent should never use tabs
#3236: FILE: tools/virtiofsd/fuse_lowlevel.h:874:
+^I */$

ERROR: code indent should never use tabs
#3237: FILE: tools/virtiofsd/fuse_lowlevel.h:875:
+^Ivoid (*removexattr) (fuse_req_t req, fuse_ino_t ino, const char *name);$

ERROR: code indent should never use tabs
#3239: FILE: tools/virtiofsd/fuse_lowlevel.h:877:
+^I/**$

ERROR: code indent should never use tabs
#3240: FILE: tools/virtiofsd/fuse_lowlevel.h:878:
+^I * Check file access permissions$

ERROR: code indent should never use tabs
#3241: FILE: tools/virtiofsd/fuse_lowlevel.h:879:
+^I *$

ERROR: code indent should never use tabs
#3242: FILE: tools/virtiofsd/fuse_lowlevel.h:880:
+^I * This will be called for the access() and chdir() system$

ERROR: code indent should never use tabs
#3243: FILE: tools/virtiofsd/fuse_lowlevel.h:881:
+^I * calls.  If the 'default_permissions' mount option is given,$

ERROR: code indent should never use tabs
#3244: FILE: tools/virtiofsd/fuse_lowlevel.h:882:
+^I * this method is not called.$

ERROR: code indent should never use tabs
#3245: FILE: tools/virtiofsd/fuse_lowlevel.h:883:
+^I *$

ERROR: code indent should never use tabs
#3246: FILE: tools/virtiofsd/fuse_lowlevel.h:884:
+^I * This method is not called under Linux kernel versions 2.4.x$

ERROR: code indent should never use tabs
#3247: FILE: tools/virtiofsd/fuse_lowlevel.h:885:
+^I *$

ERROR: code indent should never use tabs
#3248: FILE: tools/virtiofsd/fuse_lowlevel.h:886:
+^I * If this request is answered with an error code of ENOSYS, this is$

ERROR: code indent should never use tabs
#3249: FILE: tools/virtiofsd/fuse_lowlevel.h:887:
+^I * treated as a permanent success, i.e. this and all future access()$

ERROR: code indent should never use tabs
#3250: FILE: tools/virtiofsd/fuse_lowlevel.h:888:
+^I * requests will succeed without being send to the filesystem process.$

ERROR: code indent should never use tabs
#3251: FILE: tools/virtiofsd/fuse_lowlevel.h:889:
+^I *$

ERROR: code indent should never use tabs
#3252: FILE: tools/virtiofsd/fuse_lowlevel.h:890:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3253: FILE: tools/virtiofsd/fuse_lowlevel.h:891:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3254: FILE: tools/virtiofsd/fuse_lowlevel.h:892:
+^I *$

ERROR: code indent should never use tabs
#3255: FILE: tools/virtiofsd/fuse_lowlevel.h:893:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3256: FILE: tools/virtiofsd/fuse_lowlevel.h:894:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3257: FILE: tools/virtiofsd/fuse_lowlevel.h:895:
+^I * @param mask requested access mode$

ERROR: code indent should never use tabs
#3258: FILE: tools/virtiofsd/fuse_lowlevel.h:896:
+^I */$

ERROR: code indent should never use tabs
#3259: FILE: tools/virtiofsd/fuse_lowlevel.h:897:
+^Ivoid (*access) (fuse_req_t req, fuse_ino_t ino, int mask);$

ERROR: code indent should never use tabs
#3261: FILE: tools/virtiofsd/fuse_lowlevel.h:899:
+^I/**$

ERROR: code indent should never use tabs
#3262: FILE: tools/virtiofsd/fuse_lowlevel.h:900:
+^I * Create and open a file$

ERROR: code indent should never use tabs
#3263: FILE: tools/virtiofsd/fuse_lowlevel.h:901:
+^I *$

ERROR: code indent should never use tabs
#3264: FILE: tools/virtiofsd/fuse_lowlevel.h:902:
+^I * If the file does not exist, first create it with the specified$

ERROR: code indent should never use tabs
#3265: FILE: tools/virtiofsd/fuse_lowlevel.h:903:
+^I * mode, and then open it.$

ERROR: code indent should never use tabs
#3266: FILE: tools/virtiofsd/fuse_lowlevel.h:904:
+^I *$

ERROR: code indent should never use tabs
#3267: FILE: tools/virtiofsd/fuse_lowlevel.h:905:
+^I * See the description of the open handler for more$

ERROR: code indent should never use tabs
#3268: FILE: tools/virtiofsd/fuse_lowlevel.h:906:
+^I * information.$

ERROR: code indent should never use tabs
#3269: FILE: tools/virtiofsd/fuse_lowlevel.h:907:
+^I *$

ERROR: code indent should never use tabs
#3270: FILE: tools/virtiofsd/fuse_lowlevel.h:908:
+^I * If this method is not implemented or under Linux kernel$

ERROR: code indent should never use tabs
#3271: FILE: tools/virtiofsd/fuse_lowlevel.h:909:
+^I * versions earlier than 2.6.15, the mknod() and open() methods$

ERROR: code indent should never use tabs
#3272: FILE: tools/virtiofsd/fuse_lowlevel.h:910:
+^I * will be called instead.$

ERROR: code indent should never use tabs
#3273: FILE: tools/virtiofsd/fuse_lowlevel.h:911:
+^I *$

ERROR: code indent should never use tabs
#3274: FILE: tools/virtiofsd/fuse_lowlevel.h:912:
+^I * If this request is answered with an error code of ENOSYS, the handler$

ERROR: code indent should never use tabs
#3275: FILE: tools/virtiofsd/fuse_lowlevel.h:913:
+^I * is treated as not implemented (i.e., for this and future requests the$

ERROR: code indent should never use tabs
#3276: FILE: tools/virtiofsd/fuse_lowlevel.h:914:
+^I * mknod() and open() handlers will be called instead).$

ERROR: code indent should never use tabs
#3277: FILE: tools/virtiofsd/fuse_lowlevel.h:915:
+^I *$

ERROR: code indent should never use tabs
#3278: FILE: tools/virtiofsd/fuse_lowlevel.h:916:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3279: FILE: tools/virtiofsd/fuse_lowlevel.h:917:
+^I *   fuse_reply_create$

ERROR: code indent should never use tabs
#3280: FILE: tools/virtiofsd/fuse_lowlevel.h:918:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3281: FILE: tools/virtiofsd/fuse_lowlevel.h:919:
+^I *$

ERROR: code indent should never use tabs
#3282: FILE: tools/virtiofsd/fuse_lowlevel.h:920:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3283: FILE: tools/virtiofsd/fuse_lowlevel.h:921:
+^I * @param parent inode number of the parent directory$

ERROR: code indent should never use tabs
#3284: FILE: tools/virtiofsd/fuse_lowlevel.h:922:
+^I * @param name to create$

ERROR: code indent should never use tabs
#3285: FILE: tools/virtiofsd/fuse_lowlevel.h:923:
+^I * @param mode file type and mode with which to create the new file$

ERROR: code indent should never use tabs
#3286: FILE: tools/virtiofsd/fuse_lowlevel.h:924:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3287: FILE: tools/virtiofsd/fuse_lowlevel.h:925:
+^I */$

ERROR: code indent should never use tabs
#3288: FILE: tools/virtiofsd/fuse_lowlevel.h:926:
+^Ivoid (*create) (fuse_req_t req, fuse_ino_t parent, const char *name,$

ERROR: code indent should never use tabs
#3289: FILE: tools/virtiofsd/fuse_lowlevel.h:927:
+^I^I^Imode_t mode, struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3291: FILE: tools/virtiofsd/fuse_lowlevel.h:929:
+^I/**$

ERROR: code indent should never use tabs
#3292: FILE: tools/virtiofsd/fuse_lowlevel.h:930:
+^I * Test for a POSIX file lock$

ERROR: code indent should never use tabs
#3293: FILE: tools/virtiofsd/fuse_lowlevel.h:931:
+^I *$

ERROR: code indent should never use tabs
#3294: FILE: tools/virtiofsd/fuse_lowlevel.h:932:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3295: FILE: tools/virtiofsd/fuse_lowlevel.h:933:
+^I *   fuse_reply_lock$

ERROR: code indent should never use tabs
#3296: FILE: tools/virtiofsd/fuse_lowlevel.h:934:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3297: FILE: tools/virtiofsd/fuse_lowlevel.h:935:
+^I *$

ERROR: code indent should never use tabs
#3298: FILE: tools/virtiofsd/fuse_lowlevel.h:936:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3299: FILE: tools/virtiofsd/fuse_lowlevel.h:937:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3300: FILE: tools/virtiofsd/fuse_lowlevel.h:938:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3301: FILE: tools/virtiofsd/fuse_lowlevel.h:939:
+^I * @param lock the region/type to test$

ERROR: code indent should never use tabs
#3302: FILE: tools/virtiofsd/fuse_lowlevel.h:940:
+^I */$

ERROR: code indent should never use tabs
#3303: FILE: tools/virtiofsd/fuse_lowlevel.h:941:
+^Ivoid (*getlk) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#3304: FILE: tools/virtiofsd/fuse_lowlevel.h:942:
+^I^I       struct fuse_file_info *fi, struct flock *lock);$

ERROR: code indent should never use tabs
#3306: FILE: tools/virtiofsd/fuse_lowlevel.h:944:
+^I/**$

ERROR: code indent should never use tabs
#3307: FILE: tools/virtiofsd/fuse_lowlevel.h:945:
+^I * Acquire, modify or release a POSIX file lock$

ERROR: code indent should never use tabs
#3308: FILE: tools/virtiofsd/fuse_lowlevel.h:946:
+^I *$

ERROR: code indent should never use tabs
#3309: FILE: tools/virtiofsd/fuse_lowlevel.h:947:
+^I * For POSIX threads (NPTL) there's a 1-1 relation between pid and$

ERROR: code indent should never use tabs
#3310: FILE: tools/virtiofsd/fuse_lowlevel.h:948:
+^I * owner, but otherwise this is not always the case.  For checking$

ERROR: code indent should never use tabs
#3311: FILE: tools/virtiofsd/fuse_lowlevel.h:949:
+^I * lock ownership, 'fi->owner' must be used.  The l_pid field in$

ERROR: code indent should never use tabs
#3312: FILE: tools/virtiofsd/fuse_lowlevel.h:950:
+^I * 'struct flock' should only be used to fill in this field in$

ERROR: code indent should never use tabs
#3313: FILE: tools/virtiofsd/fuse_lowlevel.h:951:
+^I * getlk().$

ERROR: code indent should never use tabs
#3314: FILE: tools/virtiofsd/fuse_lowlevel.h:952:
+^I *$

ERROR: code indent should never use tabs
#3315: FILE: tools/virtiofsd/fuse_lowlevel.h:953:
+^I * Note: if the locking methods are not implemented, the kernel$

ERROR: code indent should never use tabs
#3316: FILE: tools/virtiofsd/fuse_lowlevel.h:954:
+^I * will still allow file locking to work locally.  Hence these are$

ERROR: code indent should never use tabs
#3317: FILE: tools/virtiofsd/fuse_lowlevel.h:955:
+^I * only interesting for network filesystems and similar.$

ERROR: code indent should never use tabs
#3318: FILE: tools/virtiofsd/fuse_lowlevel.h:956:
+^I *$

ERROR: code indent should never use tabs
#3319: FILE: tools/virtiofsd/fuse_lowlevel.h:957:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3320: FILE: tools/virtiofsd/fuse_lowlevel.h:958:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3321: FILE: tools/virtiofsd/fuse_lowlevel.h:959:
+^I *$

ERROR: code indent should never use tabs
#3322: FILE: tools/virtiofsd/fuse_lowlevel.h:960:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3323: FILE: tools/virtiofsd/fuse_lowlevel.h:961:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3324: FILE: tools/virtiofsd/fuse_lowlevel.h:962:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3325: FILE: tools/virtiofsd/fuse_lowlevel.h:963:
+^I * @param lock the region/type to set$

ERROR: code indent should never use tabs
#3326: FILE: tools/virtiofsd/fuse_lowlevel.h:964:
+^I * @param sleep locking operation may sleep$

ERROR: code indent should never use tabs
#3327: FILE: tools/virtiofsd/fuse_lowlevel.h:965:
+^I */$

ERROR: code indent should never use tabs
#3328: FILE: tools/virtiofsd/fuse_lowlevel.h:966:
+^Ivoid (*setlk) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#3329: FILE: tools/virtiofsd/fuse_lowlevel.h:967:
+^I^I       struct fuse_file_info *fi,$

ERROR: code indent should never use tabs
#3330: FILE: tools/virtiofsd/fuse_lowlevel.h:968:
+^I^I       struct flock *lock, int sleep);$

ERROR: code indent should never use tabs
#3332: FILE: tools/virtiofsd/fuse_lowlevel.h:970:
+^I/**$

ERROR: code indent should never use tabs
#3333: FILE: tools/virtiofsd/fuse_lowlevel.h:971:
+^I * Map block index within file to block index within device$

ERROR: code indent should never use tabs
#3334: FILE: tools/virtiofsd/fuse_lowlevel.h:972:
+^I *$

ERROR: code indent should never use tabs
#3335: FILE: tools/virtiofsd/fuse_lowlevel.h:973:
+^I * Note: This makes sense only for block device backed filesystems$

ERROR: code indent should never use tabs
#3336: FILE: tools/virtiofsd/fuse_lowlevel.h:974:
+^I * mounted with the 'blkdev' option$

ERROR: code indent should never use tabs
#3337: FILE: tools/virtiofsd/fuse_lowlevel.h:975:
+^I *$

ERROR: code indent should never use tabs
#3338: FILE: tools/virtiofsd/fuse_lowlevel.h:976:
+^I * If this request is answered with an error code of ENOSYS, this is$

ERROR: code indent should never use tabs
#3339: FILE: tools/virtiofsd/fuse_lowlevel.h:977:
+^I * treated as a permanent failure, i.e. all future bmap() requests will$

ERROR: code indent should never use tabs
#3340: FILE: tools/virtiofsd/fuse_lowlevel.h:978:
+^I * fail with the same error code without being send to the filesystem$

ERROR: code indent should never use tabs
#3341: FILE: tools/virtiofsd/fuse_lowlevel.h:979:
+^I * process.$

ERROR: code indent should never use tabs
#3342: FILE: tools/virtiofsd/fuse_lowlevel.h:980:
+^I *$

ERROR: code indent should never use tabs
#3343: FILE: tools/virtiofsd/fuse_lowlevel.h:981:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3344: FILE: tools/virtiofsd/fuse_lowlevel.h:982:
+^I *   fuse_reply_bmap$

ERROR: code indent should never use tabs
#3345: FILE: tools/virtiofsd/fuse_lowlevel.h:983:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3346: FILE: tools/virtiofsd/fuse_lowlevel.h:984:
+^I *$

ERROR: code indent should never use tabs
#3347: FILE: tools/virtiofsd/fuse_lowlevel.h:985:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3348: FILE: tools/virtiofsd/fuse_lowlevel.h:986:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3349: FILE: tools/virtiofsd/fuse_lowlevel.h:987:
+^I * @param blocksize unit of block index$

ERROR: code indent should never use tabs
#3350: FILE: tools/virtiofsd/fuse_lowlevel.h:988:
+^I * @param idx block index within file$

ERROR: code indent should never use tabs
#3351: FILE: tools/virtiofsd/fuse_lowlevel.h:989:
+^I */$

ERROR: code indent should never use tabs
#3352: FILE: tools/virtiofsd/fuse_lowlevel.h:990:
+^Ivoid (*bmap) (fuse_req_t req, fuse_ino_t ino, size_t blocksize,$

ERROR: code indent should never use tabs
#3353: FILE: tools/virtiofsd/fuse_lowlevel.h:991:
+^I^I      uint64_t idx);$

ERROR: code indent should never use tabs
#3355: FILE: tools/virtiofsd/fuse_lowlevel.h:993:
+^I/**$

ERROR: code indent should never use tabs
#3356: FILE: tools/virtiofsd/fuse_lowlevel.h:994:
+^I * Ioctl$

ERROR: code indent should never use tabs
#3357: FILE: tools/virtiofsd/fuse_lowlevel.h:995:
+^I *$

ERROR: code indent should never use tabs
#3358: FILE: tools/virtiofsd/fuse_lowlevel.h:996:
+^I * Note: For unrestricted ioctls (not allowed for FUSE$

ERROR: code indent should never use tabs
#3359: FILE: tools/virtiofsd/fuse_lowlevel.h:997:
+^I * servers), data in and out areas can be discovered by giving$

ERROR: code indent should never use tabs
#3360: FILE: tools/virtiofsd/fuse_lowlevel.h:998:
+^I * iovs and setting FUSE_IOCTL_RETRY in *flags*.  For$

ERROR: code indent should never use tabs
#3361: FILE: tools/virtiofsd/fuse_lowlevel.h:999:
+^I * restricted ioctls, kernel prepares in/out data area$

ERROR: code indent should never use tabs
#3362: FILE: tools/virtiofsd/fuse_lowlevel.h:1000:
+^I * according to the information encoded in cmd.$

ERROR: code indent should never use tabs
#3363: FILE: tools/virtiofsd/fuse_lowlevel.h:1001:
+^I *$

ERROR: code indent should never use tabs
#3364: FILE: tools/virtiofsd/fuse_lowlevel.h:1002:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3365: FILE: tools/virtiofsd/fuse_lowlevel.h:1003:
+^I *   fuse_reply_ioctl_retry$

ERROR: code indent should never use tabs
#3366: FILE: tools/virtiofsd/fuse_lowlevel.h:1004:
+^I *   fuse_reply_ioctl$

ERROR: code indent should never use tabs
#3367: FILE: tools/virtiofsd/fuse_lowlevel.h:1005:
+^I *   fuse_reply_ioctl_iov$

ERROR: code indent should never use tabs
#3368: FILE: tools/virtiofsd/fuse_lowlevel.h:1006:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3369: FILE: tools/virtiofsd/fuse_lowlevel.h:1007:
+^I *$

ERROR: code indent should never use tabs
#3370: FILE: tools/virtiofsd/fuse_lowlevel.h:1008:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3371: FILE: tools/virtiofsd/fuse_lowlevel.h:1009:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3372: FILE: tools/virtiofsd/fuse_lowlevel.h:1010:
+^I * @param cmd ioctl command$

ERROR: code indent should never use tabs
#3373: FILE: tools/virtiofsd/fuse_lowlevel.h:1011:
+^I * @param arg ioctl argument$

ERROR: code indent should never use tabs
#3374: FILE: tools/virtiofsd/fuse_lowlevel.h:1012:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3375: FILE: tools/virtiofsd/fuse_lowlevel.h:1013:
+^I * @param flags for FUSE_IOCTL_* flags$

ERROR: code indent should never use tabs
#3376: FILE: tools/virtiofsd/fuse_lowlevel.h:1014:
+^I * @param in_buf data fetched from the caller$

ERROR: code indent should never use tabs
#3377: FILE: tools/virtiofsd/fuse_lowlevel.h:1015:
+^I * @param in_bufsz number of fetched bytes$

ERROR: code indent should never use tabs
#3378: FILE: tools/virtiofsd/fuse_lowlevel.h:1016:
+^I * @param out_bufsz maximum size of output data$

ERROR: code indent should never use tabs
#3379: FILE: tools/virtiofsd/fuse_lowlevel.h:1017:
+^I *$

ERROR: code indent should never use tabs
#3380: FILE: tools/virtiofsd/fuse_lowlevel.h:1018:
+^I * Note : the unsigned long request submitted by the application$

ERROR: code indent should never use tabs
#3381: FILE: tools/virtiofsd/fuse_lowlevel.h:1019:
+^I * is truncated to 32 bits.$

ERROR: code indent should never use tabs
#3382: FILE: tools/virtiofsd/fuse_lowlevel.h:1020:
+^I */$

ERROR: code indent should never use tabs
#3383: FILE: tools/virtiofsd/fuse_lowlevel.h:1021:
+^Ivoid (*ioctl) (fuse_req_t req, fuse_ino_t ino, unsigned int cmd,$

ERROR: code indent should never use tabs
#3384: FILE: tools/virtiofsd/fuse_lowlevel.h:1022:
+^I^I       void *arg, struct fuse_file_info *fi, unsigned flags,$

ERROR: code indent should never use tabs
#3385: FILE: tools/virtiofsd/fuse_lowlevel.h:1023:
+^I^I       const void *in_buf, size_t in_bufsz, size_t out_bufsz);$

ERROR: code indent should never use tabs
#3387: FILE: tools/virtiofsd/fuse_lowlevel.h:1025:
+^I/**$

ERROR: code indent should never use tabs
#3388: FILE: tools/virtiofsd/fuse_lowlevel.h:1026:
+^I * Poll for IO readiness$

ERROR: code indent should never use tabs
#3389: FILE: tools/virtiofsd/fuse_lowlevel.h:1027:
+^I *$

ERROR: code indent should never use tabs
#3390: FILE: tools/virtiofsd/fuse_lowlevel.h:1028:
+^I * Note: If ph is non-NULL, the client should notify$

ERROR: code indent should never use tabs
#3391: FILE: tools/virtiofsd/fuse_lowlevel.h:1029:
+^I * when IO readiness events occur by calling$

ERROR: code indent should never use tabs
#3392: FILE: tools/virtiofsd/fuse_lowlevel.h:1030:
+^I * fuse_lowlevel_notify_poll() with the specified ph.$

ERROR: code indent should never use tabs
#3393: FILE: tools/virtiofsd/fuse_lowlevel.h:1031:
+^I *$

ERROR: code indent should never use tabs
#3394: FILE: tools/virtiofsd/fuse_lowlevel.h:1032:
+^I * Regardless of the number of times poll with a non-NULL ph$

ERROR: code indent should never use tabs
#3395: FILE: tools/virtiofsd/fuse_lowlevel.h:1033:
+^I * is received, single notification is enough to clear all.$

ERROR: code indent should never use tabs
#3396: FILE: tools/virtiofsd/fuse_lowlevel.h:1034:
+^I * Notifying more times incurs overhead but doesn't harm$

ERROR: code indent should never use tabs
#3397: FILE: tools/virtiofsd/fuse_lowlevel.h:1035:
+^I * correctness.$

ERROR: code indent should never use tabs
#3398: FILE: tools/virtiofsd/fuse_lowlevel.h:1036:
+^I *$

ERROR: code indent should never use tabs
#3399: FILE: tools/virtiofsd/fuse_lowlevel.h:1037:
+^I * The callee is responsible for destroying ph with$

ERROR: code indent should never use tabs
#3400: FILE: tools/virtiofsd/fuse_lowlevel.h:1038:
+^I * fuse_pollhandle_destroy() when no longer in use.$

ERROR: code indent should never use tabs
#3401: FILE: tools/virtiofsd/fuse_lowlevel.h:1039:
+^I *$

ERROR: code indent should never use tabs
#3402: FILE: tools/virtiofsd/fuse_lowlevel.h:1040:
+^I * If this request is answered with an error code of ENOSYS, this is$

ERROR: code indent should never use tabs
#3403: FILE: tools/virtiofsd/fuse_lowlevel.h:1041:
+^I * treated as success (with a kernel-defined default poll-mask) and$

ERROR: code indent should never use tabs
#3404: FILE: tools/virtiofsd/fuse_lowlevel.h:1042:
+^I * future calls to pull() will succeed the same way without being send$

ERROR: code indent should never use tabs
#3405: FILE: tools/virtiofsd/fuse_lowlevel.h:1043:
+^I * to the filesystem process.$

ERROR: code indent should never use tabs
#3406: FILE: tools/virtiofsd/fuse_lowlevel.h:1044:
+^I *$

ERROR: code indent should never use tabs
#3407: FILE: tools/virtiofsd/fuse_lowlevel.h:1045:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3408: FILE: tools/virtiofsd/fuse_lowlevel.h:1046:
+^I *   fuse_reply_poll$

ERROR: code indent should never use tabs
#3409: FILE: tools/virtiofsd/fuse_lowlevel.h:1047:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3410: FILE: tools/virtiofsd/fuse_lowlevel.h:1048:
+^I *$

ERROR: code indent should never use tabs
#3411: FILE: tools/virtiofsd/fuse_lowlevel.h:1049:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3412: FILE: tools/virtiofsd/fuse_lowlevel.h:1050:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3413: FILE: tools/virtiofsd/fuse_lowlevel.h:1051:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3414: FILE: tools/virtiofsd/fuse_lowlevel.h:1052:
+^I * @param ph poll handle to be used for notification$

ERROR: code indent should never use tabs
#3415: FILE: tools/virtiofsd/fuse_lowlevel.h:1053:
+^I */$

ERROR: code indent should never use tabs
#3416: FILE: tools/virtiofsd/fuse_lowlevel.h:1054:
+^Ivoid (*poll) (fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi,$

ERROR: code indent should never use tabs
#3417: FILE: tools/virtiofsd/fuse_lowlevel.h:1055:
+^I^I      struct fuse_pollhandle *ph);$

ERROR: code indent should never use tabs
#3419: FILE: tools/virtiofsd/fuse_lowlevel.h:1057:
+^I/**$

ERROR: code indent should never use tabs
#3420: FILE: tools/virtiofsd/fuse_lowlevel.h:1058:
+^I * Write data made available in a buffer$

ERROR: code indent should never use tabs
#3421: FILE: tools/virtiofsd/fuse_lowlevel.h:1059:
+^I *$

ERROR: code indent should never use tabs
#3422: FILE: tools/virtiofsd/fuse_lowlevel.h:1060:
+^I * This is a more generic version of the ->write() method.  If$

ERROR: code indent should never use tabs
#3423: FILE: tools/virtiofsd/fuse_lowlevel.h:1061:
+^I * FUSE_CAP_SPLICE_READ is set in fuse_conn_info.want and the$

ERROR: code indent should never use tabs
#3424: FILE: tools/virtiofsd/fuse_lowlevel.h:1062:
+^I * kernel supports splicing from the fuse device, then the$

ERROR: code indent should never use tabs
#3425: FILE: tools/virtiofsd/fuse_lowlevel.h:1063:
+^I * data will be made available in pipe for supporting zero$

ERROR: code indent should never use tabs
#3426: FILE: tools/virtiofsd/fuse_lowlevel.h:1064:
+^I * copy data transfer.$

ERROR: code indent should never use tabs
#3427: FILE: tools/virtiofsd/fuse_lowlevel.h:1065:
+^I *$

ERROR: code indent should never use tabs
#3428: FILE: tools/virtiofsd/fuse_lowlevel.h:1066:
+^I * buf->count is guaranteed to be one (and thus buf->idx is$

ERROR: code indent should never use tabs
#3429: FILE: tools/virtiofsd/fuse_lowlevel.h:1067:
+^I * always zero). The write_buf handler must ensure that$

ERROR: code indent should never use tabs
#3430: FILE: tools/virtiofsd/fuse_lowlevel.h:1068:
+^I * bufv->off is correctly updated (reflecting the number of$

ERROR: code indent should never use tabs
#3431: FILE: tools/virtiofsd/fuse_lowlevel.h:1069:
+^I * bytes read from bufv->buf[0]).$

ERROR: code indent should never use tabs
#3432: FILE: tools/virtiofsd/fuse_lowlevel.h:1070:
+^I *$

ERROR: code indent should never use tabs
#3433: FILE: tools/virtiofsd/fuse_lowlevel.h:1071:
+^I * Unless FUSE_CAP_HANDLE_KILLPRIV is disabled, this method is$

ERROR: code indent should never use tabs
#3434: FILE: tools/virtiofsd/fuse_lowlevel.h:1072:
+^I * expected to reset the setuid and setgid bits.$

ERROR: code indent should never use tabs
#3435: FILE: tools/virtiofsd/fuse_lowlevel.h:1073:
+^I *$

ERROR: code indent should never use tabs
#3436: FILE: tools/virtiofsd/fuse_lowlevel.h:1074:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3437: FILE: tools/virtiofsd/fuse_lowlevel.h:1075:
+^I *   fuse_reply_write$

ERROR: code indent should never use tabs
#3438: FILE: tools/virtiofsd/fuse_lowlevel.h:1076:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3439: FILE: tools/virtiofsd/fuse_lowlevel.h:1077:
+^I *$

ERROR: code indent should never use tabs
#3440: FILE: tools/virtiofsd/fuse_lowlevel.h:1078:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3441: FILE: tools/virtiofsd/fuse_lowlevel.h:1079:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3442: FILE: tools/virtiofsd/fuse_lowlevel.h:1080:
+^I * @param bufv buffer containing the data$

ERROR: code indent should never use tabs
#3443: FILE: tools/virtiofsd/fuse_lowlevel.h:1081:
+^I * @param off offset to write to$

ERROR: code indent should never use tabs
#3444: FILE: tools/virtiofsd/fuse_lowlevel.h:1082:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3445: FILE: tools/virtiofsd/fuse_lowlevel.h:1083:
+^I */$

ERROR: code indent should never use tabs
#3446: FILE: tools/virtiofsd/fuse_lowlevel.h:1084:
+^Ivoid (*write_buf) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#3447: FILE: tools/virtiofsd/fuse_lowlevel.h:1085:
+^I^I^I   struct fuse_bufvec *bufv, off_t off,$

ERROR: code indent should never use tabs
#3448: FILE: tools/virtiofsd/fuse_lowlevel.h:1086:
+^I^I^I   struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3450: FILE: tools/virtiofsd/fuse_lowlevel.h:1088:
+^I/**$

ERROR: code indent should never use tabs
#3451: FILE: tools/virtiofsd/fuse_lowlevel.h:1089:
+^I * Callback function for the retrieve request$

ERROR: code indent should never use tabs
#3452: FILE: tools/virtiofsd/fuse_lowlevel.h:1090:
+^I *$

ERROR: code indent should never use tabs
#3453: FILE: tools/virtiofsd/fuse_lowlevel.h:1091:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3454: FILE: tools/virtiofsd/fuse_lowlevel.h:1092:
+^I *^Ifuse_reply_none$

ERROR: code indent should never use tabs
#3455: FILE: tools/virtiofsd/fuse_lowlevel.h:1093:
+^I *$

ERROR: code indent should never use tabs
#3456: FILE: tools/virtiofsd/fuse_lowlevel.h:1094:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3457: FILE: tools/virtiofsd/fuse_lowlevel.h:1095:
+^I * @param cookie user data supplied to fuse_lowlevel_notify_retrieve()$

WARNING: line over 80 characters
#3458: FILE: tools/virtiofsd/fuse_lowlevel.h:1096:
+        * @param ino the inode number supplied to fuse_lowlevel_notify_retrieve()

ERROR: code indent should never use tabs
#3458: FILE: tools/virtiofsd/fuse_lowlevel.h:1096:
+^I * @param ino the inode number supplied to fuse_lowlevel_notify_retrieve()$

ERROR: code indent should never use tabs
#3459: FILE: tools/virtiofsd/fuse_lowlevel.h:1097:
+^I * @param offset the offset supplied to fuse_lowlevel_notify_retrieve()$

ERROR: code indent should never use tabs
#3460: FILE: tools/virtiofsd/fuse_lowlevel.h:1098:
+^I * @param bufv the buffer containing the returned data$

ERROR: code indent should never use tabs
#3461: FILE: tools/virtiofsd/fuse_lowlevel.h:1099:
+^I */$

ERROR: code indent should never use tabs
#3462: FILE: tools/virtiofsd/fuse_lowlevel.h:1100:
+^Ivoid (*retrieve_reply) (fuse_req_t req, void *cookie, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#3463: FILE: tools/virtiofsd/fuse_lowlevel.h:1101:
+^I^I^I^Ioff_t offset, struct fuse_bufvec *bufv);$

ERROR: code indent should never use tabs
#3465: FILE: tools/virtiofsd/fuse_lowlevel.h:1103:
+^I/**$

ERROR: code indent should never use tabs
#3466: FILE: tools/virtiofsd/fuse_lowlevel.h:1104:
+^I * Forget about multiple inodes$

ERROR: code indent should never use tabs
#3467: FILE: tools/virtiofsd/fuse_lowlevel.h:1105:
+^I *$

ERROR: code indent should never use tabs
#3468: FILE: tools/virtiofsd/fuse_lowlevel.h:1106:
+^I * See description of the forget function for more$

ERROR: code indent should never use tabs
#3469: FILE: tools/virtiofsd/fuse_lowlevel.h:1107:
+^I * information.$

ERROR: code indent should never use tabs
#3470: FILE: tools/virtiofsd/fuse_lowlevel.h:1108:
+^I *$

ERROR: code indent should never use tabs
#3471: FILE: tools/virtiofsd/fuse_lowlevel.h:1109:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3472: FILE: tools/virtiofsd/fuse_lowlevel.h:1110:
+^I *   fuse_reply_none$

ERROR: code indent should never use tabs
#3473: FILE: tools/virtiofsd/fuse_lowlevel.h:1111:
+^I *$

ERROR: code indent should never use tabs
#3474: FILE: tools/virtiofsd/fuse_lowlevel.h:1112:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3475: FILE: tools/virtiofsd/fuse_lowlevel.h:1113:
+^I */$

ERROR: code indent should never use tabs
#3476: FILE: tools/virtiofsd/fuse_lowlevel.h:1114:
+^Ivoid (*forget_multi) (fuse_req_t req, size_t count,$

ERROR: code indent should never use tabs
#3477: FILE: tools/virtiofsd/fuse_lowlevel.h:1115:
+^I^I^I      struct fuse_forget_data *forgets);$

ERROR: code indent should never use tabs
#3479: FILE: tools/virtiofsd/fuse_lowlevel.h:1117:
+^I/**$

ERROR: code indent should never use tabs
#3480: FILE: tools/virtiofsd/fuse_lowlevel.h:1118:
+^I * Acquire, modify or release a BSD file lock$

ERROR: code indent should never use tabs
#3481: FILE: tools/virtiofsd/fuse_lowlevel.h:1119:
+^I *$

ERROR: code indent should never use tabs
#3482: FILE: tools/virtiofsd/fuse_lowlevel.h:1120:
+^I * Note: if the locking methods are not implemented, the kernel$

ERROR: code indent should never use tabs
#3483: FILE: tools/virtiofsd/fuse_lowlevel.h:1121:
+^I * will still allow file locking to work locally.  Hence these are$

ERROR: code indent should never use tabs
#3484: FILE: tools/virtiofsd/fuse_lowlevel.h:1122:
+^I * only interesting for network filesystems and similar.$

ERROR: code indent should never use tabs
#3485: FILE: tools/virtiofsd/fuse_lowlevel.h:1123:
+^I *$

ERROR: code indent should never use tabs
#3486: FILE: tools/virtiofsd/fuse_lowlevel.h:1124:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3487: FILE: tools/virtiofsd/fuse_lowlevel.h:1125:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3488: FILE: tools/virtiofsd/fuse_lowlevel.h:1126:
+^I *$

ERROR: code indent should never use tabs
#3489: FILE: tools/virtiofsd/fuse_lowlevel.h:1127:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3490: FILE: tools/virtiofsd/fuse_lowlevel.h:1128:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3491: FILE: tools/virtiofsd/fuse_lowlevel.h:1129:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3492: FILE: tools/virtiofsd/fuse_lowlevel.h:1130:
+^I * @param op the locking operation, see flock(2)$

ERROR: code indent should never use tabs
#3493: FILE: tools/virtiofsd/fuse_lowlevel.h:1131:
+^I */$

ERROR: code indent should never use tabs
#3494: FILE: tools/virtiofsd/fuse_lowlevel.h:1132:
+^Ivoid (*flock) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#3495: FILE: tools/virtiofsd/fuse_lowlevel.h:1133:
+^I^I       struct fuse_file_info *fi, int op);$

ERROR: code indent should never use tabs
#3497: FILE: tools/virtiofsd/fuse_lowlevel.h:1135:
+^I/**$

ERROR: code indent should never use tabs
#3498: FILE: tools/virtiofsd/fuse_lowlevel.h:1136:
+^I * Allocate requested space. If this function returns success then$

WARNING: line over 80 characters
#3499: FILE: tools/virtiofsd/fuse_lowlevel.h:1137:
+        * subsequent writes to the specified range shall not fail due to the lack

ERROR: code indent should never use tabs
#3499: FILE: tools/virtiofsd/fuse_lowlevel.h:1137:
+^I * subsequent writes to the specified range shall not fail due to the lack$

ERROR: code indent should never use tabs
#3500: FILE: tools/virtiofsd/fuse_lowlevel.h:1138:
+^I * of free space on the file system storage media.$

ERROR: code indent should never use tabs
#3501: FILE: tools/virtiofsd/fuse_lowlevel.h:1139:
+^I *$

ERROR: code indent should never use tabs
#3502: FILE: tools/virtiofsd/fuse_lowlevel.h:1140:
+^I * If this request is answered with an error code of ENOSYS, this is$

ERROR: code indent should never use tabs
#3503: FILE: tools/virtiofsd/fuse_lowlevel.h:1141:
+^I * treated as a permanent failure with error code EOPNOTSUPP, i.e. all$

ERROR: code indent should never use tabs
#3504: FILE: tools/virtiofsd/fuse_lowlevel.h:1142:
+^I * future fallocate() requests will fail with EOPNOTSUPP without being$

ERROR: code indent should never use tabs
#3505: FILE: tools/virtiofsd/fuse_lowlevel.h:1143:
+^I * send to the filesystem process.$

ERROR: code indent should never use tabs
#3506: FILE: tools/virtiofsd/fuse_lowlevel.h:1144:
+^I *$

ERROR: code indent should never use tabs
#3507: FILE: tools/virtiofsd/fuse_lowlevel.h:1145:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3508: FILE: tools/virtiofsd/fuse_lowlevel.h:1146:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3509: FILE: tools/virtiofsd/fuse_lowlevel.h:1147:
+^I *$

ERROR: code indent should never use tabs
#3510: FILE: tools/virtiofsd/fuse_lowlevel.h:1148:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3511: FILE: tools/virtiofsd/fuse_lowlevel.h:1149:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3512: FILE: tools/virtiofsd/fuse_lowlevel.h:1150:
+^I * @param offset starting point for allocated region$

ERROR: code indent should never use tabs
#3513: FILE: tools/virtiofsd/fuse_lowlevel.h:1151:
+^I * @param length size of allocated region$

WARNING: line over 80 characters
#3514: FILE: tools/virtiofsd/fuse_lowlevel.h:1152:
+        * @param mode determines the operation to be performed on the given range,

ERROR: code indent should never use tabs
#3514: FILE: tools/virtiofsd/fuse_lowlevel.h:1152:
+^I * @param mode determines the operation to be performed on the given range,$

ERROR: code indent should never use tabs
#3515: FILE: tools/virtiofsd/fuse_lowlevel.h:1153:
+^I *             see fallocate(2)$

ERROR: code indent should never use tabs
#3516: FILE: tools/virtiofsd/fuse_lowlevel.h:1154:
+^I */$

ERROR: code indent should never use tabs
#3517: FILE: tools/virtiofsd/fuse_lowlevel.h:1155:
+^Ivoid (*fallocate) (fuse_req_t req, fuse_ino_t ino, int mode,$

ERROR: code indent should never use tabs
#3518: FILE: tools/virtiofsd/fuse_lowlevel.h:1156:
+^I^I       off_t offset, off_t length, struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3520: FILE: tools/virtiofsd/fuse_lowlevel.h:1158:
+^I/**$

ERROR: code indent should never use tabs
#3521: FILE: tools/virtiofsd/fuse_lowlevel.h:1159:
+^I * Read directory with attributes$

ERROR: code indent should never use tabs
#3522: FILE: tools/virtiofsd/fuse_lowlevel.h:1160:
+^I *$

ERROR: code indent should never use tabs
#3523: FILE: tools/virtiofsd/fuse_lowlevel.h:1161:
+^I * Send a buffer filled using fuse_add_direntry_plus(), with size not$

ERROR: code indent should never use tabs
#3524: FILE: tools/virtiofsd/fuse_lowlevel.h:1162:
+^I * exceeding the requested size.  Send an empty buffer on end of$

ERROR: code indent should never use tabs
#3525: FILE: tools/virtiofsd/fuse_lowlevel.h:1163:
+^I * stream.$

ERROR: code indent should never use tabs
#3526: FILE: tools/virtiofsd/fuse_lowlevel.h:1164:
+^I *$

ERROR: code indent should never use tabs
#3527: FILE: tools/virtiofsd/fuse_lowlevel.h:1165:
+^I * fi->fh will contain the value set by the opendir method, or$

ERROR: code indent should never use tabs
#3528: FILE: tools/virtiofsd/fuse_lowlevel.h:1166:
+^I * will be undefined if the opendir method didn't set any value.$

ERROR: code indent should never use tabs
#3529: FILE: tools/virtiofsd/fuse_lowlevel.h:1167:
+^I *$

ERROR: code indent should never use tabs
#3530: FILE: tools/virtiofsd/fuse_lowlevel.h:1168:
+^I * In contrast to readdir() (which does not affect the lookup counts),$

ERROR: code indent should never use tabs
#3531: FILE: tools/virtiofsd/fuse_lowlevel.h:1169:
+^I * the lookup count of every entry returned by readdirplus(), except "."$

ERROR: code indent should never use tabs
#3532: FILE: tools/virtiofsd/fuse_lowlevel.h:1170:
+^I * and "..", is incremented by one.$

ERROR: code indent should never use tabs
#3533: FILE: tools/virtiofsd/fuse_lowlevel.h:1171:
+^I *$

ERROR: code indent should never use tabs
#3534: FILE: tools/virtiofsd/fuse_lowlevel.h:1172:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3535: FILE: tools/virtiofsd/fuse_lowlevel.h:1173:
+^I *   fuse_reply_buf$

ERROR: code indent should never use tabs
#3536: FILE: tools/virtiofsd/fuse_lowlevel.h:1174:
+^I *   fuse_reply_data$

ERROR: code indent should never use tabs
#3537: FILE: tools/virtiofsd/fuse_lowlevel.h:1175:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3538: FILE: tools/virtiofsd/fuse_lowlevel.h:1176:
+^I *$

ERROR: code indent should never use tabs
#3539: FILE: tools/virtiofsd/fuse_lowlevel.h:1177:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3540: FILE: tools/virtiofsd/fuse_lowlevel.h:1178:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3541: FILE: tools/virtiofsd/fuse_lowlevel.h:1179:
+^I * @param size maximum number of bytes to send$

ERROR: code indent should never use tabs
#3542: FILE: tools/virtiofsd/fuse_lowlevel.h:1180:
+^I * @param off offset to continue reading the directory stream$

ERROR: code indent should never use tabs
#3543: FILE: tools/virtiofsd/fuse_lowlevel.h:1181:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3544: FILE: tools/virtiofsd/fuse_lowlevel.h:1182:
+^I */$

WARNING: line over 80 characters
#3545: FILE: tools/virtiofsd/fuse_lowlevel.h:1183:
+       void (*readdirplus) (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off,

ERROR: code indent should never use tabs
#3545: FILE: tools/virtiofsd/fuse_lowlevel.h:1183:
+^Ivoid (*readdirplus) (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off,$

ERROR: code indent should never use tabs
#3546: FILE: tools/virtiofsd/fuse_lowlevel.h:1184:
+^I^I^I struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3548: FILE: tools/virtiofsd/fuse_lowlevel.h:1186:
+^I/**$

ERROR: code indent should never use tabs
#3549: FILE: tools/virtiofsd/fuse_lowlevel.h:1187:
+^I * Copy a range of data from one file to another$

ERROR: code indent should never use tabs
#3550: FILE: tools/virtiofsd/fuse_lowlevel.h:1188:
+^I *$

ERROR: code indent should never use tabs
#3551: FILE: tools/virtiofsd/fuse_lowlevel.h:1189:
+^I * Performs an optimized copy between two file descriptors without the$

ERROR: code indent should never use tabs
#3552: FILE: tools/virtiofsd/fuse_lowlevel.h:1190:
+^I * additional cost of transferring data through the FUSE kernel module$

ERROR: code indent should never use tabs
#3553: FILE: tools/virtiofsd/fuse_lowlevel.h:1191:
+^I * to user space (glibc) and then back into the FUSE filesystem again.$

ERROR: code indent should never use tabs
#3554: FILE: tools/virtiofsd/fuse_lowlevel.h:1192:
+^I *$

ERROR: code indent should never use tabs
#3555: FILE: tools/virtiofsd/fuse_lowlevel.h:1193:
+^I * In case this method is not implemented, glibc falls back to reading$

ERROR: code indent should never use tabs
#3556: FILE: tools/virtiofsd/fuse_lowlevel.h:1194:
+^I * data from the source and writing to the destination. Effectively$

ERROR: code indent should never use tabs
#3557: FILE: tools/virtiofsd/fuse_lowlevel.h:1195:
+^I * doing an inefficient copy of the data.$

ERROR: code indent should never use tabs
#3558: FILE: tools/virtiofsd/fuse_lowlevel.h:1196:
+^I *$

ERROR: code indent should never use tabs
#3559: FILE: tools/virtiofsd/fuse_lowlevel.h:1197:
+^I * If this request is answered with an error code of ENOSYS, this is$

ERROR: code indent should never use tabs
#3560: FILE: tools/virtiofsd/fuse_lowlevel.h:1198:
+^I * treated as a permanent failure with error code EOPNOTSUPP, i.e. all$

ERROR: code indent should never use tabs
#3561: FILE: tools/virtiofsd/fuse_lowlevel.h:1199:
+^I * future copy_file_range() requests will fail with EOPNOTSUPP without$

ERROR: code indent should never use tabs
#3562: FILE: tools/virtiofsd/fuse_lowlevel.h:1200:
+^I * being send to the filesystem process.$

ERROR: code indent should never use tabs
#3563: FILE: tools/virtiofsd/fuse_lowlevel.h:1201:
+^I *$

ERROR: code indent should never use tabs
#3564: FILE: tools/virtiofsd/fuse_lowlevel.h:1202:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3565: FILE: tools/virtiofsd/fuse_lowlevel.h:1203:
+^I *   fuse_reply_write$

ERROR: code indent should never use tabs
#3566: FILE: tools/virtiofsd/fuse_lowlevel.h:1204:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3567: FILE: tools/virtiofsd/fuse_lowlevel.h:1205:
+^I *$

ERROR: code indent should never use tabs
#3568: FILE: tools/virtiofsd/fuse_lowlevel.h:1206:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3569: FILE: tools/virtiofsd/fuse_lowlevel.h:1207:
+^I * @param ino_in the inode number or the source file$

ERROR: code indent should never use tabs
#3570: FILE: tools/virtiofsd/fuse_lowlevel.h:1208:
+^I * @param off_in starting point from were the data should be read$

ERROR: code indent should never use tabs
#3571: FILE: tools/virtiofsd/fuse_lowlevel.h:1209:
+^I * @param fi_in file information of the source file$

ERROR: code indent should never use tabs
#3572: FILE: tools/virtiofsd/fuse_lowlevel.h:1210:
+^I * @param ino_out the inode number or the destination file$

ERROR: code indent should never use tabs
#3573: FILE: tools/virtiofsd/fuse_lowlevel.h:1211:
+^I * @param off_out starting point where the data should be written$

ERROR: code indent should never use tabs
#3574: FILE: tools/virtiofsd/fuse_lowlevel.h:1212:
+^I * @param fi_out file information of the destination file$

ERROR: code indent should never use tabs
#3575: FILE: tools/virtiofsd/fuse_lowlevel.h:1213:
+^I * @param len maximum size of the data to copy$

ERROR: code indent should never use tabs
#3576: FILE: tools/virtiofsd/fuse_lowlevel.h:1214:
+^I * @param flags passed along with the copy_file_range() syscall$

ERROR: code indent should never use tabs
#3577: FILE: tools/virtiofsd/fuse_lowlevel.h:1215:
+^I */$

ERROR: code indent should never use tabs
#3578: FILE: tools/virtiofsd/fuse_lowlevel.h:1216:
+^Ivoid (*copy_file_range) (fuse_req_t req, fuse_ino_t ino_in,$

ERROR: code indent should never use tabs
#3579: FILE: tools/virtiofsd/fuse_lowlevel.h:1217:
+^I^I^I^I off_t off_in, struct fuse_file_info *fi_in,$

ERROR: code indent should never use tabs
#3580: FILE: tools/virtiofsd/fuse_lowlevel.h:1218:
+^I^I^I^I fuse_ino_t ino_out, off_t off_out,$

ERROR: code indent should never use tabs
#3581: FILE: tools/virtiofsd/fuse_lowlevel.h:1219:
+^I^I^I^I struct fuse_file_info *fi_out, size_t len,$

ERROR: code indent should never use tabs
#3582: FILE: tools/virtiofsd/fuse_lowlevel.h:1220:
+^I^I^I^I int flags);$

ERROR: code indent should never use tabs
#3584: FILE: tools/virtiofsd/fuse_lowlevel.h:1222:
+^I/**$

ERROR: code indent should never use tabs
#3585: FILE: tools/virtiofsd/fuse_lowlevel.h:1223:
+^I * Find next data or hole after the specified offset$

ERROR: code indent should never use tabs
#3586: FILE: tools/virtiofsd/fuse_lowlevel.h:1224:
+^I *$

ERROR: code indent should never use tabs
#3587: FILE: tools/virtiofsd/fuse_lowlevel.h:1225:
+^I * If this request is answered with an error code of ENOSYS, this is$

ERROR: code indent should never use tabs
#3588: FILE: tools/virtiofsd/fuse_lowlevel.h:1226:
+^I * treated as a permanent failure, i.e. all future lseek() requests will$

ERROR: code indent should never use tabs
#3589: FILE: tools/virtiofsd/fuse_lowlevel.h:1227:
+^I * fail with the same error code without being send to the filesystem$

ERROR: code indent should never use tabs
#3590: FILE: tools/virtiofsd/fuse_lowlevel.h:1228:
+^I * process.$

ERROR: code indent should never use tabs
#3591: FILE: tools/virtiofsd/fuse_lowlevel.h:1229:
+^I *$

ERROR: code indent should never use tabs
#3592: FILE: tools/virtiofsd/fuse_lowlevel.h:1230:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3593: FILE: tools/virtiofsd/fuse_lowlevel.h:1231:
+^I *   fuse_reply_lseek$

ERROR: code indent should never use tabs
#3594: FILE: tools/virtiofsd/fuse_lowlevel.h:1232:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3595: FILE: tools/virtiofsd/fuse_lowlevel.h:1233:
+^I *$

ERROR: code indent should never use tabs
#3596: FILE: tools/virtiofsd/fuse_lowlevel.h:1234:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3597: FILE: tools/virtiofsd/fuse_lowlevel.h:1235:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3598: FILE: tools/virtiofsd/fuse_lowlevel.h:1236:
+^I * @param off offset to start search from$

ERROR: code indent should never use tabs
#3599: FILE: tools/virtiofsd/fuse_lowlevel.h:1237:
+^I * @param whence either SEEK_DATA or SEEK_HOLE$

ERROR: code indent should never use tabs
#3600: FILE: tools/virtiofsd/fuse_lowlevel.h:1238:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3601: FILE: tools/virtiofsd/fuse_lowlevel.h:1239:
+^I */$

ERROR: code indent should never use tabs
#3602: FILE: tools/virtiofsd/fuse_lowlevel.h:1240:
+^Ivoid (*lseek) (fuse_req_t req, fuse_ino_t ino, off_t off, int whence,$

ERROR: code indent should never use tabs
#3603: FILE: tools/virtiofsd/fuse_lowlevel.h:1241:
+^I^I       struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3674: FILE: tools/virtiofsd/fuse_lowlevel.h:1312:
+^I^I      const struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3684: FILE: tools/virtiofsd/fuse_lowlevel.h:1322:
+ * @param attr_timeout^Ivalidity timeout (in seconds) for the attributes$

ERROR: code indent should never use tabs
#3688: FILE: tools/virtiofsd/fuse_lowlevel.h:1326:
+^I^I    double attr_timeout);$

ERROR: code indent should never use tabs
#3786: FILE: tools/virtiofsd/fuse_lowlevel.h:1424:
+^I^I    enum fuse_buf_copy_flags flags);$

WARNING: Block comments use a leading /* on a separate line
#3849: FILE: tools/virtiofsd/fuse_lowlevel.h:1487:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#3850: FILE: tools/virtiofsd/fuse_lowlevel.h:1488:
+ * Filling a buffer in readdir^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#3851: FILE: tools/virtiofsd/fuse_lowlevel.h:1489:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#3881: FILE: tools/virtiofsd/fuse_lowlevel.h:1519:
+^I^I^I const char *name, const struct stat *stbuf,$

ERROR: code indent should never use tabs
#3882: FILE: tools/virtiofsd/fuse_lowlevel.h:1520:
+^I^I^I off_t off);$

ERROR: code indent should never use tabs
#3898: FILE: tools/virtiofsd/fuse_lowlevel.h:1536:
+^I^I^I      const char *name,$

ERROR: code indent should never use tabs
#3899: FILE: tools/virtiofsd/fuse_lowlevel.h:1537:
+^I^I^I      const struct fuse_entry_param *e, off_t off);$

ERROR: code indent should never use tabs
#3917: FILE: tools/virtiofsd/fuse_lowlevel.h:1555:
+^I^I^I   const struct iovec *in_iov, size_t in_count,$

ERROR: code indent should never use tabs
#3918: FILE: tools/virtiofsd/fuse_lowlevel.h:1556:
+^I^I^I   const struct iovec *out_iov, size_t out_count);$

ERROR: code indent should never use tabs
#3945: FILE: tools/virtiofsd/fuse_lowlevel.h:1583:
+^I^I^I int count);$

WARNING: Block comments use a leading /* on a separate line
#3967: FILE: tools/virtiofsd/fuse_lowlevel.h:1605:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#3968: FILE: tools/virtiofsd/fuse_lowlevel.h:1606:
+ * Notification^I^I^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#3969: FILE: tools/virtiofsd/fuse_lowlevel.h:1607:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#4004: FILE: tools/virtiofsd/fuse_lowlevel.h:1642:
+^I^I^I^I     off_t off, off_t len);$

ERROR: code indent should never use tabs
#4032: FILE: tools/virtiofsd/fuse_lowlevel.h:1670:
+^I^I^I^I     const char *name, size_t namelen);$

ERROR: code indent should never use tabs
#4063: FILE: tools/virtiofsd/fuse_lowlevel.h:1701:
+^I^I^I^Ifuse_ino_t parent, fuse_ino_t child,$

ERROR: code indent should never use tabs
#4064: FILE: tools/virtiofsd/fuse_lowlevel.h:1702:
+^I^I^I^Iconst char *name, size_t namelen);$

ERROR: code indent should never use tabs
#4092: FILE: tools/virtiofsd/fuse_lowlevel.h:1730:
+^I^I^I       off_t offset, struct fuse_bufvec *bufv,$

ERROR: code indent should never use tabs
#4093: FILE: tools/virtiofsd/fuse_lowlevel.h:1731:
+^I^I^I       enum fuse_buf_copy_flags flags);$

ERROR: code indent should never use tabs
#4124: FILE: tools/virtiofsd/fuse_lowlevel.h:1762:
+^I^I^I^I  size_t size, off_t offset, void *cookie);$

WARNING: Block comments use a leading /* on a separate line
#4127: FILE: tools/virtiofsd/fuse_lowlevel.h:1765:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#4128: FILE: tools/virtiofsd/fuse_lowlevel.h:1766:
+ * Utility functions^I^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#4129: FILE: tools/virtiofsd/fuse_lowlevel.h:1767:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#4191: FILE: tools/virtiofsd/fuse_lowlevel.h:1829:
+^I^I^I     void *data);$

WARNING: Block comments use a leading /* on a separate line
#4202: FILE: tools/virtiofsd/fuse_lowlevel.h:1840:
+/* ----------------------------------------------------------- *

WARNING: Block comments use a trailing */ on a separate line
#4204: FILE: tools/virtiofsd/fuse_lowlevel.h:1842:
+ * ----------------------------------------------------------- */

WARNING: Block comments use a leading /* on a separate line
#4223: FILE: tools/virtiofsd/fuse_lowlevel.h:1861:
+/* ----------------------------------------------------------- *

WARNING: Block comments use a trailing */ on a separate line
#4225: FILE: tools/virtiofsd/fuse_lowlevel.h:1863:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#4228: FILE: tools/virtiofsd/fuse_lowlevel.h:1866:
+^Iint singlethread;$

ERROR: code indent should never use tabs
#4229: FILE: tools/virtiofsd/fuse_lowlevel.h:1867:
+^Iint foreground;$

ERROR: code indent should never use tabs
#4230: FILE: tools/virtiofsd/fuse_lowlevel.h:1868:
+^Iint debug;$

ERROR: code indent should never use tabs
#4231: FILE: tools/virtiofsd/fuse_lowlevel.h:1869:
+^Iint nodefault_subtype;$

ERROR: code indent should never use tabs
#4232: FILE: tools/virtiofsd/fuse_lowlevel.h:1870:
+^Ichar *mountpoint;$

ERROR: code indent should never use tabs
#4233: FILE: tools/virtiofsd/fuse_lowlevel.h:1871:
+^Iint show_version;$

ERROR: code indent should never use tabs
#4234: FILE: tools/virtiofsd/fuse_lowlevel.h:1872:
+^Iint show_help;$

ERROR: code indent should never use tabs
#4235: FILE: tools/virtiofsd/fuse_lowlevel.h:1873:
+^Iint clone_fd;$

ERROR: code indent should never use tabs
#4236: FILE: tools/virtiofsd/fuse_lowlevel.h:1874:
+^Iunsigned int max_idle_threads;$

ERROR: code indent should never use tabs
#4258: FILE: tools/virtiofsd/fuse_lowlevel.h:1896:
+^I^I       struct fuse_cmdline_opts *opts);$

ERROR: code indent should never use tabs
#4289: FILE: tools/virtiofsd/fuse_lowlevel.h:1927:
+^I^I^I^I      const struct fuse_lowlevel_ops *op,$

ERROR: code indent should never use tabs
#4290: FILE: tools/virtiofsd/fuse_lowlevel.h:1928:
+^I^I^I^I      size_t op_size, void *userdata);$

ERROR: trailing whitespace
#4334: FILE: tools/virtiofsd/fuse_lowlevel.h:1972:
+ * @param config session loop configuration $

WARNING: line over 80 characters
#4341: FILE: tools/virtiofsd/fuse_lowlevel.h:1979:
+int fuse_session_loop_mt(struct fuse_session *se, struct fuse_loop_config *config);

WARNING: Block comments use a leading /* on a separate line
#4403: FILE: tools/virtiofsd/fuse_lowlevel.h:2041:
+/* ----------------------------------------------------------- *

WARNING: Block comments use a trailing */ on a separate line
#4405: FILE: tools/virtiofsd/fuse_lowlevel.h:2043:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#4432: FILE: tools/virtiofsd/fuse_lowlevel.h:2070:
+^I^I^I      const struct fuse_buf *buf);$

WARNING: architecture specific defines should be avoided
#4447: FILE: tools/virtiofsd/fuse_lowlevel.h:2085:
+#ifdef __cplusplus

WARNING: Block comments use * on subsequent lines
#4459: FILE: tools/virtiofsd/fuse_misc.h:2:
+/*
+  FUSE: Filesystem in Userspace

WARNING: Block comments use * on subsequent lines
#4469: FILE: tools/virtiofsd/fuse_misc.h:12:
+/*
+  Versioned symbols cannot be used in some cases because it

WARNING: architecture specific defines should be avoided
#4473: FILE: tools/virtiofsd/fuse_misc.h:16:
+#if (!defined(__UCLIBC__) && !defined(__APPLE__))

ERROR: code indent should never use tabs
#4485: FILE: tools/virtiofsd/fuse_misc.h:28:
+^Ipthread_mutexattr_t attr;$

ERROR: code indent should never use tabs
#4486: FILE: tools/virtiofsd/fuse_misc.h:29:
+^Ipthread_mutexattr_init(&attr);$

ERROR: code indent should never use tabs
#4487: FILE: tools/virtiofsd/fuse_misc.h:30:
+^Ipthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ADAPTIVE_NP);$

ERROR: code indent should never use tabs
#4488: FILE: tools/virtiofsd/fuse_misc.h:31:
+^Ipthread_mutex_init(mut, &attr);$

ERROR: code indent should never use tabs
#4489: FILE: tools/virtiofsd/fuse_misc.h:32:
+^Ipthread_mutexattr_destroy(&attr);$

WARNING: Block comments use * on subsequent lines
#4524: FILE: tools/virtiofsd/fuse_opt.h:2:
+/*
+  FUSE: Filesystem in Userspace

WARNING: Block comments use a leading /* on a separate line
#4534: FILE: tools/virtiofsd/fuse_opt.h:12:
+/** @file

WARNING: architecture specific defines should be avoided
#4539: FILE: tools/virtiofsd/fuse_opt.h:17:
+#ifdef __cplusplus

ERROR: code indent should never use tabs
#4566: FILE: tools/virtiofsd/fuse_opt.h:44:
+ *  - -1^I^I^I      action ii)$

ERROR: code indent should never use tabs
#4577: FILE: tools/virtiofsd/fuse_opt.h:55:
+ * 1) "-x", "-foo", "--foo", "--foo-bar", etc.^IThese match only$

ERROR: code indent should never use tabs
#4600: FILE: tools/virtiofsd/fuse_opt.h:78:
+^I/** Matching template and optional parameter formatting */$

ERROR: code indent should never use tabs
#4601: FILE: tools/virtiofsd/fuse_opt.h:79:
+^Iconst char *templ;$

ERROR: code indent should never use tabs
#4603: FILE: tools/virtiofsd/fuse_opt.h:81:
+^I/**$

ERROR: code indent should never use tabs
#4604: FILE: tools/virtiofsd/fuse_opt.h:82:
+^I * Offset of variable within 'data' parameter of fuse_opt_parse()$

ERROR: code indent should never use tabs
#4605: FILE: tools/virtiofsd/fuse_opt.h:83:
+^I * or -1$

ERROR: code indent should never use tabs
#4606: FILE: tools/virtiofsd/fuse_opt.h:84:
+^I */$

ERROR: code indent should never use tabs
#4607: FILE: tools/virtiofsd/fuse_opt.h:85:
+^Iunsigned long offset;$

ERROR: code indent should never use tabs
#4609: FILE: tools/virtiofsd/fuse_opt.h:87:
+^I/**$

ERROR: code indent should never use tabs
#4610: FILE: tools/virtiofsd/fuse_opt.h:88:
+^I * Value to set the variable to, or to be passed as 'key' to the$

ERROR: code indent should never use tabs
#4611: FILE: tools/virtiofsd/fuse_opt.h:89:
+^I * processing function.^I Ignored if template has a format$

ERROR: code indent should never use tabs
#4612: FILE: tools/virtiofsd/fuse_opt.h:90:
+^I */$

ERROR: code indent should never use tabs
#4613: FILE: tools/virtiofsd/fuse_opt.h:91:
+^Iint value;$

ERROR: code indent should never use tabs
#4617: FILE: tools/virtiofsd/fuse_opt.h:95:
+ * Key option.^IIn case of a match, the processing function will be$

ERROR: code indent should never use tabs
#4623: FILE: tools/virtiofsd/fuse_opt.h:101:
+ * Last option.^I An array of 'struct fuse_opt' must end with a NULL$

ERROR: code indent should never use tabs
#4632: FILE: tools/virtiofsd/fuse_opt.h:110:
+^I/** Argument count */$

ERROR: code indent should never use tabs
#4633: FILE: tools/virtiofsd/fuse_opt.h:111:
+^Iint argc;$

ERROR: code indent should never use tabs
#4635: FILE: tools/virtiofsd/fuse_opt.h:113:
+^I/** Argument vector.  NULL terminated */$

ERROR: code indent should never use tabs
#4636: FILE: tools/virtiofsd/fuse_opt.h:114:
+^Ichar **argv;$

ERROR: code indent should never use tabs
#4638: FILE: tools/virtiofsd/fuse_opt.h:116:
+^I/** Is 'argv' allocated? */$

ERROR: code indent should never use tabs
#4639: FILE: tools/virtiofsd/fuse_opt.h:117:
+^Iint allocated;$

ERROR: code indent should never use tabs
#4703: FILE: tools/virtiofsd/fuse_opt.h:181:
+^I^I^I       struct fuse_args *outargs);$

ERROR: code indent should never use tabs
#4726: FILE: tools/virtiofsd/fuse_opt.h:204:
+^I^I   const struct fuse_opt opts[], fuse_opt_proc_t proc);$

WARNING: architecture specific defines should be avoided
#4789: FILE: tools/virtiofsd/fuse_opt.h:267:
+#ifdef __cplusplus

ERROR: code indent should never use tabs
#4830: FILE: tools/virtiofsd/passthrough_helpers.h:31:
+^Iint mode, dev_t rdev)$

ERROR: code indent should never use tabs
#4832: FILE: tools/virtiofsd/passthrough_helpers.h:33:
+^Iint res;$

ERROR: code indent should never use tabs
#4834: FILE: tools/virtiofsd/passthrough_helpers.h:35:
+^Iif (S_ISREG(mode)) {$

ERROR: code indent should never use tabs
#4835: FILE: tools/virtiofsd/passthrough_helpers.h:36:
+^I^Ires = openat(dirfd, path, O_CREAT | O_EXCL | O_WRONLY, mode);$

ERROR: code indent should never use tabs
#4836: FILE: tools/virtiofsd/passthrough_helpers.h:37:
+^I^Iif (res >= 0)$

ERROR: braces {} are necessary for all arms of this statement
#4836: FILE: tools/virtiofsd/passthrough_helpers.h:37:
+               if (res >= 0)
[...]

ERROR: code indent should never use tabs
#4837: FILE: tools/virtiofsd/passthrough_helpers.h:38:
+^I^I^Ires = close(res);$

ERROR: code indent should never use tabs
#4838: FILE: tools/virtiofsd/passthrough_helpers.h:39:
+^I} else if (S_ISDIR(mode)) {$

ERROR: code indent should never use tabs
#4839: FILE: tools/virtiofsd/passthrough_helpers.h:40:
+^I^Ires = mkdirat(dirfd, path, mode);$

ERROR: code indent should never use tabs
#4840: FILE: tools/virtiofsd/passthrough_helpers.h:41:
+^I} else if (S_ISLNK(mode) && link != NULL) {$

ERROR: code indent should never use tabs
#4841: FILE: tools/virtiofsd/passthrough_helpers.h:42:
+^I^Ires = symlinkat(link, dirfd, path);$

ERROR: code indent should never use tabs
#4842: FILE: tools/virtiofsd/passthrough_helpers.h:43:
+^I} else if (S_ISFIFO(mode)) {$

ERROR: code indent should never use tabs
#4843: FILE: tools/virtiofsd/passthrough_helpers.h:44:
+^I^Ires = mkfifoat(dirfd, path, mode);$

WARNING: architecture specific defines should be avoided
#4844: FILE: tools/virtiofsd/passthrough_helpers.h:45:
+#ifdef __FreeBSD__

ERROR: code indent should never use tabs
#4845: FILE: tools/virtiofsd/passthrough_helpers.h:46:
+^I} else if (S_ISSOCK(mode)) {$

ERROR: code indent should never use tabs
#4846: FILE: tools/virtiofsd/passthrough_helpers.h:47:
+^I^Istruct sockaddr_un su;$

ERROR: code indent should never use tabs
#4847: FILE: tools/virtiofsd/passthrough_helpers.h:48:
+^I^Iint fd;$

ERROR: code indent should never use tabs
#4849: FILE: tools/virtiofsd/passthrough_helpers.h:50:
+^I^Iif (strlen(path) >= sizeof(su.sun_path)) {$

ERROR: code indent should never use tabs
#4850: FILE: tools/virtiofsd/passthrough_helpers.h:51:
+^I^I^Ierrno = ENAMETOOLONG;$

ERROR: code indent should never use tabs
#4851: FILE: tools/virtiofsd/passthrough_helpers.h:52:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#4852: FILE: tools/virtiofsd/passthrough_helpers.h:53:
+^I^I}$

ERROR: code indent should never use tabs
#4853: FILE: tools/virtiofsd/passthrough_helpers.h:54:
+^I^Ifd = socket(AF_UNIX, SOCK_STREAM, 0);$

ERROR: code indent should never use tabs
#4854: FILE: tools/virtiofsd/passthrough_helpers.h:55:
+^I^Iif (fd >= 0) {$

ERROR: code indent should never use tabs
#4855: FILE: tools/virtiofsd/passthrough_helpers.h:56:
+^I^I^I/*$

ERROR: code indent should never use tabs
#4856: FILE: tools/virtiofsd/passthrough_helpers.h:57:
+^I^I^I * We must bind the socket to the underlying file$

ERROR: code indent should never use tabs
#4857: FILE: tools/virtiofsd/passthrough_helpers.h:58:
+^I^I^I * system to create the socket file, even though$

ERROR: code indent should never use tabs
#4858: FILE: tools/virtiofsd/passthrough_helpers.h:59:
+^I^I^I * we'll never listen on this socket.$

ERROR: code indent should never use tabs
#4859: FILE: tools/virtiofsd/passthrough_helpers.h:60:
+^I^I^I */$

ERROR: code indent should never use tabs
#4860: FILE: tools/virtiofsd/passthrough_helpers.h:61:
+^I^I^Isu.sun_family = AF_UNIX;$

ERROR: code indent should never use tabs
#4861: FILE: tools/virtiofsd/passthrough_helpers.h:62:
+^I^I^Istrncpy(su.sun_path, path, sizeof(su.sun_path));$

ERROR: code indent should never use tabs
#4862: FILE: tools/virtiofsd/passthrough_helpers.h:63:
+^I^I^Ires = bindat(dirfd, fd, (struct sockaddr*)&su,$

ERROR: "(foo*)" should be "(foo *)"
#4862: FILE: tools/virtiofsd/passthrough_helpers.h:63:
+                       res = bindat(dirfd, fd, (struct sockaddr*)&su,

ERROR: code indent should never use tabs
#4863: FILE: tools/virtiofsd/passthrough_helpers.h:64:
+^I^I^I^Isizeof(su));$

ERROR: code indent should never use tabs
#4864: FILE: tools/virtiofsd/passthrough_helpers.h:65:
+^I^I^Iif (res == 0)$

ERROR: braces {} are necessary for all arms of this statement
#4864: FILE: tools/virtiofsd/passthrough_helpers.h:65:
+                       if (res == 0)
[...]

ERROR: code indent should never use tabs
#4865: FILE: tools/virtiofsd/passthrough_helpers.h:66:
+^I^I^I^Iclose(fd);$

ERROR: code indent should never use tabs
#4866: FILE: tools/virtiofsd/passthrough_helpers.h:67:
+^I^I} else {$

ERROR: code indent should never use tabs
#4867: FILE: tools/virtiofsd/passthrough_helpers.h:68:
+^I^I^Ires = -1;$

ERROR: code indent should never use tabs
#4868: FILE: tools/virtiofsd/passthrough_helpers.h:69:
+^I^I}$

ERROR: code indent should never use tabs
#4870: FILE: tools/virtiofsd/passthrough_helpers.h:71:
+^I} else {$

ERROR: code indent should never use tabs
#4871: FILE: tools/virtiofsd/passthrough_helpers.h:72:
+^I^Ires = mknodat(dirfd, path, mode, rdev);$

ERROR: code indent should never use tabs
#4872: FILE: tools/virtiofsd/passthrough_helpers.h:73:
+^I}$

ERROR: code indent should never use tabs
#4874: FILE: tools/virtiofsd/passthrough_helpers.h:75:
+^Ireturn res;$

total: 2271 errors, 139 warnings, 4814 lines checked

Patch 1/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

2/109 Checking commit 6244fcd6ccd5 (virtiofsd: Pull in kernel's fuse.h)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#15: 
new file mode 100644

total: 0 errors, 1 warnings, 898 lines checked

Patch 2/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
3/109 Checking commit f4d42e240d8e (virtiofsd: Add auxiliary .c's)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#14: 
new file mode 100644

WARNING: Block comments use * on subsequent lines
#20: FILE: tools/virtiofsd/buffer.c:2:
+/*
+  FUSE: Filesystem in Userspace

ERROR: code indent should never use tabs
#42: FILE: tools/virtiofsd/buffer.c:24:
+^Isize_t i;$

ERROR: code indent should never use tabs
#43: FILE: tools/virtiofsd/buffer.c:25:
+^Isize_t size = 0;$

ERROR: code indent should never use tabs
#45: FILE: tools/virtiofsd/buffer.c:27:
+^Ifor (i = 0; i < bufv->count; i++) {$

ERROR: code indent should never use tabs
#46: FILE: tools/virtiofsd/buffer.c:28:
+^I^Iif (bufv->buf[i].size == SIZE_MAX)$

ERROR: braces {} are necessary for all arms of this statement
#46: FILE: tools/virtiofsd/buffer.c:28:
+               if (bufv->buf[i].size == SIZE_MAX)
[...]
+               else
[...]

ERROR: code indent should never use tabs
#47: FILE: tools/virtiofsd/buffer.c:29:
+^I^I^Isize = SIZE_MAX;$

ERROR: code indent should never use tabs
#48: FILE: tools/virtiofsd/buffer.c:30:
+^I^Ielse$

ERROR: code indent should never use tabs
#49: FILE: tools/virtiofsd/buffer.c:31:
+^I^I^Isize += bufv->buf[i].size;$

ERROR: code indent should never use tabs
#50: FILE: tools/virtiofsd/buffer.c:32:
+^I}$

ERROR: code indent should never use tabs
#52: FILE: tools/virtiofsd/buffer.c:34:
+^Ireturn size;$

ERROR: code indent should never use tabs
#57: FILE: tools/virtiofsd/buffer.c:39:
+^Ireturn s1 < s2 ? s1 : s2;$

ERROR: code indent should never use tabs
#61: FILE: tools/virtiofsd/buffer.c:43:
+^I^I^I      const struct fuse_buf *src, size_t src_off,$

ERROR: code indent should never use tabs
#62: FILE: tools/virtiofsd/buffer.c:44:
+^I^I^I      size_t len)$

ERROR: code indent should never use tabs
#64: FILE: tools/virtiofsd/buffer.c:46:
+^Issize_t res = 0;$

ERROR: code indent should never use tabs
#65: FILE: tools/virtiofsd/buffer.c:47:
+^Isize_t copied = 0;$

ERROR: code indent should never use tabs
#67: FILE: tools/virtiofsd/buffer.c:49:
+^Iwhile (len) {$

ERROR: code indent should never use tabs
#68: FILE: tools/virtiofsd/buffer.c:50:
+^I^Iif (dst->flags & FUSE_BUF_FD_SEEK) {$

ERROR: code indent should never use tabs
#69: FILE: tools/virtiofsd/buffer.c:51:
+^I^I^Ires = pwrite(dst->fd, (char *)src->mem + src_off, len,$

ERROR: code indent should never use tabs
#70: FILE: tools/virtiofsd/buffer.c:52:
+^I^I^I^I     dst->pos + dst_off);$

ERROR: code indent should never use tabs
#71: FILE: tools/virtiofsd/buffer.c:53:
+^I^I} else {$

ERROR: code indent should never use tabs
#72: FILE: tools/virtiofsd/buffer.c:54:
+^I^I^Ires = write(dst->fd, (char *)src->mem + src_off, len);$

ERROR: code indent should never use tabs
#73: FILE: tools/virtiofsd/buffer.c:55:
+^I^I}$

ERROR: code indent should never use tabs
#74: FILE: tools/virtiofsd/buffer.c:56:
+^I^Iif (res == -1) {$

ERROR: code indent should never use tabs
#75: FILE: tools/virtiofsd/buffer.c:57:
+^I^I^Iif (!copied)$

ERROR: braces {} are necessary for all arms of this statement
#75: FILE: tools/virtiofsd/buffer.c:57:
+                       if (!copied)
[...]

ERROR: code indent should never use tabs
#76: FILE: tools/virtiofsd/buffer.c:58:
+^I^I^I^Ireturn -errno;$

ERROR: code indent should never use tabs
#77: FILE: tools/virtiofsd/buffer.c:59:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#78: FILE: tools/virtiofsd/buffer.c:60:
+^I^I}$

ERROR: code indent should never use tabs
#79: FILE: tools/virtiofsd/buffer.c:61:
+^I^Iif (res == 0)$

ERROR: braces {} are necessary for all arms of this statement
#79: FILE: tools/virtiofsd/buffer.c:61:
+               if (res == 0)
[...]

ERROR: code indent should never use tabs
#80: FILE: tools/virtiofsd/buffer.c:62:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#82: FILE: tools/virtiofsd/buffer.c:64:
+^I^Icopied += res;$

ERROR: code indent should never use tabs
#83: FILE: tools/virtiofsd/buffer.c:65:
+^I^Iif (!(dst->flags & FUSE_BUF_FD_RETRY))$

ERROR: braces {} are necessary for all arms of this statement
#83: FILE: tools/virtiofsd/buffer.c:65:
+               if (!(dst->flags & FUSE_BUF_FD_RETRY))
[...]

ERROR: code indent should never use tabs
#84: FILE: tools/virtiofsd/buffer.c:66:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#86: FILE: tools/virtiofsd/buffer.c:68:
+^I^Isrc_off += res;$

ERROR: code indent should never use tabs
#87: FILE: tools/virtiofsd/buffer.c:69:
+^I^Idst_off += res;$

ERROR: code indent should never use tabs
#88: FILE: tools/virtiofsd/buffer.c:70:
+^I^Ilen -= res;$

ERROR: code indent should never use tabs
#89: FILE: tools/virtiofsd/buffer.c:71:
+^I}$

ERROR: code indent should never use tabs
#91: FILE: tools/virtiofsd/buffer.c:73:
+^Ireturn copied;$

ERROR: code indent should never use tabs
#95: FILE: tools/virtiofsd/buffer.c:77:
+^I^I^I     const struct fuse_buf *src, size_t src_off,$

ERROR: code indent should never use tabs
#96: FILE: tools/virtiofsd/buffer.c:78:
+^I^I^I     size_t len)$

ERROR: code indent should never use tabs
#98: FILE: tools/virtiofsd/buffer.c:80:
+^Issize_t res = 0;$

ERROR: code indent should never use tabs
#99: FILE: tools/virtiofsd/buffer.c:81:
+^Isize_t copied = 0;$

ERROR: code indent should never use tabs
#101: FILE: tools/virtiofsd/buffer.c:83:
+^Iwhile (len) {$

ERROR: code indent should never use tabs
#102: FILE: tools/virtiofsd/buffer.c:84:
+^I^Iif (src->flags & FUSE_BUF_FD_SEEK) {$

ERROR: code indent should never use tabs
#103: FILE: tools/virtiofsd/buffer.c:85:
+^I^I^Ires = pread(src->fd, (char *)dst->mem + dst_off, len,$

ERROR: code indent should never use tabs
#104: FILE: tools/virtiofsd/buffer.c:86:
+^I^I^I^I     src->pos + src_off);$

ERROR: code indent should never use tabs
#105: FILE: tools/virtiofsd/buffer.c:87:
+^I^I} else {$

ERROR: code indent should never use tabs
#106: FILE: tools/virtiofsd/buffer.c:88:
+^I^I^Ires = read(src->fd, (char *)dst->mem + dst_off, len);$

ERROR: code indent should never use tabs
#107: FILE: tools/virtiofsd/buffer.c:89:
+^I^I}$

ERROR: code indent should never use tabs
#108: FILE: tools/virtiofsd/buffer.c:90:
+^I^Iif (res == -1) {$

ERROR: code indent should never use tabs
#109: FILE: tools/virtiofsd/buffer.c:91:
+^I^I^Iif (!copied)$

ERROR: braces {} are necessary for all arms of this statement
#109: FILE: tools/virtiofsd/buffer.c:91:
+                       if (!copied)
[...]

ERROR: code indent should never use tabs
#110: FILE: tools/virtiofsd/buffer.c:92:
+^I^I^I^Ireturn -errno;$

ERROR: code indent should never use tabs
#111: FILE: tools/virtiofsd/buffer.c:93:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#112: FILE: tools/virtiofsd/buffer.c:94:
+^I^I}$

ERROR: code indent should never use tabs
#113: FILE: tools/virtiofsd/buffer.c:95:
+^I^Iif (res == 0)$

ERROR: braces {} are necessary for all arms of this statement
#113: FILE: tools/virtiofsd/buffer.c:95:
+               if (res == 0)
[...]

ERROR: code indent should never use tabs
#114: FILE: tools/virtiofsd/buffer.c:96:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#116: FILE: tools/virtiofsd/buffer.c:98:
+^I^Icopied += res;$

ERROR: code indent should never use tabs
#117: FILE: tools/virtiofsd/buffer.c:99:
+^I^Iif (!(src->flags & FUSE_BUF_FD_RETRY))$

ERROR: braces {} are necessary for all arms of this statement
#117: FILE: tools/virtiofsd/buffer.c:99:
+               if (!(src->flags & FUSE_BUF_FD_RETRY))
[...]

ERROR: code indent should never use tabs
#118: FILE: tools/virtiofsd/buffer.c:100:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#120: FILE: tools/virtiofsd/buffer.c:102:
+^I^Idst_off += res;$

ERROR: code indent should never use tabs
#121: FILE: tools/virtiofsd/buffer.c:103:
+^I^Isrc_off += res;$

ERROR: code indent should never use tabs
#122: FILE: tools/virtiofsd/buffer.c:104:
+^I^Ilen -= res;$

ERROR: code indent should never use tabs
#123: FILE: tools/virtiofsd/buffer.c:105:
+^I}$

ERROR: code indent should never use tabs
#125: FILE: tools/virtiofsd/buffer.c:107:
+^Ireturn copied;$

ERROR: code indent should never use tabs
#129: FILE: tools/virtiofsd/buffer.c:111:
+^I^I^I^I const struct fuse_buf *src, size_t src_off,$

ERROR: code indent should never use tabs
#130: FILE: tools/virtiofsd/buffer.c:112:
+^I^I^I^I size_t len)$

ERROR: code indent should never use tabs
#132: FILE: tools/virtiofsd/buffer.c:114:
+^Ichar buf[4096];$

ERROR: code indent should never use tabs
#133: FILE: tools/virtiofsd/buffer.c:115:
+^Istruct fuse_buf tmp = {$

ERROR: code indent should never use tabs
#134: FILE: tools/virtiofsd/buffer.c:116:
+^I^I.size = sizeof(buf),$

ERROR: code indent should never use tabs
#135: FILE: tools/virtiofsd/buffer.c:117:
+^I^I.flags = 0,$

ERROR: code indent should never use tabs
#136: FILE: tools/virtiofsd/buffer.c:118:
+^I};$

ERROR: code indent should never use tabs
#137: FILE: tools/virtiofsd/buffer.c:119:
+^Issize_t res;$

ERROR: code indent should never use tabs
#138: FILE: tools/virtiofsd/buffer.c:120:
+^Isize_t copied = 0;$

ERROR: code indent should never use tabs
#140: FILE: tools/virtiofsd/buffer.c:122:
+^Itmp.mem = buf;$

ERROR: code indent should never use tabs
#142: FILE: tools/virtiofsd/buffer.c:124:
+^Iwhile (len) {$

ERROR: code indent should never use tabs
#143: FILE: tools/virtiofsd/buffer.c:125:
+^I^Isize_t this_len = min_size(tmp.size, len);$

ERROR: code indent should never use tabs
#144: FILE: tools/virtiofsd/buffer.c:126:
+^I^Isize_t read_len;$

ERROR: code indent should never use tabs
#146: FILE: tools/virtiofsd/buffer.c:128:
+^I^Ires = fuse_buf_read(&tmp, 0, src, src_off, this_len);$

ERROR: code indent should never use tabs
#147: FILE: tools/virtiofsd/buffer.c:129:
+^I^Iif (res < 0) {$

ERROR: code indent should never use tabs
#148: FILE: tools/virtiofsd/buffer.c:130:
+^I^I^Iif (!copied)$

ERROR: braces {} are necessary for all arms of this statement
#148: FILE: tools/virtiofsd/buffer.c:130:
+                       if (!copied)
[...]

ERROR: code indent should never use tabs
#149: FILE: tools/virtiofsd/buffer.c:131:
+^I^I^I^Ireturn res;$

ERROR: code indent should never use tabs
#150: FILE: tools/virtiofsd/buffer.c:132:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#151: FILE: tools/virtiofsd/buffer.c:133:
+^I^I}$

ERROR: code indent should never use tabs
#152: FILE: tools/virtiofsd/buffer.c:134:
+^I^Iif (res == 0)$

ERROR: braces {} are necessary for all arms of this statement
#152: FILE: tools/virtiofsd/buffer.c:134:
+               if (res == 0)
[...]

ERROR: code indent should never use tabs
#153: FILE: tools/virtiofsd/buffer.c:135:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#155: FILE: tools/virtiofsd/buffer.c:137:
+^I^Iread_len = res;$

ERROR: code indent should never use tabs
#156: FILE: tools/virtiofsd/buffer.c:138:
+^I^Ires = fuse_buf_write(dst, dst_off, &tmp, 0, read_len);$

ERROR: code indent should never use tabs
#157: FILE: tools/virtiofsd/buffer.c:139:
+^I^Iif (res < 0) {$

ERROR: code indent should never use tabs
#158: FILE: tools/virtiofsd/buffer.c:140:
+^I^I^Iif (!copied)$

ERROR: braces {} are necessary for all arms of this statement
#158: FILE: tools/virtiofsd/buffer.c:140:
+                       if (!copied)
[...]

ERROR: code indent should never use tabs
#159: FILE: tools/virtiofsd/buffer.c:141:
+^I^I^I^Ireturn res;$

ERROR: code indent should never use tabs
#160: FILE: tools/virtiofsd/buffer.c:142:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#161: FILE: tools/virtiofsd/buffer.c:143:
+^I^I}$

ERROR: code indent should never use tabs
#162: FILE: tools/virtiofsd/buffer.c:144:
+^I^Iif (res == 0)$

ERROR: braces {} are necessary for all arms of this statement
#162: FILE: tools/virtiofsd/buffer.c:144:
+               if (res == 0)
[...]

ERROR: code indent should never use tabs
#163: FILE: tools/virtiofsd/buffer.c:145:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#165: FILE: tools/virtiofsd/buffer.c:147:
+^I^Icopied += res;$

ERROR: code indent should never use tabs
#167: FILE: tools/virtiofsd/buffer.c:149:
+^I^Iif (res < this_len)$

ERROR: braces {} are necessary for all arms of this statement
#167: FILE: tools/virtiofsd/buffer.c:149:
+               if (res < this_len)
[...]

ERROR: code indent should never use tabs
#168: FILE: tools/virtiofsd/buffer.c:150:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#170: FILE: tools/virtiofsd/buffer.c:152:
+^I^Idst_off += res;$

ERROR: code indent should never use tabs
#171: FILE: tools/virtiofsd/buffer.c:153:
+^I^Isrc_off += res;$

ERROR: code indent should never use tabs
#172: FILE: tools/virtiofsd/buffer.c:154:
+^I^Ilen -= res;$

ERROR: code indent should never use tabs
#173: FILE: tools/virtiofsd/buffer.c:155:
+^I}$

ERROR: code indent should never use tabs
#175: FILE: tools/virtiofsd/buffer.c:157:
+^Ireturn copied;$

ERROR: code indent should never use tabs
#180: FILE: tools/virtiofsd/buffer.c:162:
+^I^I^I       const struct fuse_buf *src, size_t src_off,$

ERROR: code indent should never use tabs
#181: FILE: tools/virtiofsd/buffer.c:163:
+^I^I^I       size_t len, enum fuse_buf_copy_flags flags)$

ERROR: code indent should never use tabs
#183: FILE: tools/virtiofsd/buffer.c:165:
+^Iint splice_flags = 0;$

ERROR: code indent should never use tabs
#184: FILE: tools/virtiofsd/buffer.c:166:
+^Ioff_t *srcpos = NULL;$

ERROR: code indent should never use tabs
#185: FILE: tools/virtiofsd/buffer.c:167:
+^Ioff_t *dstpos = NULL;$

ERROR: code indent should never use tabs
#186: FILE: tools/virtiofsd/buffer.c:168:
+^Ioff_t srcpos_val;$

ERROR: code indent should never use tabs
#187: FILE: tools/virtiofsd/buffer.c:169:
+^Ioff_t dstpos_val;$

ERROR: code indent should never use tabs
#188: FILE: tools/virtiofsd/buffer.c:170:
+^Issize_t res;$

ERROR: code indent should never use tabs
#189: FILE: tools/virtiofsd/buffer.c:171:
+^Isize_t copied = 0;$

ERROR: code indent should never use tabs
#191: FILE: tools/virtiofsd/buffer.c:173:
+^Iif (flags & FUSE_BUF_SPLICE_MOVE)$

ERROR: braces {} are necessary for all arms of this statement
#191: FILE: tools/virtiofsd/buffer.c:173:
+       if (flags & FUSE_BUF_SPLICE_MOVE)
[...]

ERROR: code indent should never use tabs
#192: FILE: tools/virtiofsd/buffer.c:174:
+^I^Isplice_flags |= SPLICE_F_MOVE;$

ERROR: code indent should never use tabs
#193: FILE: tools/virtiofsd/buffer.c:175:
+^Iif (flags & FUSE_BUF_SPLICE_NONBLOCK)$

ERROR: braces {} are necessary for all arms of this statement
#193: FILE: tools/virtiofsd/buffer.c:175:
+       if (flags & FUSE_BUF_SPLICE_NONBLOCK)
[...]

ERROR: code indent should never use tabs
#194: FILE: tools/virtiofsd/buffer.c:176:
+^I^Isplice_flags |= SPLICE_F_NONBLOCK;$

ERROR: code indent should never use tabs
#196: FILE: tools/virtiofsd/buffer.c:178:
+^Iif (src->flags & FUSE_BUF_FD_SEEK) {$

ERROR: code indent should never use tabs
#197: FILE: tools/virtiofsd/buffer.c:179:
+^I^Isrcpos_val = src->pos + src_off;$

ERROR: code indent should never use tabs
#198: FILE: tools/virtiofsd/buffer.c:180:
+^I^Isrcpos = &srcpos_val;$

ERROR: code indent should never use tabs
#199: FILE: tools/virtiofsd/buffer.c:181:
+^I}$

ERROR: code indent should never use tabs
#200: FILE: tools/virtiofsd/buffer.c:182:
+^Iif (dst->flags & FUSE_BUF_FD_SEEK) {$

ERROR: code indent should never use tabs
#201: FILE: tools/virtiofsd/buffer.c:183:
+^I^Idstpos_val = dst->pos + dst_off;$

ERROR: code indent should never use tabs
#202: FILE: tools/virtiofsd/buffer.c:184:
+^I^Idstpos = &dstpos_val;$

ERROR: code indent should never use tabs
#203: FILE: tools/virtiofsd/buffer.c:185:
+^I}$

ERROR: code indent should never use tabs
#205: FILE: tools/virtiofsd/buffer.c:187:
+^Iwhile (len) {$

ERROR: code indent should never use tabs
#206: FILE: tools/virtiofsd/buffer.c:188:
+^I^Ires = splice(src->fd, srcpos, dst->fd, dstpos, len,$

ERROR: code indent should never use tabs
#207: FILE: tools/virtiofsd/buffer.c:189:
+^I^I^I     splice_flags);$

ERROR: code indent should never use tabs
#208: FILE: tools/virtiofsd/buffer.c:190:
+^I^Iif (res == -1) {$

ERROR: code indent should never use tabs
#209: FILE: tools/virtiofsd/buffer.c:191:
+^I^I^Iif (copied)$

ERROR: braces {} are necessary for all arms of this statement
#209: FILE: tools/virtiofsd/buffer.c:191:
+                       if (copied)
[...]

ERROR: code indent should never use tabs
#210: FILE: tools/virtiofsd/buffer.c:192:
+^I^I^I^Ibreak;$

ERROR: code indent should never use tabs
#212: FILE: tools/virtiofsd/buffer.c:194:
+^I^I^Iif (errno != EINVAL || (flags & FUSE_BUF_FORCE_SPLICE))$

ERROR: braces {} are necessary for all arms of this statement
#212: FILE: tools/virtiofsd/buffer.c:194:
+                       if (errno != EINVAL || (flags & FUSE_BUF_FORCE_SPLICE))
[...]

ERROR: code indent should never use tabs
#213: FILE: tools/virtiofsd/buffer.c:195:
+^I^I^I^Ireturn -errno;$

ERROR: code indent should never use tabs
#215: FILE: tools/virtiofsd/buffer.c:197:
+^I^I^I/* Maybe splice is not supported for this combination */$

ERROR: code indent should never use tabs
#216: FILE: tools/virtiofsd/buffer.c:198:
+^I^I^Ireturn fuse_buf_fd_to_fd(dst, dst_off, src, src_off,$

ERROR: code indent should never use tabs
#217: FILE: tools/virtiofsd/buffer.c:199:
+^I^I^I^I^I^I len);$

ERROR: code indent should never use tabs
#218: FILE: tools/virtiofsd/buffer.c:200:
+^I^I}$

ERROR: code indent should never use tabs
#219: FILE: tools/virtiofsd/buffer.c:201:
+^I^Iif (res == 0)$

ERROR: braces {} are necessary for all arms of this statement
#219: FILE: tools/virtiofsd/buffer.c:201:
+               if (res == 0)
[...]

ERROR: code indent should never use tabs
#220: FILE: tools/virtiofsd/buffer.c:202:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#222: FILE: tools/virtiofsd/buffer.c:204:
+^I^Icopied += res;$

ERROR: code indent should never use tabs
#223: FILE: tools/virtiofsd/buffer.c:205:
+^I^Iif (!(src->flags & FUSE_BUF_FD_RETRY) &&$

ERROR: code indent should never use tabs
#224: FILE: tools/virtiofsd/buffer.c:206:
+^I^I    !(dst->flags & FUSE_BUF_FD_RETRY)) {$

ERROR: code indent should never use tabs
#225: FILE: tools/virtiofsd/buffer.c:207:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#226: FILE: tools/virtiofsd/buffer.c:208:
+^I^I}$

ERROR: code indent should never use tabs
#228: FILE: tools/virtiofsd/buffer.c:210:
+^I^Ilen -= res;$

ERROR: code indent should never use tabs
#229: FILE: tools/virtiofsd/buffer.c:211:
+^I}$

ERROR: code indent should never use tabs
#231: FILE: tools/virtiofsd/buffer.c:213:
+^Ireturn copied;$

ERROR: code indent should never use tabs
#235: FILE: tools/virtiofsd/buffer.c:217:
+^I^I^I       const struct fuse_buf *src, size_t src_off,$

ERROR: code indent should never use tabs
#236: FILE: tools/virtiofsd/buffer.c:218:
+^I^I^I       size_t len, enum fuse_buf_copy_flags flags)$

ERROR: code indent should never use tabs
#238: FILE: tools/virtiofsd/buffer.c:220:
+^I(void) flags;$

ERROR: code indent should never use tabs
#240: FILE: tools/virtiofsd/buffer.c:222:
+^Ireturn fuse_buf_fd_to_fd(dst, dst_off, src, src_off, len);$

ERROR: code indent should never use tabs
#246: FILE: tools/virtiofsd/buffer.c:228:
+^I^I^I^I const struct fuse_buf *src, size_t src_off,$

ERROR: code indent should never use tabs
#247: FILE: tools/virtiofsd/buffer.c:229:
+^I^I^I^I size_t len, enum fuse_buf_copy_flags flags)$

ERROR: code indent should never use tabs
#249: FILE: tools/virtiofsd/buffer.c:231:
+^Iint src_is_fd = src->flags & FUSE_BUF_IS_FD;$

ERROR: code indent should never use tabs
#250: FILE: tools/virtiofsd/buffer.c:232:
+^Iint dst_is_fd = dst->flags & FUSE_BUF_IS_FD;$

ERROR: code indent should never use tabs
#252: FILE: tools/virtiofsd/buffer.c:234:
+^Iif (!src_is_fd && !dst_is_fd) {$

ERROR: code indent should never use tabs
#253: FILE: tools/virtiofsd/buffer.c:235:
+^I^Ichar *dstmem = (char *)dst->mem + dst_off;$

ERROR: code indent should never use tabs
#254: FILE: tools/virtiofsd/buffer.c:236:
+^I^Ichar *srcmem = (char *)src->mem + src_off;$

ERROR: code indent should never use tabs
#256: FILE: tools/virtiofsd/buffer.c:238:
+^I^Iif (dstmem != srcmem) {$

ERROR: code indent should never use tabs
#257: FILE: tools/virtiofsd/buffer.c:239:
+^I^I^Iif (dstmem + len <= srcmem || srcmem + len <= dstmem)$

ERROR: braces {} are necessary for all arms of this statement
#257: FILE: tools/virtiofsd/buffer.c:239:
+                       if (dstmem + len <= srcmem || srcmem + len <= dstmem)
[...]
+                       else
[...]

ERROR: code indent should never use tabs
#258: FILE: tools/virtiofsd/buffer.c:240:
+^I^I^I^Imemcpy(dstmem, srcmem, len);$

ERROR: code indent should never use tabs
#259: FILE: tools/virtiofsd/buffer.c:241:
+^I^I^Ielse$

ERROR: code indent should never use tabs
#260: FILE: tools/virtiofsd/buffer.c:242:
+^I^I^I^Imemmove(dstmem, srcmem, len);$

ERROR: code indent should never use tabs
#261: FILE: tools/virtiofsd/buffer.c:243:
+^I^I}$

ERROR: code indent should never use tabs
#263: FILE: tools/virtiofsd/buffer.c:245:
+^I^Ireturn len;$

ERROR: code indent should never use tabs
#264: FILE: tools/virtiofsd/buffer.c:246:
+^I} else if (!src_is_fd) {$

ERROR: code indent should never use tabs
#265: FILE: tools/virtiofsd/buffer.c:247:
+^I^Ireturn fuse_buf_write(dst, dst_off, src, src_off, len);$

ERROR: code indent should never use tabs
#266: FILE: tools/virtiofsd/buffer.c:248:
+^I} else if (!dst_is_fd) {$

ERROR: code indent should never use tabs
#267: FILE: tools/virtiofsd/buffer.c:249:
+^I^Ireturn fuse_buf_read(dst, dst_off, src, src_off, len);$

ERROR: code indent should never use tabs
#268: FILE: tools/virtiofsd/buffer.c:250:
+^I} else if (flags & FUSE_BUF_NO_SPLICE) {$

ERROR: code indent should never use tabs
#269: FILE: tools/virtiofsd/buffer.c:251:
+^I^Ireturn fuse_buf_fd_to_fd(dst, dst_off, src, src_off, len);$

ERROR: code indent should never use tabs
#270: FILE: tools/virtiofsd/buffer.c:252:
+^I} else {$

ERROR: code indent should never use tabs
#271: FILE: tools/virtiofsd/buffer.c:253:
+^I^Ireturn fuse_buf_splice(dst, dst_off, src, src_off, len, flags);$

ERROR: code indent should never use tabs
#272: FILE: tools/virtiofsd/buffer.c:254:
+^I}$

ERROR: code indent should never use tabs
#277: FILE: tools/virtiofsd/buffer.c:259:
+^Iif (bufv->idx < bufv->count)$

ERROR: braces {} are necessary for all arms of this statement
#277: FILE: tools/virtiofsd/buffer.c:259:
+       if (bufv->idx < bufv->count)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#278: FILE: tools/virtiofsd/buffer.c:260:
+^I^Ireturn &bufv->buf[bufv->idx];$

ERROR: code indent should never use tabs
#279: FILE: tools/virtiofsd/buffer.c:261:
+^Ielse$

ERROR: code indent should never use tabs
#280: FILE: tools/virtiofsd/buffer.c:262:
+^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#285: FILE: tools/virtiofsd/buffer.c:267:
+^Iconst struct fuse_buf *buf = fuse_bufvec_current(bufv);$

ERROR: code indent should never use tabs
#287: FILE: tools/virtiofsd/buffer.c:269:
+^Ibufv->off += len;$

ERROR: code indent should never use tabs
#288: FILE: tools/virtiofsd/buffer.c:270:
+^Iassert(bufv->off <= buf->size);$

ERROR: code indent should never use tabs
#289: FILE: tools/virtiofsd/buffer.c:271:
+^Iif (bufv->off == buf->size) {$

ERROR: code indent should never use tabs
#290: FILE: tools/virtiofsd/buffer.c:272:
+^I^Iassert(bufv->idx < bufv->count);$

ERROR: code indent should never use tabs
#291: FILE: tools/virtiofsd/buffer.c:273:
+^I^Ibufv->idx++;$

ERROR: code indent should never use tabs
#292: FILE: tools/virtiofsd/buffer.c:274:
+^I^Iif (bufv->idx == bufv->count)$

ERROR: braces {} are necessary for all arms of this statement
#292: FILE: tools/virtiofsd/buffer.c:274:
+               if (bufv->idx == bufv->count)
[...]

ERROR: code indent should never use tabs
#293: FILE: tools/virtiofsd/buffer.c:275:
+^I^I^Ireturn 0;$

ERROR: code indent should never use tabs
#294: FILE: tools/virtiofsd/buffer.c:276:
+^I^Ibufv->off = 0;$

ERROR: code indent should never use tabs
#295: FILE: tools/virtiofsd/buffer.c:277:
+^I}$

ERROR: code indent should never use tabs
#296: FILE: tools/virtiofsd/buffer.c:278:
+^Ireturn 1;$

ERROR: code indent should never use tabs
#300: FILE: tools/virtiofsd/buffer.c:282:
+^I^I      enum fuse_buf_copy_flags flags)$

ERROR: code indent should never use tabs
#302: FILE: tools/virtiofsd/buffer.c:284:
+^Isize_t copied = 0;$

ERROR: code indent should never use tabs
#304: FILE: tools/virtiofsd/buffer.c:286:
+^Iif (dstv == srcv)$

ERROR: braces {} are necessary for all arms of this statement
#304: FILE: tools/virtiofsd/buffer.c:286:
+       if (dstv == srcv)
[...]

ERROR: code indent should never use tabs
#305: FILE: tools/virtiofsd/buffer.c:287:
+^I^Ireturn fuse_buf_size(dstv);$

ERROR: code indent should never use tabs
#307: FILE: tools/virtiofsd/buffer.c:289:
+^Ifor (;;) {$

ERROR: code indent should never use tabs
#308: FILE: tools/virtiofsd/buffer.c:290:
+^I^Iconst struct fuse_buf *src = fuse_bufvec_current(srcv);$

ERROR: code indent should never use tabs
#309: FILE: tools/virtiofsd/buffer.c:291:
+^I^Iconst struct fuse_buf *dst = fuse_bufvec_current(dstv);$

ERROR: code indent should never use tabs
#310: FILE: tools/virtiofsd/buffer.c:292:
+^I^Isize_t src_len;$

ERROR: code indent should never use tabs
#311: FILE: tools/virtiofsd/buffer.c:293:
+^I^Isize_t dst_len;$

ERROR: code indent should never use tabs
#312: FILE: tools/virtiofsd/buffer.c:294:
+^I^Isize_t len;$

ERROR: code indent should never use tabs
#313: FILE: tools/virtiofsd/buffer.c:295:
+^I^Issize_t res;$

ERROR: code indent should never use tabs
#315: FILE: tools/virtiofsd/buffer.c:297:
+^I^Iif (src == NULL || dst == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#315: FILE: tools/virtiofsd/buffer.c:297:
+               if (src == NULL || dst == NULL)
[...]

ERROR: code indent should never use tabs
#316: FILE: tools/virtiofsd/buffer.c:298:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#318: FILE: tools/virtiofsd/buffer.c:300:
+^I^Isrc_len = src->size - srcv->off;$

ERROR: code indent should never use tabs
#319: FILE: tools/virtiofsd/buffer.c:301:
+^I^Idst_len = dst->size - dstv->off;$

ERROR: code indent should never use tabs
#320: FILE: tools/virtiofsd/buffer.c:302:
+^I^Ilen = min_size(src_len, dst_len);$

WARNING: line over 80 characters
#322: FILE: tools/virtiofsd/buffer.c:304:
+               res = fuse_buf_copy_one(dst, dstv->off, src, srcv->off, len, flags);

ERROR: code indent should never use tabs
#322: FILE: tools/virtiofsd/buffer.c:304:
+^I^Ires = fuse_buf_copy_one(dst, dstv->off, src, srcv->off, len, flags);$

ERROR: code indent should never use tabs
#323: FILE: tools/virtiofsd/buffer.c:305:
+^I^Iif (res < 0) {$

ERROR: code indent should never use tabs
#324: FILE: tools/virtiofsd/buffer.c:306:
+^I^I^Iif (!copied)$

ERROR: braces {} are necessary for all arms of this statement
#324: FILE: tools/virtiofsd/buffer.c:306:
+                       if (!copied)
[...]

ERROR: code indent should never use tabs
#325: FILE: tools/virtiofsd/buffer.c:307:
+^I^I^I^Ireturn res;$

ERROR: code indent should never use tabs
#326: FILE: tools/virtiofsd/buffer.c:308:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#327: FILE: tools/virtiofsd/buffer.c:309:
+^I^I}$

ERROR: code indent should never use tabs
#328: FILE: tools/virtiofsd/buffer.c:310:
+^I^Icopied += res;$

ERROR: code indent should never use tabs
#330: FILE: tools/virtiofsd/buffer.c:312:
+^I^Iif (!fuse_bufvec_advance(srcv, res) ||$

ERROR: code indent should never use tabs
#331: FILE: tools/virtiofsd/buffer.c:313:
+^I^I    !fuse_bufvec_advance(dstv, res))$

ERROR: code indent should never use tabs
#332: FILE: tools/virtiofsd/buffer.c:314:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#334: FILE: tools/virtiofsd/buffer.c:316:
+^I^Iif (res < len)$

ERROR: braces {} are necessary for all arms of this statement
#334: FILE: tools/virtiofsd/buffer.c:316:
+               if (res < len)
[...]

ERROR: code indent should never use tabs
#335: FILE: tools/virtiofsd/buffer.c:317:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#336: FILE: tools/virtiofsd/buffer.c:318:
+^I}$

ERROR: code indent should never use tabs
#338: FILE: tools/virtiofsd/buffer.c:320:
+^Ireturn copied;$

WARNING: Block comments use * on subsequent lines
#347: FILE: tools/virtiofsd/fuse_log.c:2:
+/*
+  FUSE: Filesystem in Userspace

ERROR: code indent should never use tabs
#362: FILE: tools/virtiofsd/fuse_log.c:17:
+^I^I__attribute__(( unused )) enum fuse_log_level level,$

ERROR: space prohibited after that open parenthesis '('
#362: FILE: tools/virtiofsd/fuse_log.c:17:
+               __attribute__(( unused )) enum fuse_log_level level,

ERROR: space prohibited before that close parenthesis ')'
#362: FILE: tools/virtiofsd/fuse_log.c:17:
+               __attribute__(( unused )) enum fuse_log_level level,

ERROR: code indent should never use tabs
#363: FILE: tools/virtiofsd/fuse_log.c:18:
+^I^Iconst char *fmt, va_list ap)$

ERROR: code indent should never use tabs
#365: FILE: tools/virtiofsd/fuse_log.c:20:
+^Ivfprintf(stderr, fmt, ap);$

ERROR: code indent should never use tabs
#372: FILE: tools/virtiofsd/fuse_log.c:27:
+^Iif (!func)$

ERROR: braces {} are necessary for all arms of this statement
#372: FILE: tools/virtiofsd/fuse_log.c:27:
+       if (!func)
[...]

ERROR: code indent should never use tabs
#373: FILE: tools/virtiofsd/fuse_log.c:28:
+^I^Ifunc = default_log_func;$

ERROR: code indent should never use tabs
#375: FILE: tools/virtiofsd/fuse_log.c:30:
+^Ilog_func = func;$

ERROR: code indent should never use tabs
#380: FILE: tools/virtiofsd/fuse_log.c:35:
+^Iva_list ap;$

ERROR: code indent should never use tabs
#382: FILE: tools/virtiofsd/fuse_log.c:37:
+^Iva_start(ap, fmt);$

ERROR: code indent should never use tabs
#383: FILE: tools/virtiofsd/fuse_log.c:38:
+^Ilog_func(level, fmt, ap);$

ERROR: code indent should never use tabs
#384: FILE: tools/virtiofsd/fuse_log.c:39:
+^Iva_end(ap);$

WARNING: Block comments use * on subsequent lines
#393: FILE: tools/virtiofsd/fuse_opt.c:2:
+/*
+  FUSE: Filesystem in Userspace

ERROR: code indent should never use tabs
#414: FILE: tools/virtiofsd/fuse_opt.c:23:
+^Ivoid *data;$

ERROR: code indent should never use tabs
#415: FILE: tools/virtiofsd/fuse_opt.c:24:
+^Iconst struct fuse_opt *opt;$

ERROR: code indent should never use tabs
#416: FILE: tools/virtiofsd/fuse_opt.c:25:
+^Ifuse_opt_proc_t proc;$

ERROR: code indent should never use tabs
#417: FILE: tools/virtiofsd/fuse_opt.c:26:
+^Iint argctr;$

ERROR: code indent should never use tabs
#418: FILE: tools/virtiofsd/fuse_opt.c:27:
+^Iint argc;$

ERROR: code indent should never use tabs
#419: FILE: tools/virtiofsd/fuse_opt.c:28:
+^Ichar **argv;$

ERROR: code indent should never use tabs
#420: FILE: tools/virtiofsd/fuse_opt.c:29:
+^Istruct fuse_args outargs;$

ERROR: code indent should never use tabs
#421: FILE: tools/virtiofsd/fuse_opt.c:30:
+^Ichar *opts;$

ERROR: code indent should never use tabs
#422: FILE: tools/virtiofsd/fuse_opt.c:31:
+^Iint nonopt;$

ERROR: code indent should never use tabs
#427: FILE: tools/virtiofsd/fuse_opt.c:36:
+^Iif (args) {$

ERROR: code indent should never use tabs
#428: FILE: tools/virtiofsd/fuse_opt.c:37:
+^I^Iif (args->argv && args->allocated) {$

ERROR: code indent should never use tabs
#429: FILE: tools/virtiofsd/fuse_opt.c:38:
+^I^I^Iint i;$

ERROR: code indent should never use tabs
#430: FILE: tools/virtiofsd/fuse_opt.c:39:
+^I^I^Ifor (i = 0; i < args->argc; i++)$

ERROR: braces {} are necessary for all arms of this statement
#430: FILE: tools/virtiofsd/fuse_opt.c:39:
+                       for (i = 0; i < args->argc; i++)
[...]

ERROR: code indent should never use tabs
#431: FILE: tools/virtiofsd/fuse_opt.c:40:
+^I^I^I^Ifree(args->argv[i]);$

ERROR: code indent should never use tabs
#432: FILE: tools/virtiofsd/fuse_opt.c:41:
+^I^I^Ifree(args->argv);$

ERROR: code indent should never use tabs
#433: FILE: tools/virtiofsd/fuse_opt.c:42:
+^I^I}$

ERROR: code indent should never use tabs
#434: FILE: tools/virtiofsd/fuse_opt.c:43:
+^I^Iargs->argc = 0;$

ERROR: code indent should never use tabs
#435: FILE: tools/virtiofsd/fuse_opt.c:44:
+^I^Iargs->argv = NULL;$

ERROR: code indent should never use tabs
#436: FILE: tools/virtiofsd/fuse_opt.c:45:
+^I^Iargs->allocated = 0;$

ERROR: code indent should never use tabs
#437: FILE: tools/virtiofsd/fuse_opt.c:46:
+^I}$

ERROR: code indent should never use tabs
#442: FILE: tools/virtiofsd/fuse_opt.c:51:
+^Ifuse_log(FUSE_LOG_ERR, "fuse: memory allocation failed\n");$

ERROR: code indent should never use tabs
#443: FILE: tools/virtiofsd/fuse_opt.c:52:
+^Ireturn -1;$

ERROR: code indent should never use tabs
#448: FILE: tools/virtiofsd/fuse_opt.c:57:
+^Ichar **newargv;$

ERROR: code indent should never use tabs
#449: FILE: tools/virtiofsd/fuse_opt.c:58:
+^Ichar *newarg;$

ERROR: code indent should never use tabs
#451: FILE: tools/virtiofsd/fuse_opt.c:60:
+^Iassert(!args->argv || args->allocated);$

ERROR: code indent should never use tabs
#453: FILE: tools/virtiofsd/fuse_opt.c:62:
+^Inewarg = strdup(arg);$

ERROR: code indent should never use tabs
#454: FILE: tools/virtiofsd/fuse_opt.c:63:
+^Iif (!newarg)$

ERROR: braces {} are necessary for all arms of this statement
#454: FILE: tools/virtiofsd/fuse_opt.c:63:
+       if (!newarg)
[...]

ERROR: code indent should never use tabs
#455: FILE: tools/virtiofsd/fuse_opt.c:64:
+^I^Ireturn alloc_failed();$

ERROR: code indent should never use tabs
#457: FILE: tools/virtiofsd/fuse_opt.c:66:
+^Inewargv = realloc(args->argv, (args->argc + 2) * sizeof(char *));$

ERROR: code indent should never use tabs
#458: FILE: tools/virtiofsd/fuse_opt.c:67:
+^Iif (!newargv) {$

ERROR: code indent should never use tabs
#459: FILE: tools/virtiofsd/fuse_opt.c:68:
+^I^Ifree(newarg);$

ERROR: code indent should never use tabs
#460: FILE: tools/virtiofsd/fuse_opt.c:69:
+^I^Ireturn alloc_failed();$

ERROR: code indent should never use tabs
#461: FILE: tools/virtiofsd/fuse_opt.c:70:
+^I}$

ERROR: code indent should never use tabs
#463: FILE: tools/virtiofsd/fuse_opt.c:72:
+^Iargs->argv = newargv;$

ERROR: code indent should never use tabs
#464: FILE: tools/virtiofsd/fuse_opt.c:73:
+^Iargs->allocated = 1;$

ERROR: code indent should never use tabs
#465: FILE: tools/virtiofsd/fuse_opt.c:74:
+^Iargs->argv[args->argc++] = newarg;$

ERROR: code indent should never use tabs
#466: FILE: tools/virtiofsd/fuse_opt.c:75:
+^Iargs->argv[args->argc] = NULL;$

ERROR: code indent should never use tabs
#467: FILE: tools/virtiofsd/fuse_opt.c:76:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#471: FILE: tools/virtiofsd/fuse_opt.c:80:
+^I^I^I^I      const char *arg)$

ERROR: code indent should never use tabs
#473: FILE: tools/virtiofsd/fuse_opt.c:82:
+^Iassert(pos <= args->argc);$

ERROR: code indent should never use tabs
#474: FILE: tools/virtiofsd/fuse_opt.c:83:
+^Iif (fuse_opt_add_arg(args, arg) == -1)$

ERROR: braces {} are necessary for all arms of this statement
#474: FILE: tools/virtiofsd/fuse_opt.c:83:
+       if (fuse_opt_add_arg(args, arg) == -1)
[...]

ERROR: code indent should never use tabs
#475: FILE: tools/virtiofsd/fuse_opt.c:84:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#477: FILE: tools/virtiofsd/fuse_opt.c:86:
+^Iif (pos != args->argc - 1) {$

ERROR: code indent should never use tabs
#478: FILE: tools/virtiofsd/fuse_opt.c:87:
+^I^Ichar *newarg = args->argv[args->argc - 1];$

ERROR: code indent should never use tabs
#479: FILE: tools/virtiofsd/fuse_opt.c:88:
+^I^Imemmove(&args->argv[pos + 1], &args->argv[pos],$

ERROR: code indent should never use tabs
#480: FILE: tools/virtiofsd/fuse_opt.c:89:
+^I^I^Isizeof(char *) * (args->argc - pos - 1));$

ERROR: code indent should never use tabs
#481: FILE: tools/virtiofsd/fuse_opt.c:90:
+^I^Iargs->argv[pos] = newarg;$

ERROR: code indent should never use tabs
#482: FILE: tools/virtiofsd/fuse_opt.c:91:
+^I}$

ERROR: code indent should never use tabs
#483: FILE: tools/virtiofsd/fuse_opt.c:92:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#488: FILE: tools/virtiofsd/fuse_opt.c:97:
+^Ireturn fuse_opt_insert_arg_common(args, pos, arg);$

ERROR: code indent should never use tabs
#493: FILE: tools/virtiofsd/fuse_opt.c:102:
+^Iif (ctx->argctr + 1 >= ctx->argc) {$

WARNING: line over 80 characters
#494: FILE: tools/virtiofsd/fuse_opt.c:103:
+               fuse_log(FUSE_LOG_ERR, "fuse: missing argument after `%s'\n", opt);

ERROR: code indent should never use tabs
#494: FILE: tools/virtiofsd/fuse_opt.c:103:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: missing argument after `%s'\n", opt);$

ERROR: code indent should never use tabs
#495: FILE: tools/virtiofsd/fuse_opt.c:104:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#496: FILE: tools/virtiofsd/fuse_opt.c:105:
+^I}$

ERROR: code indent should never use tabs
#497: FILE: tools/virtiofsd/fuse_opt.c:106:
+^Ictx->argctr++;$

ERROR: code indent should never use tabs
#498: FILE: tools/virtiofsd/fuse_opt.c:107:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#503: FILE: tools/virtiofsd/fuse_opt.c:112:
+^Ireturn fuse_opt_add_arg(&ctx->outargs, arg);$

ERROR: code indent should never use tabs
#508: FILE: tools/virtiofsd/fuse_opt.c:117:
+^Iunsigned oldlen = *opts ? strlen(*opts) : 0;$

ERROR: code indent should never use tabs
#509: FILE: tools/virtiofsd/fuse_opt.c:118:
+^Ichar *d = realloc(*opts, oldlen + 1 + strlen(opt) * 2 + 1);$

ERROR: code indent should never use tabs
#511: FILE: tools/virtiofsd/fuse_opt.c:120:
+^Iif (!d)$

ERROR: braces {} are necessary for all arms of this statement
#511: FILE: tools/virtiofsd/fuse_opt.c:120:
+       if (!d)
[...]

ERROR: code indent should never use tabs
#512: FILE: tools/virtiofsd/fuse_opt.c:121:
+^I^Ireturn alloc_failed();$

ERROR: code indent should never use tabs
#514: FILE: tools/virtiofsd/fuse_opt.c:123:
+^I*opts = d;$

ERROR: code indent should never use tabs
#515: FILE: tools/virtiofsd/fuse_opt.c:124:
+^Iif (oldlen) {$

ERROR: code indent should never use tabs
#516: FILE: tools/virtiofsd/fuse_opt.c:125:
+^I^Id += oldlen;$

ERROR: code indent should never use tabs
#517: FILE: tools/virtiofsd/fuse_opt.c:126:
+^I^I*d++ = ',';$

ERROR: code indent should never use tabs
#518: FILE: tools/virtiofsd/fuse_opt.c:127:
+^I}$

ERROR: code indent should never use tabs
#520: FILE: tools/virtiofsd/fuse_opt.c:129:
+^Ifor (; *opt; opt++) {$

ERROR: code indent should never use tabs
#521: FILE: tools/virtiofsd/fuse_opt.c:130:
+^I^Iif (esc && (*opt == ',' || *opt == '\\'))$

ERROR: braces {} are necessary for all arms of this statement
#521: FILE: tools/virtiofsd/fuse_opt.c:130:
+               if (esc && (*opt == ',' || *opt == '\\'))
[...]

ERROR: code indent should never use tabs
#522: FILE: tools/virtiofsd/fuse_opt.c:131:
+^I^I^I*d++ = '\\';$

ERROR: code indent should never use tabs
#523: FILE: tools/virtiofsd/fuse_opt.c:132:
+^I^I*d++ = *opt;$

ERROR: code indent should never use tabs
#524: FILE: tools/virtiofsd/fuse_opt.c:133:
+^I}$

ERROR: code indent should never use tabs
#525: FILE: tools/virtiofsd/fuse_opt.c:134:
+^I*d = '\0';$

ERROR: code indent should never use tabs
#527: FILE: tools/virtiofsd/fuse_opt.c:136:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#532: FILE: tools/virtiofsd/fuse_opt.c:141:
+^Ireturn add_opt_common(opts, opt, 0);$

ERROR: code indent should never use tabs
#537: FILE: tools/virtiofsd/fuse_opt.c:146:
+^Ireturn add_opt_common(opts, opt, 1);$

ERROR: code indent should never use tabs
#542: FILE: tools/virtiofsd/fuse_opt.c:151:
+^Ireturn add_opt_common(&ctx->opts, opt, 1);$

ERROR: code indent should never use tabs
#546: FILE: tools/virtiofsd/fuse_opt.c:155:
+^I^I     int iso)$

ERROR: code indent should never use tabs
#548: FILE: tools/virtiofsd/fuse_opt.c:157:
+^Iif (key == FUSE_OPT_KEY_DISCARD)$

ERROR: braces {} are necessary for all arms of this statement
#548: FILE: tools/virtiofsd/fuse_opt.c:157:
+       if (key == FUSE_OPT_KEY_DISCARD)
[...]

ERROR: code indent should never use tabs
#549: FILE: tools/virtiofsd/fuse_opt.c:158:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#551: FILE: tools/virtiofsd/fuse_opt.c:160:
+^Iif (key != FUSE_OPT_KEY_KEEP && ctx->proc) {$

ERROR: code indent should never use tabs
#552: FILE: tools/virtiofsd/fuse_opt.c:161:
+^I^Iint res = ctx->proc(ctx->data, arg, key, &ctx->outargs);$

ERROR: code indent should never use tabs
#553: FILE: tools/virtiofsd/fuse_opt.c:162:
+^I^Iif (res == -1 || !res)$

ERROR: braces {} are necessary for all arms of this statement
#553: FILE: tools/virtiofsd/fuse_opt.c:162:
+               if (res == -1 || !res)
[...]

ERROR: code indent should never use tabs
#554: FILE: tools/virtiofsd/fuse_opt.c:163:
+^I^I^Ireturn res;$

ERROR: code indent should never use tabs
#555: FILE: tools/virtiofsd/fuse_opt.c:164:
+^I}$

ERROR: code indent should never use tabs
#556: FILE: tools/virtiofsd/fuse_opt.c:165:
+^Iif (iso)$

ERROR: braces {} are necessary for all arms of this statement
#556: FILE: tools/virtiofsd/fuse_opt.c:165:
+       if (iso)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#557: FILE: tools/virtiofsd/fuse_opt.c:166:
+^I^Ireturn add_opt(ctx, arg);$

ERROR: code indent should never use tabs
#558: FILE: tools/virtiofsd/fuse_opt.c:167:
+^Ielse$

ERROR: code indent should never use tabs
#559: FILE: tools/virtiofsd/fuse_opt.c:168:
+^I^Ireturn add_arg(ctx, arg);$

ERROR: code indent should never use tabs
#564: FILE: tools/virtiofsd/fuse_opt.c:173:
+^Iint arglen = strlen(arg);$

ERROR: code indent should never use tabs
#565: FILE: tools/virtiofsd/fuse_opt.c:174:
+^Iconst char *sep = strchr(t, '=');$

ERROR: code indent should never use tabs
#566: FILE: tools/virtiofsd/fuse_opt.c:175:
+^Isep = sep ? sep : strchr(t, ' ');$

ERROR: code indent should never use tabs
#567: FILE: tools/virtiofsd/fuse_opt.c:176:
+^Iif (sep && (!sep[1] || sep[1] == '%')) {$

ERROR: code indent should never use tabs
#568: FILE: tools/virtiofsd/fuse_opt.c:177:
+^I^Iint tlen = sep - t;$

ERROR: code indent should never use tabs
#569: FILE: tools/virtiofsd/fuse_opt.c:178:
+^I^Iif (sep[0] == '=')$

ERROR: braces {} are necessary for all arms of this statement
#569: FILE: tools/virtiofsd/fuse_opt.c:178:
+               if (sep[0] == '=')
[...]

ERROR: code indent should never use tabs
#570: FILE: tools/virtiofsd/fuse_opt.c:179:
+^I^I^Itlen ++;$

ERROR: space prohibited before that '++' (ctx:WxO)
#570: FILE: tools/virtiofsd/fuse_opt.c:179:
+                       tlen ++;
                             ^

ERROR: code indent should never use tabs
#571: FILE: tools/virtiofsd/fuse_opt.c:180:
+^I^Iif (arglen >= tlen && strncmp(arg, t, tlen) == 0) {$

ERROR: code indent should never use tabs
#572: FILE: tools/virtiofsd/fuse_opt.c:181:
+^I^I^I*sepp = sep - t;$

ERROR: code indent should never use tabs
#573: FILE: tools/virtiofsd/fuse_opt.c:182:
+^I^I^Ireturn 1;$

ERROR: code indent should never use tabs
#574: FILE: tools/virtiofsd/fuse_opt.c:183:
+^I^I}$

ERROR: code indent should never use tabs
#575: FILE: tools/virtiofsd/fuse_opt.c:184:
+^I}$

ERROR: code indent should never use tabs
#576: FILE: tools/virtiofsd/fuse_opt.c:185:
+^Iif (strcmp(t, arg) == 0) {$

ERROR: code indent should never use tabs
#577: FILE: tools/virtiofsd/fuse_opt.c:186:
+^I^I*sepp = 0;$

ERROR: code indent should never use tabs
#578: FILE: tools/virtiofsd/fuse_opt.c:187:
+^I^Ireturn 1;$

ERROR: code indent should never use tabs
#579: FILE: tools/virtiofsd/fuse_opt.c:188:
+^I}$

ERROR: code indent should never use tabs
#580: FILE: tools/virtiofsd/fuse_opt.c:189:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#584: FILE: tools/virtiofsd/fuse_opt.c:193:
+^I^I^I^I       const char *arg, unsigned *sepp)$

ERROR: code indent should never use tabs
#586: FILE: tools/virtiofsd/fuse_opt.c:195:
+^Ifor (; opt && opt->templ; opt++)$

ERROR: code indent should never use tabs
#587: FILE: tools/virtiofsd/fuse_opt.c:196:
+^I^Iif (match_template(opt->templ, arg, sepp))$

ERROR: braces {} are necessary for all arms of this statement
#587: FILE: tools/virtiofsd/fuse_opt.c:196:
+               if (match_template(opt->templ, arg, sepp))
[...]

ERROR: code indent should never use tabs
#588: FILE: tools/virtiofsd/fuse_opt.c:197:
+^I^I^Ireturn opt;$

ERROR: code indent should never use tabs
#589: FILE: tools/virtiofsd/fuse_opt.c:198:
+^Ireturn NULL;$

ERROR: code indent should never use tabs
#594: FILE: tools/virtiofsd/fuse_opt.c:203:
+^Iunsigned dummy;$

ERROR: code indent should never use tabs
#595: FILE: tools/virtiofsd/fuse_opt.c:204:
+^Ireturn find_opt(opts, opt, &dummy) ? 1 : 0;$

ERROR: code indent should never use tabs
#599: FILE: tools/virtiofsd/fuse_opt.c:208:
+^I^I^I     const char *arg)$

ERROR: code indent should never use tabs
#601: FILE: tools/virtiofsd/fuse_opt.c:210:
+^Iassert(format[0] == '%');$

ERROR: code indent should never use tabs
#602: FILE: tools/virtiofsd/fuse_opt.c:211:
+^Iif (format[1] == 's') {$

ERROR: code indent should never use tabs
#603: FILE: tools/virtiofsd/fuse_opt.c:212:
+^I^Ichar **s = var;$

ERROR: code indent should never use tabs
#604: FILE: tools/virtiofsd/fuse_opt.c:213:
+^I^Ichar *copy = strdup(param);$

ERROR: code indent should never use tabs
#605: FILE: tools/virtiofsd/fuse_opt.c:214:
+^I^Iif (!copy)$

ERROR: braces {} are necessary for all arms of this statement
#605: FILE: tools/virtiofsd/fuse_opt.c:214:
+               if (!copy)
[...]

ERROR: code indent should never use tabs
#606: FILE: tools/virtiofsd/fuse_opt.c:215:
+^I^I^Ireturn alloc_failed();$

ERROR: code indent should never use tabs
#608: FILE: tools/virtiofsd/fuse_opt.c:217:
+^I^Ifree(*s);$

ERROR: code indent should never use tabs
#609: FILE: tools/virtiofsd/fuse_opt.c:218:
+^I^I*s = copy;$

ERROR: code indent should never use tabs
#610: FILE: tools/virtiofsd/fuse_opt.c:219:
+^I} else {$

ERROR: code indent should never use tabs
#611: FILE: tools/virtiofsd/fuse_opt.c:220:
+^I^Iif (sscanf(param, format, var) != 1) {$

ERROR: line over 90 characters
#612: FILE: tools/virtiofsd/fuse_opt.c:221:
+                       fuse_log(FUSE_LOG_ERR, "fuse: invalid parameter in option `%s'\n", arg);

ERROR: code indent should never use tabs
#612: FILE: tools/virtiofsd/fuse_opt.c:221:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "fuse: invalid parameter in option `%s'\n", arg);$

ERROR: code indent should never use tabs
#613: FILE: tools/virtiofsd/fuse_opt.c:222:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#614: FILE: tools/virtiofsd/fuse_opt.c:223:
+^I^I}$

ERROR: code indent should never use tabs
#615: FILE: tools/virtiofsd/fuse_opt.c:224:
+^I}$

ERROR: code indent should never use tabs
#616: FILE: tools/virtiofsd/fuse_opt.c:225:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#620: FILE: tools/virtiofsd/fuse_opt.c:229:
+^I^I       const struct fuse_opt *opt, unsigned sep,$

ERROR: code indent should never use tabs
#621: FILE: tools/virtiofsd/fuse_opt.c:230:
+^I^I       const char *arg, int iso)$

ERROR: code indent should never use tabs
#623: FILE: tools/virtiofsd/fuse_opt.c:232:
+^Iif (opt->offset == -1U) {$

ERROR: code indent should never use tabs
#624: FILE: tools/virtiofsd/fuse_opt.c:233:
+^I^Iif (call_proc(ctx, arg, opt->value, iso) == -1)$

ERROR: braces {} are necessary for all arms of this statement
#624: FILE: tools/virtiofsd/fuse_opt.c:233:
+               if (call_proc(ctx, arg, opt->value, iso) == -1)
[...]

ERROR: code indent should never use tabs
#625: FILE: tools/virtiofsd/fuse_opt.c:234:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#626: FILE: tools/virtiofsd/fuse_opt.c:235:
+^I} else {$

ERROR: code indent should never use tabs
#627: FILE: tools/virtiofsd/fuse_opt.c:236:
+^I^Ivoid *var = (char *)ctx->data + opt->offset;$

ERROR: code indent should never use tabs
#628: FILE: tools/virtiofsd/fuse_opt.c:237:
+^I^Iif (sep && opt->templ[sep + 1]) {$

ERROR: code indent should never use tabs
#629: FILE: tools/virtiofsd/fuse_opt.c:238:
+^I^I^Iconst char *param = arg + sep;$

ERROR: code indent should never use tabs
#630: FILE: tools/virtiofsd/fuse_opt.c:239:
+^I^I^Iif (opt->templ[sep] == '=')$

ERROR: braces {} are necessary for all arms of this statement
#630: FILE: tools/virtiofsd/fuse_opt.c:239:
+                       if (opt->templ[sep] == '=')
[...]

ERROR: code indent should never use tabs
#631: FILE: tools/virtiofsd/fuse_opt.c:240:
+^I^I^I^Iparam ++;$

ERROR: space prohibited before that '++' (ctx:WxO)
#631: FILE: tools/virtiofsd/fuse_opt.c:240:
+                               param ++;
                                      ^

ERROR: code indent should never use tabs
#632: FILE: tools/virtiofsd/fuse_opt.c:241:
+^I^I^Iif (process_opt_param(var, opt->templ + sep + 1,$

ERROR: code indent should never use tabs
#633: FILE: tools/virtiofsd/fuse_opt.c:242:
+^I^I^I^I^I      param, arg) == -1)$

ERROR: code indent should never use tabs
#634: FILE: tools/virtiofsd/fuse_opt.c:243:
+^I^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#635: FILE: tools/virtiofsd/fuse_opt.c:244:
+^I^I} else$

ERROR: code indent should never use tabs
#636: FILE: tools/virtiofsd/fuse_opt.c:245:
+^I^I^I*(int *)var = opt->value;$

ERROR: code indent should never use tabs
#637: FILE: tools/virtiofsd/fuse_opt.c:246:
+^I}$

ERROR: code indent should never use tabs
#638: FILE: tools/virtiofsd/fuse_opt.c:247:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#642: FILE: tools/virtiofsd/fuse_opt.c:251:
+^I^I^I       const struct fuse_opt *opt, unsigned sep,$

ERROR: code indent should never use tabs
#643: FILE: tools/virtiofsd/fuse_opt.c:252:
+^I^I^I       const char *arg, int iso)$

ERROR: code indent should never use tabs
#645: FILE: tools/virtiofsd/fuse_opt.c:254:
+^Iint res;$

ERROR: code indent should never use tabs
#646: FILE: tools/virtiofsd/fuse_opt.c:255:
+^Ichar *newarg;$

ERROR: code indent should never use tabs
#647: FILE: tools/virtiofsd/fuse_opt.c:256:
+^Ichar *param;$

ERROR: code indent should never use tabs
#649: FILE: tools/virtiofsd/fuse_opt.c:258:
+^Iif (next_arg(ctx, arg) == -1)$

ERROR: braces {} are necessary for all arms of this statement
#649: FILE: tools/virtiofsd/fuse_opt.c:258:
+       if (next_arg(ctx, arg) == -1)
[...]

ERROR: code indent should never use tabs
#650: FILE: tools/virtiofsd/fuse_opt.c:259:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#652: FILE: tools/virtiofsd/fuse_opt.c:261:
+^Iparam = ctx->argv[ctx->argctr];$

ERROR: code indent should never use tabs
#653: FILE: tools/virtiofsd/fuse_opt.c:262:
+^Inewarg = malloc(sep + strlen(param) + 1);$

ERROR: code indent should never use tabs
#654: FILE: tools/virtiofsd/fuse_opt.c:263:
+^Iif (!newarg)$

ERROR: braces {} are necessary for all arms of this statement
#654: FILE: tools/virtiofsd/fuse_opt.c:263:
+       if (!newarg)
[...]

ERROR: code indent should never use tabs
#655: FILE: tools/virtiofsd/fuse_opt.c:264:
+^I^Ireturn alloc_failed();$

ERROR: code indent should never use tabs
#657: FILE: tools/virtiofsd/fuse_opt.c:266:
+^Imemcpy(newarg, arg, sep);$

ERROR: code indent should never use tabs
#658: FILE: tools/virtiofsd/fuse_opt.c:267:
+^Istrcpy(newarg + sep, param);$

ERROR: code indent should never use tabs
#659: FILE: tools/virtiofsd/fuse_opt.c:268:
+^Ires = process_opt(ctx, opt, sep, newarg, iso);$

ERROR: code indent should never use tabs
#660: FILE: tools/virtiofsd/fuse_opt.c:269:
+^Ifree(newarg);$

ERROR: code indent should never use tabs
#662: FILE: tools/virtiofsd/fuse_opt.c:271:
+^Ireturn res;$

ERROR: code indent should never use tabs
#667: FILE: tools/virtiofsd/fuse_opt.c:276:
+^Iunsigned sep;$

ERROR: code indent should never use tabs
#668: FILE: tools/virtiofsd/fuse_opt.c:277:
+^Iconst struct fuse_opt *opt = find_opt(ctx->opt, arg, &sep);$

ERROR: code indent should never use tabs
#669: FILE: tools/virtiofsd/fuse_opt.c:278:
+^Iif (opt) {$

ERROR: code indent should never use tabs
#670: FILE: tools/virtiofsd/fuse_opt.c:279:
+^I^Ifor (; opt; opt = find_opt(opt + 1, arg, &sep)) {$

ERROR: code indent should never use tabs
#671: FILE: tools/virtiofsd/fuse_opt.c:280:
+^I^I^Iint res;$

ERROR: code indent should never use tabs
#672: FILE: tools/virtiofsd/fuse_opt.c:281:
+^I^I^Iif (sep && opt->templ[sep] == ' ' && !arg[sep])$

ERROR: code indent should never use tabs
#673: FILE: tools/virtiofsd/fuse_opt.c:282:
+^I^I^I^Ires = process_opt_sep_arg(ctx, opt, sep, arg,$

ERROR: code indent should never use tabs
#674: FILE: tools/virtiofsd/fuse_opt.c:283:
+^I^I^I^I^I^I^I  iso);$

ERROR: code indent should never use tabs
#675: FILE: tools/virtiofsd/fuse_opt.c:284:
+^I^I^Ielse$

ERROR: code indent should never use tabs
#676: FILE: tools/virtiofsd/fuse_opt.c:285:
+^I^I^I^Ires = process_opt(ctx, opt, sep, arg, iso);$

ERROR: code indent should never use tabs
#677: FILE: tools/virtiofsd/fuse_opt.c:286:
+^I^I^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#677: FILE: tools/virtiofsd/fuse_opt.c:286:
+                       if (res == -1)
[...]

ERROR: code indent should never use tabs
#678: FILE: tools/virtiofsd/fuse_opt.c:287:
+^I^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#679: FILE: tools/virtiofsd/fuse_opt.c:288:
+^I^I}$

ERROR: code indent should never use tabs
#680: FILE: tools/virtiofsd/fuse_opt.c:289:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#681: FILE: tools/virtiofsd/fuse_opt.c:290:
+^I} else$

ERROR: code indent should never use tabs
#682: FILE: tools/virtiofsd/fuse_opt.c:291:
+^I^Ireturn call_proc(ctx, arg, FUSE_OPT_KEY_OPT, iso);$

ERROR: code indent should never use tabs
#687: FILE: tools/virtiofsd/fuse_opt.c:296:
+^Ichar *s = opts;$

ERROR: code indent should never use tabs
#688: FILE: tools/virtiofsd/fuse_opt.c:297:
+^Ichar *d = s;$

ERROR: code indent should never use tabs
#689: FILE: tools/virtiofsd/fuse_opt.c:298:
+^Iint end = 0;$

ERROR: code indent should never use tabs
#691: FILE: tools/virtiofsd/fuse_opt.c:300:
+^Iwhile (!end) {$

ERROR: code indent should never use tabs
#692: FILE: tools/virtiofsd/fuse_opt.c:301:
+^I^Iif (*s == '\0')$

ERROR: braces {} are necessary for all arms of this statement
#692: FILE: tools/virtiofsd/fuse_opt.c:301:
+               if (*s == '\0')
[...]

ERROR: code indent should never use tabs
#693: FILE: tools/virtiofsd/fuse_opt.c:302:
+^I^I^Iend = 1;$

ERROR: code indent should never use tabs
#694: FILE: tools/virtiofsd/fuse_opt.c:303:
+^I^Iif (*s == ',' || end) {$

ERROR: code indent should never use tabs
#695: FILE: tools/virtiofsd/fuse_opt.c:304:
+^I^I^Iint res;$

ERROR: code indent should never use tabs
#697: FILE: tools/virtiofsd/fuse_opt.c:306:
+^I^I^I*d = '\0';$

ERROR: code indent should never use tabs
#698: FILE: tools/virtiofsd/fuse_opt.c:307:
+^I^I^Ires = process_gopt(ctx, opts, 1);$

ERROR: code indent should never use tabs
#699: FILE: tools/virtiofsd/fuse_opt.c:308:
+^I^I^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#699: FILE: tools/virtiofsd/fuse_opt.c:308:
+                       if (res == -1)
[...]

ERROR: code indent should never use tabs
#700: FILE: tools/virtiofsd/fuse_opt.c:309:
+^I^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#701: FILE: tools/virtiofsd/fuse_opt.c:310:
+^I^I^Id = opts;$

ERROR: code indent should never use tabs
#702: FILE: tools/virtiofsd/fuse_opt.c:311:
+^I^I} else {$

ERROR: code indent should never use tabs
#703: FILE: tools/virtiofsd/fuse_opt.c:312:
+^I^I^Iif (s[0] == '\\' && s[1] != '\0') {$

ERROR: code indent should never use tabs
#704: FILE: tools/virtiofsd/fuse_opt.c:313:
+^I^I^I^Is++;$

ERROR: code indent should never use tabs
#705: FILE: tools/virtiofsd/fuse_opt.c:314:
+^I^I^I^Iif (s[0] >= '0' && s[0] <= '3' &&$

ERROR: code indent should never use tabs
#706: FILE: tools/virtiofsd/fuse_opt.c:315:
+^I^I^I^I    s[1] >= '0' && s[1] <= '7' &&$

ERROR: code indent should never use tabs
#707: FILE: tools/virtiofsd/fuse_opt.c:316:
+^I^I^I^I    s[2] >= '0' && s[2] <= '7') {$

ERROR: code indent should never use tabs
#708: FILE: tools/virtiofsd/fuse_opt.c:317:
+^I^I^I^I^I*d++ = (s[0] - '0') * 0100 +$

ERROR: code indent should never use tabs
#709: FILE: tools/virtiofsd/fuse_opt.c:318:
+^I^I^I^I^I^I(s[1] - '0') * 0010 +$

ERROR: code indent should never use tabs
#710: FILE: tools/virtiofsd/fuse_opt.c:319:
+^I^I^I^I^I^I(s[2] - '0');$

ERROR: code indent should never use tabs
#711: FILE: tools/virtiofsd/fuse_opt.c:320:
+^I^I^I^I^Is += 2;$

ERROR: code indent should never use tabs
#712: FILE: tools/virtiofsd/fuse_opt.c:321:
+^I^I^I^I} else {$

ERROR: code indent should never use tabs
#713: FILE: tools/virtiofsd/fuse_opt.c:322:
+^I^I^I^I^I*d++ = *s;$

ERROR: code indent should never use tabs
#714: FILE: tools/virtiofsd/fuse_opt.c:323:
+^I^I^I^I}$

ERROR: code indent should never use tabs
#715: FILE: tools/virtiofsd/fuse_opt.c:324:
+^I^I^I} else {$

ERROR: code indent should never use tabs
#716: FILE: tools/virtiofsd/fuse_opt.c:325:
+^I^I^I^I*d++ = *s;$

ERROR: code indent should never use tabs
#717: FILE: tools/virtiofsd/fuse_opt.c:326:
+^I^I^I}$

ERROR: code indent should never use tabs
#718: FILE: tools/virtiofsd/fuse_opt.c:327:
+^I^I}$

ERROR: code indent should never use tabs
#719: FILE: tools/virtiofsd/fuse_opt.c:328:
+^I^Is++;$

ERROR: code indent should never use tabs
#720: FILE: tools/virtiofsd/fuse_opt.c:329:
+^I}$

ERROR: code indent should never use tabs
#722: FILE: tools/virtiofsd/fuse_opt.c:331:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#727: FILE: tools/virtiofsd/fuse_opt.c:336:
+^Iint res;$

ERROR: code indent should never use tabs
#728: FILE: tools/virtiofsd/fuse_opt.c:337:
+^Ichar *copy = strdup(opts);$

ERROR: code indent should never use tabs
#730: FILE: tools/virtiofsd/fuse_opt.c:339:
+^Iif (!copy) {$

ERROR: code indent should never use tabs
#731: FILE: tools/virtiofsd/fuse_opt.c:340:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: memory allocation failed\n");$

ERROR: code indent should never use tabs
#732: FILE: tools/virtiofsd/fuse_opt.c:341:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#733: FILE: tools/virtiofsd/fuse_opt.c:342:
+^I}$

ERROR: code indent should never use tabs
#734: FILE: tools/virtiofsd/fuse_opt.c:343:
+^Ires = process_real_option_group(ctx, copy);$

ERROR: code indent should never use tabs
#735: FILE: tools/virtiofsd/fuse_opt.c:344:
+^Ifree(copy);$

ERROR: code indent should never use tabs
#736: FILE: tools/virtiofsd/fuse_opt.c:345:
+^Ireturn res;$

ERROR: code indent should never use tabs
#741: FILE: tools/virtiofsd/fuse_opt.c:350:
+^Iif (ctx->nonopt || arg[0] != '-')$

ERROR: code indent should never use tabs
#742: FILE: tools/virtiofsd/fuse_opt.c:351:
+^I^Ireturn call_proc(ctx, arg, FUSE_OPT_KEY_NONOPT, 0);$

ERROR: code indent should never use tabs
#743: FILE: tools/virtiofsd/fuse_opt.c:352:
+^Ielse if (arg[1] == 'o') {$

ERROR: code indent should never use tabs
#744: FILE: tools/virtiofsd/fuse_opt.c:353:
+^I^Iif (arg[2])$

ERROR: code indent should never use tabs
#745: FILE: tools/virtiofsd/fuse_opt.c:354:
+^I^I^Ireturn process_option_group(ctx, arg + 2);$

ERROR: code indent should never use tabs
#746: FILE: tools/virtiofsd/fuse_opt.c:355:
+^I^Ielse {$

ERROR: code indent should never use tabs
#747: FILE: tools/virtiofsd/fuse_opt.c:356:
+^I^I^Iif (next_arg(ctx, arg) == -1)$

ERROR: braces {} are necessary for all arms of this statement
#747: FILE: tools/virtiofsd/fuse_opt.c:356:
+                       if (next_arg(ctx, arg) == -1)
[...]

ERROR: code indent should never use tabs
#748: FILE: tools/virtiofsd/fuse_opt.c:357:
+^I^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#750: FILE: tools/virtiofsd/fuse_opt.c:359:
+^I^I^Ireturn process_option_group(ctx,$

ERROR: code indent should never use tabs
#751: FILE: tools/virtiofsd/fuse_opt.c:360:
+^I^I^I^I^I^I    ctx->argv[ctx->argctr]);$

ERROR: code indent should never use tabs
#752: FILE: tools/virtiofsd/fuse_opt.c:361:
+^I^I}$

ERROR: code indent should never use tabs
#753: FILE: tools/virtiofsd/fuse_opt.c:362:
+^I} else if (arg[1] == '-' && !arg[2]) {$

ERROR: code indent should never use tabs
#754: FILE: tools/virtiofsd/fuse_opt.c:363:
+^I^Iif (add_arg(ctx, arg) == -1)$

ERROR: braces {} are necessary for all arms of this statement
#754: FILE: tools/virtiofsd/fuse_opt.c:363:
+               if (add_arg(ctx, arg) == -1)
[...]

ERROR: code indent should never use tabs
#755: FILE: tools/virtiofsd/fuse_opt.c:364:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#756: FILE: tools/virtiofsd/fuse_opt.c:365:
+^I^Ictx->nonopt = ctx->outargs.argc;$

ERROR: code indent should never use tabs
#757: FILE: tools/virtiofsd/fuse_opt.c:366:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#758: FILE: tools/virtiofsd/fuse_opt.c:367:
+^I} else$

ERROR: code indent should never use tabs
#759: FILE: tools/virtiofsd/fuse_opt.c:368:
+^I^Ireturn process_gopt(ctx, arg, 0);$

ERROR: code indent should never use tabs
#764: FILE: tools/virtiofsd/fuse_opt.c:373:
+^Iif (ctx->argc) {$

ERROR: code indent should never use tabs
#765: FILE: tools/virtiofsd/fuse_opt.c:374:
+^I^Iif (add_arg(ctx, ctx->argv[0]) == -1)$

ERROR: braces {} are necessary for all arms of this statement
#765: FILE: tools/virtiofsd/fuse_opt.c:374:
+               if (add_arg(ctx, ctx->argv[0]) == -1)
[...]

ERROR: code indent should never use tabs
#766: FILE: tools/virtiofsd/fuse_opt.c:375:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#767: FILE: tools/virtiofsd/fuse_opt.c:376:
+^I}$

ERROR: code indent should never use tabs
#769: FILE: tools/virtiofsd/fuse_opt.c:378:
+^Ifor (ctx->argctr = 1; ctx->argctr < ctx->argc; ctx->argctr++)$

ERROR: code indent should never use tabs
#770: FILE: tools/virtiofsd/fuse_opt.c:379:
+^I^Iif (process_one(ctx, ctx->argv[ctx->argctr]) == -1)$

ERROR: braces {} are necessary for all arms of this statement
#770: FILE: tools/virtiofsd/fuse_opt.c:379:
+               if (process_one(ctx, ctx->argv[ctx->argctr]) == -1)
[...]

ERROR: code indent should never use tabs
#771: FILE: tools/virtiofsd/fuse_opt.c:380:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#773: FILE: tools/virtiofsd/fuse_opt.c:382:
+^Iif (ctx->opts) {$

ERROR: code indent should never use tabs
#774: FILE: tools/virtiofsd/fuse_opt.c:383:
+^I^Iif (fuse_opt_insert_arg(&ctx->outargs, 1, "-o") == -1 ||$

ERROR: code indent should never use tabs
#775: FILE: tools/virtiofsd/fuse_opt.c:384:
+^I^I    fuse_opt_insert_arg(&ctx->outargs, 2, ctx->opts) == -1)$

ERROR: code indent should never use tabs
#776: FILE: tools/virtiofsd/fuse_opt.c:385:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#777: FILE: tools/virtiofsd/fuse_opt.c:386:
+^I}$

ERROR: code indent should never use tabs
#779: FILE: tools/virtiofsd/fuse_opt.c:388:
+^I/* If option separator ("--") is the last argument, remove it */$

ERROR: code indent should never use tabs
#780: FILE: tools/virtiofsd/fuse_opt.c:389:
+^Iif (ctx->nonopt && ctx->nonopt == ctx->outargs.argc &&$

ERROR: code indent should never use tabs
#781: FILE: tools/virtiofsd/fuse_opt.c:390:
+^I    strcmp(ctx->outargs.argv[ctx->outargs.argc - 1], "--") == 0) {$

ERROR: code indent should never use tabs
#782: FILE: tools/virtiofsd/fuse_opt.c:391:
+^I^Ifree(ctx->outargs.argv[ctx->outargs.argc - 1]);$

ERROR: code indent should never use tabs
#783: FILE: tools/virtiofsd/fuse_opt.c:392:
+^I^Ictx->outargs.argv[--ctx->outargs.argc] = NULL;$

ERROR: code indent should never use tabs
#784: FILE: tools/virtiofsd/fuse_opt.c:393:
+^I}$

ERROR: code indent should never use tabs
#786: FILE: tools/virtiofsd/fuse_opt.c:395:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#790: FILE: tools/virtiofsd/fuse_opt.c:399:
+^I^I   const struct fuse_opt opts[], fuse_opt_proc_t proc)$

ERROR: code indent should never use tabs
#792: FILE: tools/virtiofsd/fuse_opt.c:401:
+^Iint res;$

ERROR: code indent should never use tabs
#793: FILE: tools/virtiofsd/fuse_opt.c:402:
+^Istruct fuse_opt_context ctx = {$

ERROR: code indent should never use tabs
#794: FILE: tools/virtiofsd/fuse_opt.c:403:
+^I^I.data = data,$

ERROR: code indent should never use tabs
#795: FILE: tools/virtiofsd/fuse_opt.c:404:
+^I^I.opt = opts,$

ERROR: code indent should never use tabs
#796: FILE: tools/virtiofsd/fuse_opt.c:405:
+^I^I.proc = proc,$

ERROR: code indent should never use tabs
#797: FILE: tools/virtiofsd/fuse_opt.c:406:
+^I};$

ERROR: code indent should never use tabs
#799: FILE: tools/virtiofsd/fuse_opt.c:408:
+^Iif (!args || !args->argv || !args->argc)$

ERROR: braces {} are necessary for all arms of this statement
#799: FILE: tools/virtiofsd/fuse_opt.c:408:
+       if (!args || !args->argv || !args->argc)
[...]

ERROR: code indent should never use tabs
#800: FILE: tools/virtiofsd/fuse_opt.c:409:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#802: FILE: tools/virtiofsd/fuse_opt.c:411:
+^Ictx.argc = args->argc;$

ERROR: code indent should never use tabs
#803: FILE: tools/virtiofsd/fuse_opt.c:412:
+^Ictx.argv = args->argv;$

ERROR: code indent should never use tabs
#805: FILE: tools/virtiofsd/fuse_opt.c:414:
+^Ires = opt_parse(&ctx);$

ERROR: code indent should never use tabs
#806: FILE: tools/virtiofsd/fuse_opt.c:415:
+^Iif (res != -1) {$

ERROR: code indent should never use tabs
#807: FILE: tools/virtiofsd/fuse_opt.c:416:
+^I^Istruct fuse_args tmp = *args;$

ERROR: code indent should never use tabs
#808: FILE: tools/virtiofsd/fuse_opt.c:417:
+^I^I*args = ctx.outargs;$

ERROR: code indent should never use tabs
#809: FILE: tools/virtiofsd/fuse_opt.c:418:
+^I^Ictx.outargs = tmp;$

ERROR: code indent should never use tabs
#810: FILE: tools/virtiofsd/fuse_opt.c:419:
+^I}$

ERROR: code indent should never use tabs
#811: FILE: tools/virtiofsd/fuse_opt.c:420:
+^Ifree(ctx.opts);$

ERROR: code indent should never use tabs
#812: FILE: tools/virtiofsd/fuse_opt.c:421:
+^Ifuse_opt_free_args(&ctx.outargs);$

ERROR: code indent should never use tabs
#813: FILE: tools/virtiofsd/fuse_opt.c:422:
+^Ireturn res;$

WARNING: Block comments use * on subsequent lines
#822: FILE: tools/virtiofsd/fuse_signals.c:2:
+/*
+  FUSE: Filesystem in Userspace

ERROR: code indent should never use tabs
#844: FILE: tools/virtiofsd/fuse_signals.c:24:
+^Iif (fuse_instance) {$

ERROR: code indent should never use tabs
#845: FILE: tools/virtiofsd/fuse_signals.c:25:
+^I^Ifuse_session_exit(fuse_instance);$

ERROR: code indent should never use tabs
#846: FILE: tools/virtiofsd/fuse_signals.c:26:
+^I^Iif(sig <= 0) {$

ERROR: space required before the open parenthesis '('
#846: FILE: tools/virtiofsd/fuse_signals.c:26:
+               if(sig <= 0) {

WARNING: line over 80 characters
#847: FILE: tools/virtiofsd/fuse_signals.c:27:
+                       fuse_log(FUSE_LOG_ERR, "assertion error: signal value <= 0\n");

ERROR: code indent should never use tabs
#847: FILE: tools/virtiofsd/fuse_signals.c:27:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "assertion error: signal value <= 0\n");$

ERROR: code indent should never use tabs
#848: FILE: tools/virtiofsd/fuse_signals.c:28:
+^I^I^Iabort();$

ERROR: code indent should never use tabs
#849: FILE: tools/virtiofsd/fuse_signals.c:29:
+^I^I}$

ERROR: code indent should never use tabs
#850: FILE: tools/virtiofsd/fuse_signals.c:30:
+^I^Ifuse_instance->error = sig;$

ERROR: code indent should never use tabs
#851: FILE: tools/virtiofsd/fuse_signals.c:31:
+^I}$

ERROR: code indent should never use tabs
#856: FILE: tools/virtiofsd/fuse_signals.c:36:
+^I(void) sig;$

ERROR: code indent should never use tabs
#861: FILE: tools/virtiofsd/fuse_signals.c:41:
+^Istruct sigaction sa;$

ERROR: code indent should never use tabs
#862: FILE: tools/virtiofsd/fuse_signals.c:42:
+^Istruct sigaction old_sa;$

ERROR: code indent should never use tabs
#864: FILE: tools/virtiofsd/fuse_signals.c:44:
+^Imemset(&sa, 0, sizeof(struct sigaction));$

ERROR: code indent should never use tabs
#865: FILE: tools/virtiofsd/fuse_signals.c:45:
+^Isa.sa_handler = remove ? SIG_DFL : handler;$

ERROR: code indent should never use tabs
#866: FILE: tools/virtiofsd/fuse_signals.c:46:
+^Isigemptyset(&(sa.sa_mask));$

ERROR: code indent should never use tabs
#867: FILE: tools/virtiofsd/fuse_signals.c:47:
+^Isa.sa_flags = 0;$

ERROR: code indent should never use tabs
#869: FILE: tools/virtiofsd/fuse_signals.c:49:
+^Iif (sigaction(sig, NULL, &old_sa) == -1) {$

ERROR: code indent should never use tabs
#870: FILE: tools/virtiofsd/fuse_signals.c:50:
+^I^Iperror("fuse: cannot get old signal handler");$

ERROR: code indent should never use tabs
#871: FILE: tools/virtiofsd/fuse_signals.c:51:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#872: FILE: tools/virtiofsd/fuse_signals.c:52:
+^I}$

ERROR: code indent should never use tabs
#874: FILE: tools/virtiofsd/fuse_signals.c:54:
+^Iif (old_sa.sa_handler == (remove ? handler : SIG_DFL) &&$

ERROR: code indent should never use tabs
#875: FILE: tools/virtiofsd/fuse_signals.c:55:
+^I    sigaction(sig, &sa, NULL) == -1) {$

ERROR: code indent should never use tabs
#876: FILE: tools/virtiofsd/fuse_signals.c:56:
+^I^Iperror("fuse: cannot set signal handler");$

ERROR: code indent should never use tabs
#877: FILE: tools/virtiofsd/fuse_signals.c:57:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#878: FILE: tools/virtiofsd/fuse_signals.c:58:
+^I}$

ERROR: code indent should never use tabs
#879: FILE: tools/virtiofsd/fuse_signals.c:59:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#884: FILE: tools/virtiofsd/fuse_signals.c:64:
+^I/* If we used SIG_IGN instead of the do_nothing function,$

WARNING: Block comments use a leading /* on a separate line
#884: FILE: tools/virtiofsd/fuse_signals.c:64:
+       /* If we used SIG_IGN instead of the do_nothing function,

ERROR: code indent should never use tabs
#885: FILE: tools/virtiofsd/fuse_signals.c:65:
+^I   then we would be unable to tell if we set SIG_IGN (and$

WARNING: Block comments use * on subsequent lines
#885: FILE: tools/virtiofsd/fuse_signals.c:65:
+       /* If we used SIG_IGN instead of the do_nothing function,
+          then we would be unable to tell if we set SIG_IGN (and

ERROR: code indent should never use tabs
#886: FILE: tools/virtiofsd/fuse_signals.c:66:
+^I   thus should reset to SIG_DFL in fuse_remove_signal_handlers)$

ERROR: code indent should never use tabs
#887: FILE: tools/virtiofsd/fuse_signals.c:67:
+^I   or if it was already set to SIG_IGN (and should be left$

ERROR: code indent should never use tabs
#888: FILE: tools/virtiofsd/fuse_signals.c:68:
+^I   untouched. */$

WARNING: Block comments use a trailing */ on a separate line
#888: FILE: tools/virtiofsd/fuse_signals.c:68:
+          untouched. */

ERROR: code indent should never use tabs
#889: FILE: tools/virtiofsd/fuse_signals.c:69:
+^Iif (set_one_signal_handler(SIGHUP, exit_handler, 0) == -1 ||$

ERROR: code indent should never use tabs
#890: FILE: tools/virtiofsd/fuse_signals.c:70:
+^I    set_one_signal_handler(SIGINT, exit_handler, 0) == -1 ||$

ERROR: code indent should never use tabs
#891: FILE: tools/virtiofsd/fuse_signals.c:71:
+^I    set_one_signal_handler(SIGTERM, exit_handler, 0) == -1 ||$

ERROR: code indent should never use tabs
#892: FILE: tools/virtiofsd/fuse_signals.c:72:
+^I    set_one_signal_handler(SIGPIPE, do_nothing, 0) == -1)$

ERROR: code indent should never use tabs
#893: FILE: tools/virtiofsd/fuse_signals.c:73:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#895: FILE: tools/virtiofsd/fuse_signals.c:75:
+^Ifuse_instance = se;$

ERROR: code indent should never use tabs
#896: FILE: tools/virtiofsd/fuse_signals.c:76:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#901: FILE: tools/virtiofsd/fuse_signals.c:81:
+^Iif (fuse_instance != se)$

ERROR: code indent should never use tabs
#902: FILE: tools/virtiofsd/fuse_signals.c:82:
+^I^Ifuse_log(FUSE_LOG_ERR,$

ERROR: code indent should never use tabs
#903: FILE: tools/virtiofsd/fuse_signals.c:83:
+^I^I^I"fuse: fuse_remove_signal_handlers: unknown session\n");$

ERROR: code indent should never use tabs
#904: FILE: tools/virtiofsd/fuse_signals.c:84:
+^Ielse$

ERROR: code indent should never use tabs
#905: FILE: tools/virtiofsd/fuse_signals.c:85:
+^I^Ifuse_instance = NULL;$

ERROR: code indent should never use tabs
#907: FILE: tools/virtiofsd/fuse_signals.c:87:
+^Iset_one_signal_handler(SIGHUP, exit_handler, 1);$

ERROR: code indent should never use tabs
#908: FILE: tools/virtiofsd/fuse_signals.c:88:
+^Iset_one_signal_handler(SIGINT, exit_handler, 1);$

ERROR: code indent should never use tabs
#909: FILE: tools/virtiofsd/fuse_signals.c:89:
+^Iset_one_signal_handler(SIGTERM, exit_handler, 1);$

ERROR: code indent should never use tabs
#910: FILE: tools/virtiofsd/fuse_signals.c:90:
+^Iset_one_signal_handler(SIGPIPE, do_nothing, 1);$

WARNING: Block comments use * on subsequent lines
#919: FILE: tools/virtiofsd/helper.c:2:
+/*
+  FUSE: Filesystem in Userspace

ERROR: code indent should never use tabs
#947: FILE: tools/virtiofsd/helper.c:30:
+^I{ t, offsetof(struct fuse_cmdline_opts, p), 1 }$

ERROR: code indent should never use tabs
#950: FILE: tools/virtiofsd/helper.c:33:
+^IFUSE_HELPER_OPT("-h",^I^Ishow_help),$

ERROR: code indent should never use tabs
#951: FILE: tools/virtiofsd/helper.c:34:
+^IFUSE_HELPER_OPT("--help",^Ishow_help),$

ERROR: code indent should never use tabs
#952: FILE: tools/virtiofsd/helper.c:35:
+^IFUSE_HELPER_OPT("-V",^I^Ishow_version),$

ERROR: code indent should never use tabs
#953: FILE: tools/virtiofsd/helper.c:36:
+^IFUSE_HELPER_OPT("--version",^Ishow_version),$

ERROR: code indent should never use tabs
#954: FILE: tools/virtiofsd/helper.c:37:
+^IFUSE_HELPER_OPT("-d",^I^Idebug),$

ERROR: code indent should never use tabs
#955: FILE: tools/virtiofsd/helper.c:38:
+^IFUSE_HELPER_OPT("debug",^Idebug),$

ERROR: code indent should never use tabs
#956: FILE: tools/virtiofsd/helper.c:39:
+^IFUSE_HELPER_OPT("-d",^I^Iforeground),$

ERROR: code indent should never use tabs
#957: FILE: tools/virtiofsd/helper.c:40:
+^IFUSE_HELPER_OPT("debug",^Iforeground),$

ERROR: code indent should never use tabs
#958: FILE: tools/virtiofsd/helper.c:41:
+^IFUSE_OPT_KEY("-d",^I^IFUSE_OPT_KEY_KEEP),$

ERROR: code indent should never use tabs
#959: FILE: tools/virtiofsd/helper.c:42:
+^IFUSE_OPT_KEY("debug",^I^IFUSE_OPT_KEY_KEEP),$

ERROR: code indent should never use tabs
#960: FILE: tools/virtiofsd/helper.c:43:
+^IFUSE_HELPER_OPT("-f",^I^Iforeground),$

ERROR: code indent should never use tabs
#961: FILE: tools/virtiofsd/helper.c:44:
+^IFUSE_HELPER_OPT("-s",^I^Isinglethread),$

ERROR: code indent should never use tabs
#962: FILE: tools/virtiofsd/helper.c:45:
+^IFUSE_HELPER_OPT("fsname=",^Inodefault_subtype),$

ERROR: code indent should never use tabs
#963: FILE: tools/virtiofsd/helper.c:46:
+^IFUSE_OPT_KEY("fsname=",^I^IFUSE_OPT_KEY_KEEP),$

WARNING: architecture specific defines should be avoided
#964: FILE: tools/virtiofsd/helper.c:47:
+#ifndef __FreeBSD__

ERROR: code indent should never use tabs
#965: FILE: tools/virtiofsd/helper.c:48:
+^IFUSE_HELPER_OPT("subtype=",^Inodefault_subtype),$

ERROR: code indent should never use tabs
#966: FILE: tools/virtiofsd/helper.c:49:
+^IFUSE_OPT_KEY("subtype=",^IFUSE_OPT_KEY_KEEP),$

ERROR: code indent should never use tabs
#968: FILE: tools/virtiofsd/helper.c:51:
+^IFUSE_HELPER_OPT("clone_fd",^Iclone_fd),$

ERROR: code indent should never use tabs
#969: FILE: tools/virtiofsd/helper.c:52:
+^IFUSE_HELPER_OPT("max_idle_threads=%u", max_idle_threads),$

ERROR: code indent should never use tabs
#970: FILE: tools/virtiofsd/helper.c:53:
+^IFUSE_OPT_END$

ERROR: code indent should never use tabs
#974: FILE: tools/virtiofsd/helper.c:57:
+^Iint atomic_o_trunc;$

ERROR: code indent should never use tabs
#975: FILE: tools/virtiofsd/helper.c:58:
+^Iint no_remote_posix_lock;$

ERROR: code indent should never use tabs
#976: FILE: tools/virtiofsd/helper.c:59:
+^Iint no_remote_flock;$

ERROR: code indent should never use tabs
#977: FILE: tools/virtiofsd/helper.c:60:
+^Iint splice_write;$

ERROR: code indent should never use tabs
#978: FILE: tools/virtiofsd/helper.c:61:
+^Iint splice_move;$

ERROR: code indent should never use tabs
#979: FILE: tools/virtiofsd/helper.c:62:
+^Iint splice_read;$

ERROR: code indent should never use tabs
#980: FILE: tools/virtiofsd/helper.c:63:
+^Iint no_splice_write;$

ERROR: code indent should never use tabs
#981: FILE: tools/virtiofsd/helper.c:64:
+^Iint no_splice_move;$

ERROR: code indent should never use tabs
#982: FILE: tools/virtiofsd/helper.c:65:
+^Iint no_splice_read;$

ERROR: code indent should never use tabs
#983: FILE: tools/virtiofsd/helper.c:66:
+^Iint auto_inval_data;$

ERROR: code indent should never use tabs
#984: FILE: tools/virtiofsd/helper.c:67:
+^Iint no_auto_inval_data;$

ERROR: code indent should never use tabs
#985: FILE: tools/virtiofsd/helper.c:68:
+^Iint no_readdirplus;$

ERROR: code indent should never use tabs
#986: FILE: tools/virtiofsd/helper.c:69:
+^Iint no_readdirplus_auto;$

ERROR: code indent should never use tabs
#987: FILE: tools/virtiofsd/helper.c:70:
+^Iint async_dio;$

ERROR: code indent should never use tabs
#988: FILE: tools/virtiofsd/helper.c:71:
+^Iint no_async_dio;$

ERROR: code indent should never use tabs
#989: FILE: tools/virtiofsd/helper.c:72:
+^Iint writeback_cache;$

ERROR: code indent should never use tabs
#990: FILE: tools/virtiofsd/helper.c:73:
+^Iint no_writeback_cache;$

ERROR: code indent should never use tabs
#991: FILE: tools/virtiofsd/helper.c:74:
+^Iint async_read;$

ERROR: code indent should never use tabs
#992: FILE: tools/virtiofsd/helper.c:75:
+^Iint sync_read;$

ERROR: code indent should never use tabs
#993: FILE: tools/virtiofsd/helper.c:76:
+^Iunsigned max_write;$

ERROR: code indent should never use tabs
#994: FILE: tools/virtiofsd/helper.c:77:
+^Iunsigned max_readahead;$

ERROR: code indent should never use tabs
#995: FILE: tools/virtiofsd/helper.c:78:
+^Iunsigned max_background;$

ERROR: code indent should never use tabs
#996: FILE: tools/virtiofsd/helper.c:79:
+^Iunsigned congestion_threshold;$

ERROR: code indent should never use tabs
#997: FILE: tools/virtiofsd/helper.c:80:
+^Iunsigned time_gran;$

ERROR: code indent should never use tabs
#998: FILE: tools/virtiofsd/helper.c:81:
+^Iint set_max_write;$

ERROR: code indent should never use tabs
#999: FILE: tools/virtiofsd/helper.c:82:
+^Iint set_max_readahead;$

ERROR: code indent should never use tabs
#1000: FILE: tools/virtiofsd/helper.c:83:
+^Iint set_max_background;$

ERROR: code indent should never use tabs
#1001: FILE: tools/virtiofsd/helper.c:84:
+^Iint set_congestion_threshold;$

ERROR: code indent should never use tabs
#1002: FILE: tools/virtiofsd/helper.c:85:
+^Iint set_time_gran;$

ERROR: code indent should never use tabs
#1005: FILE: tools/virtiofsd/helper.c:88:
+#define CONN_OPTION(t, p, v)^I^I^I^I^I\$

ERROR: code indent should never use tabs
#1006: FILE: tools/virtiofsd/helper.c:89:
+^I{ t, offsetof(struct fuse_conn_info_opts, p), v }$

ERROR: code indent should never use tabs
#1008: FILE: tools/virtiofsd/helper.c:91:
+^ICONN_OPTION("max_write=%u", max_write, 0),$

ERROR: code indent should never use tabs
#1009: FILE: tools/virtiofsd/helper.c:92:
+^ICONN_OPTION("max_write=", set_max_write, 1),$

ERROR: code indent should never use tabs
#1010: FILE: tools/virtiofsd/helper.c:93:
+^ICONN_OPTION("max_readahead=%u", max_readahead, 0),$

ERROR: code indent should never use tabs
#1011: FILE: tools/virtiofsd/helper.c:94:
+^ICONN_OPTION("max_readahead=", set_max_readahead, 1),$

ERROR: code indent should never use tabs
#1012: FILE: tools/virtiofsd/helper.c:95:
+^ICONN_OPTION("max_background=%u", max_background, 0),$

ERROR: code indent should never use tabs
#1013: FILE: tools/virtiofsd/helper.c:96:
+^ICONN_OPTION("max_background=", set_max_background, 1),$

ERROR: code indent should never use tabs
#1014: FILE: tools/virtiofsd/helper.c:97:
+^ICONN_OPTION("congestion_threshold=%u", congestion_threshold, 0),$

ERROR: code indent should never use tabs
#1015: FILE: tools/virtiofsd/helper.c:98:
+^ICONN_OPTION("congestion_threshold=", set_congestion_threshold, 1),$

ERROR: code indent should never use tabs
#1016: FILE: tools/virtiofsd/helper.c:99:
+^ICONN_OPTION("sync_read", sync_read, 1),$

ERROR: code indent should never use tabs
#1017: FILE: tools/virtiofsd/helper.c:100:
+^ICONN_OPTION("async_read", async_read, 1),$

ERROR: code indent should never use tabs
#1018: FILE: tools/virtiofsd/helper.c:101:
+^ICONN_OPTION("atomic_o_trunc", atomic_o_trunc, 1),$

ERROR: code indent should never use tabs
#1019: FILE: tools/virtiofsd/helper.c:102:
+^ICONN_OPTION("no_remote_lock", no_remote_posix_lock, 1),$

ERROR: code indent should never use tabs
#1020: FILE: tools/virtiofsd/helper.c:103:
+^ICONN_OPTION("no_remote_lock", no_remote_flock, 1),$

ERROR: code indent should never use tabs
#1021: FILE: tools/virtiofsd/helper.c:104:
+^ICONN_OPTION("no_remote_flock", no_remote_flock, 1),$

ERROR: code indent should never use tabs
#1022: FILE: tools/virtiofsd/helper.c:105:
+^ICONN_OPTION("no_remote_posix_lock", no_remote_posix_lock, 1),$

ERROR: code indent should never use tabs
#1023: FILE: tools/virtiofsd/helper.c:106:
+^ICONN_OPTION("splice_write", splice_write, 1),$

ERROR: code indent should never use tabs
#1024: FILE: tools/virtiofsd/helper.c:107:
+^ICONN_OPTION("no_splice_write", no_splice_write, 1),$

ERROR: code indent should never use tabs
#1025: FILE: tools/virtiofsd/helper.c:108:
+^ICONN_OPTION("splice_move", splice_move, 1),$

ERROR: code indent should never use tabs
#1026: FILE: tools/virtiofsd/helper.c:109:
+^ICONN_OPTION("no_splice_move", no_splice_move, 1),$

ERROR: code indent should never use tabs
#1027: FILE: tools/virtiofsd/helper.c:110:
+^ICONN_OPTION("splice_read", splice_read, 1),$

ERROR: code indent should never use tabs
#1028: FILE: tools/virtiofsd/helper.c:111:
+^ICONN_OPTION("no_splice_read", no_splice_read, 1),$

ERROR: code indent should never use tabs
#1029: FILE: tools/virtiofsd/helper.c:112:
+^ICONN_OPTION("auto_inval_data", auto_inval_data, 1),$

ERROR: code indent should never use tabs
#1030: FILE: tools/virtiofsd/helper.c:113:
+^ICONN_OPTION("no_auto_inval_data", no_auto_inval_data, 1),$

ERROR: code indent should never use tabs
#1031: FILE: tools/virtiofsd/helper.c:114:
+^ICONN_OPTION("readdirplus=no", no_readdirplus, 1),$

ERROR: code indent should never use tabs
#1032: FILE: tools/virtiofsd/helper.c:115:
+^ICONN_OPTION("readdirplus=yes", no_readdirplus, 0),$

ERROR: code indent should never use tabs
#1033: FILE: tools/virtiofsd/helper.c:116:
+^ICONN_OPTION("readdirplus=yes", no_readdirplus_auto, 1),$

ERROR: code indent should never use tabs
#1034: FILE: tools/virtiofsd/helper.c:117:
+^ICONN_OPTION("readdirplus=auto", no_readdirplus, 0),$

ERROR: code indent should never use tabs
#1035: FILE: tools/virtiofsd/helper.c:118:
+^ICONN_OPTION("readdirplus=auto", no_readdirplus_auto, 0),$

ERROR: code indent should never use tabs
#1036: FILE: tools/virtiofsd/helper.c:119:
+^ICONN_OPTION("async_dio", async_dio, 1),$

ERROR: code indent should never use tabs
#1037: FILE: tools/virtiofsd/helper.c:120:
+^ICONN_OPTION("no_async_dio", no_async_dio, 1),$

ERROR: code indent should never use tabs
#1038: FILE: tools/virtiofsd/helper.c:121:
+^ICONN_OPTION("writeback_cache", writeback_cache, 1),$

ERROR: code indent should never use tabs
#1039: FILE: tools/virtiofsd/helper.c:122:
+^ICONN_OPTION("no_writeback_cache", no_writeback_cache, 1),$

ERROR: code indent should never use tabs
#1040: FILE: tools/virtiofsd/helper.c:123:
+^ICONN_OPTION("time_gran=%u", time_gran, 0),$

ERROR: code indent should never use tabs
#1041: FILE: tools/virtiofsd/helper.c:124:
+^ICONN_OPTION("time_gran=", set_time_gran, 1),$

ERROR: code indent should never use tabs
#1042: FILE: tools/virtiofsd/helper.c:125:
+^IFUSE_OPT_END$

ERROR: code indent should never use tabs
#1048: FILE: tools/virtiofsd/helper.c:131:
+^Iprintf("    -h   --help            print help\n"$

ERROR: code indent should never use tabs
#1049: FILE: tools/virtiofsd/helper.c:132:
+^I       "    -V   --version         print version\n"$

ERROR: code indent should never use tabs
#1050: FILE: tools/virtiofsd/helper.c:133:
+^I       "    -d   -o debug          enable debug output (implies -f)\n"$

ERROR: code indent should never use tabs
#1051: FILE: tools/virtiofsd/helper.c:134:
+^I       "    -f                     foreground operation\n"$

ERROR: code indent should never use tabs
#1052: FILE: tools/virtiofsd/helper.c:135:
+^I       "    -s                     disable multi-threaded operation\n"$

ERROR: code indent should never use tabs
#1053: FILE: tools/virtiofsd/helper.c:136:
+^I       "    -o clone_fd            use separate fuse device fd for each thread\n"$

ERROR: code indent should never use tabs
#1054: FILE: tools/virtiofsd/helper.c:137:
+^I       "                           (may improve performance)\n"$

ERROR: code indent should never use tabs
#1055: FILE: tools/virtiofsd/helper.c:138:
+^I       "    -o max_idle_threads    the maximum number of idle worker threads\n"$

ERROR: code indent should never use tabs
#1056: FILE: tools/virtiofsd/helper.c:139:
+^I       "                           allowed (default: 10)\n");$

ERROR: code indent should never use tabs
#1060: FILE: tools/virtiofsd/helper.c:143:
+^I^I^I^Istruct fuse_args *outargs)$

ERROR: code indent should never use tabs
#1062: FILE: tools/virtiofsd/helper.c:145:
+^I(void) outargs;$

ERROR: code indent should never use tabs
#1063: FILE: tools/virtiofsd/helper.c:146:
+^Istruct fuse_cmdline_opts *opts = data;$

ERROR: code indent should never use tabs
#1065: FILE: tools/virtiofsd/helper.c:148:
+^Iswitch (key) {$

ERROR: code indent should never use tabs
#1066: FILE: tools/virtiofsd/helper.c:149:
+^Icase FUSE_OPT_KEY_NONOPT:$

ERROR: code indent should never use tabs
#1067: FILE: tools/virtiofsd/helper.c:150:
+^I^Iif (!opts->mountpoint) {$

ERROR: code indent should never use tabs
#1068: FILE: tools/virtiofsd/helper.c:151:
+^I^I^Iif (fuse_mnt_parse_fuse_fd(arg) != -1) {$

ERROR: code indent should never use tabs
#1069: FILE: tools/virtiofsd/helper.c:152:
+^I^I^I^Ireturn fuse_opt_add_opt(&opts->mountpoint, arg);$

ERROR: code indent should never use tabs
#1070: FILE: tools/virtiofsd/helper.c:153:
+^I^I^I}$

ERROR: code indent should never use tabs
#1072: FILE: tools/virtiofsd/helper.c:155:
+^I^I^Ichar mountpoint[PATH_MAX] = "";$

ERROR: code indent should never use tabs
#1073: FILE: tools/virtiofsd/helper.c:156:
+^I^I^Iif (realpath(arg, mountpoint) == NULL) {$

ERROR: code indent should never use tabs
#1074: FILE: tools/virtiofsd/helper.c:157:
+^I^I^I^Ifuse_log(FUSE_LOG_ERR,$

ERROR: code indent should never use tabs
#1075: FILE: tools/virtiofsd/helper.c:158:
+^I^I^I^I^I"fuse: bad mount point `%s': %s\n",$

ERROR: code indent should never use tabs
#1076: FILE: tools/virtiofsd/helper.c:159:
+^I^I^I^I^Iarg, strerror(errno));$

ERROR: code indent should never use tabs
#1077: FILE: tools/virtiofsd/helper.c:160:
+^I^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1078: FILE: tools/virtiofsd/helper.c:161:
+^I^I^I}$

ERROR: code indent should never use tabs
#1079: FILE: tools/virtiofsd/helper.c:162:
+^I^I^Ireturn fuse_opt_add_opt(&opts->mountpoint, mountpoint);$

ERROR: code indent should never use tabs
#1080: FILE: tools/virtiofsd/helper.c:163:
+^I^I} else {$

WARNING: line over 80 characters
#1081: FILE: tools/virtiofsd/helper.c:164:
+                       fuse_log(FUSE_LOG_ERR, "fuse: invalid argument `%s'\n", arg);

ERROR: code indent should never use tabs
#1081: FILE: tools/virtiofsd/helper.c:164:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "fuse: invalid argument `%s'\n", arg);$

ERROR: code indent should never use tabs
#1082: FILE: tools/virtiofsd/helper.c:165:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1083: FILE: tools/virtiofsd/helper.c:166:
+^I^I}$

ERROR: code indent should never use tabs
#1085: FILE: tools/virtiofsd/helper.c:168:
+^Idefault:$

ERROR: code indent should never use tabs
#1086: FILE: tools/virtiofsd/helper.c:169:
+^I^I/* Pass through unknown options */$

ERROR: code indent should never use tabs
#1087: FILE: tools/virtiofsd/helper.c:170:
+^I^Ireturn 1;$

ERROR: code indent should never use tabs
#1088: FILE: tools/virtiofsd/helper.c:171:
+^I}$

WARNING: Block comments use a leading /* on a separate line
#1091: FILE: tools/virtiofsd/helper.c:174:
+/* Under FreeBSD, there is no subtype option so this

WARNING: Block comments use * on subsequent lines
#1092: FILE: tools/virtiofsd/helper.c:175:
+/* Under FreeBSD, there is no subtype option so this
+   function actually sets the fsname */

WARNING: Block comments use a trailing */ on a separate line
#1092: FILE: tools/virtiofsd/helper.c:175:
+   function actually sets the fsname */

ERROR: code indent should never use tabs
#1095: FILE: tools/virtiofsd/helper.c:178:
+^Iint res;$

ERROR: code indent should never use tabs
#1096: FILE: tools/virtiofsd/helper.c:179:
+^Ichar *subtype_opt;$

ERROR: code indent should never use tabs
#1098: FILE: tools/virtiofsd/helper.c:181:
+^Iconst char *basename = strrchr(progname, '/');$

ERROR: code indent should never use tabs
#1099: FILE: tools/virtiofsd/helper.c:182:
+^Iif (basename == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#1099: FILE: tools/virtiofsd/helper.c:182:
+       if (basename == NULL)
[...]
+       else if (basename[1] != '\0')
[...]

ERROR: code indent should never use tabs
#1100: FILE: tools/virtiofsd/helper.c:183:
+^I^Ibasename = progname;$

ERROR: code indent should never use tabs
#1101: FILE: tools/virtiofsd/helper.c:184:
+^Ielse if (basename[1] != '\0')$

ERROR: braces {} are necessary for all arms of this statement
#1101: FILE: tools/virtiofsd/helper.c:184:
+       else if (basename[1] != '\0')
[...]

ERROR: code indent should never use tabs
#1102: FILE: tools/virtiofsd/helper.c:185:
+^I^Ibasename++;$

ERROR: code indent should never use tabs
#1104: FILE: tools/virtiofsd/helper.c:187:
+^Isubtype_opt = (char *) malloc(strlen(basename) + 64);$

ERROR: code indent should never use tabs
#1105: FILE: tools/virtiofsd/helper.c:188:
+^Iif (subtype_opt == NULL) {$

ERROR: code indent should never use tabs
#1106: FILE: tools/virtiofsd/helper.c:189:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: memory allocation failed\n");$

ERROR: code indent should never use tabs
#1107: FILE: tools/virtiofsd/helper.c:190:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1108: FILE: tools/virtiofsd/helper.c:191:
+^I}$

WARNING: architecture specific defines should be avoided
#1109: FILE: tools/virtiofsd/helper.c:192:
+#ifdef __FreeBSD__

ERROR: code indent should never use tabs
#1110: FILE: tools/virtiofsd/helper.c:193:
+^Isprintf(subtype_opt, "-ofsname=%s", basename);$

ERROR: code indent should never use tabs
#1112: FILE: tools/virtiofsd/helper.c:195:
+^Isprintf(subtype_opt, "-osubtype=%s", basename);$

ERROR: code indent should never use tabs
#1114: FILE: tools/virtiofsd/helper.c:197:
+^Ires = fuse_opt_add_arg(args, subtype_opt);$

ERROR: code indent should never use tabs
#1115: FILE: tools/virtiofsd/helper.c:198:
+^Ifree(subtype_opt);$

ERROR: code indent should never use tabs
#1116: FILE: tools/virtiofsd/helper.c:199:
+^Ireturn res;$

ERROR: code indent should never use tabs
#1120: FILE: tools/virtiofsd/helper.c:203:
+^I^I       struct fuse_cmdline_opts *opts)$

ERROR: code indent should never use tabs
#1122: FILE: tools/virtiofsd/helper.c:205:
+^Imemset(opts, 0, sizeof(struct fuse_cmdline_opts));$

ERROR: code indent should never use tabs
#1124: FILE: tools/virtiofsd/helper.c:207:
+^Iopts->max_idle_threads = 10;$

ERROR: code indent should never use tabs
#1126: FILE: tools/virtiofsd/helper.c:209:
+^Iif (fuse_opt_parse(args, opts, fuse_helper_opts,$

ERROR: code indent should never use tabs
#1127: FILE: tools/virtiofsd/helper.c:210:
+^I^I^I   fuse_helper_opt_proc) == -1)$

ERROR: code indent should never use tabs
#1128: FILE: tools/virtiofsd/helper.c:211:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1130: FILE: tools/virtiofsd/helper.c:213:
+^I/* *Linux*: if neither -o subtype nor -o fsname are specified,$

WARNING: Block comments use a leading /* on a separate line
#1130: FILE: tools/virtiofsd/helper.c:213:
+       /* *Linux*: if neither -o subtype nor -o fsname are specified,

ERROR: code indent should never use tabs
#1131: FILE: tools/virtiofsd/helper.c:214:
+^I   set subtype to program's basename.$

WARNING: Block comments use * on subsequent lines
#1131: FILE: tools/virtiofsd/helper.c:214:
+       /* *Linux*: if neither -o subtype nor -o fsname are specified,
+          set subtype to program's basename.

ERROR: code indent should never use tabs
#1132: FILE: tools/virtiofsd/helper.c:215:
+^I   *FreeBSD*: if fsname is not specified, set to program's$

ERROR: code indent should never use tabs
#1133: FILE: tools/virtiofsd/helper.c:216:
+^I   basename. */$

WARNING: Block comments use a trailing */ on a separate line
#1133: FILE: tools/virtiofsd/helper.c:216:
+          basename. */

ERROR: code indent should never use tabs
#1134: FILE: tools/virtiofsd/helper.c:217:
+^Iif (!opts->nodefault_subtype)$

ERROR: code indent should never use tabs
#1135: FILE: tools/virtiofsd/helper.c:218:
+^I^Iif (add_default_subtype(args->argv[0], args) == -1)$

ERROR: braces {} are necessary for all arms of this statement
#1135: FILE: tools/virtiofsd/helper.c:218:
+               if (add_default_subtype(args->argv[0], args) == -1)
[...]

ERROR: code indent should never use tabs
#1136: FILE: tools/virtiofsd/helper.c:219:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1138: FILE: tools/virtiofsd/helper.c:221:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#1144: FILE: tools/virtiofsd/helper.c:227:
+^Iif (!foreground) {$

ERROR: code indent should never use tabs
#1145: FILE: tools/virtiofsd/helper.c:228:
+^I^Iint nullfd;$

ERROR: code indent should never use tabs
#1146: FILE: tools/virtiofsd/helper.c:229:
+^I^Iint waiter[2];$

ERROR: code indent should never use tabs
#1147: FILE: tools/virtiofsd/helper.c:230:
+^I^Ichar completed;$

ERROR: code indent should never use tabs
#1149: FILE: tools/virtiofsd/helper.c:232:
+^I^Iif (pipe(waiter)) {$

ERROR: code indent should never use tabs
#1150: FILE: tools/virtiofsd/helper.c:233:
+^I^I^Iperror("fuse_daemonize: pipe");$

ERROR: code indent should never use tabs
#1151: FILE: tools/virtiofsd/helper.c:234:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1152: FILE: tools/virtiofsd/helper.c:235:
+^I^I}$

ERROR: code indent should never use tabs
#1154: FILE: tools/virtiofsd/helper.c:237:
+^I^I/*$

ERROR: code indent should never use tabs
#1155: FILE: tools/virtiofsd/helper.c:238:
+^I^I * demonize current process by forking it and killing the$

ERROR: code indent should never use tabs
#1156: FILE: tools/virtiofsd/helper.c:239:
+^I^I * parent.  This makes current process as a child of 'init'.$

ERROR: code indent should never use tabs
#1157: FILE: tools/virtiofsd/helper.c:240:
+^I^I */$

ERROR: code indent should never use tabs
#1158: FILE: tools/virtiofsd/helper.c:241:
+^I^Iswitch(fork()) {$

ERROR: space required before the open parenthesis '('
#1158: FILE: tools/virtiofsd/helper.c:241:
+               switch(fork()) {

ERROR: code indent should never use tabs
#1159: FILE: tools/virtiofsd/helper.c:242:
+^I^Icase -1:$

ERROR: code indent should never use tabs
#1160: FILE: tools/virtiofsd/helper.c:243:
+^I^I^Iperror("fuse_daemonize: fork");$

ERROR: code indent should never use tabs
#1161: FILE: tools/virtiofsd/helper.c:244:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1162: FILE: tools/virtiofsd/helper.c:245:
+^I^Icase 0:$

ERROR: code indent should never use tabs
#1163: FILE: tools/virtiofsd/helper.c:246:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#1164: FILE: tools/virtiofsd/helper.c:247:
+^I^Idefault:$

ERROR: code indent should never use tabs
#1165: FILE: tools/virtiofsd/helper.c:248:
+^I^I^I(void) read(waiter[0], &completed, sizeof(completed));$

ERROR: code indent should never use tabs
#1166: FILE: tools/virtiofsd/helper.c:249:
+^I^I^I_exit(0);$

ERROR: code indent should never use tabs
#1167: FILE: tools/virtiofsd/helper.c:250:
+^I^I}$

ERROR: code indent should never use tabs
#1169: FILE: tools/virtiofsd/helper.c:252:
+^I^Iif (setsid() == -1) {$

ERROR: code indent should never use tabs
#1170: FILE: tools/virtiofsd/helper.c:253:
+^I^I^Iperror("fuse_daemonize: setsid");$

ERROR: code indent should never use tabs
#1171: FILE: tools/virtiofsd/helper.c:254:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1172: FILE: tools/virtiofsd/helper.c:255:
+^I^I}$

ERROR: code indent should never use tabs
#1174: FILE: tools/virtiofsd/helper.c:257:
+^I^I(void) chdir("/");$

ERROR: code indent should never use tabs
#1176: FILE: tools/virtiofsd/helper.c:259:
+^I^Inullfd = open("/dev/null", O_RDWR, 0);$

ERROR: code indent should never use tabs
#1177: FILE: tools/virtiofsd/helper.c:260:
+^I^Iif (nullfd != -1) {$

ERROR: code indent should never use tabs
#1178: FILE: tools/virtiofsd/helper.c:261:
+^I^I^I(void) dup2(nullfd, 0);$

ERROR: code indent should never use tabs
#1179: FILE: tools/virtiofsd/helper.c:262:
+^I^I^I(void) dup2(nullfd, 1);$

ERROR: code indent should never use tabs
#1180: FILE: tools/virtiofsd/helper.c:263:
+^I^I^I(void) dup2(nullfd, 2);$

ERROR: code indent should never use tabs
#1181: FILE: tools/virtiofsd/helper.c:264:
+^I^I^Iif (nullfd > 2)$

ERROR: braces {} are necessary for all arms of this statement
#1181: FILE: tools/virtiofsd/helper.c:264:
+                       if (nullfd > 2)
[...]

ERROR: code indent should never use tabs
#1182: FILE: tools/virtiofsd/helper.c:265:
+^I^I^I^Iclose(nullfd);$

ERROR: code indent should never use tabs
#1183: FILE: tools/virtiofsd/helper.c:266:
+^I^I}$

ERROR: code indent should never use tabs
#1185: FILE: tools/virtiofsd/helper.c:268:
+^I^I/* Propagate completion of daemon initialization */$

ERROR: code indent should never use tabs
#1186: FILE: tools/virtiofsd/helper.c:269:
+^I^Icompleted = 1;$

ERROR: code indent should never use tabs
#1187: FILE: tools/virtiofsd/helper.c:270:
+^I^I(void) write(waiter[1], &completed, sizeof(completed));$

ERROR: code indent should never use tabs
#1188: FILE: tools/virtiofsd/helper.c:271:
+^I^Iclose(waiter[0]);$

ERROR: code indent should never use tabs
#1189: FILE: tools/virtiofsd/helper.c:272:
+^I^Iclose(waiter[1]);$

ERROR: code indent should never use tabs
#1190: FILE: tools/virtiofsd/helper.c:273:
+^I} else {$

ERROR: code indent should never use tabs
#1191: FILE: tools/virtiofsd/helper.c:274:
+^I^I(void) chdir("/");$

ERROR: code indent should never use tabs
#1192: FILE: tools/virtiofsd/helper.c:275:
+^I}$

ERROR: code indent should never use tabs
#1193: FILE: tools/virtiofsd/helper.c:276:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#1197: FILE: tools/virtiofsd/helper.c:280:
+^I^I   size_t op_size, void *user_data)$

ERROR: code indent should never use tabs
#1199: FILE: tools/virtiofsd/helper.c:282:
+^Istruct fuse_args args = FUSE_ARGS_INIT(argc, argv);$

ERROR: code indent should never use tabs
#1200: FILE: tools/virtiofsd/helper.c:283:
+^Istruct fuse *fuse;$

ERROR: code indent should never use tabs
#1201: FILE: tools/virtiofsd/helper.c:284:
+^Istruct fuse_cmdline_opts opts;$

ERROR: code indent should never use tabs
#1202: FILE: tools/virtiofsd/helper.c:285:
+^Iint res;$

ERROR: code indent should never use tabs
#1204: FILE: tools/virtiofsd/helper.c:287:
+^Iif (fuse_parse_cmdline(&args, &opts) != 0)$

ERROR: braces {} are necessary for all arms of this statement
#1204: FILE: tools/virtiofsd/helper.c:287:
+       if (fuse_parse_cmdline(&args, &opts) != 0)
[...]

ERROR: code indent should never use tabs
#1205: FILE: tools/virtiofsd/helper.c:288:
+^I^Ireturn 1;$

ERROR: code indent should never use tabs
#1207: FILE: tools/virtiofsd/helper.c:290:
+^Iif (opts.show_version) {$

ERROR: code indent should never use tabs
#1208: FILE: tools/virtiofsd/helper.c:291:
+^I^Iprintf("FUSE library version %s\n", PACKAGE_VERSION);$

ERROR: code indent should never use tabs
#1209: FILE: tools/virtiofsd/helper.c:292:
+^I^Ifuse_lowlevel_version();$

ERROR: code indent should never use tabs
#1210: FILE: tools/virtiofsd/helper.c:293:
+^I^Ires = 0;$

ERROR: code indent should never use tabs
#1211: FILE: tools/virtiofsd/helper.c:294:
+^I^Igoto out1;$

ERROR: code indent should never use tabs
#1212: FILE: tools/virtiofsd/helper.c:295:
+^I}$

ERROR: code indent should never use tabs
#1214: FILE: tools/virtiofsd/helper.c:297:
+^Iif (opts.show_help) {$

ERROR: code indent should never use tabs
#1215: FILE: tools/virtiofsd/helper.c:298:
+^I^Iif(args.argv[0][0] != '\0')$

ERROR: space required before the open parenthesis '('
#1215: FILE: tools/virtiofsd/helper.c:298:
+               if(args.argv[0][0] != '\0')

ERROR: code indent should never use tabs
#1216: FILE: tools/virtiofsd/helper.c:299:
+^I^I^Iprintf("usage: %s [options] <mountpoint>\n\n",$

ERROR: code indent should never use tabs
#1217: FILE: tools/virtiofsd/helper.c:300:
+^I^I^I       args.argv[0]);$

ERROR: code indent should never use tabs
#1218: FILE: tools/virtiofsd/helper.c:301:
+^I^Iprintf("FUSE options:\n");$

ERROR: code indent should never use tabs
#1219: FILE: tools/virtiofsd/helper.c:302:
+^I^Ifuse_cmdline_help();$

ERROR: code indent should never use tabs
#1220: FILE: tools/virtiofsd/helper.c:303:
+^I^Ifuse_lib_help(&args);$

ERROR: code indent should never use tabs
#1221: FILE: tools/virtiofsd/helper.c:304:
+^I^Ires = 0;$

ERROR: code indent should never use tabs
#1222: FILE: tools/virtiofsd/helper.c:305:
+^I^Igoto out1;$

ERROR: code indent should never use tabs
#1223: FILE: tools/virtiofsd/helper.c:306:
+^I}$

ERROR: code indent should never use tabs
#1225: FILE: tools/virtiofsd/helper.c:308:
+^Iif (!opts.show_help &&$

ERROR: code indent should never use tabs
#1226: FILE: tools/virtiofsd/helper.c:309:
+^I    !opts.mountpoint) {$

ERROR: code indent should never use tabs
#1227: FILE: tools/virtiofsd/helper.c:310:
+^I^Ifuse_log(FUSE_LOG_ERR, "error: no mountpoint specified\n");$

ERROR: code indent should never use tabs
#1228: FILE: tools/virtiofsd/helper.c:311:
+^I^Ires = 2;$

ERROR: code indent should never use tabs
#1229: FILE: tools/virtiofsd/helper.c:312:
+^I^Igoto out1;$

ERROR: code indent should never use tabs
#1230: FILE: tools/virtiofsd/helper.c:313:
+^I}$

ERROR: code indent should never use tabs
#1233: FILE: tools/virtiofsd/helper.c:316:
+^Ifuse = fuse_new_31(&args, op, op_size, user_data);$

ERROR: code indent should never use tabs
#1234: FILE: tools/virtiofsd/helper.c:317:
+^Iif (fuse == NULL) {$

ERROR: code indent should never use tabs
#1235: FILE: tools/virtiofsd/helper.c:318:
+^I^Ires = 3;$

ERROR: code indent should never use tabs
#1236: FILE: tools/virtiofsd/helper.c:319:
+^I^Igoto out1;$

ERROR: code indent should never use tabs
#1237: FILE: tools/virtiofsd/helper.c:320:
+^I}$

ERROR: code indent should never use tabs
#1239: FILE: tools/virtiofsd/helper.c:322:
+^Iif (fuse_mount(fuse,opts.mountpoint) != 0) {$

ERROR: space required after that ',' (ctx:VxV)
#1239: FILE: tools/virtiofsd/helper.c:322:
+       if (fuse_mount(fuse,opts.mountpoint) != 0) {
                           ^

ERROR: code indent should never use tabs
#1240: FILE: tools/virtiofsd/helper.c:323:
+^I^Ires = 4;$

ERROR: code indent should never use tabs
#1241: FILE: tools/virtiofsd/helper.c:324:
+^I^Igoto out2;$

ERROR: code indent should never use tabs
#1242: FILE: tools/virtiofsd/helper.c:325:
+^I}$

ERROR: code indent should never use tabs
#1244: FILE: tools/virtiofsd/helper.c:327:
+^Iif (fuse_daemonize(opts.foreground) != 0) {$

ERROR: code indent should never use tabs
#1245: FILE: tools/virtiofsd/helper.c:328:
+^I^Ires = 5;$

ERROR: code indent should never use tabs
#1246: FILE: tools/virtiofsd/helper.c:329:
+^I^Igoto out3;$

ERROR: code indent should never use tabs
#1247: FILE: tools/virtiofsd/helper.c:330:
+^I}$

ERROR: code indent should never use tabs
#1249: FILE: tools/virtiofsd/helper.c:332:
+^Istruct fuse_session *se = fuse_get_session(fuse);$

ERROR: code indent should never use tabs
#1250: FILE: tools/virtiofsd/helper.c:333:
+^Iif (fuse_set_signal_handlers(se) != 0) {$

ERROR: code indent should never use tabs
#1251: FILE: tools/virtiofsd/helper.c:334:
+^I^Ires = 6;$

ERROR: code indent should never use tabs
#1252: FILE: tools/virtiofsd/helper.c:335:
+^I^Igoto out3;$

ERROR: code indent should never use tabs
#1253: FILE: tools/virtiofsd/helper.c:336:
+^I}$

ERROR: code indent should never use tabs
#1255: FILE: tools/virtiofsd/helper.c:338:
+^Iif (opts.singlethread)$

ERROR: code indent should never use tabs
#1256: FILE: tools/virtiofsd/helper.c:339:
+^I^Ires = fuse_loop(fuse);$

ERROR: code indent should never use tabs
#1257: FILE: tools/virtiofsd/helper.c:340:
+^Ielse {$

ERROR: code indent should never use tabs
#1258: FILE: tools/virtiofsd/helper.c:341:
+^I^Istruct fuse_loop_config loop_config;$

ERROR: code indent should never use tabs
#1259: FILE: tools/virtiofsd/helper.c:342:
+^I^Iloop_config.clone_fd = opts.clone_fd;$

ERROR: code indent should never use tabs
#1260: FILE: tools/virtiofsd/helper.c:343:
+^I^Iloop_config.max_idle_threads = opts.max_idle_threads;$

ERROR: code indent should never use tabs
#1261: FILE: tools/virtiofsd/helper.c:344:
+^I^Ires = fuse_loop_mt_32(fuse, &loop_config);$

ERROR: code indent should never use tabs
#1262: FILE: tools/virtiofsd/helper.c:345:
+^I}$

ERROR: code indent should never use tabs
#1263: FILE: tools/virtiofsd/helper.c:346:
+^Iif (res)$

ERROR: braces {} are necessary for all arms of this statement
#1263: FILE: tools/virtiofsd/helper.c:346:
+       if (res)
[...]

ERROR: code indent should never use tabs
#1264: FILE: tools/virtiofsd/helper.c:347:
+^I^Ires = 7;$

ERROR: code indent should never use tabs
#1266: FILE: tools/virtiofsd/helper.c:349:
+^Ifuse_remove_signal_handlers(se);$

ERROR: code indent should never use tabs
#1268: FILE: tools/virtiofsd/helper.c:351:
+^Ifuse_unmount(fuse);$

ERROR: code indent should never use tabs
#1270: FILE: tools/virtiofsd/helper.c:353:
+^Ifuse_destroy(fuse);$

ERROR: code indent should never use tabs
#1272: FILE: tools/virtiofsd/helper.c:355:
+^Ifree(opts.mountpoint);$

ERROR: code indent should never use tabs
#1273: FILE: tools/virtiofsd/helper.c:356:
+^Ifuse_opt_free_args(&args);$

ERROR: code indent should never use tabs
#1274: FILE: tools/virtiofsd/helper.c:357:
+^Ireturn res;$

ERROR: code indent should never use tabs
#1279: FILE: tools/virtiofsd/helper.c:362:
+^I^I^I       struct fuse_conn_info *conn)$

ERROR: code indent should never use tabs
#1281: FILE: tools/virtiofsd/helper.c:364:
+^Iif(opts->set_max_write)$

ERROR: space required before the open parenthesis '('
#1281: FILE: tools/virtiofsd/helper.c:364:
+       if(opts->set_max_write)

ERROR: braces {} are necessary for all arms of this statement
#1281: FILE: tools/virtiofsd/helper.c:364:
+       if(opts->set_max_write)
[...]

ERROR: code indent should never use tabs
#1282: FILE: tools/virtiofsd/helper.c:365:
+^I^Iconn->max_write = opts->max_write;$

ERROR: code indent should never use tabs
#1283: FILE: tools/virtiofsd/helper.c:366:
+^Iif(opts->set_max_background)$

ERROR: space required before the open parenthesis '('
#1283: FILE: tools/virtiofsd/helper.c:366:
+       if(opts->set_max_background)

ERROR: braces {} are necessary for all arms of this statement
#1283: FILE: tools/virtiofsd/helper.c:366:
+       if(opts->set_max_background)
[...]

ERROR: code indent should never use tabs
#1284: FILE: tools/virtiofsd/helper.c:367:
+^I^Iconn->max_background = opts->max_background;$

ERROR: code indent should never use tabs
#1285: FILE: tools/virtiofsd/helper.c:368:
+^Iif(opts->set_congestion_threshold)$

ERROR: space required before the open parenthesis '('
#1285: FILE: tools/virtiofsd/helper.c:368:
+       if(opts->set_congestion_threshold)

ERROR: braces {} are necessary for all arms of this statement
#1285: FILE: tools/virtiofsd/helper.c:368:
+       if(opts->set_congestion_threshold)
[...]

ERROR: code indent should never use tabs
#1286: FILE: tools/virtiofsd/helper.c:369:
+^I^Iconn->congestion_threshold = opts->congestion_threshold;$

ERROR: code indent should never use tabs
#1287: FILE: tools/virtiofsd/helper.c:370:
+^Iif(opts->set_time_gran)$

ERROR: space required before the open parenthesis '('
#1287: FILE: tools/virtiofsd/helper.c:370:
+       if(opts->set_time_gran)

ERROR: braces {} are necessary for all arms of this statement
#1287: FILE: tools/virtiofsd/helper.c:370:
+       if(opts->set_time_gran)
[...]

ERROR: code indent should never use tabs
#1288: FILE: tools/virtiofsd/helper.c:371:
+^I^Iconn->time_gran = opts->time_gran;$

ERROR: code indent should never use tabs
#1289: FILE: tools/virtiofsd/helper.c:372:
+^Iif(opts->set_max_readahead)$

ERROR: space required before the open parenthesis '('
#1289: FILE: tools/virtiofsd/helper.c:372:
+       if(opts->set_max_readahead)

ERROR: braces {} are necessary for all arms of this statement
#1289: FILE: tools/virtiofsd/helper.c:372:
+       if(opts->set_max_readahead)
[...]

ERROR: code indent should never use tabs
#1290: FILE: tools/virtiofsd/helper.c:373:
+^I^Iconn->max_readahead = opts->max_readahead;$

ERROR: space required after that ',' (ctx:VxV)
#1292: FILE: tools/virtiofsd/helper.c:375:
+#define LL_ENABLE(cond,cap) \
                       ^

ERROR: Macros with complex values should be enclosed in parenthesis
#1292: FILE: tools/virtiofsd/helper.c:375:
+#define LL_ENABLE(cond,cap) \
+       if (cond) conn->want |= (cap)

ERROR: code indent should never use tabs
#1293: FILE: tools/virtiofsd/helper.c:376:
+^Iif (cond) conn->want |= (cap)$

ERROR: trailing statements should be on next line
#1293: FILE: tools/virtiofsd/helper.c:376:
+       if (cond) conn->want |= (cap)

ERROR: space required after that ',' (ctx:VxV)
#1294: FILE: tools/virtiofsd/helper.c:377:
+#define LL_DISABLE(cond,cap) \
                        ^

ERROR: Macros with complex values should be enclosed in parenthesis
#1294: FILE: tools/virtiofsd/helper.c:377:
+#define LL_DISABLE(cond,cap) \
+       if (cond) conn->want &= ~(cap)

ERROR: code indent should never use tabs
#1295: FILE: tools/virtiofsd/helper.c:378:
+^Iif (cond) conn->want &= ~(cap)$

ERROR: trailing statements should be on next line
#1295: FILE: tools/virtiofsd/helper.c:378:
+       if (cond) conn->want &= ~(cap)

ERROR: code indent should never use tabs
#1297: FILE: tools/virtiofsd/helper.c:380:
+^ILL_ENABLE(opts->splice_read, FUSE_CAP_SPLICE_READ);$

ERROR: code indent should never use tabs
#1298: FILE: tools/virtiofsd/helper.c:381:
+^ILL_DISABLE(opts->no_splice_read, FUSE_CAP_SPLICE_READ);$

ERROR: code indent should never use tabs
#1300: FILE: tools/virtiofsd/helper.c:383:
+^ILL_ENABLE(opts->splice_write, FUSE_CAP_SPLICE_WRITE);$

ERROR: code indent should never use tabs
#1301: FILE: tools/virtiofsd/helper.c:384:
+^ILL_DISABLE(opts->no_splice_write, FUSE_CAP_SPLICE_WRITE);$

ERROR: code indent should never use tabs
#1303: FILE: tools/virtiofsd/helper.c:386:
+^ILL_ENABLE(opts->splice_move, FUSE_CAP_SPLICE_MOVE);$

ERROR: code indent should never use tabs
#1304: FILE: tools/virtiofsd/helper.c:387:
+^ILL_DISABLE(opts->no_splice_move, FUSE_CAP_SPLICE_MOVE);$

ERROR: code indent should never use tabs
#1306: FILE: tools/virtiofsd/helper.c:389:
+^ILL_ENABLE(opts->auto_inval_data, FUSE_CAP_AUTO_INVAL_DATA);$

ERROR: code indent should never use tabs
#1307: FILE: tools/virtiofsd/helper.c:390:
+^ILL_DISABLE(opts->no_auto_inval_data, FUSE_CAP_AUTO_INVAL_DATA);$

ERROR: code indent should never use tabs
#1309: FILE: tools/virtiofsd/helper.c:392:
+^ILL_DISABLE(opts->no_readdirplus, FUSE_CAP_READDIRPLUS);$

ERROR: code indent should never use tabs
#1310: FILE: tools/virtiofsd/helper.c:393:
+^ILL_DISABLE(opts->no_readdirplus_auto, FUSE_CAP_READDIRPLUS_AUTO);$

ERROR: code indent should never use tabs
#1312: FILE: tools/virtiofsd/helper.c:395:
+^ILL_ENABLE(opts->async_dio, FUSE_CAP_ASYNC_DIO);$

ERROR: code indent should never use tabs
#1313: FILE: tools/virtiofsd/helper.c:396:
+^ILL_DISABLE(opts->no_async_dio, FUSE_CAP_ASYNC_DIO);$

ERROR: code indent should never use tabs
#1315: FILE: tools/virtiofsd/helper.c:398:
+^ILL_ENABLE(opts->writeback_cache, FUSE_CAP_WRITEBACK_CACHE);$

ERROR: code indent should never use tabs
#1316: FILE: tools/virtiofsd/helper.c:399:
+^ILL_DISABLE(opts->no_writeback_cache, FUSE_CAP_WRITEBACK_CACHE);$

ERROR: code indent should never use tabs
#1318: FILE: tools/virtiofsd/helper.c:401:
+^ILL_ENABLE(opts->async_read, FUSE_CAP_ASYNC_READ);$

ERROR: code indent should never use tabs
#1319: FILE: tools/virtiofsd/helper.c:402:
+^ILL_DISABLE(opts->sync_read, FUSE_CAP_ASYNC_READ);$

ERROR: code indent should never use tabs
#1321: FILE: tools/virtiofsd/helper.c:404:
+^ILL_DISABLE(opts->no_remote_posix_lock, FUSE_CAP_POSIX_LOCKS);$

ERROR: code indent should never use tabs
#1322: FILE: tools/virtiofsd/helper.c:405:
+^ILL_DISABLE(opts->no_remote_flock, FUSE_CAP_FLOCK_LOCKS);$

ERROR: "foo* bar" should be "foo *bar"
#1325: FILE: tools/virtiofsd/helper.c:408:
+struct fuse_conn_info_opts* fuse_parse_conn_info_opts(struct fuse_args *args)

ERROR: code indent should never use tabs
#1327: FILE: tools/virtiofsd/helper.c:410:
+^Istruct fuse_conn_info_opts *opts;$

ERROR: code indent should never use tabs
#1329: FILE: tools/virtiofsd/helper.c:412:
+^Iopts = calloc(1, sizeof(struct fuse_conn_info_opts));$

ERROR: code indent should never use tabs
#1330: FILE: tools/virtiofsd/helper.c:413:
+^Iif(opts == NULL) {$

ERROR: space required before the open parenthesis '('
#1330: FILE: tools/virtiofsd/helper.c:413:
+       if(opts == NULL) {

ERROR: code indent should never use tabs
#1331: FILE: tools/virtiofsd/helper.c:414:
+^I^Ifuse_log(FUSE_LOG_ERR, "calloc failed\n");$

ERROR: code indent should never use tabs
#1332: FILE: tools/virtiofsd/helper.c:415:
+^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#1333: FILE: tools/virtiofsd/helper.c:416:
+^I}$

ERROR: code indent should never use tabs
#1334: FILE: tools/virtiofsd/helper.c:417:
+^Iif(fuse_opt_parse(args, opts, conn_info_opt_spec, NULL) == -1) {$

ERROR: space required before the open parenthesis '('
#1334: FILE: tools/virtiofsd/helper.c:417:
+       if(fuse_opt_parse(args, opts, conn_info_opt_spec, NULL) == -1) {

ERROR: code indent should never use tabs
#1335: FILE: tools/virtiofsd/helper.c:418:
+^I^Ifree(opts);$

ERROR: code indent should never use tabs
#1336: FILE: tools/virtiofsd/helper.c:419:
+^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#1337: FILE: tools/virtiofsd/helper.c:420:
+^I}$

ERROR: code indent should never use tabs
#1338: FILE: tools/virtiofsd/helper.c:421:
+^Ireturn opts;$

ERROR: code indent should never use tabs
#1343: FILE: tools/virtiofsd/helper.c:426:
+^Istruct mount_opts *opts = NULL;$

ERROR: code indent should never use tabs
#1344: FILE: tools/virtiofsd/helper.c:427:
+^Iint fd = -1;$

ERROR: code indent should never use tabs
#1345: FILE: tools/virtiofsd/helper.c:428:
+^Iconst char *argv[] = { "", "-o", options };$

ERROR: code indent should never use tabs
#1346: FILE: tools/virtiofsd/helper.c:429:
+^Iint argc = sizeof(argv) / sizeof(argv[0]);$

ERROR: code indent should never use tabs
#1347: FILE: tools/virtiofsd/helper.c:430:
+^Istruct fuse_args args = FUSE_ARGS_INIT(argc, (char**) argv);$

ERROR: "(foo**)" should be "(foo **)"
#1347: FILE: tools/virtiofsd/helper.c:430:
+       struct fuse_args args = FUSE_ARGS_INIT(argc, (char**) argv);

ERROR: code indent should never use tabs
#1349: FILE: tools/virtiofsd/helper.c:432:
+^Iopts = parse_mount_opts(&args);$

ERROR: code indent should never use tabs
#1350: FILE: tools/virtiofsd/helper.c:433:
+^Iif (opts == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#1350: FILE: tools/virtiofsd/helper.c:433:
+       if (opts == NULL)
[...]

ERROR: code indent should never use tabs
#1351: FILE: tools/virtiofsd/helper.c:434:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1353: FILE: tools/virtiofsd/helper.c:436:
+^Ifd = fuse_kern_mount(mountpoint, opts);$

ERROR: code indent should never use tabs
#1354: FILE: tools/virtiofsd/helper.c:437:
+^Idestroy_mount_opts(opts);$

ERROR: code indent should never use tabs
#1356: FILE: tools/virtiofsd/helper.c:439:
+^Ireturn fd;$

total: 943 errors, 21 warnings, 1315 lines checked

Patch 3/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

4/109 Checking commit 00022bca4549 (virtiofsd: Add fuse_lowlevel.c)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#17: 
new file mode 100644

WARNING: Block comments use * on subsequent lines
#23: FILE: tools/virtiofsd/fuse_lowlevel.c:2:
+/*
+  FUSE: Filesystem in Userspace

ERROR: code indent should never use tabs
#56: FILE: tools/virtiofsd/fuse_lowlevel.c:35:
+#define F_SETPIPE_SZ^I(F_LINUX_SPECIFIC_BASE + 7)$

ERROR: code indent should never use tabs
#63: FILE: tools/virtiofsd/fuse_lowlevel.c:42:
+#define container_of(ptr, type, member) ({^I^I^I^I\$

ERROR: code indent should never use tabs
#64: FILE: tools/virtiofsd/fuse_lowlevel.c:43:
+^I^I^Iconst typeof( ((type *)0)->member ) *__mptr = (ptr); \$

ERROR: spaces required around that '*' (ctx:WxV)
#64: FILE: tools/virtiofsd/fuse_lowlevel.c:43:
+                       const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                            ^

ERROR: space prohibited after that open parenthesis '('
#64: FILE: tools/virtiofsd/fuse_lowlevel.c:43:
+                       const typeof( ((type *)0)->member ) *__mptr = (ptr); \

ERROR: space prohibited before that close parenthesis ')'
#64: FILE: tools/virtiofsd/fuse_lowlevel.c:43:
+                       const typeof( ((type *)0)->member ) *__mptr = (ptr); \

ERROR: code indent should never use tabs
#65: FILE: tools/virtiofsd/fuse_lowlevel.c:44:
+^I^I^I(type *)( (char *)__mptr - offsetof(type,member) );})$

ERROR: space required after that ',' (ctx:VxV)
#65: FILE: tools/virtiofsd/fuse_lowlevel.c:44:
+                       (type *)( (char *)__mptr - offsetof(type,member) );})
                                                                ^

ERROR: space required after that ';' (ctx:VxV)
#65: FILE: tools/virtiofsd/fuse_lowlevel.c:44:
+                       (type *)( (char *)__mptr - offsetof(type,member) );})
                                                                          ^

ERROR: space prohibited after that open parenthesis '('
#65: FILE: tools/virtiofsd/fuse_lowlevel.c:44:
+                       (type *)( (char *)__mptr - offsetof(type,member) );})

ERROR: space prohibited before that close parenthesis ')'
#65: FILE: tools/virtiofsd/fuse_lowlevel.c:44:
+                       (type *)( (char *)__mptr - offsetof(type,member) );})

ERROR: code indent should never use tabs
#68: FILE: tools/virtiofsd/fuse_lowlevel.c:47:
+^Iuint64_t kh;$

ERROR: code indent should never use tabs
#69: FILE: tools/virtiofsd/fuse_lowlevel.c:48:
+^Istruct fuse_session *se;$

ERROR: code indent should never use tabs
#76: FILE: tools/virtiofsd/fuse_lowlevel.c:55:
+^Ipagesize = getpagesize();$

ERROR: use qemu_real_host_page_size instead of getpagesize()
#76: FILE: tools/virtiofsd/fuse_lowlevel.c:55:
+       pagesize = getpagesize();

ERROR: code indent should never use tabs
#81: FILE: tools/virtiofsd/fuse_lowlevel.c:60:
+^Iattr->ino^I= stbuf->st_ino;$

ERROR: code indent should never use tabs
#82: FILE: tools/virtiofsd/fuse_lowlevel.c:61:
+^Iattr->mode^I= stbuf->st_mode;$

ERROR: code indent should never use tabs
#83: FILE: tools/virtiofsd/fuse_lowlevel.c:62:
+^Iattr->nlink^I= stbuf->st_nlink;$

ERROR: code indent should never use tabs
#84: FILE: tools/virtiofsd/fuse_lowlevel.c:63:
+^Iattr->uid^I= stbuf->st_uid;$

ERROR: code indent should never use tabs
#85: FILE: tools/virtiofsd/fuse_lowlevel.c:64:
+^Iattr->gid^I= stbuf->st_gid;$

ERROR: code indent should never use tabs
#86: FILE: tools/virtiofsd/fuse_lowlevel.c:65:
+^Iattr->rdev^I= stbuf->st_rdev;$

ERROR: code indent should never use tabs
#87: FILE: tools/virtiofsd/fuse_lowlevel.c:66:
+^Iattr->size^I= stbuf->st_size;$

ERROR: code indent should never use tabs
#88: FILE: tools/virtiofsd/fuse_lowlevel.c:67:
+^Iattr->blksize^I= stbuf->st_blksize;$

ERROR: code indent should never use tabs
#89: FILE: tools/virtiofsd/fuse_lowlevel.c:68:
+^Iattr->blocks^I= stbuf->st_blocks;$

ERROR: code indent should never use tabs
#90: FILE: tools/virtiofsd/fuse_lowlevel.c:69:
+^Iattr->atime^I= stbuf->st_atime;$

ERROR: code indent should never use tabs
#91: FILE: tools/virtiofsd/fuse_lowlevel.c:70:
+^Iattr->mtime^I= stbuf->st_mtime;$

ERROR: code indent should never use tabs
#92: FILE: tools/virtiofsd/fuse_lowlevel.c:71:
+^Iattr->ctime^I= stbuf->st_ctime;$

ERROR: code indent should never use tabs
#93: FILE: tools/virtiofsd/fuse_lowlevel.c:72:
+^Iattr->atimensec = ST_ATIM_NSEC(stbuf);$

ERROR: code indent should never use tabs
#94: FILE: tools/virtiofsd/fuse_lowlevel.c:73:
+^Iattr->mtimensec = ST_MTIM_NSEC(stbuf);$

ERROR: code indent should never use tabs
#95: FILE: tools/virtiofsd/fuse_lowlevel.c:74:
+^Iattr->ctimensec = ST_CTIM_NSEC(stbuf);$

ERROR: code indent should never use tabs
#100: FILE: tools/virtiofsd/fuse_lowlevel.c:79:
+^Istbuf->st_mode^I       = attr->mode;$

ERROR: code indent should never use tabs
#101: FILE: tools/virtiofsd/fuse_lowlevel.c:80:
+^Istbuf->st_uid^I       = attr->uid;$

ERROR: code indent should never use tabs
#102: FILE: tools/virtiofsd/fuse_lowlevel.c:81:
+^Istbuf->st_gid^I       = attr->gid;$

ERROR: code indent should never use tabs
#103: FILE: tools/virtiofsd/fuse_lowlevel.c:82:
+^Istbuf->st_size^I       = attr->size;$

ERROR: code indent should never use tabs
#104: FILE: tools/virtiofsd/fuse_lowlevel.c:83:
+^Istbuf->st_atime^I       = attr->atime;$

ERROR: code indent should never use tabs
#105: FILE: tools/virtiofsd/fuse_lowlevel.c:84:
+^Istbuf->st_mtime^I       = attr->mtime;$

ERROR: code indent should never use tabs
#106: FILE: tools/virtiofsd/fuse_lowlevel.c:85:
+^Istbuf->st_ctime        = attr->ctime;$

ERROR: code indent should never use tabs
#107: FILE: tools/virtiofsd/fuse_lowlevel.c:86:
+^IST_ATIM_NSEC_SET(stbuf, attr->atimensec);$

ERROR: code indent should never use tabs
#108: FILE: tools/virtiofsd/fuse_lowlevel.c:87:
+^IST_MTIM_NSEC_SET(stbuf, attr->mtimensec);$

ERROR: code indent should never use tabs
#109: FILE: tools/virtiofsd/fuse_lowlevel.c:88:
+^IST_CTIM_NSEC_SET(stbuf, attr->ctimensec);$

ERROR: code indent should never use tabs
#112: FILE: tools/virtiofsd/fuse_lowlevel.c:91:
+static^Isize_t iov_length(const struct iovec *iov, size_t count)$

ERROR: code indent should never use tabs
#114: FILE: tools/virtiofsd/fuse_lowlevel.c:93:
+^Isize_t seg;$

ERROR: code indent should never use tabs
#115: FILE: tools/virtiofsd/fuse_lowlevel.c:94:
+^Isize_t ret = 0;$

ERROR: code indent should never use tabs
#117: FILE: tools/virtiofsd/fuse_lowlevel.c:96:
+^Ifor (seg = 0; seg < count; seg++)$

ERROR: braces {} are necessary for all arms of this statement
#117: FILE: tools/virtiofsd/fuse_lowlevel.c:96:
+       for (seg = 0; seg < count; seg++)
[...]

ERROR: code indent should never use tabs
#118: FILE: tools/virtiofsd/fuse_lowlevel.c:97:
+^I^Iret += iov[seg].iov_len;$

ERROR: code indent should never use tabs
#119: FILE: tools/virtiofsd/fuse_lowlevel.c:98:
+^Ireturn ret;$

ERROR: code indent should never use tabs
#124: FILE: tools/virtiofsd/fuse_lowlevel.c:103:
+^Ireq->next = req;$

ERROR: code indent should never use tabs
#125: FILE: tools/virtiofsd/fuse_lowlevel.c:104:
+^Ireq->prev = req;$

ERROR: code indent should never use tabs
#130: FILE: tools/virtiofsd/fuse_lowlevel.c:109:
+^Istruct fuse_req *prev = req->prev;$

ERROR: code indent should never use tabs
#131: FILE: tools/virtiofsd/fuse_lowlevel.c:110:
+^Istruct fuse_req *next = req->next;$

ERROR: code indent should never use tabs
#132: FILE: tools/virtiofsd/fuse_lowlevel.c:111:
+^Iprev->next = next;$

ERROR: code indent should never use tabs
#133: FILE: tools/virtiofsd/fuse_lowlevel.c:112:
+^Inext->prev = prev;$

ERROR: code indent should never use tabs
#138: FILE: tools/virtiofsd/fuse_lowlevel.c:117:
+^Istruct fuse_req *prev = next->prev;$

ERROR: code indent should never use tabs
#139: FILE: tools/virtiofsd/fuse_lowlevel.c:118:
+^Ireq->next = next;$

ERROR: code indent should never use tabs
#140: FILE: tools/virtiofsd/fuse_lowlevel.c:119:
+^Ireq->prev = prev;$

ERROR: code indent should never use tabs
#141: FILE: tools/virtiofsd/fuse_lowlevel.c:120:
+^Iprev->next = req;$

ERROR: code indent should never use tabs
#142: FILE: tools/virtiofsd/fuse_lowlevel.c:121:
+^Inext->prev = req;$

ERROR: code indent should never use tabs
#147: FILE: tools/virtiofsd/fuse_lowlevel.c:126:
+^Ipthread_mutex_destroy(&req->lock);$

ERROR: code indent should never use tabs
#148: FILE: tools/virtiofsd/fuse_lowlevel.c:127:
+^Ifree(req);$

ERROR: code indent should never use tabs
#153: FILE: tools/virtiofsd/fuse_lowlevel.c:132:
+^Iint ctr;$

ERROR: code indent should never use tabs
#154: FILE: tools/virtiofsd/fuse_lowlevel.c:133:
+^Istruct fuse_session *se = req->se;$

ERROR: code indent should never use tabs
#156: FILE: tools/virtiofsd/fuse_lowlevel.c:135:
+^Ipthread_mutex_lock(&se->lock);$

ERROR: code indent should never use tabs
#157: FILE: tools/virtiofsd/fuse_lowlevel.c:136:
+^Ireq->u.ni.func = NULL;$

ERROR: code indent should never use tabs
#158: FILE: tools/virtiofsd/fuse_lowlevel.c:137:
+^Ireq->u.ni.data = NULL;$

ERROR: code indent should never use tabs
#159: FILE: tools/virtiofsd/fuse_lowlevel.c:138:
+^Ilist_del_req(req);$

ERROR: code indent should never use tabs
#160: FILE: tools/virtiofsd/fuse_lowlevel.c:139:
+^Ictr = --req->ctr;$

ERROR: code indent should never use tabs
#161: FILE: tools/virtiofsd/fuse_lowlevel.c:140:
+^Ifuse_chan_put(req->ch);$

ERROR: code indent should never use tabs
#162: FILE: tools/virtiofsd/fuse_lowlevel.c:141:
+^Ireq->ch = NULL;$

ERROR: code indent should never use tabs
#163: FILE: tools/virtiofsd/fuse_lowlevel.c:142:
+^Ipthread_mutex_unlock(&se->lock);$

ERROR: code indent should never use tabs
#164: FILE: tools/virtiofsd/fuse_lowlevel.c:143:
+^Iif (!ctr)$

ERROR: braces {} are necessary for all arms of this statement
#164: FILE: tools/virtiofsd/fuse_lowlevel.c:143:
+       if (!ctr)
[...]

ERROR: code indent should never use tabs
#165: FILE: tools/virtiofsd/fuse_lowlevel.c:144:
+^I^Idestroy_req(req);$

ERROR: code indent should never use tabs
#170: FILE: tools/virtiofsd/fuse_lowlevel.c:149:
+^Istruct fuse_req *req;$

ERROR: code indent should never use tabs
#172: FILE: tools/virtiofsd/fuse_lowlevel.c:151:
+^Ireq = (struct fuse_req *) calloc(1, sizeof(struct fuse_req));$

ERROR: code indent should never use tabs
#173: FILE: tools/virtiofsd/fuse_lowlevel.c:152:
+^Iif (req == NULL) {$

ERROR: code indent should never use tabs
#174: FILE: tools/virtiofsd/fuse_lowlevel.c:153:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: failed to allocate request\n");$

ERROR: code indent should never use tabs
#175: FILE: tools/virtiofsd/fuse_lowlevel.c:154:
+^I} else {$

ERROR: code indent should never use tabs
#176: FILE: tools/virtiofsd/fuse_lowlevel.c:155:
+^I^Ireq->se = se;$

ERROR: code indent should never use tabs
#177: FILE: tools/virtiofsd/fuse_lowlevel.c:156:
+^I^Ireq->ctr = 1;$

ERROR: code indent should never use tabs
#178: FILE: tools/virtiofsd/fuse_lowlevel.c:157:
+^I^Ilist_init_req(req);$

ERROR: code indent should never use tabs
#179: FILE: tools/virtiofsd/fuse_lowlevel.c:158:
+^I^Ifuse_mutex_init(&req->lock);$

ERROR: code indent should never use tabs
#180: FILE: tools/virtiofsd/fuse_lowlevel.c:159:
+^I}$

ERROR: code indent should never use tabs
#182: FILE: tools/virtiofsd/fuse_lowlevel.c:161:
+^Ireturn req;$

ERROR: code indent should never use tabs
#187: FILE: tools/virtiofsd/fuse_lowlevel.c:166:
+^I^I^I struct iovec *iov, int count)$

ERROR: code indent should never use tabs
#189: FILE: tools/virtiofsd/fuse_lowlevel.c:168:
+^Istruct fuse_out_header *out = iov[0].iov_base;$

ERROR: code indent should never use tabs
#191: FILE: tools/virtiofsd/fuse_lowlevel.c:170:
+^Iout->len = iov_length(iov, count);$

ERROR: code indent should never use tabs
#192: FILE: tools/virtiofsd/fuse_lowlevel.c:171:
+^Iif (se->debug) {$

ERROR: code indent should never use tabs
#193: FILE: tools/virtiofsd/fuse_lowlevel.c:172:
+^I^Iif (out->unique == 0) {$

ERROR: code indent should never use tabs
#194: FILE: tools/virtiofsd/fuse_lowlevel.c:173:
+^I^I^Ifuse_log(FUSE_LOG_DEBUG, "NOTIFY: code=%d length=%u\n",$

ERROR: code indent should never use tabs
#195: FILE: tools/virtiofsd/fuse_lowlevel.c:174:
+^I^I^I^Iout->error, out->len);$

ERROR: code indent should never use tabs
#196: FILE: tools/virtiofsd/fuse_lowlevel.c:175:
+^I^I} else if (out->error) {$

ERROR: code indent should never use tabs
#197: FILE: tools/virtiofsd/fuse_lowlevel.c:176:
+^I^I^Ifuse_log(FUSE_LOG_DEBUG,$

ERROR: code indent should never use tabs
#198: FILE: tools/virtiofsd/fuse_lowlevel.c:177:
+^I^I^I^I"   unique: %llu, error: %i (%s), outsize: %i\n",$

ERROR: code indent should never use tabs
#199: FILE: tools/virtiofsd/fuse_lowlevel.c:178:
+^I^I^I^I(unsigned long long) out->unique, out->error,$

ERROR: code indent should never use tabs
#200: FILE: tools/virtiofsd/fuse_lowlevel.c:179:
+^I^I^I^Istrerror(-out->error), out->len);$

ERROR: code indent should never use tabs
#201: FILE: tools/virtiofsd/fuse_lowlevel.c:180:
+^I^I} else {$

ERROR: code indent should never use tabs
#202: FILE: tools/virtiofsd/fuse_lowlevel.c:181:
+^I^I^Ifuse_log(FUSE_LOG_DEBUG,$

ERROR: code indent should never use tabs
#203: FILE: tools/virtiofsd/fuse_lowlevel.c:182:
+^I^I^I^I"   unique: %llu, success, outsize: %i\n",$

ERROR: code indent should never use tabs
#204: FILE: tools/virtiofsd/fuse_lowlevel.c:183:
+^I^I^I^I(unsigned long long) out->unique, out->len);$

ERROR: code indent should never use tabs
#205: FILE: tools/virtiofsd/fuse_lowlevel.c:184:
+^I^I}$

ERROR: code indent should never use tabs
#206: FILE: tools/virtiofsd/fuse_lowlevel.c:185:
+^I}$

ERROR: code indent should never use tabs
#208: FILE: tools/virtiofsd/fuse_lowlevel.c:187:
+^Issize_t res = writev(ch ? ch->fd : se->fd,$

ERROR: code indent should never use tabs
#209: FILE: tools/virtiofsd/fuse_lowlevel.c:188:
+^I^I^I     iov, count);$

ERROR: code indent should never use tabs
#210: FILE: tools/virtiofsd/fuse_lowlevel.c:189:
+^Iint err = errno;$

ERROR: code indent should never use tabs
#212: FILE: tools/virtiofsd/fuse_lowlevel.c:191:
+^Iif (res == -1) {$

ERROR: code indent should never use tabs
#213: FILE: tools/virtiofsd/fuse_lowlevel.c:192:
+^I^Iassert(se != NULL);$

ERROR: code indent should never use tabs
#215: FILE: tools/virtiofsd/fuse_lowlevel.c:194:
+^I^I/* ENOENT means the operation was interrupted */$

ERROR: code indent should never use tabs
#216: FILE: tools/virtiofsd/fuse_lowlevel.c:195:
+^I^Iif (!fuse_session_exited(se) && err != ENOENT)$

ERROR: braces {} are necessary for all arms of this statement
#216: FILE: tools/virtiofsd/fuse_lowlevel.c:195:
+               if (!fuse_session_exited(se) && err != ENOENT)
[...]

ERROR: code indent should never use tabs
#217: FILE: tools/virtiofsd/fuse_lowlevel.c:196:
+^I^I^Iperror("fuse: writing device");$

ERROR: code indent should never use tabs
#218: FILE: tools/virtiofsd/fuse_lowlevel.c:197:
+^I^Ireturn -err;$

ERROR: code indent should never use tabs
#219: FILE: tools/virtiofsd/fuse_lowlevel.c:198:
+^I}$

ERROR: code indent should never use tabs
#221: FILE: tools/virtiofsd/fuse_lowlevel.c:200:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#226: FILE: tools/virtiofsd/fuse_lowlevel.c:205:
+^I^I^I       int count)$

ERROR: code indent should never use tabs
#228: FILE: tools/virtiofsd/fuse_lowlevel.c:207:
+^Istruct fuse_out_header out;$

ERROR: code indent should never use tabs
#230: FILE: tools/virtiofsd/fuse_lowlevel.c:209:
+^Iif (error <= -1000 || error > 0) {$

ERROR: code indent should never use tabs
#231: FILE: tools/virtiofsd/fuse_lowlevel.c:210:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: bad error value: %i\n",^Ierror);$

ERROR: code indent should never use tabs
#232: FILE: tools/virtiofsd/fuse_lowlevel.c:211:
+^I^Ierror = -ERANGE;$

ERROR: code indent should never use tabs
#233: FILE: tools/virtiofsd/fuse_lowlevel.c:212:
+^I}$

ERROR: code indent should never use tabs
#235: FILE: tools/virtiofsd/fuse_lowlevel.c:214:
+^Iout.unique = req->unique;$

ERROR: code indent should never use tabs
#236: FILE: tools/virtiofsd/fuse_lowlevel.c:215:
+^Iout.error = error;$

ERROR: code indent should never use tabs
#238: FILE: tools/virtiofsd/fuse_lowlevel.c:217:
+^Iiov[0].iov_base = &out;$

ERROR: code indent should never use tabs
#239: FILE: tools/virtiofsd/fuse_lowlevel.c:218:
+^Iiov[0].iov_len = sizeof(struct fuse_out_header);$

ERROR: code indent should never use tabs
#241: FILE: tools/virtiofsd/fuse_lowlevel.c:220:
+^Ireturn fuse_send_msg(req->se, req->ch, iov, count);$

ERROR: code indent should never use tabs
#245: FILE: tools/virtiofsd/fuse_lowlevel.c:224:
+^I^I^I  int count)$

ERROR: code indent should never use tabs
#247: FILE: tools/virtiofsd/fuse_lowlevel.c:226:
+^Iint res;$

ERROR: code indent should never use tabs
#249: FILE: tools/virtiofsd/fuse_lowlevel.c:228:
+^Ires = fuse_send_reply_iov_nofree(req, error, iov, count);$

ERROR: code indent should never use tabs
#250: FILE: tools/virtiofsd/fuse_lowlevel.c:229:
+^Ifuse_free_req(req);$

ERROR: code indent should never use tabs
#251: FILE: tools/virtiofsd/fuse_lowlevel.c:230:
+^Ireturn res;$

ERROR: code indent should never use tabs
#255: FILE: tools/virtiofsd/fuse_lowlevel.c:234:
+^I^I      size_t argsize)$

ERROR: code indent should never use tabs
#257: FILE: tools/virtiofsd/fuse_lowlevel.c:236:
+^Istruct iovec iov[2];$

ERROR: code indent should never use tabs
#258: FILE: tools/virtiofsd/fuse_lowlevel.c:237:
+^Iint count = 1;$

ERROR: code indent should never use tabs
#259: FILE: tools/virtiofsd/fuse_lowlevel.c:238:
+^Iif (argsize) {$

ERROR: code indent should never use tabs
#260: FILE: tools/virtiofsd/fuse_lowlevel.c:239:
+^I^Iiov[1].iov_base = (void *) arg;$

ERROR: code indent should never use tabs
#261: FILE: tools/virtiofsd/fuse_lowlevel.c:240:
+^I^Iiov[1].iov_len = argsize;$

ERROR: code indent should never use tabs
#262: FILE: tools/virtiofsd/fuse_lowlevel.c:241:
+^I^Icount++;$

ERROR: code indent should never use tabs
#263: FILE: tools/virtiofsd/fuse_lowlevel.c:242:
+^I}$

ERROR: code indent should never use tabs
#264: FILE: tools/virtiofsd/fuse_lowlevel.c:243:
+^Ireturn send_reply_iov(req, error, iov, count);$

ERROR: code indent should never use tabs
#269: FILE: tools/virtiofsd/fuse_lowlevel.c:248:
+^Iint res;$

ERROR: code indent should never use tabs
#270: FILE: tools/virtiofsd/fuse_lowlevel.c:249:
+^Istruct iovec *padded_iov;$

ERROR: code indent should never use tabs
#272: FILE: tools/virtiofsd/fuse_lowlevel.c:251:
+^Ipadded_iov = malloc((count + 1) * sizeof(struct iovec));$

ERROR: code indent should never use tabs
#273: FILE: tools/virtiofsd/fuse_lowlevel.c:252:
+^Iif (padded_iov == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#273: FILE: tools/virtiofsd/fuse_lowlevel.c:252:
+       if (padded_iov == NULL)
[...]

ERROR: code indent should never use tabs
#274: FILE: tools/virtiofsd/fuse_lowlevel.c:253:
+^I^Ireturn fuse_reply_err(req, ENOMEM);$

ERROR: code indent should never use tabs
#276: FILE: tools/virtiofsd/fuse_lowlevel.c:255:
+^Imemcpy(padded_iov + 1, iov, count * sizeof(struct iovec));$

ERROR: code indent should never use tabs
#277: FILE: tools/virtiofsd/fuse_lowlevel.c:256:
+^Icount++;$

ERROR: code indent should never use tabs
#279: FILE: tools/virtiofsd/fuse_lowlevel.c:258:
+^Ires = send_reply_iov(req, 0, padded_iov, count);$

ERROR: code indent should never use tabs
#280: FILE: tools/virtiofsd/fuse_lowlevel.c:259:
+^Ifree(padded_iov);$

ERROR: code indent should never use tabs
#282: FILE: tools/virtiofsd/fuse_lowlevel.c:261:
+^Ireturn res;$

WARNING: Block comments use a leading /* on a separate line
#286: FILE: tools/virtiofsd/fuse_lowlevel.c:265:
+/* `buf` is allowed to be empty so that the proper size may be

WARNING: Block comments use * on subsequent lines
#287: FILE: tools/virtiofsd/fuse_lowlevel.c:266:
+/* `buf` is allowed to be empty so that the proper size may be
+   allocated by the caller */

WARNING: Block comments use a trailing */ on a separate line
#287: FILE: tools/virtiofsd/fuse_lowlevel.c:266:
+   allocated by the caller */

ERROR: code indent should never use tabs
#289: FILE: tools/virtiofsd/fuse_lowlevel.c:268:
+^I^I^I const char *name, const struct stat *stbuf, off_t off)$

ERROR: code indent should never use tabs
#291: FILE: tools/virtiofsd/fuse_lowlevel.c:270:
+^I(void)req;$

ERROR: code indent should never use tabs
#292: FILE: tools/virtiofsd/fuse_lowlevel.c:271:
+^Isize_t namelen;$

ERROR: code indent should never use tabs
#293: FILE: tools/virtiofsd/fuse_lowlevel.c:272:
+^Isize_t entlen;$

ERROR: code indent should never use tabs
#294: FILE: tools/virtiofsd/fuse_lowlevel.c:273:
+^Isize_t entlen_padded;$

ERROR: code indent should never use tabs
#295: FILE: tools/virtiofsd/fuse_lowlevel.c:274:
+^Istruct fuse_dirent *dirent;$

ERROR: code indent should never use tabs
#297: FILE: tools/virtiofsd/fuse_lowlevel.c:276:
+^Inamelen = strlen(name);$

ERROR: code indent should never use tabs
#298: FILE: tools/virtiofsd/fuse_lowlevel.c:277:
+^Ientlen = FUSE_NAME_OFFSET + namelen;$

ERROR: code indent should never use tabs
#299: FILE: tools/virtiofsd/fuse_lowlevel.c:278:
+^Ientlen_padded = FUSE_DIRENT_ALIGN(entlen);$

ERROR: code indent should never use tabs
#301: FILE: tools/virtiofsd/fuse_lowlevel.c:280:
+^Iif ((buf == NULL) || (entlen_padded > bufsize))$

ERROR: suspect code indent for conditional statements (8, 10)
#301: FILE: tools/virtiofsd/fuse_lowlevel.c:280:
+       if ((buf == NULL) || (entlen_padded > bufsize))
+         return entlen_padded;

ERROR: braces {} are necessary for all arms of this statement
#301: FILE: tools/virtiofsd/fuse_lowlevel.c:280:
+       if ((buf == NULL) || (entlen_padded > bufsize))
[...]

ERROR: code indent should never use tabs
#302: FILE: tools/virtiofsd/fuse_lowlevel.c:281:
+^I  return entlen_padded;$

ERROR: code indent should never use tabs
#304: FILE: tools/virtiofsd/fuse_lowlevel.c:283:
+^Idirent = (struct fuse_dirent*) buf;$

ERROR: "(foo*)" should be "(foo *)"
#304: FILE: tools/virtiofsd/fuse_lowlevel.c:283:
+       dirent = (struct fuse_dirent*) buf;

ERROR: code indent should never use tabs
#305: FILE: tools/virtiofsd/fuse_lowlevel.c:284:
+^Idirent->ino = stbuf->st_ino;$

ERROR: code indent should never use tabs
#306: FILE: tools/virtiofsd/fuse_lowlevel.c:285:
+^Idirent->off = off;$

ERROR: code indent should never use tabs
#307: FILE: tools/virtiofsd/fuse_lowlevel.c:286:
+^Idirent->namelen = namelen;$

ERROR: code indent should never use tabs
#308: FILE: tools/virtiofsd/fuse_lowlevel.c:287:
+^Idirent->type = (stbuf->st_mode & S_IFMT) >> 12;$

ERROR: code indent should never use tabs
#309: FILE: tools/virtiofsd/fuse_lowlevel.c:288:
+^Imemcpy(dirent->name, name, namelen);$

ERROR: code indent should never use tabs
#310: FILE: tools/virtiofsd/fuse_lowlevel.c:289:
+^Imemset(dirent->name + namelen, 0, entlen_padded - entlen);$

ERROR: code indent should never use tabs
#312: FILE: tools/virtiofsd/fuse_lowlevel.c:291:
+^Ireturn entlen_padded;$

ERROR: code indent should never use tabs
#316: FILE: tools/virtiofsd/fuse_lowlevel.c:295:
+^I^I^I   struct fuse_kstatfs *kstatfs)$

ERROR: code indent should never use tabs
#318: FILE: tools/virtiofsd/fuse_lowlevel.c:297:
+^Ikstatfs->bsize^I = stbuf->f_bsize;$

ERROR: code indent should never use tabs
#319: FILE: tools/virtiofsd/fuse_lowlevel.c:298:
+^Ikstatfs->frsize^I = stbuf->f_frsize;$

ERROR: code indent should never use tabs
#320: FILE: tools/virtiofsd/fuse_lowlevel.c:299:
+^Ikstatfs->blocks^I = stbuf->f_blocks;$

ERROR: code indent should never use tabs
#321: FILE: tools/virtiofsd/fuse_lowlevel.c:300:
+^Ikstatfs->bfree^I = stbuf->f_bfree;$

ERROR: code indent should never use tabs
#322: FILE: tools/virtiofsd/fuse_lowlevel.c:301:
+^Ikstatfs->bavail^I = stbuf->f_bavail;$

ERROR: code indent should never use tabs
#323: FILE: tools/virtiofsd/fuse_lowlevel.c:302:
+^Ikstatfs->files^I = stbuf->f_files;$

ERROR: code indent should never use tabs
#324: FILE: tools/virtiofsd/fuse_lowlevel.c:303:
+^Ikstatfs->ffree^I = stbuf->f_ffree;$

ERROR: code indent should never use tabs
#325: FILE: tools/virtiofsd/fuse_lowlevel.c:304:
+^Ikstatfs->namelen = stbuf->f_namemax;$

ERROR: code indent should never use tabs
#330: FILE: tools/virtiofsd/fuse_lowlevel.c:309:
+^Ireturn send_reply(req, 0, arg, argsize);$

ERROR: code indent should never use tabs
#335: FILE: tools/virtiofsd/fuse_lowlevel.c:314:
+^Ireturn send_reply(req, -err, NULL, 0);$

ERROR: code indent should never use tabs
#340: FILE: tools/virtiofsd/fuse_lowlevel.c:319:
+^Ifuse_free_req(req);$

ERROR: code indent should never use tabs
#345: FILE: tools/virtiofsd/fuse_lowlevel.c:324:
+^Iif (t > (double) ULONG_MAX)$

ERROR: braces {} are necessary for all arms of this statement
#345: FILE: tools/virtiofsd/fuse_lowlevel.c:324:
+       if (t > (double) ULONG_MAX)
[...]
+       else if (t < 0.0)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#346: FILE: tools/virtiofsd/fuse_lowlevel.c:325:
+^I^Ireturn ULONG_MAX;$

ERROR: code indent should never use tabs
#347: FILE: tools/virtiofsd/fuse_lowlevel.c:326:
+^Ielse if (t < 0.0)$

ERROR: braces {} are necessary for all arms of this statement
#347: FILE: tools/virtiofsd/fuse_lowlevel.c:326:
+       else if (t < 0.0)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#348: FILE: tools/virtiofsd/fuse_lowlevel.c:327:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#349: FILE: tools/virtiofsd/fuse_lowlevel.c:328:
+^Ielse$

ERROR: code indent should never use tabs
#350: FILE: tools/virtiofsd/fuse_lowlevel.c:329:
+^I^Ireturn (unsigned long) t;$

ERROR: code indent should never use tabs
#355: FILE: tools/virtiofsd/fuse_lowlevel.c:334:
+^Idouble f = t - (double) calc_timeout_sec(t);$

ERROR: code indent should never use tabs
#356: FILE: tools/virtiofsd/fuse_lowlevel.c:335:
+^Iif (f < 0.0)$

ERROR: braces {} are necessary for all arms of this statement
#356: FILE: tools/virtiofsd/fuse_lowlevel.c:335:
+       if (f < 0.0)
[...]
+       else if (f >= 0.999999999)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#357: FILE: tools/virtiofsd/fuse_lowlevel.c:336:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#358: FILE: tools/virtiofsd/fuse_lowlevel.c:337:
+^Ielse if (f >= 0.999999999)$

ERROR: braces {} are necessary for all arms of this statement
#358: FILE: tools/virtiofsd/fuse_lowlevel.c:337:
+       else if (f >= 0.999999999)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#359: FILE: tools/virtiofsd/fuse_lowlevel.c:338:
+^I^Ireturn 999999999;$

ERROR: code indent should never use tabs
#360: FILE: tools/virtiofsd/fuse_lowlevel.c:339:
+^Ielse$

ERROR: code indent should never use tabs
#361: FILE: tools/virtiofsd/fuse_lowlevel.c:340:
+^I^Ireturn (unsigned int) (f * 1.0e9);$

ERROR: code indent should never use tabs
#365: FILE: tools/virtiofsd/fuse_lowlevel.c:344:
+^I^I       const struct fuse_entry_param *e)$

ERROR: code indent should never use tabs
#367: FILE: tools/virtiofsd/fuse_lowlevel.c:346:
+^Iarg->nodeid = e->ino;$

ERROR: code indent should never use tabs
#368: FILE: tools/virtiofsd/fuse_lowlevel.c:347:
+^Iarg->generation = e->generation;$

ERROR: code indent should never use tabs
#369: FILE: tools/virtiofsd/fuse_lowlevel.c:348:
+^Iarg->entry_valid = calc_timeout_sec(e->entry_timeout);$

ERROR: code indent should never use tabs
#370: FILE: tools/virtiofsd/fuse_lowlevel.c:349:
+^Iarg->entry_valid_nsec = calc_timeout_nsec(e->entry_timeout);$

ERROR: code indent should never use tabs
#371: FILE: tools/virtiofsd/fuse_lowlevel.c:350:
+^Iarg->attr_valid = calc_timeout_sec(e->attr_timeout);$

ERROR: code indent should never use tabs
#372: FILE: tools/virtiofsd/fuse_lowlevel.c:351:
+^Iarg->attr_valid_nsec = calc_timeout_nsec(e->attr_timeout);$

ERROR: code indent should never use tabs
#373: FILE: tools/virtiofsd/fuse_lowlevel.c:352:
+^Iconvert_stat(&e->attr, &arg->attr);$

WARNING: Block comments use a leading /* on a separate line
#376: FILE: tools/virtiofsd/fuse_lowlevel.c:355:
+/* `buf` is allowed to be empty so that the proper size may be

WARNING: Block comments use * on subsequent lines
#377: FILE: tools/virtiofsd/fuse_lowlevel.c:356:
+/* `buf` is allowed to be empty so that the proper size may be
+   allocated by the caller */

WARNING: Block comments use a trailing */ on a separate line
#377: FILE: tools/virtiofsd/fuse_lowlevel.c:356:
+   allocated by the caller */

ERROR: code indent should never use tabs
#379: FILE: tools/virtiofsd/fuse_lowlevel.c:358:
+^I^I^I      const char *name,$

ERROR: code indent should never use tabs
#380: FILE: tools/virtiofsd/fuse_lowlevel.c:359:
+^I^I^I      const struct fuse_entry_param *e, off_t off)$

ERROR: code indent should never use tabs
#382: FILE: tools/virtiofsd/fuse_lowlevel.c:361:
+^I(void)req;$

ERROR: code indent should never use tabs
#383: FILE: tools/virtiofsd/fuse_lowlevel.c:362:
+^Isize_t namelen;$

ERROR: code indent should never use tabs
#384: FILE: tools/virtiofsd/fuse_lowlevel.c:363:
+^Isize_t entlen;$

ERROR: code indent should never use tabs
#385: FILE: tools/virtiofsd/fuse_lowlevel.c:364:
+^Isize_t entlen_padded;$

ERROR: code indent should never use tabs
#387: FILE: tools/virtiofsd/fuse_lowlevel.c:366:
+^Inamelen = strlen(name);$

ERROR: code indent should never use tabs
#388: FILE: tools/virtiofsd/fuse_lowlevel.c:367:
+^Ientlen = FUSE_NAME_OFFSET_DIRENTPLUS + namelen;$

ERROR: code indent should never use tabs
#389: FILE: tools/virtiofsd/fuse_lowlevel.c:368:
+^Ientlen_padded = FUSE_DIRENT_ALIGN(entlen);$

ERROR: code indent should never use tabs
#390: FILE: tools/virtiofsd/fuse_lowlevel.c:369:
+^Iif ((buf == NULL) || (entlen_padded > bufsize))$

ERROR: suspect code indent for conditional statements (8, 10)
#390: FILE: tools/virtiofsd/fuse_lowlevel.c:369:
+       if ((buf == NULL) || (entlen_padded > bufsize))
+         return entlen_padded;

ERROR: braces {} are necessary for all arms of this statement
#390: FILE: tools/virtiofsd/fuse_lowlevel.c:369:
+       if ((buf == NULL) || (entlen_padded > bufsize))
[...]

ERROR: code indent should never use tabs
#391: FILE: tools/virtiofsd/fuse_lowlevel.c:370:
+^I  return entlen_padded;$

ERROR: code indent should never use tabs
#393: FILE: tools/virtiofsd/fuse_lowlevel.c:372:
+^Istruct fuse_direntplus *dp = (struct fuse_direntplus *) buf;$

ERROR: code indent should never use tabs
#394: FILE: tools/virtiofsd/fuse_lowlevel.c:373:
+^Imemset(&dp->entry_out, 0, sizeof(dp->entry_out));$

ERROR: code indent should never use tabs
#395: FILE: tools/virtiofsd/fuse_lowlevel.c:374:
+^Ifill_entry(&dp->entry_out, e);$

ERROR: code indent should never use tabs
#397: FILE: tools/virtiofsd/fuse_lowlevel.c:376:
+^Istruct fuse_dirent *dirent = &dp->dirent;$

ERROR: code indent should never use tabs
#398: FILE: tools/virtiofsd/fuse_lowlevel.c:377:
+^Idirent->ino = e->attr.st_ino;$

ERROR: code indent should never use tabs
#399: FILE: tools/virtiofsd/fuse_lowlevel.c:378:
+^Idirent->off = off;$

ERROR: code indent should never use tabs
#400: FILE: tools/virtiofsd/fuse_lowlevel.c:379:
+^Idirent->namelen = namelen;$

ERROR: code indent should never use tabs
#401: FILE: tools/virtiofsd/fuse_lowlevel.c:380:
+^Idirent->type = (e->attr.st_mode & S_IFMT) >> 12;$

ERROR: code indent should never use tabs
#402: FILE: tools/virtiofsd/fuse_lowlevel.c:381:
+^Imemcpy(dirent->name, name, namelen);$

ERROR: code indent should never use tabs
#403: FILE: tools/virtiofsd/fuse_lowlevel.c:382:
+^Imemset(dirent->name + namelen, 0, entlen_padded - entlen);$

ERROR: code indent should never use tabs
#405: FILE: tools/virtiofsd/fuse_lowlevel.c:384:
+^Ireturn entlen_padded;$

ERROR: code indent should never use tabs
#409: FILE: tools/virtiofsd/fuse_lowlevel.c:388:
+^I^I      const struct fuse_file_info *f)$

ERROR: code indent should never use tabs
#411: FILE: tools/virtiofsd/fuse_lowlevel.c:390:
+^Iarg->fh = f->fh;$

ERROR: code indent should never use tabs
#412: FILE: tools/virtiofsd/fuse_lowlevel.c:391:
+^Iif (f->direct_io)$

ERROR: braces {} are necessary for all arms of this statement
#412: FILE: tools/virtiofsd/fuse_lowlevel.c:391:
+       if (f->direct_io)
[...]

ERROR: code indent should never use tabs
#413: FILE: tools/virtiofsd/fuse_lowlevel.c:392:
+^I^Iarg->open_flags |= FOPEN_DIRECT_IO;$

ERROR: code indent should never use tabs
#414: FILE: tools/virtiofsd/fuse_lowlevel.c:393:
+^Iif (f->keep_cache)$

ERROR: braces {} are necessary for all arms of this statement
#414: FILE: tools/virtiofsd/fuse_lowlevel.c:393:
+       if (f->keep_cache)
[...]

ERROR: code indent should never use tabs
#415: FILE: tools/virtiofsd/fuse_lowlevel.c:394:
+^I^Iarg->open_flags |= FOPEN_KEEP_CACHE;$

ERROR: code indent should never use tabs
#416: FILE: tools/virtiofsd/fuse_lowlevel.c:395:
+^Iif (f->cache_readdir)$

ERROR: braces {} are necessary for all arms of this statement
#416: FILE: tools/virtiofsd/fuse_lowlevel.c:395:
+       if (f->cache_readdir)
[...]

ERROR: code indent should never use tabs
#417: FILE: tools/virtiofsd/fuse_lowlevel.c:396:
+^I^Iarg->open_flags |= FOPEN_CACHE_DIR;$

ERROR: code indent should never use tabs
#418: FILE: tools/virtiofsd/fuse_lowlevel.c:397:
+^Iif (f->nonseekable)$

ERROR: braces {} are necessary for all arms of this statement
#418: FILE: tools/virtiofsd/fuse_lowlevel.c:397:
+       if (f->nonseekable)
[...]

ERROR: code indent should never use tabs
#419: FILE: tools/virtiofsd/fuse_lowlevel.c:398:
+^I^Iarg->open_flags |= FOPEN_NONSEEKABLE;$

ERROR: code indent should never use tabs
#424: FILE: tools/virtiofsd/fuse_lowlevel.c:403:
+^Istruct fuse_entry_out arg;$

ERROR: code indent should never use tabs
#425: FILE: tools/virtiofsd/fuse_lowlevel.c:404:
+^Isize_t size = req->se->conn.proto_minor < 9 ?$

ERROR: code indent should never use tabs
#426: FILE: tools/virtiofsd/fuse_lowlevel.c:405:
+^I^IFUSE_COMPAT_ENTRY_OUT_SIZE : sizeof(arg);$

ERROR: code indent should never use tabs
#428: FILE: tools/virtiofsd/fuse_lowlevel.c:407:
+^I/* before ABI 7.4 e->ino == 0 was invalid, only ENOENT meant$

WARNING: Block comments use a leading /* on a separate line
#428: FILE: tools/virtiofsd/fuse_lowlevel.c:407:
+       /* before ABI 7.4 e->ino == 0 was invalid, only ENOENT meant

ERROR: code indent should never use tabs
#429: FILE: tools/virtiofsd/fuse_lowlevel.c:408:
+^I   negative entry */$

WARNING: Block comments use * on subsequent lines
#429: FILE: tools/virtiofsd/fuse_lowlevel.c:408:
+       /* before ABI 7.4 e->ino == 0 was invalid, only ENOENT meant
+          negative entry */

WARNING: Block comments use a trailing */ on a separate line
#429: FILE: tools/virtiofsd/fuse_lowlevel.c:408:
+          negative entry */

ERROR: code indent should never use tabs
#430: FILE: tools/virtiofsd/fuse_lowlevel.c:409:
+^Iif (!e->ino && req->se->conn.proto_minor < 4)$

ERROR: braces {} are necessary for all arms of this statement
#430: FILE: tools/virtiofsd/fuse_lowlevel.c:409:
+       if (!e->ino && req->se->conn.proto_minor < 4)
[...]

ERROR: code indent should never use tabs
#431: FILE: tools/virtiofsd/fuse_lowlevel.c:410:
+^I^Ireturn fuse_reply_err(req, ENOENT);$

ERROR: code indent should never use tabs
#433: FILE: tools/virtiofsd/fuse_lowlevel.c:412:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#434: FILE: tools/virtiofsd/fuse_lowlevel.c:413:
+^Ifill_entry(&arg, e);$

ERROR: code indent should never use tabs
#435: FILE: tools/virtiofsd/fuse_lowlevel.c:414:
+^Ireturn send_reply_ok(req, &arg, size);$

ERROR: code indent should never use tabs
#439: FILE: tools/virtiofsd/fuse_lowlevel.c:418:
+^I^I      const struct fuse_file_info *f)$

ERROR: code indent should never use tabs
#441: FILE: tools/virtiofsd/fuse_lowlevel.c:420:
+^Ichar buf[sizeof(struct fuse_entry_out) + sizeof(struct fuse_open_out)];$

ERROR: code indent should never use tabs
#442: FILE: tools/virtiofsd/fuse_lowlevel.c:421:
+^Isize_t entrysize = req->se->conn.proto_minor < 9 ?$

ERROR: code indent should never use tabs
#443: FILE: tools/virtiofsd/fuse_lowlevel.c:422:
+^I^IFUSE_COMPAT_ENTRY_OUT_SIZE : sizeof(struct fuse_entry_out);$

ERROR: code indent should never use tabs
#444: FILE: tools/virtiofsd/fuse_lowlevel.c:423:
+^Istruct fuse_entry_out *earg = (struct fuse_entry_out *) buf;$

ERROR: code indent should never use tabs
#445: FILE: tools/virtiofsd/fuse_lowlevel.c:424:
+^Istruct fuse_open_out *oarg = (struct fuse_open_out *) (buf + entrysize);$

ERROR: code indent should never use tabs
#447: FILE: tools/virtiofsd/fuse_lowlevel.c:426:
+^Imemset(buf, 0, sizeof(buf));$

ERROR: code indent should never use tabs
#448: FILE: tools/virtiofsd/fuse_lowlevel.c:427:
+^Ifill_entry(earg, e);$

ERROR: code indent should never use tabs
#449: FILE: tools/virtiofsd/fuse_lowlevel.c:428:
+^Ifill_open(oarg, f);$

ERROR: code indent should never use tabs
#450: FILE: tools/virtiofsd/fuse_lowlevel.c:429:
+^Ireturn send_reply_ok(req, buf,$

ERROR: code indent should never use tabs
#451: FILE: tools/virtiofsd/fuse_lowlevel.c:430:
+^I^I^I     entrysize + sizeof(struct fuse_open_out));$

ERROR: code indent should never use tabs
#455: FILE: tools/virtiofsd/fuse_lowlevel.c:434:
+^I^I    double attr_timeout)$

ERROR: code indent should never use tabs
#457: FILE: tools/virtiofsd/fuse_lowlevel.c:436:
+^Istruct fuse_attr_out arg;$

ERROR: code indent should never use tabs
#458: FILE: tools/virtiofsd/fuse_lowlevel.c:437:
+^Isize_t size = req->se->conn.proto_minor < 9 ?$

ERROR: code indent should never use tabs
#459: FILE: tools/virtiofsd/fuse_lowlevel.c:438:
+^I^IFUSE_COMPAT_ATTR_OUT_SIZE : sizeof(arg);$

ERROR: code indent should never use tabs
#461: FILE: tools/virtiofsd/fuse_lowlevel.c:440:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#462: FILE: tools/virtiofsd/fuse_lowlevel.c:441:
+^Iarg.attr_valid = calc_timeout_sec(attr_timeout);$

ERROR: code indent should never use tabs
#463: FILE: tools/virtiofsd/fuse_lowlevel.c:442:
+^Iarg.attr_valid_nsec = calc_timeout_nsec(attr_timeout);$

ERROR: code indent should never use tabs
#464: FILE: tools/virtiofsd/fuse_lowlevel.c:443:
+^Iconvert_stat(attr, &arg.attr);$

ERROR: code indent should never use tabs
#466: FILE: tools/virtiofsd/fuse_lowlevel.c:445:
+^Ireturn send_reply_ok(req, &arg, size);$

ERROR: code indent should never use tabs
#471: FILE: tools/virtiofsd/fuse_lowlevel.c:450:
+^Ireturn send_reply_ok(req, linkname, strlen(linkname));$

ERROR: code indent should never use tabs
#476: FILE: tools/virtiofsd/fuse_lowlevel.c:455:
+^Istruct fuse_open_out arg;$

ERROR: code indent should never use tabs
#478: FILE: tools/virtiofsd/fuse_lowlevel.c:457:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#479: FILE: tools/virtiofsd/fuse_lowlevel.c:458:
+^Ifill_open(&arg, f);$

ERROR: code indent should never use tabs
#480: FILE: tools/virtiofsd/fuse_lowlevel.c:459:
+^Ireturn send_reply_ok(req, &arg, sizeof(arg));$

ERROR: code indent should never use tabs
#485: FILE: tools/virtiofsd/fuse_lowlevel.c:464:
+^Istruct fuse_write_out arg;$

ERROR: code indent should never use tabs
#487: FILE: tools/virtiofsd/fuse_lowlevel.c:466:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#488: FILE: tools/virtiofsd/fuse_lowlevel.c:467:
+^Iarg.size = count;$

ERROR: code indent should never use tabs
#490: FILE: tools/virtiofsd/fuse_lowlevel.c:469:
+^Ireturn send_reply_ok(req, &arg, sizeof(arg));$

ERROR: code indent should never use tabs
#495: FILE: tools/virtiofsd/fuse_lowlevel.c:474:
+^Ireturn send_reply_ok(req, buf, size);$

ERROR: code indent should never use tabs
#499: FILE: tools/virtiofsd/fuse_lowlevel.c:478:
+^I^I^I^I       struct fuse_chan *ch,$

ERROR: code indent should never use tabs
#500: FILE: tools/virtiofsd/fuse_lowlevel.c:479:
+^I^I^I^I       struct iovec *iov, int iov_count,$

ERROR: code indent should never use tabs
#501: FILE: tools/virtiofsd/fuse_lowlevel.c:480:
+^I^I^I^I       struct fuse_bufvec *buf,$

ERROR: code indent should never use tabs
#502: FILE: tools/virtiofsd/fuse_lowlevel.c:481:
+^I^I^I^I       size_t len)$

ERROR: code indent should never use tabs
#504: FILE: tools/virtiofsd/fuse_lowlevel.c:483:
+^Istruct fuse_bufvec mem_buf = FUSE_BUFVEC_INIT(len);$

ERROR: code indent should never use tabs
#505: FILE: tools/virtiofsd/fuse_lowlevel.c:484:
+^Ivoid *mbuf;$

ERROR: code indent should never use tabs
#506: FILE: tools/virtiofsd/fuse_lowlevel.c:485:
+^Iint res;$

ERROR: code indent should never use tabs
#508: FILE: tools/virtiofsd/fuse_lowlevel.c:487:
+^I/* Optimize common case */$

ERROR: code indent should never use tabs
#509: FILE: tools/virtiofsd/fuse_lowlevel.c:488:
+^Iif (buf->count == 1 && buf->idx == 0 && buf->off == 0 &&$

ERROR: code indent should never use tabs
#510: FILE: tools/virtiofsd/fuse_lowlevel.c:489:
+^I    !(buf->buf[0].flags & FUSE_BUF_IS_FD)) {$

ERROR: code indent should never use tabs
#511: FILE: tools/virtiofsd/fuse_lowlevel.c:490:
+^I^I/* FIXME: also avoid memory copy if there are multiple buffers$

WARNING: Block comments use a leading /* on a separate line
#511: FILE: tools/virtiofsd/fuse_lowlevel.c:490:
+               /* FIXME: also avoid memory copy if there are multiple buffers

ERROR: code indent should never use tabs
#512: FILE: tools/virtiofsd/fuse_lowlevel.c:491:
+^I^I   but none of them contain an fd */$

WARNING: Block comments use * on subsequent lines
#512: FILE: tools/virtiofsd/fuse_lowlevel.c:491:
+               /* FIXME: also avoid memory copy if there are multiple buffers
+                  but none of them contain an fd */

WARNING: Block comments use a trailing */ on a separate line
#512: FILE: tools/virtiofsd/fuse_lowlevel.c:491:
+                  but none of them contain an fd */

ERROR: code indent should never use tabs
#514: FILE: tools/virtiofsd/fuse_lowlevel.c:493:
+^I^Iiov[iov_count].iov_base = buf->buf[0].mem;$

ERROR: code indent should never use tabs
#515: FILE: tools/virtiofsd/fuse_lowlevel.c:494:
+^I^Iiov[iov_count].iov_len = len;$

ERROR: code indent should never use tabs
#516: FILE: tools/virtiofsd/fuse_lowlevel.c:495:
+^I^Iiov_count++;$

ERROR: code indent should never use tabs
#517: FILE: tools/virtiofsd/fuse_lowlevel.c:496:
+^I^Ireturn fuse_send_msg(se, ch, iov, iov_count);$

ERROR: code indent should never use tabs
#518: FILE: tools/virtiofsd/fuse_lowlevel.c:497:
+^I}$

ERROR: code indent should never use tabs
#520: FILE: tools/virtiofsd/fuse_lowlevel.c:499:
+^Ires = posix_memalign(&mbuf, pagesize, len);$

ERROR: code indent should never use tabs
#521: FILE: tools/virtiofsd/fuse_lowlevel.c:500:
+^Iif (res != 0)$

ERROR: braces {} are necessary for all arms of this statement
#521: FILE: tools/virtiofsd/fuse_lowlevel.c:500:
+       if (res != 0)
[...]

ERROR: code indent should never use tabs
#522: FILE: tools/virtiofsd/fuse_lowlevel.c:501:
+^I^Ireturn res;$

ERROR: code indent should never use tabs
#524: FILE: tools/virtiofsd/fuse_lowlevel.c:503:
+^Imem_buf.buf[0].mem = mbuf;$

ERROR: code indent should never use tabs
#525: FILE: tools/virtiofsd/fuse_lowlevel.c:504:
+^Ires = fuse_buf_copy(&mem_buf, buf, 0);$

ERROR: code indent should never use tabs
#526: FILE: tools/virtiofsd/fuse_lowlevel.c:505:
+^Iif (res < 0) {$

ERROR: code indent should never use tabs
#527: FILE: tools/virtiofsd/fuse_lowlevel.c:506:
+^I^Ifree(mbuf);$

ERROR: code indent should never use tabs
#528: FILE: tools/virtiofsd/fuse_lowlevel.c:507:
+^I^Ireturn -res;$

ERROR: code indent should never use tabs
#529: FILE: tools/virtiofsd/fuse_lowlevel.c:508:
+^I}$

ERROR: code indent should never use tabs
#530: FILE: tools/virtiofsd/fuse_lowlevel.c:509:
+^Ilen = res;$

ERROR: code indent should never use tabs
#532: FILE: tools/virtiofsd/fuse_lowlevel.c:511:
+^Iiov[iov_count].iov_base = mbuf;$

ERROR: code indent should never use tabs
#533: FILE: tools/virtiofsd/fuse_lowlevel.c:512:
+^Iiov[iov_count].iov_len = len;$

ERROR: code indent should never use tabs
#534: FILE: tools/virtiofsd/fuse_lowlevel.c:513:
+^Iiov_count++;$

ERROR: code indent should never use tabs
#535: FILE: tools/virtiofsd/fuse_lowlevel.c:514:
+^Ires = fuse_send_msg(se, ch, iov, iov_count);$

ERROR: code indent should never use tabs
#536: FILE: tools/virtiofsd/fuse_lowlevel.c:515:
+^Ifree(mbuf);$

ERROR: code indent should never use tabs
#538: FILE: tools/virtiofsd/fuse_lowlevel.c:517:
+^Ireturn res;$

ERROR: code indent should never use tabs
#542: FILE: tools/virtiofsd/fuse_lowlevel.c:521:
+^Isize_t size;$

ERROR: code indent should never use tabs
#543: FILE: tools/virtiofsd/fuse_lowlevel.c:522:
+^Iint can_grow;$

ERROR: code indent should never use tabs
#544: FILE: tools/virtiofsd/fuse_lowlevel.c:523:
+^Iint pipe[2];$

ERROR: code indent should never use tabs
#549: FILE: tools/virtiofsd/fuse_lowlevel.c:528:
+^Iclose(llp->pipe[0]);$

ERROR: code indent should never use tabs
#550: FILE: tools/virtiofsd/fuse_lowlevel.c:529:
+^Iclose(llp->pipe[1]);$

ERROR: code indent should never use tabs
#551: FILE: tools/virtiofsd/fuse_lowlevel.c:530:
+^Ifree(llp);$

ERROR: code indent should never use tabs
#558: FILE: tools/virtiofsd/fuse_lowlevel.c:537:
+^Iint rv = pipe(fds);$

ERROR: code indent should never use tabs
#560: FILE: tools/virtiofsd/fuse_lowlevel.c:539:
+^Iif (rv == -1)$

ERROR: braces {} are necessary for all arms of this statement
#560: FILE: tools/virtiofsd/fuse_lowlevel.c:539:
+       if (rv == -1)
[...]

ERROR: code indent should never use tabs
#561: FILE: tools/virtiofsd/fuse_lowlevel.c:540:
+^I^Ireturn rv;$

ERROR: code indent should never use tabs
#563: FILE: tools/virtiofsd/fuse_lowlevel.c:542:
+^Iif (fcntl(fds[0], F_SETFL, O_NONBLOCK) == -1 ||$

ERROR: code indent should never use tabs
#564: FILE: tools/virtiofsd/fuse_lowlevel.c:543:
+^I    fcntl(fds[1], F_SETFL, O_NONBLOCK) == -1 ||$

ERROR: code indent should never use tabs
#565: FILE: tools/virtiofsd/fuse_lowlevel.c:544:
+^I    fcntl(fds[0], F_SETFD, FD_CLOEXEC) == -1 ||$

ERROR: code indent should never use tabs
#566: FILE: tools/virtiofsd/fuse_lowlevel.c:545:
+^I    fcntl(fds[1], F_SETFD, FD_CLOEXEC) == -1) {$

ERROR: code indent should never use tabs
#567: FILE: tools/virtiofsd/fuse_lowlevel.c:546:
+^I^Iclose(fds[0]);$

ERROR: code indent should never use tabs
#568: FILE: tools/virtiofsd/fuse_lowlevel.c:547:
+^I^Iclose(fds[1]);$

ERROR: code indent should never use tabs
#569: FILE: tools/virtiofsd/fuse_lowlevel.c:548:
+^I^Irv = -1;$

ERROR: code indent should never use tabs
#570: FILE: tools/virtiofsd/fuse_lowlevel.c:549:
+^I}$

ERROR: code indent should never use tabs
#571: FILE: tools/virtiofsd/fuse_lowlevel.c:550:
+^Ireturn rv;$

ERROR: code indent should never use tabs
#576: FILE: tools/virtiofsd/fuse_lowlevel.c:555:
+^Ireturn pipe2(fds, O_CLOEXEC | O_NONBLOCK);$

ERROR: code indent should never use tabs
#582: FILE: tools/virtiofsd/fuse_lowlevel.c:561:
+^Istruct fuse_ll_pipe *llp = pthread_getspecific(se->pipe_key);$

ERROR: code indent should never use tabs
#583: FILE: tools/virtiofsd/fuse_lowlevel.c:562:
+^Iif (llp == NULL) {$

ERROR: code indent should never use tabs
#584: FILE: tools/virtiofsd/fuse_lowlevel.c:563:
+^I^Iint res;$

ERROR: code indent should never use tabs
#586: FILE: tools/virtiofsd/fuse_lowlevel.c:565:
+^I^Illp = malloc(sizeof(struct fuse_ll_pipe));$

ERROR: code indent should never use tabs
#587: FILE: tools/virtiofsd/fuse_lowlevel.c:566:
+^I^Iif (llp == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#587: FILE: tools/virtiofsd/fuse_lowlevel.c:566:
+               if (llp == NULL)
[...]

ERROR: code indent should never use tabs
#588: FILE: tools/virtiofsd/fuse_lowlevel.c:567:
+^I^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#590: FILE: tools/virtiofsd/fuse_lowlevel.c:569:
+^I^Ires = fuse_pipe(llp->pipe);$

ERROR: code indent should never use tabs
#591: FILE: tools/virtiofsd/fuse_lowlevel.c:570:
+^I^Iif (res == -1) {$

ERROR: code indent should never use tabs
#592: FILE: tools/virtiofsd/fuse_lowlevel.c:571:
+^I^I^Ifree(llp);$

ERROR: code indent should never use tabs
#593: FILE: tools/virtiofsd/fuse_lowlevel.c:572:
+^I^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#594: FILE: tools/virtiofsd/fuse_lowlevel.c:573:
+^I^I}$

ERROR: code indent should never use tabs
#596: FILE: tools/virtiofsd/fuse_lowlevel.c:575:
+^I^I/*$

ERROR: code indent should never use tabs
#597: FILE: tools/virtiofsd/fuse_lowlevel.c:576:
+^I^I *the default size is 16 pages on linux$

ERROR: code indent should never use tabs
#598: FILE: tools/virtiofsd/fuse_lowlevel.c:577:
+^I^I */$

ERROR: code indent should never use tabs
#599: FILE: tools/virtiofsd/fuse_lowlevel.c:578:
+^I^Illp->size = pagesize * 16;$

ERROR: code indent should never use tabs
#600: FILE: tools/virtiofsd/fuse_lowlevel.c:579:
+^I^Illp->can_grow = 1;$

ERROR: code indent should never use tabs
#602: FILE: tools/virtiofsd/fuse_lowlevel.c:581:
+^I^Ipthread_setspecific(se->pipe_key, llp);$

ERROR: code indent should never use tabs
#603: FILE: tools/virtiofsd/fuse_lowlevel.c:582:
+^I}$

ERROR: code indent should never use tabs
#605: FILE: tools/virtiofsd/fuse_lowlevel.c:584:
+^Ireturn llp;$

ERROR: code indent should never use tabs
#611: FILE: tools/virtiofsd/fuse_lowlevel.c:590:
+^Istruct fuse_ll_pipe *llp = pthread_getspecific(se->pipe_key);$

ERROR: code indent should never use tabs
#612: FILE: tools/virtiofsd/fuse_lowlevel.c:591:
+^Iif (llp) {$

ERROR: code indent should never use tabs
#613: FILE: tools/virtiofsd/fuse_lowlevel.c:592:
+^I^Ipthread_setspecific(se->pipe_key, NULL);$

ERROR: code indent should never use tabs
#614: FILE: tools/virtiofsd/fuse_lowlevel.c:593:
+^I^Ifuse_ll_pipe_free(llp);$

ERROR: code indent should never use tabs
#615: FILE: tools/virtiofsd/fuse_lowlevel.c:594:
+^I}$

ERROR: code indent should never use tabs
#621: FILE: tools/virtiofsd/fuse_lowlevel.c:600:
+^Iint res;$

ERROR: code indent should never use tabs
#623: FILE: tools/virtiofsd/fuse_lowlevel.c:602:
+^Ires = read(fd, buf, len);$

ERROR: code indent should never use tabs
#624: FILE: tools/virtiofsd/fuse_lowlevel.c:603:
+^Iif (res == -1) {$

ERROR: line over 90 characters
#625: FILE: tools/virtiofsd/fuse_lowlevel.c:604:
+               fuse_log(FUSE_LOG_ERR, "fuse: internal error: failed to read back from pipe: %s\n", strerror(errno));

ERROR: code indent should never use tabs
#625: FILE: tools/virtiofsd/fuse_lowlevel.c:604:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: internal error: failed to read back from pipe: %s\n", strerror(errno));$

ERROR: code indent should never use tabs
#626: FILE: tools/virtiofsd/fuse_lowlevel.c:605:
+^I^Ireturn -EIO;$

ERROR: code indent should never use tabs
#627: FILE: tools/virtiofsd/fuse_lowlevel.c:606:
+^I}$

ERROR: code indent should never use tabs
#628: FILE: tools/virtiofsd/fuse_lowlevel.c:607:
+^Iif (res != len) {$

ERROR: line over 90 characters
#629: FILE: tools/virtiofsd/fuse_lowlevel.c:608:
+               fuse_log(FUSE_LOG_ERR, "fuse: internal error: short read back from pipe: %i from %zi\n", res, len);

ERROR: code indent should never use tabs
#629: FILE: tools/virtiofsd/fuse_lowlevel.c:608:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: internal error: short read back from pipe: %i from %zi\n", res, len);$

ERROR: code indent should never use tabs
#630: FILE: tools/virtiofsd/fuse_lowlevel.c:609:
+^I^Ireturn -EIO;$

ERROR: code indent should never use tabs
#631: FILE: tools/virtiofsd/fuse_lowlevel.c:610:
+^I}$

ERROR: code indent should never use tabs
#632: FILE: tools/virtiofsd/fuse_lowlevel.c:611:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#637: FILE: tools/virtiofsd/fuse_lowlevel.c:616:
+^Iint max;$

ERROR: code indent should never use tabs
#638: FILE: tools/virtiofsd/fuse_lowlevel.c:617:
+^Iint res;$

ERROR: code indent should never use tabs
#639: FILE: tools/virtiofsd/fuse_lowlevel.c:618:
+^Iint maxfd;$

ERROR: code indent should never use tabs
#640: FILE: tools/virtiofsd/fuse_lowlevel.c:619:
+^Ichar buf[32];$

ERROR: code indent should never use tabs
#642: FILE: tools/virtiofsd/fuse_lowlevel.c:621:
+^Imaxfd = open("/proc/sys/fs/pipe-max-size", O_RDONLY);$

ERROR: code indent should never use tabs
#643: FILE: tools/virtiofsd/fuse_lowlevel.c:622:
+^Iif (maxfd < 0)$

ERROR: braces {} are necessary for all arms of this statement
#643: FILE: tools/virtiofsd/fuse_lowlevel.c:622:
+       if (maxfd < 0)
[...]

ERROR: code indent should never use tabs
#644: FILE: tools/virtiofsd/fuse_lowlevel.c:623:
+^I^Ireturn -errno;$

ERROR: code indent should never use tabs
#646: FILE: tools/virtiofsd/fuse_lowlevel.c:625:
+^Ires = read(maxfd, buf, sizeof(buf) - 1);$

ERROR: code indent should never use tabs
#647: FILE: tools/virtiofsd/fuse_lowlevel.c:626:
+^Iif (res < 0) {$

ERROR: code indent should never use tabs
#648: FILE: tools/virtiofsd/fuse_lowlevel.c:627:
+^I^Iint saved_errno;$

ERROR: code indent should never use tabs
#650: FILE: tools/virtiofsd/fuse_lowlevel.c:629:
+^I^Isaved_errno = errno;$

ERROR: code indent should never use tabs
#651: FILE: tools/virtiofsd/fuse_lowlevel.c:630:
+^I^Iclose(maxfd);$

ERROR: code indent should never use tabs
#652: FILE: tools/virtiofsd/fuse_lowlevel.c:631:
+^I^Ireturn -saved_errno;$

ERROR: code indent should never use tabs
#653: FILE: tools/virtiofsd/fuse_lowlevel.c:632:
+^I}$

ERROR: code indent should never use tabs
#654: FILE: tools/virtiofsd/fuse_lowlevel.c:633:
+^Iclose(maxfd);$

ERROR: code indent should never use tabs
#655: FILE: tools/virtiofsd/fuse_lowlevel.c:634:
+^Ibuf[res] = '\0';$

ERROR: code indent should never use tabs
#657: FILE: tools/virtiofsd/fuse_lowlevel.c:636:
+^Imax = atoi(buf);$

ERROR: code indent should never use tabs
#658: FILE: tools/virtiofsd/fuse_lowlevel.c:637:
+^Ires = fcntl(pipefd, F_SETPIPE_SZ, max);$

ERROR: code indent should never use tabs
#659: FILE: tools/virtiofsd/fuse_lowlevel.c:638:
+^Iif (res < 0)$

ERROR: braces {} are necessary for all arms of this statement
#659: FILE: tools/virtiofsd/fuse_lowlevel.c:638:
+       if (res < 0)
[...]

ERROR: code indent should never use tabs
#660: FILE: tools/virtiofsd/fuse_lowlevel.c:639:
+^I^Ireturn -errno;$

ERROR: code indent should never use tabs
#661: FILE: tools/virtiofsd/fuse_lowlevel.c:640:
+^Ireturn max;$

ERROR: code indent should never use tabs
#665: FILE: tools/virtiofsd/fuse_lowlevel.c:644:
+^I^I^I       struct iovec *iov, int iov_count,$

ERROR: code indent should never use tabs
#666: FILE: tools/virtiofsd/fuse_lowlevel.c:645:
+^I^I^I       struct fuse_bufvec *buf, unsigned int flags)$

ERROR: code indent should never use tabs
#668: FILE: tools/virtiofsd/fuse_lowlevel.c:647:
+^Iint res;$

ERROR: code indent should never use tabs
#669: FILE: tools/virtiofsd/fuse_lowlevel.c:648:
+^Isize_t len = fuse_buf_size(buf);$

ERROR: code indent should never use tabs
#670: FILE: tools/virtiofsd/fuse_lowlevel.c:649:
+^Istruct fuse_out_header *out = iov[0].iov_base;$

ERROR: code indent should never use tabs
#671: FILE: tools/virtiofsd/fuse_lowlevel.c:650:
+^Istruct fuse_ll_pipe *llp;$

ERROR: code indent should never use tabs
#672: FILE: tools/virtiofsd/fuse_lowlevel.c:651:
+^Iint splice_flags;$

ERROR: code indent should never use tabs
#673: FILE: tools/virtiofsd/fuse_lowlevel.c:652:
+^Isize_t pipesize;$

ERROR: code indent should never use tabs
#674: FILE: tools/virtiofsd/fuse_lowlevel.c:653:
+^Isize_t total_fd_size;$

ERROR: code indent should never use tabs
#675: FILE: tools/virtiofsd/fuse_lowlevel.c:654:
+^Isize_t idx;$

ERROR: code indent should never use tabs
#676: FILE: tools/virtiofsd/fuse_lowlevel.c:655:
+^Isize_t headerlen;$

ERROR: code indent should never use tabs
#677: FILE: tools/virtiofsd/fuse_lowlevel.c:656:
+^Istruct fuse_bufvec pipe_buf = FUSE_BUFVEC_INIT(len);$

ERROR: code indent should never use tabs
#679: FILE: tools/virtiofsd/fuse_lowlevel.c:658:
+^Iif (se->broken_splice_nonblock)$

ERROR: braces {} are necessary for all arms of this statement
#679: FILE: tools/virtiofsd/fuse_lowlevel.c:658:
+       if (se->broken_splice_nonblock)
[...]

ERROR: code indent should never use tabs
#680: FILE: tools/virtiofsd/fuse_lowlevel.c:659:
+^I^Igoto fallback;$

ERROR: code indent should never use tabs
#682: FILE: tools/virtiofsd/fuse_lowlevel.c:661:
+^Iif (flags & FUSE_BUF_NO_SPLICE)$

ERROR: braces {} are necessary for all arms of this statement
#682: FILE: tools/virtiofsd/fuse_lowlevel.c:661:
+       if (flags & FUSE_BUF_NO_SPLICE)
[...]

ERROR: code indent should never use tabs
#683: FILE: tools/virtiofsd/fuse_lowlevel.c:662:
+^I^Igoto fallback;$

ERROR: code indent should never use tabs
#685: FILE: tools/virtiofsd/fuse_lowlevel.c:664:
+^Itotal_fd_size = 0;$

ERROR: code indent should never use tabs
#686: FILE: tools/virtiofsd/fuse_lowlevel.c:665:
+^Ifor (idx = buf->idx; idx < buf->count; idx++) {$

ERROR: code indent should never use tabs
#687: FILE: tools/virtiofsd/fuse_lowlevel.c:666:
+^I^Iif (buf->buf[idx].flags & FUSE_BUF_IS_FD) {$

ERROR: code indent should never use tabs
#688: FILE: tools/virtiofsd/fuse_lowlevel.c:667:
+^I^I^Itotal_fd_size = buf->buf[idx].size;$

ERROR: code indent should never use tabs
#689: FILE: tools/virtiofsd/fuse_lowlevel.c:668:
+^I^I^Iif (idx == buf->idx)$

ERROR: braces {} are necessary for all arms of this statement
#689: FILE: tools/virtiofsd/fuse_lowlevel.c:668:
+                       if (idx == buf->idx)
[...]

ERROR: code indent should never use tabs
#690: FILE: tools/virtiofsd/fuse_lowlevel.c:669:
+^I^I^I^Itotal_fd_size -= buf->off;$

ERROR: code indent should never use tabs
#691: FILE: tools/virtiofsd/fuse_lowlevel.c:670:
+^I^I}$

ERROR: code indent should never use tabs
#692: FILE: tools/virtiofsd/fuse_lowlevel.c:671:
+^I}$

ERROR: code indent should never use tabs
#693: FILE: tools/virtiofsd/fuse_lowlevel.c:672:
+^Iif (total_fd_size < 2 * pagesize)$

ERROR: braces {} are necessary for all arms of this statement
#693: FILE: tools/virtiofsd/fuse_lowlevel.c:672:
+       if (total_fd_size < 2 * pagesize)
[...]

ERROR: code indent should never use tabs
#694: FILE: tools/virtiofsd/fuse_lowlevel.c:673:
+^I^Igoto fallback;$

ERROR: code indent should never use tabs
#696: FILE: tools/virtiofsd/fuse_lowlevel.c:675:
+^Iif (se->conn.proto_minor < 14 ||$

ERROR: code indent should never use tabs
#697: FILE: tools/virtiofsd/fuse_lowlevel.c:676:
+^I    !(se->conn.want & FUSE_CAP_SPLICE_WRITE))$

ERROR: code indent should never use tabs
#698: FILE: tools/virtiofsd/fuse_lowlevel.c:677:
+^I^Igoto fallback;$

ERROR: code indent should never use tabs
#700: FILE: tools/virtiofsd/fuse_lowlevel.c:679:
+^Illp = fuse_ll_get_pipe(se);$

ERROR: code indent should never use tabs
#701: FILE: tools/virtiofsd/fuse_lowlevel.c:680:
+^Iif (llp == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#701: FILE: tools/virtiofsd/fuse_lowlevel.c:680:
+       if (llp == NULL)
[...]

ERROR: code indent should never use tabs
#702: FILE: tools/virtiofsd/fuse_lowlevel.c:681:
+^I^Igoto fallback;$

ERROR: code indent should never use tabs
#705: FILE: tools/virtiofsd/fuse_lowlevel.c:684:
+^Iheaderlen = iov_length(iov, iov_count);$

ERROR: code indent should never use tabs
#707: FILE: tools/virtiofsd/fuse_lowlevel.c:686:
+^Iout->len = headerlen + len;$

ERROR: code indent should never use tabs
#709: FILE: tools/virtiofsd/fuse_lowlevel.c:688:
+^I/*$

ERROR: code indent should never use tabs
#710: FILE: tools/virtiofsd/fuse_lowlevel.c:689:
+^I * Heuristic for the required pipe size, does not work if the$

ERROR: code indent should never use tabs
#711: FILE: tools/virtiofsd/fuse_lowlevel.c:690:
+^I * source contains less than page size fragments$

ERROR: code indent should never use tabs
#712: FILE: tools/virtiofsd/fuse_lowlevel.c:691:
+^I */$

ERROR: code indent should never use tabs
#713: FILE: tools/virtiofsd/fuse_lowlevel.c:692:
+^Ipipesize = pagesize * (iov_count + buf->count + 1) + out->len;$

ERROR: code indent should never use tabs
#715: FILE: tools/virtiofsd/fuse_lowlevel.c:694:
+^Iif (llp->size < pipesize) {$

ERROR: code indent should never use tabs
#716: FILE: tools/virtiofsd/fuse_lowlevel.c:695:
+^I^Iif (llp->can_grow) {$

ERROR: code indent should never use tabs
#717: FILE: tools/virtiofsd/fuse_lowlevel.c:696:
+^I^I^Ires = fcntl(llp->pipe[0], F_SETPIPE_SZ, pipesize);$

ERROR: code indent should never use tabs
#718: FILE: tools/virtiofsd/fuse_lowlevel.c:697:
+^I^I^Iif (res == -1) {$

ERROR: code indent should never use tabs
#719: FILE: tools/virtiofsd/fuse_lowlevel.c:698:
+^I^I^I^Ires = grow_pipe_to_max(llp->pipe[0]);$

ERROR: code indent should never use tabs
#720: FILE: tools/virtiofsd/fuse_lowlevel.c:699:
+^I^I^I^Iif (res > 0)$

ERROR: braces {} are necessary for all arms of this statement
#720: FILE: tools/virtiofsd/fuse_lowlevel.c:699:
+                               if (res > 0)
[...]

ERROR: code indent should never use tabs
#721: FILE: tools/virtiofsd/fuse_lowlevel.c:700:
+^I^I^I^I^Illp->size = res;$

ERROR: code indent should never use tabs
#722: FILE: tools/virtiofsd/fuse_lowlevel.c:701:
+^I^I^I^Illp->can_grow = 0;$

ERROR: code indent should never use tabs
#723: FILE: tools/virtiofsd/fuse_lowlevel.c:702:
+^I^I^I^Igoto fallback;$

ERROR: code indent should never use tabs
#724: FILE: tools/virtiofsd/fuse_lowlevel.c:703:
+^I^I^I}$

ERROR: code indent should never use tabs
#725: FILE: tools/virtiofsd/fuse_lowlevel.c:704:
+^I^I^Illp->size = res;$

ERROR: code indent should never use tabs
#726: FILE: tools/virtiofsd/fuse_lowlevel.c:705:
+^I^I}$

ERROR: code indent should never use tabs
#727: FILE: tools/virtiofsd/fuse_lowlevel.c:706:
+^I^Iif (llp->size < pipesize)$

ERROR: braces {} are necessary for all arms of this statement
#727: FILE: tools/virtiofsd/fuse_lowlevel.c:706:
+               if (llp->size < pipesize)
[...]

ERROR: code indent should never use tabs
#728: FILE: tools/virtiofsd/fuse_lowlevel.c:707:
+^I^I^Igoto fallback;$

ERROR: code indent should never use tabs
#729: FILE: tools/virtiofsd/fuse_lowlevel.c:708:
+^I}$

ERROR: code indent should never use tabs
#732: FILE: tools/virtiofsd/fuse_lowlevel.c:711:
+^Ires = vmsplice(llp->pipe[1], iov, iov_count, SPLICE_F_NONBLOCK);$

ERROR: code indent should never use tabs
#733: FILE: tools/virtiofsd/fuse_lowlevel.c:712:
+^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#733: FILE: tools/virtiofsd/fuse_lowlevel.c:712:
+       if (res == -1)
[...]

ERROR: code indent should never use tabs
#734: FILE: tools/virtiofsd/fuse_lowlevel.c:713:
+^I^Igoto fallback;$

ERROR: code indent should never use tabs
#736: FILE: tools/virtiofsd/fuse_lowlevel.c:715:
+^Iif (res != headerlen) {$

ERROR: code indent should never use tabs
#737: FILE: tools/virtiofsd/fuse_lowlevel.c:716:
+^I^Ires = -EIO;$

WARNING: line over 80 characters
#738: FILE: tools/virtiofsd/fuse_lowlevel.c:717:
+               fuse_log(FUSE_LOG_ERR, "fuse: short vmsplice to pipe: %u/%zu\n", res,

ERROR: code indent should never use tabs
#738: FILE: tools/virtiofsd/fuse_lowlevel.c:717:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: short vmsplice to pipe: %u/%zu\n", res,$

ERROR: code indent should never use tabs
#739: FILE: tools/virtiofsd/fuse_lowlevel.c:718:
+^I^I^Iheaderlen);$

ERROR: code indent should never use tabs
#740: FILE: tools/virtiofsd/fuse_lowlevel.c:719:
+^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#741: FILE: tools/virtiofsd/fuse_lowlevel.c:720:
+^I}$

ERROR: code indent should never use tabs
#743: FILE: tools/virtiofsd/fuse_lowlevel.c:722:
+^Ipipe_buf.buf[0].flags = FUSE_BUF_IS_FD;$

ERROR: code indent should never use tabs
#744: FILE: tools/virtiofsd/fuse_lowlevel.c:723:
+^Ipipe_buf.buf[0].fd = llp->pipe[1];$

ERROR: code indent should never use tabs
#746: FILE: tools/virtiofsd/fuse_lowlevel.c:725:
+^Ires = fuse_buf_copy(&pipe_buf, buf,$

ERROR: code indent should never use tabs
#747: FILE: tools/virtiofsd/fuse_lowlevel.c:726:
+^I^I^I    FUSE_BUF_FORCE_SPLICE | FUSE_BUF_SPLICE_NONBLOCK);$

ERROR: code indent should never use tabs
#748: FILE: tools/virtiofsd/fuse_lowlevel.c:727:
+^Iif (res < 0) {$

ERROR: code indent should never use tabs
#749: FILE: tools/virtiofsd/fuse_lowlevel.c:728:
+^I^Iif (res == -EAGAIN || res == -EINVAL) {$

ERROR: code indent should never use tabs
#750: FILE: tools/virtiofsd/fuse_lowlevel.c:729:
+^I^I^I/*$

ERROR: code indent should never use tabs
#751: FILE: tools/virtiofsd/fuse_lowlevel.c:730:
+^I^I^I * Should only get EAGAIN on kernels with$

ERROR: code indent should never use tabs
#752: FILE: tools/virtiofsd/fuse_lowlevel.c:731:
+^I^I^I * broken SPLICE_F_NONBLOCK support (<=$

ERROR: code indent should never use tabs
#753: FILE: tools/virtiofsd/fuse_lowlevel.c:732:
+^I^I^I * 2.6.35) where this error or a short read is$

ERROR: code indent should never use tabs
#754: FILE: tools/virtiofsd/fuse_lowlevel.c:733:
+^I^I^I * returned even if the pipe itself is not$

ERROR: code indent should never use tabs
#755: FILE: tools/virtiofsd/fuse_lowlevel.c:734:
+^I^I^I * full$

ERROR: code indent should never use tabs
#756: FILE: tools/virtiofsd/fuse_lowlevel.c:735:
+^I^I^I *$

ERROR: code indent should never use tabs
#757: FILE: tools/virtiofsd/fuse_lowlevel.c:736:
+^I^I^I * EINVAL might mean that splice can't handle$

ERROR: code indent should never use tabs
#758: FILE: tools/virtiofsd/fuse_lowlevel.c:737:
+^I^I^I * this combination of input and output.$

ERROR: code indent should never use tabs
#759: FILE: tools/virtiofsd/fuse_lowlevel.c:738:
+^I^I^I */$

ERROR: code indent should never use tabs
#760: FILE: tools/virtiofsd/fuse_lowlevel.c:739:
+^I^I^Iif (res == -EAGAIN)$

ERROR: braces {} are necessary for all arms of this statement
#760: FILE: tools/virtiofsd/fuse_lowlevel.c:739:
+                       if (res == -EAGAIN)
[...]

ERROR: code indent should never use tabs
#761: FILE: tools/virtiofsd/fuse_lowlevel.c:740:
+^I^I^I^Ise->broken_splice_nonblock = 1;$

ERROR: code indent should never use tabs
#763: FILE: tools/virtiofsd/fuse_lowlevel.c:742:
+^I^I^Ipthread_setspecific(se->pipe_key, NULL);$

ERROR: code indent should never use tabs
#764: FILE: tools/virtiofsd/fuse_lowlevel.c:743:
+^I^I^Ifuse_ll_pipe_free(llp);$

ERROR: code indent should never use tabs
#765: FILE: tools/virtiofsd/fuse_lowlevel.c:744:
+^I^I^Igoto fallback;$

ERROR: code indent should never use tabs
#766: FILE: tools/virtiofsd/fuse_lowlevel.c:745:
+^I^I}$

ERROR: code indent should never use tabs
#767: FILE: tools/virtiofsd/fuse_lowlevel.c:746:
+^I^Ires = -res;$

ERROR: code indent should never use tabs
#768: FILE: tools/virtiofsd/fuse_lowlevel.c:747:
+^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#769: FILE: tools/virtiofsd/fuse_lowlevel.c:748:
+^I}$

ERROR: code indent should never use tabs
#771: FILE: tools/virtiofsd/fuse_lowlevel.c:750:
+^Iif (res != 0 && res < len) {$

ERROR: code indent should never use tabs
#772: FILE: tools/virtiofsd/fuse_lowlevel.c:751:
+^I^Istruct fuse_bufvec mem_buf = FUSE_BUFVEC_INIT(len);$

ERROR: code indent should never use tabs
#773: FILE: tools/virtiofsd/fuse_lowlevel.c:752:
+^I^Ivoid *mbuf;$

ERROR: code indent should never use tabs
#774: FILE: tools/virtiofsd/fuse_lowlevel.c:753:
+^I^Isize_t now_len = res;$

ERROR: code indent should never use tabs
#775: FILE: tools/virtiofsd/fuse_lowlevel.c:754:
+^I^I/*$

ERROR: code indent should never use tabs
#776: FILE: tools/virtiofsd/fuse_lowlevel.c:755:
+^I^I * For regular files a short count is either$

ERROR: code indent should never use tabs
#777: FILE: tools/virtiofsd/fuse_lowlevel.c:756:
+^I^I *  1) due to EOF, or$

ERROR: code indent should never use tabs
#778: FILE: tools/virtiofsd/fuse_lowlevel.c:757:
+^I^I *  2) because of broken SPLICE_F_NONBLOCK (see above)$

ERROR: code indent should never use tabs
#779: FILE: tools/virtiofsd/fuse_lowlevel.c:758:
+^I^I *$

ERROR: code indent should never use tabs
#780: FILE: tools/virtiofsd/fuse_lowlevel.c:759:
+^I^I * For other inputs it's possible that we overflowed$

ERROR: code indent should never use tabs
#781: FILE: tools/virtiofsd/fuse_lowlevel.c:760:
+^I^I * the pipe because of small buffer fragments.$

ERROR: code indent should never use tabs
#782: FILE: tools/virtiofsd/fuse_lowlevel.c:761:
+^I^I */$

ERROR: code indent should never use tabs
#784: FILE: tools/virtiofsd/fuse_lowlevel.c:763:
+^I^Ires = posix_memalign(&mbuf, pagesize, len);$

ERROR: code indent should never use tabs
#785: FILE: tools/virtiofsd/fuse_lowlevel.c:764:
+^I^Iif (res != 0)$

ERROR: braces {} are necessary for all arms of this statement
#785: FILE: tools/virtiofsd/fuse_lowlevel.c:764:
+               if (res != 0)
[...]

ERROR: code indent should never use tabs
#786: FILE: tools/virtiofsd/fuse_lowlevel.c:765:
+^I^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#788: FILE: tools/virtiofsd/fuse_lowlevel.c:767:
+^I^Imem_buf.buf[0].mem = mbuf;$

ERROR: code indent should never use tabs
#789: FILE: tools/virtiofsd/fuse_lowlevel.c:768:
+^I^Imem_buf.off = now_len;$

ERROR: code indent should never use tabs
#790: FILE: tools/virtiofsd/fuse_lowlevel.c:769:
+^I^Ires = fuse_buf_copy(&mem_buf, buf, 0);$

ERROR: code indent should never use tabs
#791: FILE: tools/virtiofsd/fuse_lowlevel.c:770:
+^I^Iif (res > 0) {$

ERROR: code indent should never use tabs
#792: FILE: tools/virtiofsd/fuse_lowlevel.c:771:
+^I^I^Ichar *tmpbuf;$

ERROR: code indent should never use tabs
#793: FILE: tools/virtiofsd/fuse_lowlevel.c:772:
+^I^I^Isize_t extra_len = res;$

ERROR: code indent should never use tabs
#794: FILE: tools/virtiofsd/fuse_lowlevel.c:773:
+^I^I^I/*$

ERROR: code indent should never use tabs
#795: FILE: tools/virtiofsd/fuse_lowlevel.c:774:
+^I^I^I * Trickiest case: got more data.  Need to get$

ERROR: code indent should never use tabs
#796: FILE: tools/virtiofsd/fuse_lowlevel.c:775:
+^I^I^I * back the data from the pipe and then fall$

ERROR: code indent should never use tabs
#797: FILE: tools/virtiofsd/fuse_lowlevel.c:776:
+^I^I^I * back to regular write.$

ERROR: code indent should never use tabs
#798: FILE: tools/virtiofsd/fuse_lowlevel.c:777:
+^I^I^I */$

ERROR: code indent should never use tabs
#799: FILE: tools/virtiofsd/fuse_lowlevel.c:778:
+^I^I^Itmpbuf = malloc(headerlen);$

ERROR: code indent should never use tabs
#800: FILE: tools/virtiofsd/fuse_lowlevel.c:779:
+^I^I^Iif (tmpbuf == NULL) {$

ERROR: code indent should never use tabs
#801: FILE: tools/virtiofsd/fuse_lowlevel.c:780:
+^I^I^I^Ifree(mbuf);$

ERROR: code indent should never use tabs
#802: FILE: tools/virtiofsd/fuse_lowlevel.c:781:
+^I^I^I^Ires = ENOMEM;$

ERROR: code indent should never use tabs
#803: FILE: tools/virtiofsd/fuse_lowlevel.c:782:
+^I^I^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#804: FILE: tools/virtiofsd/fuse_lowlevel.c:783:
+^I^I^I}$

ERROR: code indent should never use tabs
#805: FILE: tools/virtiofsd/fuse_lowlevel.c:784:
+^I^I^Ires = read_back(llp->pipe[0], tmpbuf, headerlen);$

ERROR: code indent should never use tabs
#806: FILE: tools/virtiofsd/fuse_lowlevel.c:785:
+^I^I^Ifree(tmpbuf);$

ERROR: code indent should never use tabs
#807: FILE: tools/virtiofsd/fuse_lowlevel.c:786:
+^I^I^Iif (res != 0) {$

ERROR: code indent should never use tabs
#808: FILE: tools/virtiofsd/fuse_lowlevel.c:787:
+^I^I^I^Ifree(mbuf);$

ERROR: code indent should never use tabs
#809: FILE: tools/virtiofsd/fuse_lowlevel.c:788:
+^I^I^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#810: FILE: tools/virtiofsd/fuse_lowlevel.c:789:
+^I^I^I}$

ERROR: code indent should never use tabs
#811: FILE: tools/virtiofsd/fuse_lowlevel.c:790:
+^I^I^Ires = read_back(llp->pipe[0], mbuf, now_len);$

ERROR: code indent should never use tabs
#812: FILE: tools/virtiofsd/fuse_lowlevel.c:791:
+^I^I^Iif (res != 0) {$

ERROR: code indent should never use tabs
#813: FILE: tools/virtiofsd/fuse_lowlevel.c:792:
+^I^I^I^Ifree(mbuf);$

ERROR: code indent should never use tabs
#814: FILE: tools/virtiofsd/fuse_lowlevel.c:793:
+^I^I^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#815: FILE: tools/virtiofsd/fuse_lowlevel.c:794:
+^I^I^I}$

ERROR: code indent should never use tabs
#816: FILE: tools/virtiofsd/fuse_lowlevel.c:795:
+^I^I^Ilen = now_len + extra_len;$

ERROR: code indent should never use tabs
#817: FILE: tools/virtiofsd/fuse_lowlevel.c:796:
+^I^I^Iiov[iov_count].iov_base = mbuf;$

ERROR: code indent should never use tabs
#818: FILE: tools/virtiofsd/fuse_lowlevel.c:797:
+^I^I^Iiov[iov_count].iov_len = len;$

ERROR: code indent should never use tabs
#819: FILE: tools/virtiofsd/fuse_lowlevel.c:798:
+^I^I^Iiov_count++;$

ERROR: code indent should never use tabs
#820: FILE: tools/virtiofsd/fuse_lowlevel.c:799:
+^I^I^Ires = fuse_send_msg(se, ch, iov, iov_count);$

ERROR: code indent should never use tabs
#821: FILE: tools/virtiofsd/fuse_lowlevel.c:800:
+^I^I^Ifree(mbuf);$

ERROR: code indent should never use tabs
#822: FILE: tools/virtiofsd/fuse_lowlevel.c:801:
+^I^I^Ireturn res;$

ERROR: code indent should never use tabs
#823: FILE: tools/virtiofsd/fuse_lowlevel.c:802:
+^I^I}$

ERROR: code indent should never use tabs
#824: FILE: tools/virtiofsd/fuse_lowlevel.c:803:
+^I^Ifree(mbuf);$

ERROR: code indent should never use tabs
#825: FILE: tools/virtiofsd/fuse_lowlevel.c:804:
+^I^Ires = now_len;$

ERROR: code indent should never use tabs
#826: FILE: tools/virtiofsd/fuse_lowlevel.c:805:
+^I}$

ERROR: code indent should never use tabs
#827: FILE: tools/virtiofsd/fuse_lowlevel.c:806:
+^Ilen = res;$

ERROR: code indent should never use tabs
#828: FILE: tools/virtiofsd/fuse_lowlevel.c:807:
+^Iout->len = headerlen + len;$

ERROR: code indent should never use tabs
#830: FILE: tools/virtiofsd/fuse_lowlevel.c:809:
+^Iif (se->debug) {$

ERROR: code indent should never use tabs
#831: FILE: tools/virtiofsd/fuse_lowlevel.c:810:
+^I^Ifuse_log(FUSE_LOG_DEBUG,$

ERROR: code indent should never use tabs
#832: FILE: tools/virtiofsd/fuse_lowlevel.c:811:
+^I^I^I"   unique: %llu, success, outsize: %i (splice)\n",$

ERROR: code indent should never use tabs
#833: FILE: tools/virtiofsd/fuse_lowlevel.c:812:
+^I^I^I(unsigned long long) out->unique, out->len);$

ERROR: code indent should never use tabs
#834: FILE: tools/virtiofsd/fuse_lowlevel.c:813:
+^I}$

ERROR: code indent should never use tabs
#836: FILE: tools/virtiofsd/fuse_lowlevel.c:815:
+^Isplice_flags = 0;$

ERROR: code indent should never use tabs
#837: FILE: tools/virtiofsd/fuse_lowlevel.c:816:
+^Iif ((flags & FUSE_BUF_SPLICE_MOVE) &&$

ERROR: code indent should never use tabs
#838: FILE: tools/virtiofsd/fuse_lowlevel.c:817:
+^I    (se->conn.want & FUSE_CAP_SPLICE_MOVE))$

ERROR: code indent should never use tabs
#839: FILE: tools/virtiofsd/fuse_lowlevel.c:818:
+^I^Isplice_flags |= SPLICE_F_MOVE;$

ERROR: code indent should never use tabs
#841: FILE: tools/virtiofsd/fuse_lowlevel.c:820:
+^Ires = splice(llp->pipe[0], NULL, ch ? ch->fd : se->fd,$

ERROR: code indent should never use tabs
#842: FILE: tools/virtiofsd/fuse_lowlevel.c:821:
+^I^I     NULL, out->len, splice_flags);$

ERROR: code indent should never use tabs
#843: FILE: tools/virtiofsd/fuse_lowlevel.c:822:
+^Iif (res == -1) {$

ERROR: code indent should never use tabs
#844: FILE: tools/virtiofsd/fuse_lowlevel.c:823:
+^I^Ires = -errno;$

ERROR: code indent should never use tabs
#845: FILE: tools/virtiofsd/fuse_lowlevel.c:824:
+^I^Iperror("fuse: splice from pipe");$

ERROR: code indent should never use tabs
#846: FILE: tools/virtiofsd/fuse_lowlevel.c:825:
+^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#847: FILE: tools/virtiofsd/fuse_lowlevel.c:826:
+^I}$

ERROR: code indent should never use tabs
#848: FILE: tools/virtiofsd/fuse_lowlevel.c:827:
+^Iif (res != out->len) {$

ERROR: code indent should never use tabs
#849: FILE: tools/virtiofsd/fuse_lowlevel.c:828:
+^I^Ires = -EIO;$

ERROR: code indent should never use tabs
#850: FILE: tools/virtiofsd/fuse_lowlevel.c:829:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: short splice from pipe: %u/%u\n",$

ERROR: code indent should never use tabs
#851: FILE: tools/virtiofsd/fuse_lowlevel.c:830:
+^I^I^Ires, out->len);$

ERROR: code indent should never use tabs
#852: FILE: tools/virtiofsd/fuse_lowlevel.c:831:
+^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#853: FILE: tools/virtiofsd/fuse_lowlevel.c:832:
+^I}$

ERROR: code indent should never use tabs
#854: FILE: tools/virtiofsd/fuse_lowlevel.c:833:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#857: FILE: tools/virtiofsd/fuse_lowlevel.c:836:
+^Ifuse_ll_clear_pipe(se);$

ERROR: code indent should never use tabs
#858: FILE: tools/virtiofsd/fuse_lowlevel.c:837:
+^Ireturn res;$

ERROR: code indent should never use tabs
#861: FILE: tools/virtiofsd/fuse_lowlevel.c:840:
+^Ireturn fuse_send_data_iov_fallback(se, ch, iov, iov_count, buf, len);$

ERROR: code indent should never use tabs
#865: FILE: tools/virtiofsd/fuse_lowlevel.c:844:
+^I^I^I       struct iovec *iov, int iov_count,$

ERROR: code indent should never use tabs
#866: FILE: tools/virtiofsd/fuse_lowlevel.c:845:
+^I^I^I       struct fuse_bufvec *buf, unsigned int flags)$

ERROR: code indent should never use tabs
#868: FILE: tools/virtiofsd/fuse_lowlevel.c:847:
+^Isize_t len = fuse_buf_size(buf);$

ERROR: code indent should never use tabs
#869: FILE: tools/virtiofsd/fuse_lowlevel.c:848:
+^I(void) flags;$

ERROR: code indent should never use tabs
#871: FILE: tools/virtiofsd/fuse_lowlevel.c:850:
+^Ireturn fuse_send_data_iov_fallback(se, ch, iov, iov_count, buf, len);$

ERROR: code indent should never use tabs
#876: FILE: tools/virtiofsd/fuse_lowlevel.c:855:
+^I^I    enum fuse_buf_copy_flags flags)$

ERROR: code indent should never use tabs
#878: FILE: tools/virtiofsd/fuse_lowlevel.c:857:
+^Istruct iovec iov[2];$

ERROR: code indent should never use tabs
#879: FILE: tools/virtiofsd/fuse_lowlevel.c:858:
+^Istruct fuse_out_header out;$

ERROR: code indent should never use tabs
#880: FILE: tools/virtiofsd/fuse_lowlevel.c:859:
+^Iint res;$

ERROR: code indent should never use tabs
#882: FILE: tools/virtiofsd/fuse_lowlevel.c:861:
+^Iiov[0].iov_base = &out;$

ERROR: code indent should never use tabs
#883: FILE: tools/virtiofsd/fuse_lowlevel.c:862:
+^Iiov[0].iov_len = sizeof(struct fuse_out_header);$

ERROR: code indent should never use tabs
#885: FILE: tools/virtiofsd/fuse_lowlevel.c:864:
+^Iout.unique = req->unique;$

ERROR: code indent should never use tabs
#886: FILE: tools/virtiofsd/fuse_lowlevel.c:865:
+^Iout.error = 0;$

ERROR: code indent should never use tabs
#888: FILE: tools/virtiofsd/fuse_lowlevel.c:867:
+^Ires = fuse_send_data_iov(req->se, req->ch, iov, 1, bufv, flags);$

ERROR: code indent should never use tabs
#889: FILE: tools/virtiofsd/fuse_lowlevel.c:868:
+^Iif (res <= 0) {$

ERROR: code indent should never use tabs
#890: FILE: tools/virtiofsd/fuse_lowlevel.c:869:
+^I^Ifuse_free_req(req);$

ERROR: code indent should never use tabs
#891: FILE: tools/virtiofsd/fuse_lowlevel.c:870:
+^I^Ireturn res;$

ERROR: code indent should never use tabs
#892: FILE: tools/virtiofsd/fuse_lowlevel.c:871:
+^I} else {$

ERROR: code indent should never use tabs
#893: FILE: tools/virtiofsd/fuse_lowlevel.c:872:
+^I^Ireturn fuse_reply_err(req, res);$

ERROR: code indent should never use tabs
#894: FILE: tools/virtiofsd/fuse_lowlevel.c:873:
+^I}$

ERROR: code indent should never use tabs
#899: FILE: tools/virtiofsd/fuse_lowlevel.c:878:
+^Istruct fuse_statfs_out arg;$

ERROR: code indent should never use tabs
#900: FILE: tools/virtiofsd/fuse_lowlevel.c:879:
+^Isize_t size = req->se->conn.proto_minor < 4 ?$

ERROR: code indent should never use tabs
#901: FILE: tools/virtiofsd/fuse_lowlevel.c:880:
+^I^IFUSE_COMPAT_STATFS_SIZE : sizeof(arg);$

ERROR: code indent should never use tabs
#903: FILE: tools/virtiofsd/fuse_lowlevel.c:882:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#904: FILE: tools/virtiofsd/fuse_lowlevel.c:883:
+^Iconvert_statfs(stbuf, &arg.st);$

ERROR: code indent should never use tabs
#906: FILE: tools/virtiofsd/fuse_lowlevel.c:885:
+^Ireturn send_reply_ok(req, &arg, size);$

ERROR: code indent should never use tabs
#911: FILE: tools/virtiofsd/fuse_lowlevel.c:890:
+^Istruct fuse_getxattr_out arg;$

ERROR: code indent should never use tabs
#913: FILE: tools/virtiofsd/fuse_lowlevel.c:892:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#914: FILE: tools/virtiofsd/fuse_lowlevel.c:893:
+^Iarg.size = count;$

ERROR: code indent should never use tabs
#916: FILE: tools/virtiofsd/fuse_lowlevel.c:895:
+^Ireturn send_reply_ok(req, &arg, sizeof(arg));$

ERROR: code indent should never use tabs
#921: FILE: tools/virtiofsd/fuse_lowlevel.c:900:
+^Istruct fuse_lk_out arg;$

ERROR: code indent should never use tabs
#923: FILE: tools/virtiofsd/fuse_lowlevel.c:902:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#924: FILE: tools/virtiofsd/fuse_lowlevel.c:903:
+^Iarg.lk.type = lock->l_type;$

ERROR: code indent should never use tabs
#925: FILE: tools/virtiofsd/fuse_lowlevel.c:904:
+^Iif (lock->l_type != F_UNLCK) {$

ERROR: code indent should never use tabs
#926: FILE: tools/virtiofsd/fuse_lowlevel.c:905:
+^I^Iarg.lk.start = lock->l_start;$

ERROR: code indent should never use tabs
#927: FILE: tools/virtiofsd/fuse_lowlevel.c:906:
+^I^Iif (lock->l_len == 0)$

ERROR: braces {} are necessary for all arms of this statement
#927: FILE: tools/virtiofsd/fuse_lowlevel.c:906:
+               if (lock->l_len == 0)
[...]
+               else
[...]

ERROR: code indent should never use tabs
#928: FILE: tools/virtiofsd/fuse_lowlevel.c:907:
+^I^I^Iarg.lk.end = OFFSET_MAX;$

ERROR: code indent should never use tabs
#929: FILE: tools/virtiofsd/fuse_lowlevel.c:908:
+^I^Ielse$

ERROR: code indent should never use tabs
#930: FILE: tools/virtiofsd/fuse_lowlevel.c:909:
+^I^I^Iarg.lk.end = lock->l_start + lock->l_len - 1;$

ERROR: code indent should never use tabs
#931: FILE: tools/virtiofsd/fuse_lowlevel.c:910:
+^I}$

ERROR: code indent should never use tabs
#932: FILE: tools/virtiofsd/fuse_lowlevel.c:911:
+^Iarg.lk.pid = lock->l_pid;$

ERROR: code indent should never use tabs
#933: FILE: tools/virtiofsd/fuse_lowlevel.c:912:
+^Ireturn send_reply_ok(req, &arg, sizeof(arg));$

ERROR: code indent should never use tabs
#938: FILE: tools/virtiofsd/fuse_lowlevel.c:917:
+^Istruct fuse_bmap_out arg;$

ERROR: code indent should never use tabs
#940: FILE: tools/virtiofsd/fuse_lowlevel.c:919:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#941: FILE: tools/virtiofsd/fuse_lowlevel.c:920:
+^Iarg.block = idx;$

ERROR: code indent should never use tabs
#943: FILE: tools/virtiofsd/fuse_lowlevel.c:922:
+^Ireturn send_reply_ok(req, &arg, sizeof(arg));$

ERROR: code indent should never use tabs
#947: FILE: tools/virtiofsd/fuse_lowlevel.c:926:
+^I^I^I^I^I^I      size_t count)$

ERROR: code indent should never use tabs
#949: FILE: tools/virtiofsd/fuse_lowlevel.c:928:
+^Istruct fuse_ioctl_iovec *fiov;$

ERROR: code indent should never use tabs
#950: FILE: tools/virtiofsd/fuse_lowlevel.c:929:
+^Isize_t i;$

ERROR: code indent should never use tabs
#952: FILE: tools/virtiofsd/fuse_lowlevel.c:931:
+^Ifiov = malloc(sizeof(fiov[0]) * count);$

ERROR: code indent should never use tabs
#953: FILE: tools/virtiofsd/fuse_lowlevel.c:932:
+^Iif (!fiov)$

ERROR: braces {} are necessary for all arms of this statement
#953: FILE: tools/virtiofsd/fuse_lowlevel.c:932:
+       if (!fiov)
[...]

ERROR: code indent should never use tabs
#954: FILE: tools/virtiofsd/fuse_lowlevel.c:933:
+^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#956: FILE: tools/virtiofsd/fuse_lowlevel.c:935:
+^Ifor (i = 0; i < count; i++) {$

ERROR: code indent should never use tabs
#957: FILE: tools/virtiofsd/fuse_lowlevel.c:936:
+^I^Ifiov[i].base = (uintptr_t) iov[i].iov_base;$

ERROR: code indent should never use tabs
#958: FILE: tools/virtiofsd/fuse_lowlevel.c:937:
+^I^Ifiov[i].len = iov[i].iov_len;$

ERROR: code indent should never use tabs
#959: FILE: tools/virtiofsd/fuse_lowlevel.c:938:
+^I}$

ERROR: code indent should never use tabs
#961: FILE: tools/virtiofsd/fuse_lowlevel.c:940:
+^Ireturn fiov;$

ERROR: code indent should never use tabs
#965: FILE: tools/virtiofsd/fuse_lowlevel.c:944:
+^I^I^I   const struct iovec *in_iov, size_t in_count,$

ERROR: code indent should never use tabs
#966: FILE: tools/virtiofsd/fuse_lowlevel.c:945:
+^I^I^I   const struct iovec *out_iov, size_t out_count)$

ERROR: code indent should never use tabs
#968: FILE: tools/virtiofsd/fuse_lowlevel.c:947:
+^Istruct fuse_ioctl_out arg;$

ERROR: code indent should never use tabs
#969: FILE: tools/virtiofsd/fuse_lowlevel.c:948:
+^Istruct fuse_ioctl_iovec *in_fiov = NULL;$

ERROR: code indent should never use tabs
#970: FILE: tools/virtiofsd/fuse_lowlevel.c:949:
+^Istruct fuse_ioctl_iovec *out_fiov = NULL;$

ERROR: code indent should never use tabs
#971: FILE: tools/virtiofsd/fuse_lowlevel.c:950:
+^Istruct iovec iov[4];$

ERROR: code indent should never use tabs
#972: FILE: tools/virtiofsd/fuse_lowlevel.c:951:
+^Isize_t count = 1;$

ERROR: code indent should never use tabs
#973: FILE: tools/virtiofsd/fuse_lowlevel.c:952:
+^Iint res;$

ERROR: code indent should never use tabs
#975: FILE: tools/virtiofsd/fuse_lowlevel.c:954:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#976: FILE: tools/virtiofsd/fuse_lowlevel.c:955:
+^Iarg.flags |= FUSE_IOCTL_RETRY;$

ERROR: code indent should never use tabs
#977: FILE: tools/virtiofsd/fuse_lowlevel.c:956:
+^Iarg.in_iovs = in_count;$

ERROR: code indent should never use tabs
#978: FILE: tools/virtiofsd/fuse_lowlevel.c:957:
+^Iarg.out_iovs = out_count;$

ERROR: code indent should never use tabs
#979: FILE: tools/virtiofsd/fuse_lowlevel.c:958:
+^Iiov[count].iov_base = &arg;$

ERROR: code indent should never use tabs
#980: FILE: tools/virtiofsd/fuse_lowlevel.c:959:
+^Iiov[count].iov_len = sizeof(arg);$

ERROR: code indent should never use tabs
#981: FILE: tools/virtiofsd/fuse_lowlevel.c:960:
+^Icount++;$

ERROR: code indent should never use tabs
#983: FILE: tools/virtiofsd/fuse_lowlevel.c:962:
+^Iif (req->se->conn.proto_minor < 16) {$

ERROR: code indent should never use tabs
#984: FILE: tools/virtiofsd/fuse_lowlevel.c:963:
+^I^Iif (in_count) {$

ERROR: code indent should never use tabs
#985: FILE: tools/virtiofsd/fuse_lowlevel.c:964:
+^I^I^Iiov[count].iov_base = (void *)in_iov;$

ERROR: code indent should never use tabs
#986: FILE: tools/virtiofsd/fuse_lowlevel.c:965:
+^I^I^Iiov[count].iov_len = sizeof(in_iov[0]) * in_count;$

ERROR: code indent should never use tabs
#987: FILE: tools/virtiofsd/fuse_lowlevel.c:966:
+^I^I^Icount++;$

ERROR: code indent should never use tabs
#988: FILE: tools/virtiofsd/fuse_lowlevel.c:967:
+^I^I}$

ERROR: code indent should never use tabs
#990: FILE: tools/virtiofsd/fuse_lowlevel.c:969:
+^I^Iif (out_count) {$

ERROR: code indent should never use tabs
#991: FILE: tools/virtiofsd/fuse_lowlevel.c:970:
+^I^I^Iiov[count].iov_base = (void *)out_iov;$

ERROR: code indent should never use tabs
#992: FILE: tools/virtiofsd/fuse_lowlevel.c:971:
+^I^I^Iiov[count].iov_len = sizeof(out_iov[0]) * out_count;$

ERROR: code indent should never use tabs
#993: FILE: tools/virtiofsd/fuse_lowlevel.c:972:
+^I^I^Icount++;$

ERROR: code indent should never use tabs
#994: FILE: tools/virtiofsd/fuse_lowlevel.c:973:
+^I^I}$

ERROR: code indent should never use tabs
#995: FILE: tools/virtiofsd/fuse_lowlevel.c:974:
+^I} else {$

ERROR: code indent should never use tabs
#996: FILE: tools/virtiofsd/fuse_lowlevel.c:975:
+^I^I/* Can't handle non-compat 64bit ioctls on 32bit */$

ERROR: code indent should never use tabs
#997: FILE: tools/virtiofsd/fuse_lowlevel.c:976:
+^I^Iif (sizeof(void *) == 4 && req->ioctl_64bit) {$

ERROR: code indent should never use tabs
#998: FILE: tools/virtiofsd/fuse_lowlevel.c:977:
+^I^I^Ires = fuse_reply_err(req, EINVAL);$

ERROR: code indent should never use tabs
#999: FILE: tools/virtiofsd/fuse_lowlevel.c:978:
+^I^I^Igoto out;$

ERROR: code indent should never use tabs
#1000: FILE: tools/virtiofsd/fuse_lowlevel.c:979:
+^I^I}$

ERROR: code indent should never use tabs
#1002: FILE: tools/virtiofsd/fuse_lowlevel.c:981:
+^I^Iif (in_count) {$

ERROR: code indent should never use tabs
#1003: FILE: tools/virtiofsd/fuse_lowlevel.c:982:
+^I^I^Iin_fiov = fuse_ioctl_iovec_copy(in_iov, in_count);$

ERROR: code indent should never use tabs
#1004: FILE: tools/virtiofsd/fuse_lowlevel.c:983:
+^I^I^Iif (!in_fiov)$

ERROR: braces {} are necessary for all arms of this statement
#1004: FILE: tools/virtiofsd/fuse_lowlevel.c:983:
+                       if (!in_fiov)
[...]

ERROR: code indent should never use tabs
#1005: FILE: tools/virtiofsd/fuse_lowlevel.c:984:
+^I^I^I^Igoto enomem;$

ERROR: code indent should never use tabs
#1007: FILE: tools/virtiofsd/fuse_lowlevel.c:986:
+^I^I^Iiov[count].iov_base = (void *)in_fiov;$

ERROR: code indent should never use tabs
#1008: FILE: tools/virtiofsd/fuse_lowlevel.c:987:
+^I^I^Iiov[count].iov_len = sizeof(in_fiov[0]) * in_count;$

ERROR: code indent should never use tabs
#1009: FILE: tools/virtiofsd/fuse_lowlevel.c:988:
+^I^I^Icount++;$

ERROR: code indent should never use tabs
#1010: FILE: tools/virtiofsd/fuse_lowlevel.c:989:
+^I^I}$

ERROR: code indent should never use tabs
#1011: FILE: tools/virtiofsd/fuse_lowlevel.c:990:
+^I^Iif (out_count) {$

ERROR: code indent should never use tabs
#1012: FILE: tools/virtiofsd/fuse_lowlevel.c:991:
+^I^I^Iout_fiov = fuse_ioctl_iovec_copy(out_iov, out_count);$

ERROR: code indent should never use tabs
#1013: FILE: tools/virtiofsd/fuse_lowlevel.c:992:
+^I^I^Iif (!out_fiov)$

ERROR: braces {} are necessary for all arms of this statement
#1013: FILE: tools/virtiofsd/fuse_lowlevel.c:992:
+                       if (!out_fiov)
[...]

ERROR: code indent should never use tabs
#1014: FILE: tools/virtiofsd/fuse_lowlevel.c:993:
+^I^I^I^Igoto enomem;$

ERROR: code indent should never use tabs
#1016: FILE: tools/virtiofsd/fuse_lowlevel.c:995:
+^I^I^Iiov[count].iov_base = (void *)out_fiov;$

ERROR: code indent should never use tabs
#1017: FILE: tools/virtiofsd/fuse_lowlevel.c:996:
+^I^I^Iiov[count].iov_len = sizeof(out_fiov[0]) * out_count;$

ERROR: code indent should never use tabs
#1018: FILE: tools/virtiofsd/fuse_lowlevel.c:997:
+^I^I^Icount++;$

ERROR: code indent should never use tabs
#1019: FILE: tools/virtiofsd/fuse_lowlevel.c:998:
+^I^I}$

ERROR: code indent should never use tabs
#1020: FILE: tools/virtiofsd/fuse_lowlevel.c:999:
+^I}$

ERROR: code indent should never use tabs
#1022: FILE: tools/virtiofsd/fuse_lowlevel.c:1001:
+^Ires = send_reply_iov(req, 0, iov, count);$

ERROR: code indent should never use tabs
#1024: FILE: tools/virtiofsd/fuse_lowlevel.c:1003:
+^Ifree(in_fiov);$

ERROR: code indent should never use tabs
#1025: FILE: tools/virtiofsd/fuse_lowlevel.c:1004:
+^Ifree(out_fiov);$

ERROR: code indent should never use tabs
#1027: FILE: tools/virtiofsd/fuse_lowlevel.c:1006:
+^Ireturn res;$

ERROR: code indent should never use tabs
#1030: FILE: tools/virtiofsd/fuse_lowlevel.c:1009:
+^Ires = fuse_reply_err(req, ENOMEM);$

ERROR: code indent should never use tabs
#1031: FILE: tools/virtiofsd/fuse_lowlevel.c:1010:
+^Igoto out;$

ERROR: code indent should never use tabs
#1036: FILE: tools/virtiofsd/fuse_lowlevel.c:1015:
+^Istruct fuse_ioctl_out arg;$

ERROR: code indent should never use tabs
#1037: FILE: tools/virtiofsd/fuse_lowlevel.c:1016:
+^Istruct iovec iov[3];$

ERROR: code indent should never use tabs
#1038: FILE: tools/virtiofsd/fuse_lowlevel.c:1017:
+^Isize_t count = 1;$

ERROR: code indent should never use tabs
#1040: FILE: tools/virtiofsd/fuse_lowlevel.c:1019:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#1041: FILE: tools/virtiofsd/fuse_lowlevel.c:1020:
+^Iarg.result = result;$

ERROR: code indent should never use tabs
#1042: FILE: tools/virtiofsd/fuse_lowlevel.c:1021:
+^Iiov[count].iov_base = &arg;$

ERROR: code indent should never use tabs
#1043: FILE: tools/virtiofsd/fuse_lowlevel.c:1022:
+^Iiov[count].iov_len = sizeof(arg);$

ERROR: code indent should never use tabs
#1044: FILE: tools/virtiofsd/fuse_lowlevel.c:1023:
+^Icount++;$

ERROR: code indent should never use tabs
#1046: FILE: tools/virtiofsd/fuse_lowlevel.c:1025:
+^Iif (size) {$

ERROR: code indent should never use tabs
#1047: FILE: tools/virtiofsd/fuse_lowlevel.c:1026:
+^I^Iiov[count].iov_base = (char *) buf;$

ERROR: code indent should never use tabs
#1048: FILE: tools/virtiofsd/fuse_lowlevel.c:1027:
+^I^Iiov[count].iov_len = size;$

ERROR: code indent should never use tabs
#1049: FILE: tools/virtiofsd/fuse_lowlevel.c:1028:
+^I^Icount++;$

ERROR: code indent should never use tabs
#1050: FILE: tools/virtiofsd/fuse_lowlevel.c:1029:
+^I}$

ERROR: code indent should never use tabs
#1052: FILE: tools/virtiofsd/fuse_lowlevel.c:1031:
+^Ireturn send_reply_iov(req, 0, iov, count);$

ERROR: code indent should never use tabs
#1056: FILE: tools/virtiofsd/fuse_lowlevel.c:1035:
+^I^I^I int count)$

ERROR: code indent should never use tabs
#1058: FILE: tools/virtiofsd/fuse_lowlevel.c:1037:
+^Istruct iovec *padded_iov;$

ERROR: code indent should never use tabs
#1059: FILE: tools/virtiofsd/fuse_lowlevel.c:1038:
+^Istruct fuse_ioctl_out arg;$

ERROR: code indent should never use tabs
#1060: FILE: tools/virtiofsd/fuse_lowlevel.c:1039:
+^Iint res;$

ERROR: code indent should never use tabs
#1062: FILE: tools/virtiofsd/fuse_lowlevel.c:1041:
+^Ipadded_iov = malloc((count + 2) * sizeof(struct iovec));$

ERROR: code indent should never use tabs
#1063: FILE: tools/virtiofsd/fuse_lowlevel.c:1042:
+^Iif (padded_iov == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#1063: FILE: tools/virtiofsd/fuse_lowlevel.c:1042:
+       if (padded_iov == NULL)
[...]

ERROR: code indent should never use tabs
#1064: FILE: tools/virtiofsd/fuse_lowlevel.c:1043:
+^I^Ireturn fuse_reply_err(req, ENOMEM);$

ERROR: code indent should never use tabs
#1066: FILE: tools/virtiofsd/fuse_lowlevel.c:1045:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#1067: FILE: tools/virtiofsd/fuse_lowlevel.c:1046:
+^Iarg.result = result;$

ERROR: code indent should never use tabs
#1068: FILE: tools/virtiofsd/fuse_lowlevel.c:1047:
+^Ipadded_iov[1].iov_base = &arg;$

ERROR: code indent should never use tabs
#1069: FILE: tools/virtiofsd/fuse_lowlevel.c:1048:
+^Ipadded_iov[1].iov_len = sizeof(arg);$

ERROR: code indent should never use tabs
#1071: FILE: tools/virtiofsd/fuse_lowlevel.c:1050:
+^Imemcpy(&padded_iov[2], iov, count * sizeof(struct iovec));$

ERROR: code indent should never use tabs
#1073: FILE: tools/virtiofsd/fuse_lowlevel.c:1052:
+^Ires = send_reply_iov(req, 0, padded_iov, count + 2);$

ERROR: code indent should never use tabs
#1074: FILE: tools/virtiofsd/fuse_lowlevel.c:1053:
+^Ifree(padded_iov);$

ERROR: code indent should never use tabs
#1076: FILE: tools/virtiofsd/fuse_lowlevel.c:1055:
+^Ireturn res;$

ERROR: code indent should never use tabs
#1081: FILE: tools/virtiofsd/fuse_lowlevel.c:1060:
+^Istruct fuse_poll_out arg;$

ERROR: code indent should never use tabs
#1083: FILE: tools/virtiofsd/fuse_lowlevel.c:1062:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#1084: FILE: tools/virtiofsd/fuse_lowlevel.c:1063:
+^Iarg.revents = revents;$

ERROR: code indent should never use tabs
#1086: FILE: tools/virtiofsd/fuse_lowlevel.c:1065:
+^Ireturn send_reply_ok(req, &arg, sizeof(arg));$

ERROR: code indent should never use tabs
#1091: FILE: tools/virtiofsd/fuse_lowlevel.c:1070:
+^Istruct fuse_lseek_out arg;$

ERROR: code indent should never use tabs
#1093: FILE: tools/virtiofsd/fuse_lowlevel.c:1072:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#1094: FILE: tools/virtiofsd/fuse_lowlevel.c:1073:
+^Iarg.offset = off;$

ERROR: code indent should never use tabs
#1096: FILE: tools/virtiofsd/fuse_lowlevel.c:1075:
+^Ireturn send_reply_ok(req, &arg, sizeof(arg));$

ERROR: code indent should never use tabs
#1101: FILE: tools/virtiofsd/fuse_lowlevel.c:1080:
+^Ichar *name = (char *) inarg;$

ERROR: code indent should never use tabs
#1103: FILE: tools/virtiofsd/fuse_lowlevel.c:1082:
+^Iif (req->se->op.lookup)$

ERROR: braces {} are necessary for all arms of this statement
#1103: FILE: tools/virtiofsd/fuse_lowlevel.c:1082:
+       if (req->se->op.lookup)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1104: FILE: tools/virtiofsd/fuse_lowlevel.c:1083:
+^I^Ireq->se->op.lookup(req, nodeid, name);$

ERROR: code indent should never use tabs
#1105: FILE: tools/virtiofsd/fuse_lowlevel.c:1084:
+^Ielse$

ERROR: code indent should never use tabs
#1106: FILE: tools/virtiofsd/fuse_lowlevel.c:1085:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1111: FILE: tools/virtiofsd/fuse_lowlevel.c:1090:
+^Istruct fuse_forget_in *arg = (struct fuse_forget_in *) inarg;$

ERROR: code indent should never use tabs
#1113: FILE: tools/virtiofsd/fuse_lowlevel.c:1092:
+^Iif (req->se->op.forget)$

ERROR: braces {} are necessary for all arms of this statement
#1113: FILE: tools/virtiofsd/fuse_lowlevel.c:1092:
+       if (req->se->op.forget)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1114: FILE: tools/virtiofsd/fuse_lowlevel.c:1093:
+^I^Ireq->se->op.forget(req, nodeid, arg->nlookup);$

ERROR: code indent should never use tabs
#1115: FILE: tools/virtiofsd/fuse_lowlevel.c:1094:
+^Ielse$

ERROR: code indent should never use tabs
#1116: FILE: tools/virtiofsd/fuse_lowlevel.c:1095:
+^I^Ifuse_reply_none(req);$

ERROR: code indent should never use tabs
#1120: FILE: tools/virtiofsd/fuse_lowlevel.c:1099:
+^I^I^I    const void *inarg)$

ERROR: code indent should never use tabs
#1122: FILE: tools/virtiofsd/fuse_lowlevel.c:1101:
+^Istruct fuse_batch_forget_in *arg = (void *) inarg;$

ERROR: code indent should never use tabs
#1123: FILE: tools/virtiofsd/fuse_lowlevel.c:1102:
+^Istruct fuse_forget_one *param = (void *) PARAM(arg);$

ERROR: code indent should never use tabs
#1124: FILE: tools/virtiofsd/fuse_lowlevel.c:1103:
+^Iunsigned int i;$

ERROR: code indent should never use tabs
#1126: FILE: tools/virtiofsd/fuse_lowlevel.c:1105:
+^I(void) nodeid;$

ERROR: code indent should never use tabs
#1128: FILE: tools/virtiofsd/fuse_lowlevel.c:1107:
+^Iif (req->se->op.forget_multi) {$

ERROR: code indent should never use tabs
#1129: FILE: tools/virtiofsd/fuse_lowlevel.c:1108:
+^I^Ireq->se->op.forget_multi(req, arg->count,$

ERROR: code indent should never use tabs
#1130: FILE: tools/virtiofsd/fuse_lowlevel.c:1109:
+^I^I^I^I     (struct fuse_forget_data *) param);$

ERROR: code indent should never use tabs
#1131: FILE: tools/virtiofsd/fuse_lowlevel.c:1110:
+^I} else if (req->se->op.forget) {$

ERROR: code indent should never use tabs
#1132: FILE: tools/virtiofsd/fuse_lowlevel.c:1111:
+^I^Ifor (i = 0; i < arg->count; i++) {$

ERROR: code indent should never use tabs
#1133: FILE: tools/virtiofsd/fuse_lowlevel.c:1112:
+^I^I^Istruct fuse_forget_one *forget = &param[i];$

ERROR: code indent should never use tabs
#1134: FILE: tools/virtiofsd/fuse_lowlevel.c:1113:
+^I^I^Istruct fuse_req *dummy_req;$

ERROR: code indent should never use tabs
#1136: FILE: tools/virtiofsd/fuse_lowlevel.c:1115:
+^I^I^Idummy_req = fuse_ll_alloc_req(req->se);$

ERROR: code indent should never use tabs
#1137: FILE: tools/virtiofsd/fuse_lowlevel.c:1116:
+^I^I^Iif (dummy_req == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#1137: FILE: tools/virtiofsd/fuse_lowlevel.c:1116:
+                       if (dummy_req == NULL)
[...]

ERROR: code indent should never use tabs
#1138: FILE: tools/virtiofsd/fuse_lowlevel.c:1117:
+^I^I^I^Ibreak;$

ERROR: code indent should never use tabs
#1140: FILE: tools/virtiofsd/fuse_lowlevel.c:1119:
+^I^I^Idummy_req->unique = req->unique;$

ERROR: code indent should never use tabs
#1141: FILE: tools/virtiofsd/fuse_lowlevel.c:1120:
+^I^I^Idummy_req->ctx = req->ctx;$

ERROR: code indent should never use tabs
#1142: FILE: tools/virtiofsd/fuse_lowlevel.c:1121:
+^I^I^Idummy_req->ch = NULL;$

ERROR: code indent should never use tabs
#1144: FILE: tools/virtiofsd/fuse_lowlevel.c:1123:
+^I^I^Ireq->se->op.forget(dummy_req, forget->nodeid,$

ERROR: code indent should never use tabs
#1145: FILE: tools/virtiofsd/fuse_lowlevel.c:1124:
+^I^I^I^I^I  forget->nlookup);$

ERROR: code indent should never use tabs
#1146: FILE: tools/virtiofsd/fuse_lowlevel.c:1125:
+^I^I}$

ERROR: code indent should never use tabs
#1147: FILE: tools/virtiofsd/fuse_lowlevel.c:1126:
+^I^Ifuse_reply_none(req);$

ERROR: code indent should never use tabs
#1148: FILE: tools/virtiofsd/fuse_lowlevel.c:1127:
+^I} else {$

ERROR: code indent should never use tabs
#1149: FILE: tools/virtiofsd/fuse_lowlevel.c:1128:
+^I^Ifuse_reply_none(req);$

ERROR: code indent should never use tabs
#1150: FILE: tools/virtiofsd/fuse_lowlevel.c:1129:
+^I}$

ERROR: code indent should never use tabs
#1155: FILE: tools/virtiofsd/fuse_lowlevel.c:1134:
+^Istruct fuse_file_info *fip = NULL;$

ERROR: code indent should never use tabs
#1156: FILE: tools/virtiofsd/fuse_lowlevel.c:1135:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1158: FILE: tools/virtiofsd/fuse_lowlevel.c:1137:
+^Iif (req->se->conn.proto_minor >= 9) {$

ERROR: code indent should never use tabs
#1159: FILE: tools/virtiofsd/fuse_lowlevel.c:1138:
+^I^Istruct fuse_getattr_in *arg = (struct fuse_getattr_in *) inarg;$

ERROR: code indent should never use tabs
#1161: FILE: tools/virtiofsd/fuse_lowlevel.c:1140:
+^I^Iif (arg->getattr_flags & FUSE_GETATTR_FH) {$

ERROR: code indent should never use tabs
#1162: FILE: tools/virtiofsd/fuse_lowlevel.c:1141:
+^I^I^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1163: FILE: tools/virtiofsd/fuse_lowlevel.c:1142:
+^I^I^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1164: FILE: tools/virtiofsd/fuse_lowlevel.c:1143:
+^I^I^Ifip = &fi;$

ERROR: code indent should never use tabs
#1165: FILE: tools/virtiofsd/fuse_lowlevel.c:1144:
+^I^I}$

ERROR: code indent should never use tabs
#1166: FILE: tools/virtiofsd/fuse_lowlevel.c:1145:
+^I}$

ERROR: code indent should never use tabs
#1168: FILE: tools/virtiofsd/fuse_lowlevel.c:1147:
+^Iif (req->se->op.getattr)$

ERROR: braces {} are necessary for all arms of this statement
#1168: FILE: tools/virtiofsd/fuse_lowlevel.c:1147:
+       if (req->se->op.getattr)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1169: FILE: tools/virtiofsd/fuse_lowlevel.c:1148:
+^I^Ireq->se->op.getattr(req, nodeid, fip);$

ERROR: code indent should never use tabs
#1170: FILE: tools/virtiofsd/fuse_lowlevel.c:1149:
+^Ielse$

ERROR: code indent should never use tabs
#1171: FILE: tools/virtiofsd/fuse_lowlevel.c:1150:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1176: FILE: tools/virtiofsd/fuse_lowlevel.c:1155:
+^Istruct fuse_setattr_in *arg = (struct fuse_setattr_in *) inarg;$

ERROR: code indent should never use tabs
#1178: FILE: tools/virtiofsd/fuse_lowlevel.c:1157:
+^Iif (req->se->op.setattr) {$

ERROR: code indent should never use tabs
#1179: FILE: tools/virtiofsd/fuse_lowlevel.c:1158:
+^I^Istruct fuse_file_info *fi = NULL;$

ERROR: code indent should never use tabs
#1180: FILE: tools/virtiofsd/fuse_lowlevel.c:1159:
+^I^Istruct fuse_file_info fi_store;$

ERROR: code indent should never use tabs
#1181: FILE: tools/virtiofsd/fuse_lowlevel.c:1160:
+^I^Istruct stat stbuf;$

ERROR: code indent should never use tabs
#1182: FILE: tools/virtiofsd/fuse_lowlevel.c:1161:
+^I^Imemset(&stbuf, 0, sizeof(stbuf));$

ERROR: code indent should never use tabs
#1183: FILE: tools/virtiofsd/fuse_lowlevel.c:1162:
+^I^Iconvert_attr(arg, &stbuf);$

ERROR: code indent should never use tabs
#1184: FILE: tools/virtiofsd/fuse_lowlevel.c:1163:
+^I^Iif (arg->valid & FATTR_FH) {$

ERROR: code indent should never use tabs
#1185: FILE: tools/virtiofsd/fuse_lowlevel.c:1164:
+^I^I^Iarg->valid &= ~FATTR_FH;$

ERROR: code indent should never use tabs
#1186: FILE: tools/virtiofsd/fuse_lowlevel.c:1165:
+^I^I^Imemset(&fi_store, 0, sizeof(fi_store));$

ERROR: code indent should never use tabs
#1187: FILE: tools/virtiofsd/fuse_lowlevel.c:1166:
+^I^I^Ifi = &fi_store;$

ERROR: code indent should never use tabs
#1188: FILE: tools/virtiofsd/fuse_lowlevel.c:1167:
+^I^I^Ifi->fh = arg->fh;$

ERROR: code indent should never use tabs
#1189: FILE: tools/virtiofsd/fuse_lowlevel.c:1168:
+^I^I}$

ERROR: code indent should never use tabs
#1190: FILE: tools/virtiofsd/fuse_lowlevel.c:1169:
+^I^Iarg->valid &=$

ERROR: code indent should never use tabs
#1191: FILE: tools/virtiofsd/fuse_lowlevel.c:1170:
+^I^I^IFUSE_SET_ATTR_MODE^I|$

ERROR: code indent should never use tabs
#1192: FILE: tools/virtiofsd/fuse_lowlevel.c:1171:
+^I^I^IFUSE_SET_ATTR_UID^I|$

ERROR: code indent should never use tabs
#1193: FILE: tools/virtiofsd/fuse_lowlevel.c:1172:
+^I^I^IFUSE_SET_ATTR_GID^I|$

ERROR: code indent should never use tabs
#1194: FILE: tools/virtiofsd/fuse_lowlevel.c:1173:
+^I^I^IFUSE_SET_ATTR_SIZE^I|$

ERROR: code indent should never use tabs
#1195: FILE: tools/virtiofsd/fuse_lowlevel.c:1174:
+^I^I^IFUSE_SET_ATTR_ATIME^I|$

ERROR: code indent should never use tabs
#1196: FILE: tools/virtiofsd/fuse_lowlevel.c:1175:
+^I^I^IFUSE_SET_ATTR_MTIME^I|$

ERROR: code indent should never use tabs
#1197: FILE: tools/virtiofsd/fuse_lowlevel.c:1176:
+^I^I^IFUSE_SET_ATTR_ATIME_NOW^I|$

ERROR: code indent should never use tabs
#1198: FILE: tools/virtiofsd/fuse_lowlevel.c:1177:
+^I^I^IFUSE_SET_ATTR_MTIME_NOW |$

ERROR: code indent should never use tabs
#1199: FILE: tools/virtiofsd/fuse_lowlevel.c:1178:
+^I^I^IFUSE_SET_ATTR_CTIME;$

ERROR: code indent should never use tabs
#1201: FILE: tools/virtiofsd/fuse_lowlevel.c:1180:
+^I^Ireq->se->op.setattr(req, nodeid, &stbuf, arg->valid, fi);$

ERROR: code indent should never use tabs
#1202: FILE: tools/virtiofsd/fuse_lowlevel.c:1181:
+^I} else$

ERROR: code indent should never use tabs
#1203: FILE: tools/virtiofsd/fuse_lowlevel.c:1182:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1208: FILE: tools/virtiofsd/fuse_lowlevel.c:1187:
+^Istruct fuse_access_in *arg = (struct fuse_access_in *) inarg;$

ERROR: code indent should never use tabs
#1210: FILE: tools/virtiofsd/fuse_lowlevel.c:1189:
+^Iif (req->se->op.access)$

ERROR: braces {} are necessary for all arms of this statement
#1210: FILE: tools/virtiofsd/fuse_lowlevel.c:1189:
+       if (req->se->op.access)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1211: FILE: tools/virtiofsd/fuse_lowlevel.c:1190:
+^I^Ireq->se->op.access(req, nodeid, arg->mask);$

ERROR: code indent should never use tabs
#1212: FILE: tools/virtiofsd/fuse_lowlevel.c:1191:
+^Ielse$

ERROR: code indent should never use tabs
#1213: FILE: tools/virtiofsd/fuse_lowlevel.c:1192:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1218: FILE: tools/virtiofsd/fuse_lowlevel.c:1197:
+^I(void) inarg;$

ERROR: code indent should never use tabs
#1220: FILE: tools/virtiofsd/fuse_lowlevel.c:1199:
+^Iif (req->se->op.readlink)$

ERROR: braces {} are necessary for all arms of this statement
#1220: FILE: tools/virtiofsd/fuse_lowlevel.c:1199:
+       if (req->se->op.readlink)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1221: FILE: tools/virtiofsd/fuse_lowlevel.c:1200:
+^I^Ireq->se->op.readlink(req, nodeid);$

ERROR: code indent should never use tabs
#1222: FILE: tools/virtiofsd/fuse_lowlevel.c:1201:
+^Ielse$

ERROR: code indent should never use tabs
#1223: FILE: tools/virtiofsd/fuse_lowlevel.c:1202:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1228: FILE: tools/virtiofsd/fuse_lowlevel.c:1207:
+^Istruct fuse_mknod_in *arg = (struct fuse_mknod_in *) inarg;$

ERROR: code indent should never use tabs
#1229: FILE: tools/virtiofsd/fuse_lowlevel.c:1208:
+^Ichar *name = PARAM(arg);$

ERROR: code indent should never use tabs
#1231: FILE: tools/virtiofsd/fuse_lowlevel.c:1210:
+^Iif (req->se->conn.proto_minor >= 12)$

ERROR: braces {} are necessary for all arms of this statement
#1231: FILE: tools/virtiofsd/fuse_lowlevel.c:1210:
+       if (req->se->conn.proto_minor >= 12)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1232: FILE: tools/virtiofsd/fuse_lowlevel.c:1211:
+^I^Ireq->ctx.umask = arg->umask;$

ERROR: code indent should never use tabs
#1233: FILE: tools/virtiofsd/fuse_lowlevel.c:1212:
+^Ielse$

ERROR: code indent should never use tabs
#1234: FILE: tools/virtiofsd/fuse_lowlevel.c:1213:
+^I^Iname = (char *) inarg + FUSE_COMPAT_MKNOD_IN_SIZE;$

ERROR: code indent should never use tabs
#1236: FILE: tools/virtiofsd/fuse_lowlevel.c:1215:
+^Iif (req->se->op.mknod)$

ERROR: braces {} are necessary for all arms of this statement
#1236: FILE: tools/virtiofsd/fuse_lowlevel.c:1215:
+       if (req->se->op.mknod)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1237: FILE: tools/virtiofsd/fuse_lowlevel.c:1216:
+^I^Ireq->se->op.mknod(req, nodeid, name, arg->mode, arg->rdev);$

ERROR: code indent should never use tabs
#1238: FILE: tools/virtiofsd/fuse_lowlevel.c:1217:
+^Ielse$

ERROR: code indent should never use tabs
#1239: FILE: tools/virtiofsd/fuse_lowlevel.c:1218:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1244: FILE: tools/virtiofsd/fuse_lowlevel.c:1223:
+^Istruct fuse_mkdir_in *arg = (struct fuse_mkdir_in *) inarg;$

ERROR: code indent should never use tabs
#1246: FILE: tools/virtiofsd/fuse_lowlevel.c:1225:
+^Iif (req->se->conn.proto_minor >= 12)$

ERROR: braces {} are necessary for all arms of this statement
#1246: FILE: tools/virtiofsd/fuse_lowlevel.c:1225:
+       if (req->se->conn.proto_minor >= 12)
[...]

ERROR: code indent should never use tabs
#1247: FILE: tools/virtiofsd/fuse_lowlevel.c:1226:
+^I^Ireq->ctx.umask = arg->umask;$

ERROR: code indent should never use tabs
#1249: FILE: tools/virtiofsd/fuse_lowlevel.c:1228:
+^Iif (req->se->op.mkdir)$

ERROR: braces {} are necessary for all arms of this statement
#1249: FILE: tools/virtiofsd/fuse_lowlevel.c:1228:
+       if (req->se->op.mkdir)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1250: FILE: tools/virtiofsd/fuse_lowlevel.c:1229:
+^I^Ireq->se->op.mkdir(req, nodeid, PARAM(arg), arg->mode);$

ERROR: code indent should never use tabs
#1251: FILE: tools/virtiofsd/fuse_lowlevel.c:1230:
+^Ielse$

ERROR: code indent should never use tabs
#1252: FILE: tools/virtiofsd/fuse_lowlevel.c:1231:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1257: FILE: tools/virtiofsd/fuse_lowlevel.c:1236:
+^Ichar *name = (char *) inarg;$

ERROR: code indent should never use tabs
#1259: FILE: tools/virtiofsd/fuse_lowlevel.c:1238:
+^Iif (req->se->op.unlink)$

ERROR: braces {} are necessary for all arms of this statement
#1259: FILE: tools/virtiofsd/fuse_lowlevel.c:1238:
+       if (req->se->op.unlink)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1260: FILE: tools/virtiofsd/fuse_lowlevel.c:1239:
+^I^Ireq->se->op.unlink(req, nodeid, name);$

ERROR: code indent should never use tabs
#1261: FILE: tools/virtiofsd/fuse_lowlevel.c:1240:
+^Ielse$

ERROR: code indent should never use tabs
#1262: FILE: tools/virtiofsd/fuse_lowlevel.c:1241:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1267: FILE: tools/virtiofsd/fuse_lowlevel.c:1246:
+^Ichar *name = (char *) inarg;$

ERROR: code indent should never use tabs
#1269: FILE: tools/virtiofsd/fuse_lowlevel.c:1248:
+^Iif (req->se->op.rmdir)$

ERROR: braces {} are necessary for all arms of this statement
#1269: FILE: tools/virtiofsd/fuse_lowlevel.c:1248:
+       if (req->se->op.rmdir)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1270: FILE: tools/virtiofsd/fuse_lowlevel.c:1249:
+^I^Ireq->se->op.rmdir(req, nodeid, name);$

ERROR: code indent should never use tabs
#1271: FILE: tools/virtiofsd/fuse_lowlevel.c:1250:
+^Ielse$

ERROR: code indent should never use tabs
#1272: FILE: tools/virtiofsd/fuse_lowlevel.c:1251:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1277: FILE: tools/virtiofsd/fuse_lowlevel.c:1256:
+^Ichar *name = (char *) inarg;$

ERROR: code indent should never use tabs
#1278: FILE: tools/virtiofsd/fuse_lowlevel.c:1257:
+^Ichar *linkname = ((char *) inarg) + strlen((char *) inarg) + 1;$

ERROR: code indent should never use tabs
#1280: FILE: tools/virtiofsd/fuse_lowlevel.c:1259:
+^Iif (req->se->op.symlink)$

ERROR: braces {} are necessary for all arms of this statement
#1280: FILE: tools/virtiofsd/fuse_lowlevel.c:1259:
+       if (req->se->op.symlink)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1281: FILE: tools/virtiofsd/fuse_lowlevel.c:1260:
+^I^Ireq->se->op.symlink(req, linkname, nodeid, name);$

ERROR: code indent should never use tabs
#1282: FILE: tools/virtiofsd/fuse_lowlevel.c:1261:
+^Ielse$

ERROR: code indent should never use tabs
#1283: FILE: tools/virtiofsd/fuse_lowlevel.c:1262:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1288: FILE: tools/virtiofsd/fuse_lowlevel.c:1267:
+^Istruct fuse_rename_in *arg = (struct fuse_rename_in *) inarg;$

ERROR: code indent should never use tabs
#1289: FILE: tools/virtiofsd/fuse_lowlevel.c:1268:
+^Ichar *oldname = PARAM(arg);$

ERROR: code indent should never use tabs
#1290: FILE: tools/virtiofsd/fuse_lowlevel.c:1269:
+^Ichar *newname = oldname + strlen(oldname) + 1;$

ERROR: code indent should never use tabs
#1292: FILE: tools/virtiofsd/fuse_lowlevel.c:1271:
+^Iif (req->se->op.rename)$

ERROR: code indent should never use tabs
#1293: FILE: tools/virtiofsd/fuse_lowlevel.c:1272:
+^I^Ireq->se->op.rename(req, nodeid, oldname, arg->newdir, newname,$

ERROR: code indent should never use tabs
#1294: FILE: tools/virtiofsd/fuse_lowlevel.c:1273:
+^I^I^I^I  0);$

ERROR: code indent should never use tabs
#1295: FILE: tools/virtiofsd/fuse_lowlevel.c:1274:
+^Ielse$

ERROR: code indent should never use tabs
#1296: FILE: tools/virtiofsd/fuse_lowlevel.c:1275:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1301: FILE: tools/virtiofsd/fuse_lowlevel.c:1280:
+^Istruct fuse_rename2_in *arg = (struct fuse_rename2_in *) inarg;$

ERROR: code indent should never use tabs
#1302: FILE: tools/virtiofsd/fuse_lowlevel.c:1281:
+^Ichar *oldname = PARAM(arg);$

ERROR: code indent should never use tabs
#1303: FILE: tools/virtiofsd/fuse_lowlevel.c:1282:
+^Ichar *newname = oldname + strlen(oldname) + 1;$

ERROR: code indent should never use tabs
#1305: FILE: tools/virtiofsd/fuse_lowlevel.c:1284:
+^Iif (req->se->op.rename)$

ERROR: code indent should never use tabs
#1306: FILE: tools/virtiofsd/fuse_lowlevel.c:1285:
+^I^Ireq->se->op.rename(req, nodeid, oldname, arg->newdir, newname,$

ERROR: code indent should never use tabs
#1307: FILE: tools/virtiofsd/fuse_lowlevel.c:1286:
+^I^I^I^I  arg->flags);$

ERROR: code indent should never use tabs
#1308: FILE: tools/virtiofsd/fuse_lowlevel.c:1287:
+^Ielse$

ERROR: code indent should never use tabs
#1309: FILE: tools/virtiofsd/fuse_lowlevel.c:1288:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1314: FILE: tools/virtiofsd/fuse_lowlevel.c:1293:
+^Istruct fuse_link_in *arg = (struct fuse_link_in *) inarg;$

ERROR: code indent should never use tabs
#1316: FILE: tools/virtiofsd/fuse_lowlevel.c:1295:
+^Iif (req->se->op.link)$

ERROR: braces {} are necessary for all arms of this statement
#1316: FILE: tools/virtiofsd/fuse_lowlevel.c:1295:
+       if (req->se->op.link)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1317: FILE: tools/virtiofsd/fuse_lowlevel.c:1296:
+^I^Ireq->se->op.link(req, arg->oldnodeid, nodeid, PARAM(arg));$

ERROR: code indent should never use tabs
#1318: FILE: tools/virtiofsd/fuse_lowlevel.c:1297:
+^Ielse$

ERROR: code indent should never use tabs
#1319: FILE: tools/virtiofsd/fuse_lowlevel.c:1298:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1324: FILE: tools/virtiofsd/fuse_lowlevel.c:1303:
+^Istruct fuse_create_in *arg = (struct fuse_create_in *) inarg;$

ERROR: code indent should never use tabs
#1326: FILE: tools/virtiofsd/fuse_lowlevel.c:1305:
+^Iif (req->se->op.create) {$

ERROR: code indent should never use tabs
#1327: FILE: tools/virtiofsd/fuse_lowlevel.c:1306:
+^I^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1328: FILE: tools/virtiofsd/fuse_lowlevel.c:1307:
+^I^Ichar *name = PARAM(arg);$

ERROR: code indent should never use tabs
#1330: FILE: tools/virtiofsd/fuse_lowlevel.c:1309:
+^I^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1331: FILE: tools/virtiofsd/fuse_lowlevel.c:1310:
+^I^Ifi.flags = arg->flags;$

ERROR: code indent should never use tabs
#1333: FILE: tools/virtiofsd/fuse_lowlevel.c:1312:
+^I^Iif (req->se->conn.proto_minor >= 12)$

ERROR: braces {} are necessary for all arms of this statement
#1333: FILE: tools/virtiofsd/fuse_lowlevel.c:1312:
+               if (req->se->conn.proto_minor >= 12)
[...]
+               else
[...]

ERROR: code indent should never use tabs
#1334: FILE: tools/virtiofsd/fuse_lowlevel.c:1313:
+^I^I^Ireq->ctx.umask = arg->umask;$

ERROR: code indent should never use tabs
#1335: FILE: tools/virtiofsd/fuse_lowlevel.c:1314:
+^I^Ielse$

ERROR: code indent should never use tabs
#1336: FILE: tools/virtiofsd/fuse_lowlevel.c:1315:
+^I^I^Iname = (char *) inarg + sizeof(struct fuse_open_in);$

ERROR: code indent should never use tabs
#1338: FILE: tools/virtiofsd/fuse_lowlevel.c:1317:
+^I^Ireq->se->op.create(req, nodeid, name, arg->mode, &fi);$

ERROR: code indent should never use tabs
#1339: FILE: tools/virtiofsd/fuse_lowlevel.c:1318:
+^I} else$

ERROR: code indent should never use tabs
#1340: FILE: tools/virtiofsd/fuse_lowlevel.c:1319:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1345: FILE: tools/virtiofsd/fuse_lowlevel.c:1324:
+^Istruct fuse_open_in *arg = (struct fuse_open_in *) inarg;$

ERROR: code indent should never use tabs
#1346: FILE: tools/virtiofsd/fuse_lowlevel.c:1325:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1348: FILE: tools/virtiofsd/fuse_lowlevel.c:1327:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1349: FILE: tools/virtiofsd/fuse_lowlevel.c:1328:
+^Ifi.flags = arg->flags;$

ERROR: code indent should never use tabs
#1351: FILE: tools/virtiofsd/fuse_lowlevel.c:1330:
+^Iif (req->se->op.open)$

ERROR: braces {} are necessary for all arms of this statement
#1351: FILE: tools/virtiofsd/fuse_lowlevel.c:1330:
+       if (req->se->op.open)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1352: FILE: tools/virtiofsd/fuse_lowlevel.c:1331:
+^I^Ireq->se->op.open(req, nodeid, &fi);$

ERROR: code indent should never use tabs
#1353: FILE: tools/virtiofsd/fuse_lowlevel.c:1332:
+^Ielse$

ERROR: code indent should never use tabs
#1354: FILE: tools/virtiofsd/fuse_lowlevel.c:1333:
+^I^Ifuse_reply_open(req, &fi);$

ERROR: code indent should never use tabs
#1359: FILE: tools/virtiofsd/fuse_lowlevel.c:1338:
+^Istruct fuse_read_in *arg = (struct fuse_read_in *) inarg;$

ERROR: code indent should never use tabs
#1361: FILE: tools/virtiofsd/fuse_lowlevel.c:1340:
+^Iif (req->se->op.read) {$

ERROR: code indent should never use tabs
#1362: FILE: tools/virtiofsd/fuse_lowlevel.c:1341:
+^I^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1364: FILE: tools/virtiofsd/fuse_lowlevel.c:1343:
+^I^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1365: FILE: tools/virtiofsd/fuse_lowlevel.c:1344:
+^I^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1366: FILE: tools/virtiofsd/fuse_lowlevel.c:1345:
+^I^Iif (req->se->conn.proto_minor >= 9) {$

ERROR: code indent should never use tabs
#1367: FILE: tools/virtiofsd/fuse_lowlevel.c:1346:
+^I^I^Ifi.lock_owner = arg->lock_owner;$

ERROR: code indent should never use tabs
#1368: FILE: tools/virtiofsd/fuse_lowlevel.c:1347:
+^I^I^Ifi.flags = arg->flags;$

ERROR: code indent should never use tabs
#1369: FILE: tools/virtiofsd/fuse_lowlevel.c:1348:
+^I^I}$

ERROR: code indent should never use tabs
#1370: FILE: tools/virtiofsd/fuse_lowlevel.c:1349:
+^I^Ireq->se->op.read(req, nodeid, arg->size, arg->offset, &fi);$

ERROR: code indent should never use tabs
#1371: FILE: tools/virtiofsd/fuse_lowlevel.c:1350:
+^I} else$

ERROR: code indent should never use tabs
#1372: FILE: tools/virtiofsd/fuse_lowlevel.c:1351:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1377: FILE: tools/virtiofsd/fuse_lowlevel.c:1356:
+^Istruct fuse_write_in *arg = (struct fuse_write_in *) inarg;$

ERROR: code indent should never use tabs
#1378: FILE: tools/virtiofsd/fuse_lowlevel.c:1357:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1379: FILE: tools/virtiofsd/fuse_lowlevel.c:1358:
+^Ichar *param;$

ERROR: code indent should never use tabs
#1381: FILE: tools/virtiofsd/fuse_lowlevel.c:1360:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1382: FILE: tools/virtiofsd/fuse_lowlevel.c:1361:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1383: FILE: tools/virtiofsd/fuse_lowlevel.c:1362:
+^Ifi.writepage = (arg->write_flags & FUSE_WRITE_CACHE) != 0;$

ERROR: code indent should never use tabs
#1385: FILE: tools/virtiofsd/fuse_lowlevel.c:1364:
+^Iif (req->se->conn.proto_minor < 9) {$

ERROR: code indent should never use tabs
#1386: FILE: tools/virtiofsd/fuse_lowlevel.c:1365:
+^I^Iparam = ((char *) arg) + FUSE_COMPAT_WRITE_IN_SIZE;$

ERROR: code indent should never use tabs
#1387: FILE: tools/virtiofsd/fuse_lowlevel.c:1366:
+^I} else {$

ERROR: code indent should never use tabs
#1388: FILE: tools/virtiofsd/fuse_lowlevel.c:1367:
+^I^Ifi.lock_owner = arg->lock_owner;$

ERROR: code indent should never use tabs
#1389: FILE: tools/virtiofsd/fuse_lowlevel.c:1368:
+^I^Ifi.flags = arg->flags;$

ERROR: code indent should never use tabs
#1390: FILE: tools/virtiofsd/fuse_lowlevel.c:1369:
+^I^Iparam = PARAM(arg);$

ERROR: code indent should never use tabs
#1391: FILE: tools/virtiofsd/fuse_lowlevel.c:1370:
+^I}$

ERROR: code indent should never use tabs
#1393: FILE: tools/virtiofsd/fuse_lowlevel.c:1372:
+^Iif (req->se->op.write)$

ERROR: code indent should never use tabs
#1394: FILE: tools/virtiofsd/fuse_lowlevel.c:1373:
+^I^Ireq->se->op.write(req, nodeid, param, arg->size,$

ERROR: code indent should never use tabs
#1395: FILE: tools/virtiofsd/fuse_lowlevel.c:1374:
+^I^I^I^I arg->offset, &fi);$

ERROR: code indent should never use tabs
#1396: FILE: tools/virtiofsd/fuse_lowlevel.c:1375:
+^Ielse$

ERROR: code indent should never use tabs
#1397: FILE: tools/virtiofsd/fuse_lowlevel.c:1376:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1401: FILE: tools/virtiofsd/fuse_lowlevel.c:1380:
+^I^I^I const struct fuse_buf *ibuf)$

ERROR: code indent should never use tabs
#1403: FILE: tools/virtiofsd/fuse_lowlevel.c:1382:
+^Istruct fuse_session *se = req->se;$

ERROR: code indent should never use tabs
#1404: FILE: tools/virtiofsd/fuse_lowlevel.c:1383:
+^Istruct fuse_bufvec bufv = {$

ERROR: code indent should never use tabs
#1405: FILE: tools/virtiofsd/fuse_lowlevel.c:1384:
+^I^I.buf[0] = *ibuf,$

ERROR: code indent should never use tabs
#1406: FILE: tools/virtiofsd/fuse_lowlevel.c:1385:
+^I^I.count = 1,$

ERROR: code indent should never use tabs
#1407: FILE: tools/virtiofsd/fuse_lowlevel.c:1386:
+^I};$

ERROR: code indent should never use tabs
#1408: FILE: tools/virtiofsd/fuse_lowlevel.c:1387:
+^Istruct fuse_write_in *arg = (struct fuse_write_in *) inarg;$

ERROR: code indent should never use tabs
#1409: FILE: tools/virtiofsd/fuse_lowlevel.c:1388:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1411: FILE: tools/virtiofsd/fuse_lowlevel.c:1390:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1412: FILE: tools/virtiofsd/fuse_lowlevel.c:1391:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1413: FILE: tools/virtiofsd/fuse_lowlevel.c:1392:
+^Ifi.writepage = arg->write_flags & FUSE_WRITE_CACHE;$

ERROR: code indent should never use tabs
#1415: FILE: tools/virtiofsd/fuse_lowlevel.c:1394:
+^Iif (se->conn.proto_minor < 9) {$

ERROR: code indent should never use tabs
#1416: FILE: tools/virtiofsd/fuse_lowlevel.c:1395:
+^I^Ibufv.buf[0].mem = ((char *) arg) + FUSE_COMPAT_WRITE_IN_SIZE;$

ERROR: code indent should never use tabs
#1417: FILE: tools/virtiofsd/fuse_lowlevel.c:1396:
+^I^Ibufv.buf[0].size -= sizeof(struct fuse_in_header) +$

ERROR: code indent should never use tabs
#1418: FILE: tools/virtiofsd/fuse_lowlevel.c:1397:
+^I^I^IFUSE_COMPAT_WRITE_IN_SIZE;$

ERROR: code indent should never use tabs
#1419: FILE: tools/virtiofsd/fuse_lowlevel.c:1398:
+^I^Iassert(!(bufv.buf[0].flags & FUSE_BUF_IS_FD));$

ERROR: code indent should never use tabs
#1420: FILE: tools/virtiofsd/fuse_lowlevel.c:1399:
+^I} else {$

ERROR: code indent should never use tabs
#1421: FILE: tools/virtiofsd/fuse_lowlevel.c:1400:
+^I^Ifi.lock_owner = arg->lock_owner;$

ERROR: code indent should never use tabs
#1422: FILE: tools/virtiofsd/fuse_lowlevel.c:1401:
+^I^Ifi.flags = arg->flags;$

ERROR: code indent should never use tabs
#1423: FILE: tools/virtiofsd/fuse_lowlevel.c:1402:
+^I^Iif (!(bufv.buf[0].flags & FUSE_BUF_IS_FD))$

ERROR: braces {} are necessary for all arms of this statement
#1423: FILE: tools/virtiofsd/fuse_lowlevel.c:1402:
+               if (!(bufv.buf[0].flags & FUSE_BUF_IS_FD))
[...]

ERROR: code indent should never use tabs
#1424: FILE: tools/virtiofsd/fuse_lowlevel.c:1403:
+^I^I^Ibufv.buf[0].mem = PARAM(arg);$

ERROR: code indent should never use tabs
#1426: FILE: tools/virtiofsd/fuse_lowlevel.c:1405:
+^I^Ibufv.buf[0].size -= sizeof(struct fuse_in_header) +$

ERROR: code indent should never use tabs
#1427: FILE: tools/virtiofsd/fuse_lowlevel.c:1406:
+^I^I^Isizeof(struct fuse_write_in);$

ERROR: code indent should never use tabs
#1428: FILE: tools/virtiofsd/fuse_lowlevel.c:1407:
+^I}$

ERROR: code indent should never use tabs
#1429: FILE: tools/virtiofsd/fuse_lowlevel.c:1408:
+^Iif (bufv.buf[0].size < arg->size) {$

WARNING: line over 80 characters
#1430: FILE: tools/virtiofsd/fuse_lowlevel.c:1409:
+               fuse_log(FUSE_LOG_ERR, "fuse: do_write_buf: buffer size too small\n");

ERROR: code indent should never use tabs
#1430: FILE: tools/virtiofsd/fuse_lowlevel.c:1409:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: do_write_buf: buffer size too small\n");$

ERROR: code indent should never use tabs
#1431: FILE: tools/virtiofsd/fuse_lowlevel.c:1410:
+^I^Ifuse_reply_err(req, EIO);$

ERROR: code indent should never use tabs
#1432: FILE: tools/virtiofsd/fuse_lowlevel.c:1411:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1433: FILE: tools/virtiofsd/fuse_lowlevel.c:1412:
+^I}$

ERROR: code indent should never use tabs
#1434: FILE: tools/virtiofsd/fuse_lowlevel.c:1413:
+^Ibufv.buf[0].size = arg->size;$

ERROR: code indent should never use tabs
#1436: FILE: tools/virtiofsd/fuse_lowlevel.c:1415:
+^Ise->op.write_buf(req, nodeid, &bufv, arg->offset, &fi);$

ERROR: code indent should never use tabs
#1439: FILE: tools/virtiofsd/fuse_lowlevel.c:1418:
+^I/* Need to reset the pipe if ->write_buf() didn't consume all data */$

ERROR: code indent should never use tabs
#1440: FILE: tools/virtiofsd/fuse_lowlevel.c:1419:
+^Iif ((ibuf->flags & FUSE_BUF_IS_FD) && bufv.idx < bufv.count)$

ERROR: braces {} are necessary for all arms of this statement
#1440: FILE: tools/virtiofsd/fuse_lowlevel.c:1419:
+       if ((ibuf->flags & FUSE_BUF_IS_FD) && bufv.idx < bufv.count)
[...]

ERROR: code indent should never use tabs
#1441: FILE: tools/virtiofsd/fuse_lowlevel.c:1420:
+^I^Ifuse_ll_clear_pipe(se);$

ERROR: code indent should never use tabs
#1446: FILE: tools/virtiofsd/fuse_lowlevel.c:1425:
+^Istruct fuse_flush_in *arg = (struct fuse_flush_in *) inarg;$

ERROR: code indent should never use tabs
#1447: FILE: tools/virtiofsd/fuse_lowlevel.c:1426:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1449: FILE: tools/virtiofsd/fuse_lowlevel.c:1428:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1450: FILE: tools/virtiofsd/fuse_lowlevel.c:1429:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1451: FILE: tools/virtiofsd/fuse_lowlevel.c:1430:
+^Ifi.flush = 1;$

ERROR: code indent should never use tabs
#1452: FILE: tools/virtiofsd/fuse_lowlevel.c:1431:
+^Iif (req->se->conn.proto_minor >= 7)$

ERROR: braces {} are necessary for all arms of this statement
#1452: FILE: tools/virtiofsd/fuse_lowlevel.c:1431:
+       if (req->se->conn.proto_minor >= 7)
[...]

ERROR: code indent should never use tabs
#1453: FILE: tools/virtiofsd/fuse_lowlevel.c:1432:
+^I^Ifi.lock_owner = arg->lock_owner;$

ERROR: code indent should never use tabs
#1455: FILE: tools/virtiofsd/fuse_lowlevel.c:1434:
+^Iif (req->se->op.flush)$

ERROR: braces {} are necessary for all arms of this statement
#1455: FILE: tools/virtiofsd/fuse_lowlevel.c:1434:
+       if (req->se->op.flush)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1456: FILE: tools/virtiofsd/fuse_lowlevel.c:1435:
+^I^Ireq->se->op.flush(req, nodeid, &fi);$

ERROR: code indent should never use tabs
#1457: FILE: tools/virtiofsd/fuse_lowlevel.c:1436:
+^Ielse$

ERROR: code indent should never use tabs
#1458: FILE: tools/virtiofsd/fuse_lowlevel.c:1437:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1463: FILE: tools/virtiofsd/fuse_lowlevel.c:1442:
+^Istruct fuse_release_in *arg = (struct fuse_release_in *) inarg;$

ERROR: code indent should never use tabs
#1464: FILE: tools/virtiofsd/fuse_lowlevel.c:1443:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1466: FILE: tools/virtiofsd/fuse_lowlevel.c:1445:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1467: FILE: tools/virtiofsd/fuse_lowlevel.c:1446:
+^Ifi.flags = arg->flags;$

ERROR: code indent should never use tabs
#1468: FILE: tools/virtiofsd/fuse_lowlevel.c:1447:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1469: FILE: tools/virtiofsd/fuse_lowlevel.c:1448:
+^Iif (req->se->conn.proto_minor >= 8) {$

ERROR: code indent should never use tabs
#1470: FILE: tools/virtiofsd/fuse_lowlevel.c:1449:
+^I^Ifi.flush = (arg->release_flags & FUSE_RELEASE_FLUSH) ? 1 : 0;$

ERROR: code indent should never use tabs
#1471: FILE: tools/virtiofsd/fuse_lowlevel.c:1450:
+^I^Ifi.lock_owner = arg->lock_owner;$

ERROR: code indent should never use tabs
#1472: FILE: tools/virtiofsd/fuse_lowlevel.c:1451:
+^I}$

ERROR: code indent should never use tabs
#1473: FILE: tools/virtiofsd/fuse_lowlevel.c:1452:
+^Iif (arg->release_flags & FUSE_RELEASE_FLOCK_UNLOCK) {$

ERROR: code indent should never use tabs
#1474: FILE: tools/virtiofsd/fuse_lowlevel.c:1453:
+^I^Ifi.flock_release = 1;$

ERROR: code indent should never use tabs
#1475: FILE: tools/virtiofsd/fuse_lowlevel.c:1454:
+^I^Ifi.lock_owner = arg->lock_owner;$

ERROR: code indent should never use tabs
#1476: FILE: tools/virtiofsd/fuse_lowlevel.c:1455:
+^I}$

ERROR: code indent should never use tabs
#1478: FILE: tools/virtiofsd/fuse_lowlevel.c:1457:
+^Iif (req->se->op.release)$

ERROR: braces {} are necessary for all arms of this statement
#1478: FILE: tools/virtiofsd/fuse_lowlevel.c:1457:
+       if (req->se->op.release)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1479: FILE: tools/virtiofsd/fuse_lowlevel.c:1458:
+^I^Ireq->se->op.release(req, nodeid, &fi);$

ERROR: code indent should never use tabs
#1480: FILE: tools/virtiofsd/fuse_lowlevel.c:1459:
+^Ielse$

ERROR: code indent should never use tabs
#1481: FILE: tools/virtiofsd/fuse_lowlevel.c:1460:
+^I^Ifuse_reply_err(req, 0);$

ERROR: code indent should never use tabs
#1486: FILE: tools/virtiofsd/fuse_lowlevel.c:1465:
+^Istruct fuse_fsync_in *arg = (struct fuse_fsync_in *) inarg;$

ERROR: code indent should never use tabs
#1487: FILE: tools/virtiofsd/fuse_lowlevel.c:1466:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1488: FILE: tools/virtiofsd/fuse_lowlevel.c:1467:
+^Iint datasync = arg->fsync_flags & 1;$

ERROR: code indent should never use tabs
#1490: FILE: tools/virtiofsd/fuse_lowlevel.c:1469:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1491: FILE: tools/virtiofsd/fuse_lowlevel.c:1470:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1493: FILE: tools/virtiofsd/fuse_lowlevel.c:1472:
+^Iif (req->se->op.fsync)$

ERROR: braces {} are necessary for all arms of this statement
#1493: FILE: tools/virtiofsd/fuse_lowlevel.c:1472:
+       if (req->se->op.fsync)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1494: FILE: tools/virtiofsd/fuse_lowlevel.c:1473:
+^I^Ireq->se->op.fsync(req, nodeid, datasync, &fi);$

ERROR: code indent should never use tabs
#1495: FILE: tools/virtiofsd/fuse_lowlevel.c:1474:
+^Ielse$

ERROR: code indent should never use tabs
#1496: FILE: tools/virtiofsd/fuse_lowlevel.c:1475:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1501: FILE: tools/virtiofsd/fuse_lowlevel.c:1480:
+^Istruct fuse_open_in *arg = (struct fuse_open_in *) inarg;$

ERROR: code indent should never use tabs
#1502: FILE: tools/virtiofsd/fuse_lowlevel.c:1481:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1504: FILE: tools/virtiofsd/fuse_lowlevel.c:1483:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1505: FILE: tools/virtiofsd/fuse_lowlevel.c:1484:
+^Ifi.flags = arg->flags;$

ERROR: code indent should never use tabs
#1507: FILE: tools/virtiofsd/fuse_lowlevel.c:1486:
+^Iif (req->se->op.opendir)$

ERROR: braces {} are necessary for all arms of this statement
#1507: FILE: tools/virtiofsd/fuse_lowlevel.c:1486:
+       if (req->se->op.opendir)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1508: FILE: tools/virtiofsd/fuse_lowlevel.c:1487:
+^I^Ireq->se->op.opendir(req, nodeid, &fi);$

ERROR: code indent should never use tabs
#1509: FILE: tools/virtiofsd/fuse_lowlevel.c:1488:
+^Ielse$

ERROR: code indent should never use tabs
#1510: FILE: tools/virtiofsd/fuse_lowlevel.c:1489:
+^I^Ifuse_reply_open(req, &fi);$

ERROR: code indent should never use tabs
#1515: FILE: tools/virtiofsd/fuse_lowlevel.c:1494:
+^Istruct fuse_read_in *arg = (struct fuse_read_in *) inarg;$

ERROR: code indent should never use tabs
#1516: FILE: tools/virtiofsd/fuse_lowlevel.c:1495:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1518: FILE: tools/virtiofsd/fuse_lowlevel.c:1497:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1519: FILE: tools/virtiofsd/fuse_lowlevel.c:1498:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1521: FILE: tools/virtiofsd/fuse_lowlevel.c:1500:
+^Iif (req->se->op.readdir)$

ERROR: braces {} are necessary for all arms of this statement
#1521: FILE: tools/virtiofsd/fuse_lowlevel.c:1500:
+       if (req->se->op.readdir)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1522: FILE: tools/virtiofsd/fuse_lowlevel.c:1501:
+^I^Ireq->se->op.readdir(req, nodeid, arg->size, arg->offset, &fi);$

ERROR: code indent should never use tabs
#1523: FILE: tools/virtiofsd/fuse_lowlevel.c:1502:
+^Ielse$

ERROR: code indent should never use tabs
#1524: FILE: tools/virtiofsd/fuse_lowlevel.c:1503:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1529: FILE: tools/virtiofsd/fuse_lowlevel.c:1508:
+^Istruct fuse_read_in *arg = (struct fuse_read_in *) inarg;$

ERROR: code indent should never use tabs
#1530: FILE: tools/virtiofsd/fuse_lowlevel.c:1509:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1532: FILE: tools/virtiofsd/fuse_lowlevel.c:1511:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1533: FILE: tools/virtiofsd/fuse_lowlevel.c:1512:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1535: FILE: tools/virtiofsd/fuse_lowlevel.c:1514:
+^Iif (req->se->op.readdirplus)$

ERROR: braces {} are necessary for all arms of this statement
#1535: FILE: tools/virtiofsd/fuse_lowlevel.c:1514:
+       if (req->se->op.readdirplus)
[...]
+       else
[...]

WARNING: line over 80 characters
#1536: FILE: tools/virtiofsd/fuse_lowlevel.c:1515:
+               req->se->op.readdirplus(req, nodeid, arg->size, arg->offset, &fi);

ERROR: code indent should never use tabs
#1536: FILE: tools/virtiofsd/fuse_lowlevel.c:1515:
+^I^Ireq->se->op.readdirplus(req, nodeid, arg->size, arg->offset, &fi);$

ERROR: code indent should never use tabs
#1537: FILE: tools/virtiofsd/fuse_lowlevel.c:1516:
+^Ielse$

ERROR: code indent should never use tabs
#1538: FILE: tools/virtiofsd/fuse_lowlevel.c:1517:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1543: FILE: tools/virtiofsd/fuse_lowlevel.c:1522:
+^Istruct fuse_release_in *arg = (struct fuse_release_in *) inarg;$

ERROR: code indent should never use tabs
#1544: FILE: tools/virtiofsd/fuse_lowlevel.c:1523:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1546: FILE: tools/virtiofsd/fuse_lowlevel.c:1525:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1547: FILE: tools/virtiofsd/fuse_lowlevel.c:1526:
+^Ifi.flags = arg->flags;$

ERROR: code indent should never use tabs
#1548: FILE: tools/virtiofsd/fuse_lowlevel.c:1527:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1550: FILE: tools/virtiofsd/fuse_lowlevel.c:1529:
+^Iif (req->se->op.releasedir)$

ERROR: braces {} are necessary for all arms of this statement
#1550: FILE: tools/virtiofsd/fuse_lowlevel.c:1529:
+       if (req->se->op.releasedir)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1551: FILE: tools/virtiofsd/fuse_lowlevel.c:1530:
+^I^Ireq->se->op.releasedir(req, nodeid, &fi);$

ERROR: code indent should never use tabs
#1552: FILE: tools/virtiofsd/fuse_lowlevel.c:1531:
+^Ielse$

ERROR: code indent should never use tabs
#1553: FILE: tools/virtiofsd/fuse_lowlevel.c:1532:
+^I^Ifuse_reply_err(req, 0);$

ERROR: code indent should never use tabs
#1558: FILE: tools/virtiofsd/fuse_lowlevel.c:1537:
+^Istruct fuse_fsync_in *arg = (struct fuse_fsync_in *) inarg;$

ERROR: code indent should never use tabs
#1559: FILE: tools/virtiofsd/fuse_lowlevel.c:1538:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1560: FILE: tools/virtiofsd/fuse_lowlevel.c:1539:
+^Iint datasync = arg->fsync_flags & 1;$

ERROR: code indent should never use tabs
#1562: FILE: tools/virtiofsd/fuse_lowlevel.c:1541:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1563: FILE: tools/virtiofsd/fuse_lowlevel.c:1542:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1565: FILE: tools/virtiofsd/fuse_lowlevel.c:1544:
+^Iif (req->se->op.fsyncdir)$

ERROR: braces {} are necessary for all arms of this statement
#1565: FILE: tools/virtiofsd/fuse_lowlevel.c:1544:
+       if (req->se->op.fsyncdir)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1566: FILE: tools/virtiofsd/fuse_lowlevel.c:1545:
+^I^Ireq->se->op.fsyncdir(req, nodeid, datasync, &fi);$

ERROR: code indent should never use tabs
#1567: FILE: tools/virtiofsd/fuse_lowlevel.c:1546:
+^Ielse$

ERROR: code indent should never use tabs
#1568: FILE: tools/virtiofsd/fuse_lowlevel.c:1547:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1573: FILE: tools/virtiofsd/fuse_lowlevel.c:1552:
+^I(void) nodeid;$

ERROR: code indent should never use tabs
#1574: FILE: tools/virtiofsd/fuse_lowlevel.c:1553:
+^I(void) inarg;$

ERROR: code indent should never use tabs
#1576: FILE: tools/virtiofsd/fuse_lowlevel.c:1555:
+^Iif (req->se->op.statfs)$

ERROR: code indent should never use tabs
#1577: FILE: tools/virtiofsd/fuse_lowlevel.c:1556:
+^I^Ireq->se->op.statfs(req, nodeid);$

ERROR: code indent should never use tabs
#1578: FILE: tools/virtiofsd/fuse_lowlevel.c:1557:
+^Ielse {$

ERROR: code indent should never use tabs
#1579: FILE: tools/virtiofsd/fuse_lowlevel.c:1558:
+^I^Istruct statvfs buf = {$

ERROR: code indent should never use tabs
#1580: FILE: tools/virtiofsd/fuse_lowlevel.c:1559:
+^I^I^I.f_namemax = 255,$

ERROR: code indent should never use tabs
#1581: FILE: tools/virtiofsd/fuse_lowlevel.c:1560:
+^I^I^I.f_bsize = 512,$

ERROR: code indent should never use tabs
#1582: FILE: tools/virtiofsd/fuse_lowlevel.c:1561:
+^I^I};$

ERROR: code indent should never use tabs
#1583: FILE: tools/virtiofsd/fuse_lowlevel.c:1562:
+^I^Ifuse_reply_statfs(req, &buf);$

ERROR: code indent should never use tabs
#1584: FILE: tools/virtiofsd/fuse_lowlevel.c:1563:
+^I}$

ERROR: code indent should never use tabs
#1589: FILE: tools/virtiofsd/fuse_lowlevel.c:1568:
+^Istruct fuse_setxattr_in *arg = (struct fuse_setxattr_in *) inarg;$

ERROR: code indent should never use tabs
#1590: FILE: tools/virtiofsd/fuse_lowlevel.c:1569:
+^Ichar *name = PARAM(arg);$

ERROR: code indent should never use tabs
#1591: FILE: tools/virtiofsd/fuse_lowlevel.c:1570:
+^Ichar *value = name + strlen(name) + 1;$

ERROR: code indent should never use tabs
#1593: FILE: tools/virtiofsd/fuse_lowlevel.c:1572:
+^Iif (req->se->op.setxattr)$

ERROR: code indent should never use tabs
#1594: FILE: tools/virtiofsd/fuse_lowlevel.c:1573:
+^I^Ireq->se->op.setxattr(req, nodeid, name, value, arg->size,$

ERROR: code indent should never use tabs
#1595: FILE: tools/virtiofsd/fuse_lowlevel.c:1574:
+^I^I^I^I    arg->flags);$

ERROR: code indent should never use tabs
#1596: FILE: tools/virtiofsd/fuse_lowlevel.c:1575:
+^Ielse$

ERROR: code indent should never use tabs
#1597: FILE: tools/virtiofsd/fuse_lowlevel.c:1576:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1602: FILE: tools/virtiofsd/fuse_lowlevel.c:1581:
+^Istruct fuse_getxattr_in *arg = (struct fuse_getxattr_in *) inarg;$

ERROR: code indent should never use tabs
#1604: FILE: tools/virtiofsd/fuse_lowlevel.c:1583:
+^Iif (req->se->op.getxattr)$

ERROR: braces {} are necessary for all arms of this statement
#1604: FILE: tools/virtiofsd/fuse_lowlevel.c:1583:
+       if (req->se->op.getxattr)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1605: FILE: tools/virtiofsd/fuse_lowlevel.c:1584:
+^I^Ireq->se->op.getxattr(req, nodeid, PARAM(arg), arg->size);$

ERROR: code indent should never use tabs
#1606: FILE: tools/virtiofsd/fuse_lowlevel.c:1585:
+^Ielse$

ERROR: code indent should never use tabs
#1607: FILE: tools/virtiofsd/fuse_lowlevel.c:1586:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1612: FILE: tools/virtiofsd/fuse_lowlevel.c:1591:
+^Istruct fuse_getxattr_in *arg = (struct fuse_getxattr_in *) inarg;$

ERROR: code indent should never use tabs
#1614: FILE: tools/virtiofsd/fuse_lowlevel.c:1593:
+^Iif (req->se->op.listxattr)$

ERROR: braces {} are necessary for all arms of this statement
#1614: FILE: tools/virtiofsd/fuse_lowlevel.c:1593:
+       if (req->se->op.listxattr)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1615: FILE: tools/virtiofsd/fuse_lowlevel.c:1594:
+^I^Ireq->se->op.listxattr(req, nodeid, arg->size);$

ERROR: code indent should never use tabs
#1616: FILE: tools/virtiofsd/fuse_lowlevel.c:1595:
+^Ielse$

ERROR: code indent should never use tabs
#1617: FILE: tools/virtiofsd/fuse_lowlevel.c:1596:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1622: FILE: tools/virtiofsd/fuse_lowlevel.c:1601:
+^Ichar *name = (char *) inarg;$

ERROR: code indent should never use tabs
#1624: FILE: tools/virtiofsd/fuse_lowlevel.c:1603:
+^Iif (req->se->op.removexattr)$

ERROR: braces {} are necessary for all arms of this statement
#1624: FILE: tools/virtiofsd/fuse_lowlevel.c:1603:
+       if (req->se->op.removexattr)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1625: FILE: tools/virtiofsd/fuse_lowlevel.c:1604:
+^I^Ireq->se->op.removexattr(req, nodeid, name);$

ERROR: code indent should never use tabs
#1626: FILE: tools/virtiofsd/fuse_lowlevel.c:1605:
+^Ielse$

ERROR: code indent should never use tabs
#1627: FILE: tools/virtiofsd/fuse_lowlevel.c:1606:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1631: FILE: tools/virtiofsd/fuse_lowlevel.c:1610:
+^I^I^I^I   struct flock *flock)$

ERROR: code indent should never use tabs
#1633: FILE: tools/virtiofsd/fuse_lowlevel.c:1612:
+^Imemset(flock, 0, sizeof(struct flock));$

ERROR: code indent should never use tabs
#1634: FILE: tools/virtiofsd/fuse_lowlevel.c:1613:
+^Iflock->l_type = fl->type;$

ERROR: code indent should never use tabs
#1635: FILE: tools/virtiofsd/fuse_lowlevel.c:1614:
+^Iflock->l_whence = SEEK_SET;$

ERROR: code indent should never use tabs
#1636: FILE: tools/virtiofsd/fuse_lowlevel.c:1615:
+^Iflock->l_start = fl->start;$

ERROR: code indent should never use tabs
#1637: FILE: tools/virtiofsd/fuse_lowlevel.c:1616:
+^Iif (fl->end == OFFSET_MAX)$

ERROR: braces {} are necessary for all arms of this statement
#1637: FILE: tools/virtiofsd/fuse_lowlevel.c:1616:
+       if (fl->end == OFFSET_MAX)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1638: FILE: tools/virtiofsd/fuse_lowlevel.c:1617:
+^I^Iflock->l_len = 0;$

ERROR: code indent should never use tabs
#1639: FILE: tools/virtiofsd/fuse_lowlevel.c:1618:
+^Ielse$

ERROR: code indent should never use tabs
#1640: FILE: tools/virtiofsd/fuse_lowlevel.c:1619:
+^I^Iflock->l_len = fl->end - fl->start + 1;$

ERROR: code indent should never use tabs
#1641: FILE: tools/virtiofsd/fuse_lowlevel.c:1620:
+^Iflock->l_pid = fl->pid;$

ERROR: code indent should never use tabs
#1646: FILE: tools/virtiofsd/fuse_lowlevel.c:1625:
+^Istruct fuse_lk_in *arg = (struct fuse_lk_in *) inarg;$

ERROR: code indent should never use tabs
#1647: FILE: tools/virtiofsd/fuse_lowlevel.c:1626:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1648: FILE: tools/virtiofsd/fuse_lowlevel.c:1627:
+^Istruct flock flock;$

ERROR: code indent should never use tabs
#1650: FILE: tools/virtiofsd/fuse_lowlevel.c:1629:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1651: FILE: tools/virtiofsd/fuse_lowlevel.c:1630:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1652: FILE: tools/virtiofsd/fuse_lowlevel.c:1631:
+^Ifi.lock_owner = arg->owner;$

ERROR: code indent should never use tabs
#1654: FILE: tools/virtiofsd/fuse_lowlevel.c:1633:
+^Iconvert_fuse_file_lock(&arg->lk, &flock);$

ERROR: code indent should never use tabs
#1655: FILE: tools/virtiofsd/fuse_lowlevel.c:1634:
+^Iif (req->se->op.getlk)$

ERROR: braces {} are necessary for all arms of this statement
#1655: FILE: tools/virtiofsd/fuse_lowlevel.c:1634:
+       if (req->se->op.getlk)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1656: FILE: tools/virtiofsd/fuse_lowlevel.c:1635:
+^I^Ireq->se->op.getlk(req, nodeid, &fi, &flock);$

ERROR: code indent should never use tabs
#1657: FILE: tools/virtiofsd/fuse_lowlevel.c:1636:
+^Ielse$

ERROR: code indent should never use tabs
#1658: FILE: tools/virtiofsd/fuse_lowlevel.c:1637:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1662: FILE: tools/virtiofsd/fuse_lowlevel.c:1641:
+^I^I^I    const void *inarg, int sleep)$

ERROR: code indent should never use tabs
#1664: FILE: tools/virtiofsd/fuse_lowlevel.c:1643:
+^Istruct fuse_lk_in *arg = (struct fuse_lk_in *) inarg;$

ERROR: code indent should never use tabs
#1665: FILE: tools/virtiofsd/fuse_lowlevel.c:1644:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1666: FILE: tools/virtiofsd/fuse_lowlevel.c:1645:
+^Istruct flock flock;$

ERROR: code indent should never use tabs
#1668: FILE: tools/virtiofsd/fuse_lowlevel.c:1647:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1669: FILE: tools/virtiofsd/fuse_lowlevel.c:1648:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1670: FILE: tools/virtiofsd/fuse_lowlevel.c:1649:
+^Ifi.lock_owner = arg->owner;$

ERROR: code indent should never use tabs
#1672: FILE: tools/virtiofsd/fuse_lowlevel.c:1651:
+^Iif (arg->lk_flags & FUSE_LK_FLOCK) {$

ERROR: code indent should never use tabs
#1673: FILE: tools/virtiofsd/fuse_lowlevel.c:1652:
+^I^Iint op = 0;$

ERROR: code indent should never use tabs
#1675: FILE: tools/virtiofsd/fuse_lowlevel.c:1654:
+^I^Iswitch (arg->lk.type) {$

ERROR: code indent should never use tabs
#1676: FILE: tools/virtiofsd/fuse_lowlevel.c:1655:
+^I^Icase F_RDLCK:$

ERROR: code indent should never use tabs
#1677: FILE: tools/virtiofsd/fuse_lowlevel.c:1656:
+^I^I^Iop = LOCK_SH;$

ERROR: code indent should never use tabs
#1678: FILE: tools/virtiofsd/fuse_lowlevel.c:1657:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#1679: FILE: tools/virtiofsd/fuse_lowlevel.c:1658:
+^I^Icase F_WRLCK:$

ERROR: code indent should never use tabs
#1680: FILE: tools/virtiofsd/fuse_lowlevel.c:1659:
+^I^I^Iop = LOCK_EX;$

ERROR: code indent should never use tabs
#1681: FILE: tools/virtiofsd/fuse_lowlevel.c:1660:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#1682: FILE: tools/virtiofsd/fuse_lowlevel.c:1661:
+^I^Icase F_UNLCK:$

ERROR: code indent should never use tabs
#1683: FILE: tools/virtiofsd/fuse_lowlevel.c:1662:
+^I^I^Iop = LOCK_UN;$

ERROR: code indent should never use tabs
#1684: FILE: tools/virtiofsd/fuse_lowlevel.c:1663:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#1685: FILE: tools/virtiofsd/fuse_lowlevel.c:1664:
+^I^I}$

ERROR: code indent should never use tabs
#1686: FILE: tools/virtiofsd/fuse_lowlevel.c:1665:
+^I^Iif (!sleep)$

ERROR: braces {} are necessary for all arms of this statement
#1686: FILE: tools/virtiofsd/fuse_lowlevel.c:1665:
+               if (!sleep)
[...]

ERROR: code indent should never use tabs
#1687: FILE: tools/virtiofsd/fuse_lowlevel.c:1666:
+^I^I^Iop |= LOCK_NB;$

ERROR: code indent should never use tabs
#1689: FILE: tools/virtiofsd/fuse_lowlevel.c:1668:
+^I^Iif (req->se->op.flock)$

ERROR: braces {} are necessary for all arms of this statement
#1689: FILE: tools/virtiofsd/fuse_lowlevel.c:1668:
+               if (req->se->op.flock)
[...]
+               else
[...]

ERROR: code indent should never use tabs
#1690: FILE: tools/virtiofsd/fuse_lowlevel.c:1669:
+^I^I^Ireq->se->op.flock(req, nodeid, &fi, op);$

ERROR: code indent should never use tabs
#1691: FILE: tools/virtiofsd/fuse_lowlevel.c:1670:
+^I^Ielse$

ERROR: code indent should never use tabs
#1692: FILE: tools/virtiofsd/fuse_lowlevel.c:1671:
+^I^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1693: FILE: tools/virtiofsd/fuse_lowlevel.c:1672:
+^I} else {$

ERROR: code indent should never use tabs
#1694: FILE: tools/virtiofsd/fuse_lowlevel.c:1673:
+^I^Iconvert_fuse_file_lock(&arg->lk, &flock);$

ERROR: code indent should never use tabs
#1695: FILE: tools/virtiofsd/fuse_lowlevel.c:1674:
+^I^Iif (req->se->op.setlk)$

ERROR: braces {} are necessary for all arms of this statement
#1695: FILE: tools/virtiofsd/fuse_lowlevel.c:1674:
+               if (req->se->op.setlk)
[...]
+               else
[...]

ERROR: code indent should never use tabs
#1696: FILE: tools/virtiofsd/fuse_lowlevel.c:1675:
+^I^I^Ireq->se->op.setlk(req, nodeid, &fi, &flock, sleep);$

ERROR: code indent should never use tabs
#1697: FILE: tools/virtiofsd/fuse_lowlevel.c:1676:
+^I^Ielse$

ERROR: code indent should never use tabs
#1698: FILE: tools/virtiofsd/fuse_lowlevel.c:1677:
+^I^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1699: FILE: tools/virtiofsd/fuse_lowlevel.c:1678:
+^I}$

ERROR: code indent should never use tabs
#1704: FILE: tools/virtiofsd/fuse_lowlevel.c:1683:
+^Ido_setlk_common(req, nodeid, inarg, 0);$

ERROR: code indent should never use tabs
#1709: FILE: tools/virtiofsd/fuse_lowlevel.c:1688:
+^Ido_setlk_common(req, nodeid, inarg, 1);$

ERROR: code indent should never use tabs
#1714: FILE: tools/virtiofsd/fuse_lowlevel.c:1693:
+^Istruct fuse_req *curr;$

ERROR: code indent should never use tabs
#1716: FILE: tools/virtiofsd/fuse_lowlevel.c:1695:
+^Ifor (curr = se->list.next; curr != &se->list; curr = curr->next) {$

ERROR: code indent should never use tabs
#1717: FILE: tools/virtiofsd/fuse_lowlevel.c:1696:
+^I^Iif (curr->unique == req->u.i.unique) {$

ERROR: code indent should never use tabs
#1718: FILE: tools/virtiofsd/fuse_lowlevel.c:1697:
+^I^I^Ifuse_interrupt_func_t func;$

ERROR: code indent should never use tabs
#1719: FILE: tools/virtiofsd/fuse_lowlevel.c:1698:
+^I^I^Ivoid *data;$

ERROR: code indent should never use tabs
#1721: FILE: tools/virtiofsd/fuse_lowlevel.c:1700:
+^I^I^Icurr->ctr++;$

ERROR: code indent should never use tabs
#1722: FILE: tools/virtiofsd/fuse_lowlevel.c:1701:
+^I^I^Ipthread_mutex_unlock(&se->lock);$

ERROR: code indent should never use tabs
#1724: FILE: tools/virtiofsd/fuse_lowlevel.c:1703:
+^I^I^I/* Ugh, ugly locking */$

ERROR: code indent should never use tabs
#1725: FILE: tools/virtiofsd/fuse_lowlevel.c:1704:
+^I^I^Ipthread_mutex_lock(&curr->lock);$

ERROR: code indent should never use tabs
#1726: FILE: tools/virtiofsd/fuse_lowlevel.c:1705:
+^I^I^Ipthread_mutex_lock(&se->lock);$

ERROR: code indent should never use tabs
#1727: FILE: tools/virtiofsd/fuse_lowlevel.c:1706:
+^I^I^Icurr->interrupted = 1;$

ERROR: code indent should never use tabs
#1728: FILE: tools/virtiofsd/fuse_lowlevel.c:1707:
+^I^I^Ifunc = curr->u.ni.func;$

ERROR: code indent should never use tabs
#1729: FILE: tools/virtiofsd/fuse_lowlevel.c:1708:
+^I^I^Idata = curr->u.ni.data;$

ERROR: code indent should never use tabs
#1730: FILE: tools/virtiofsd/fuse_lowlevel.c:1709:
+^I^I^Ipthread_mutex_unlock(&se->lock);$

ERROR: code indent should never use tabs
#1731: FILE: tools/virtiofsd/fuse_lowlevel.c:1710:
+^I^I^Iif (func)$

ERROR: braces {} are necessary for all arms of this statement
#1731: FILE: tools/virtiofsd/fuse_lowlevel.c:1710:
+                       if (func)
[...]

ERROR: code indent should never use tabs
#1732: FILE: tools/virtiofsd/fuse_lowlevel.c:1711:
+^I^I^I^Ifunc(curr, data);$

ERROR: code indent should never use tabs
#1733: FILE: tools/virtiofsd/fuse_lowlevel.c:1712:
+^I^I^Ipthread_mutex_unlock(&curr->lock);$

ERROR: code indent should never use tabs
#1735: FILE: tools/virtiofsd/fuse_lowlevel.c:1714:
+^I^I^Ipthread_mutex_lock(&se->lock);$

ERROR: code indent should never use tabs
#1736: FILE: tools/virtiofsd/fuse_lowlevel.c:1715:
+^I^I^Icurr->ctr--;$

ERROR: code indent should never use tabs
#1737: FILE: tools/virtiofsd/fuse_lowlevel.c:1716:
+^I^I^Iif (!curr->ctr)$

ERROR: braces {} are necessary for all arms of this statement
#1737: FILE: tools/virtiofsd/fuse_lowlevel.c:1716:
+                       if (!curr->ctr)
[...]

ERROR: code indent should never use tabs
#1738: FILE: tools/virtiofsd/fuse_lowlevel.c:1717:
+^I^I^I^Idestroy_req(curr);$

ERROR: code indent should never use tabs
#1740: FILE: tools/virtiofsd/fuse_lowlevel.c:1719:
+^I^I^Ireturn 1;$

ERROR: code indent should never use tabs
#1741: FILE: tools/virtiofsd/fuse_lowlevel.c:1720:
+^I^I}$

ERROR: code indent should never use tabs
#1742: FILE: tools/virtiofsd/fuse_lowlevel.c:1721:
+^I}$

ERROR: code indent should never use tabs
#1743: FILE: tools/virtiofsd/fuse_lowlevel.c:1722:
+^Ifor (curr = se->interrupts.next; curr != &se->interrupts;$

ERROR: code indent should never use tabs
#1744: FILE: tools/virtiofsd/fuse_lowlevel.c:1723:
+^I     curr = curr->next) {$

ERROR: code indent should never use tabs
#1745: FILE: tools/virtiofsd/fuse_lowlevel.c:1724:
+^I^Iif (curr->u.i.unique == req->u.i.unique)$

ERROR: braces {} are necessary for all arms of this statement
#1745: FILE: tools/virtiofsd/fuse_lowlevel.c:1724:
+               if (curr->u.i.unique == req->u.i.unique)
[...]

ERROR: code indent should never use tabs
#1746: FILE: tools/virtiofsd/fuse_lowlevel.c:1725:
+^I^I^Ireturn 1;$

ERROR: code indent should never use tabs
#1747: FILE: tools/virtiofsd/fuse_lowlevel.c:1726:
+^I}$

ERROR: code indent should never use tabs
#1748: FILE: tools/virtiofsd/fuse_lowlevel.c:1727:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#1753: FILE: tools/virtiofsd/fuse_lowlevel.c:1732:
+^Istruct fuse_interrupt_in *arg = (struct fuse_interrupt_in *) inarg;$

ERROR: code indent should never use tabs
#1754: FILE: tools/virtiofsd/fuse_lowlevel.c:1733:
+^Istruct fuse_session *se = req->se;$

ERROR: code indent should never use tabs
#1756: FILE: tools/virtiofsd/fuse_lowlevel.c:1735:
+^I(void) nodeid;$

ERROR: code indent should never use tabs
#1757: FILE: tools/virtiofsd/fuse_lowlevel.c:1736:
+^Iif (se->debug)$

ERROR: code indent should never use tabs
#1758: FILE: tools/virtiofsd/fuse_lowlevel.c:1737:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "INTERRUPT: %llu\n",$

ERROR: code indent should never use tabs
#1759: FILE: tools/virtiofsd/fuse_lowlevel.c:1738:
+^I^I^I(unsigned long long) arg->unique);$

ERROR: code indent should never use tabs
#1761: FILE: tools/virtiofsd/fuse_lowlevel.c:1740:
+^Ireq->u.i.unique = arg->unique;$

ERROR: code indent should never use tabs
#1763: FILE: tools/virtiofsd/fuse_lowlevel.c:1742:
+^Ipthread_mutex_lock(&se->lock);$

ERROR: code indent should never use tabs
#1764: FILE: tools/virtiofsd/fuse_lowlevel.c:1743:
+^Iif (find_interrupted(se, req))$

ERROR: braces {} are necessary for all arms of this statement
#1764: FILE: tools/virtiofsd/fuse_lowlevel.c:1743:
+       if (find_interrupted(se, req))
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1765: FILE: tools/virtiofsd/fuse_lowlevel.c:1744:
+^I^Idestroy_req(req);$

ERROR: code indent should never use tabs
#1766: FILE: tools/virtiofsd/fuse_lowlevel.c:1745:
+^Ielse$

ERROR: code indent should never use tabs
#1767: FILE: tools/virtiofsd/fuse_lowlevel.c:1746:
+^I^Ilist_add_req(req, &se->interrupts);$

ERROR: code indent should never use tabs
#1768: FILE: tools/virtiofsd/fuse_lowlevel.c:1747:
+^Ipthread_mutex_unlock(&se->lock);$

ERROR: code indent should never use tabs
#1772: FILE: tools/virtiofsd/fuse_lowlevel.c:1751:
+^I^I^I^I^Istruct fuse_req *req)$

ERROR: code indent should never use tabs
#1774: FILE: tools/virtiofsd/fuse_lowlevel.c:1753:
+^Istruct fuse_req *curr;$

ERROR: code indent should never use tabs
#1776: FILE: tools/virtiofsd/fuse_lowlevel.c:1755:
+^Ifor (curr = se->interrupts.next; curr != &se->interrupts;$

ERROR: code indent should never use tabs
#1777: FILE: tools/virtiofsd/fuse_lowlevel.c:1756:
+^I     curr = curr->next) {$

ERROR: code indent should never use tabs
#1778: FILE: tools/virtiofsd/fuse_lowlevel.c:1757:
+^I^Iif (curr->u.i.unique == req->unique) {$

ERROR: code indent should never use tabs
#1779: FILE: tools/virtiofsd/fuse_lowlevel.c:1758:
+^I^I^Ireq->interrupted = 1;$

ERROR: code indent should never use tabs
#1780: FILE: tools/virtiofsd/fuse_lowlevel.c:1759:
+^I^I^Ilist_del_req(curr);$

ERROR: code indent should never use tabs
#1781: FILE: tools/virtiofsd/fuse_lowlevel.c:1760:
+^I^I^Ifree(curr);$

ERROR: code indent should never use tabs
#1782: FILE: tools/virtiofsd/fuse_lowlevel.c:1761:
+^I^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#1783: FILE: tools/virtiofsd/fuse_lowlevel.c:1762:
+^I^I}$

ERROR: code indent should never use tabs
#1784: FILE: tools/virtiofsd/fuse_lowlevel.c:1763:
+^I}$

ERROR: code indent should never use tabs
#1785: FILE: tools/virtiofsd/fuse_lowlevel.c:1764:
+^Icurr = se->interrupts.next;$

ERROR: code indent should never use tabs
#1786: FILE: tools/virtiofsd/fuse_lowlevel.c:1765:
+^Iif (curr != &se->interrupts) {$

ERROR: code indent should never use tabs
#1787: FILE: tools/virtiofsd/fuse_lowlevel.c:1766:
+^I^Ilist_del_req(curr);$

ERROR: code indent should never use tabs
#1788: FILE: tools/virtiofsd/fuse_lowlevel.c:1767:
+^I^Ilist_init_req(curr);$

ERROR: code indent should never use tabs
#1789: FILE: tools/virtiofsd/fuse_lowlevel.c:1768:
+^I^Ireturn curr;$

ERROR: code indent should never use tabs
#1790: FILE: tools/virtiofsd/fuse_lowlevel.c:1769:
+^I} else$

ERROR: code indent should never use tabs
#1791: FILE: tools/virtiofsd/fuse_lowlevel.c:1770:
+^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#1796: FILE: tools/virtiofsd/fuse_lowlevel.c:1775:
+^Istruct fuse_bmap_in *arg = (struct fuse_bmap_in *) inarg;$

ERROR: code indent should never use tabs
#1798: FILE: tools/virtiofsd/fuse_lowlevel.c:1777:
+^Iif (req->se->op.bmap)$

ERROR: braces {} are necessary for all arms of this statement
#1798: FILE: tools/virtiofsd/fuse_lowlevel.c:1777:
+       if (req->se->op.bmap)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1799: FILE: tools/virtiofsd/fuse_lowlevel.c:1778:
+^I^Ireq->se->op.bmap(req, nodeid, arg->blocksize, arg->block);$

ERROR: code indent should never use tabs
#1800: FILE: tools/virtiofsd/fuse_lowlevel.c:1779:
+^Ielse$

ERROR: code indent should never use tabs
#1801: FILE: tools/virtiofsd/fuse_lowlevel.c:1780:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1806: FILE: tools/virtiofsd/fuse_lowlevel.c:1785:
+^Istruct fuse_ioctl_in *arg = (struct fuse_ioctl_in *) inarg;$

ERROR: code indent should never use tabs
#1807: FILE: tools/virtiofsd/fuse_lowlevel.c:1786:
+^Iunsigned int flags = arg->flags;$

ERROR: code indent should never use tabs
#1808: FILE: tools/virtiofsd/fuse_lowlevel.c:1787:
+^Ivoid *in_buf = arg->in_size ? PARAM(arg) : NULL;$

ERROR: code indent should never use tabs
#1809: FILE: tools/virtiofsd/fuse_lowlevel.c:1788:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1811: FILE: tools/virtiofsd/fuse_lowlevel.c:1790:
+^Iif (flags & FUSE_IOCTL_DIR &&$

ERROR: code indent should never use tabs
#1812: FILE: tools/virtiofsd/fuse_lowlevel.c:1791:
+^I    !(req->se->conn.want & FUSE_CAP_IOCTL_DIR)) {$

ERROR: code indent should never use tabs
#1813: FILE: tools/virtiofsd/fuse_lowlevel.c:1792:
+^I^Ifuse_reply_err(req, ENOTTY);$

ERROR: code indent should never use tabs
#1814: FILE: tools/virtiofsd/fuse_lowlevel.c:1793:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#1815: FILE: tools/virtiofsd/fuse_lowlevel.c:1794:
+^I}$

ERROR: code indent should never use tabs
#1817: FILE: tools/virtiofsd/fuse_lowlevel.c:1796:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1818: FILE: tools/virtiofsd/fuse_lowlevel.c:1797:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1820: FILE: tools/virtiofsd/fuse_lowlevel.c:1799:
+^Iif (sizeof(void *) == 4 && req->se->conn.proto_minor >= 16 &&$

ERROR: code indent should never use tabs
#1821: FILE: tools/virtiofsd/fuse_lowlevel.c:1800:
+^I    !(flags & FUSE_IOCTL_32BIT)) {$

ERROR: code indent should never use tabs
#1822: FILE: tools/virtiofsd/fuse_lowlevel.c:1801:
+^I^Ireq->ioctl_64bit = 1;$

ERROR: code indent should never use tabs
#1823: FILE: tools/virtiofsd/fuse_lowlevel.c:1802:
+^I}$

ERROR: code indent should never use tabs
#1825: FILE: tools/virtiofsd/fuse_lowlevel.c:1804:
+^Iif (req->se->op.ioctl)$

ERROR: code indent should never use tabs
#1826: FILE: tools/virtiofsd/fuse_lowlevel.c:1805:
+^I^Ireq->se->op.ioctl(req, nodeid, arg->cmd,$

ERROR: code indent should never use tabs
#1827: FILE: tools/virtiofsd/fuse_lowlevel.c:1806:
+^I^I^I^I (void *)(uintptr_t)arg->arg, &fi, flags,$

ERROR: code indent should never use tabs
#1828: FILE: tools/virtiofsd/fuse_lowlevel.c:1807:
+^I^I^I^I in_buf, arg->in_size, arg->out_size);$

ERROR: code indent should never use tabs
#1829: FILE: tools/virtiofsd/fuse_lowlevel.c:1808:
+^Ielse$

ERROR: code indent should never use tabs
#1830: FILE: tools/virtiofsd/fuse_lowlevel.c:1809:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1835: FILE: tools/virtiofsd/fuse_lowlevel.c:1814:
+^Ifree(ph);$

ERROR: code indent should never use tabs
#1840: FILE: tools/virtiofsd/fuse_lowlevel.c:1819:
+^Istruct fuse_poll_in *arg = (struct fuse_poll_in *) inarg;$

ERROR: code indent should never use tabs
#1841: FILE: tools/virtiofsd/fuse_lowlevel.c:1820:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1843: FILE: tools/virtiofsd/fuse_lowlevel.c:1822:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1844: FILE: tools/virtiofsd/fuse_lowlevel.c:1823:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1845: FILE: tools/virtiofsd/fuse_lowlevel.c:1824:
+^Ifi.poll_events = arg->events;$

ERROR: code indent should never use tabs
#1847: FILE: tools/virtiofsd/fuse_lowlevel.c:1826:
+^Iif (req->se->op.poll) {$

ERROR: code indent should never use tabs
#1848: FILE: tools/virtiofsd/fuse_lowlevel.c:1827:
+^I^Istruct fuse_pollhandle *ph = NULL;$

ERROR: code indent should never use tabs
#1850: FILE: tools/virtiofsd/fuse_lowlevel.c:1829:
+^I^Iif (arg->flags & FUSE_POLL_SCHEDULE_NOTIFY) {$

ERROR: code indent should never use tabs
#1851: FILE: tools/virtiofsd/fuse_lowlevel.c:1830:
+^I^I^Iph = malloc(sizeof(struct fuse_pollhandle));$

ERROR: code indent should never use tabs
#1852: FILE: tools/virtiofsd/fuse_lowlevel.c:1831:
+^I^I^Iif (ph == NULL) {$

ERROR: code indent should never use tabs
#1853: FILE: tools/virtiofsd/fuse_lowlevel.c:1832:
+^I^I^I^Ifuse_reply_err(req, ENOMEM);$

ERROR: code indent should never use tabs
#1854: FILE: tools/virtiofsd/fuse_lowlevel.c:1833:
+^I^I^I^Ireturn;$

ERROR: code indent should never use tabs
#1855: FILE: tools/virtiofsd/fuse_lowlevel.c:1834:
+^I^I^I}$

ERROR: code indent should never use tabs
#1856: FILE: tools/virtiofsd/fuse_lowlevel.c:1835:
+^I^I^Iph->kh = arg->kh;$

ERROR: code indent should never use tabs
#1857: FILE: tools/virtiofsd/fuse_lowlevel.c:1836:
+^I^I^Iph->se = req->se;$

ERROR: code indent should never use tabs
#1858: FILE: tools/virtiofsd/fuse_lowlevel.c:1837:
+^I^I}$

ERROR: code indent should never use tabs
#1860: FILE: tools/virtiofsd/fuse_lowlevel.c:1839:
+^I^Ireq->se->op.poll(req, nodeid, &fi, ph);$

ERROR: code indent should never use tabs
#1861: FILE: tools/virtiofsd/fuse_lowlevel.c:1840:
+^I} else {$

ERROR: code indent should never use tabs
#1862: FILE: tools/virtiofsd/fuse_lowlevel.c:1841:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1863: FILE: tools/virtiofsd/fuse_lowlevel.c:1842:
+^I}$

ERROR: code indent should never use tabs
#1868: FILE: tools/virtiofsd/fuse_lowlevel.c:1847:
+^Istruct fuse_fallocate_in *arg = (struct fuse_fallocate_in *) inarg;$

ERROR: code indent should never use tabs
#1869: FILE: tools/virtiofsd/fuse_lowlevel.c:1848:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1871: FILE: tools/virtiofsd/fuse_lowlevel.c:1850:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1872: FILE: tools/virtiofsd/fuse_lowlevel.c:1851:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1874: FILE: tools/virtiofsd/fuse_lowlevel.c:1853:
+^Iif (req->se->op.fallocate)$

ERROR: braces {} are necessary for all arms of this statement
#1874: FILE: tools/virtiofsd/fuse_lowlevel.c:1853:
+       if (req->se->op.fallocate)
[...]
+       else
[...]

ERROR: line over 90 characters
#1875: FILE: tools/virtiofsd/fuse_lowlevel.c:1854:
+               req->se->op.fallocate(req, nodeid, arg->mode, arg->offset, arg->length, &fi);

ERROR: code indent should never use tabs
#1875: FILE: tools/virtiofsd/fuse_lowlevel.c:1854:
+^I^Ireq->se->op.fallocate(req, nodeid, arg->mode, arg->offset, arg->length, &fi);$

ERROR: code indent should never use tabs
#1876: FILE: tools/virtiofsd/fuse_lowlevel.c:1855:
+^Ielse$

ERROR: code indent should never use tabs
#1877: FILE: tools/virtiofsd/fuse_lowlevel.c:1856:
+^I^Ifuse_reply_err(req, ENOSYS);$

WARNING: line over 80 characters
#1880: FILE: tools/virtiofsd/fuse_lowlevel.c:1859:
+static void do_copy_file_range(fuse_req_t req, fuse_ino_t nodeid_in, const void *inarg)

WARNING: line over 80 characters
#1882: FILE: tools/virtiofsd/fuse_lowlevel.c:1861:
+       struct fuse_copy_file_range_in *arg = (struct fuse_copy_file_range_in *) inarg;

ERROR: code indent should never use tabs
#1882: FILE: tools/virtiofsd/fuse_lowlevel.c:1861:
+^Istruct fuse_copy_file_range_in *arg = (struct fuse_copy_file_range_in *) inarg;$

ERROR: code indent should never use tabs
#1883: FILE: tools/virtiofsd/fuse_lowlevel.c:1862:
+^Istruct fuse_file_info fi_in, fi_out;$

ERROR: code indent should never use tabs
#1885: FILE: tools/virtiofsd/fuse_lowlevel.c:1864:
+^Imemset(&fi_in, 0, sizeof(fi_in));$

ERROR: code indent should never use tabs
#1886: FILE: tools/virtiofsd/fuse_lowlevel.c:1865:
+^Ifi_in.fh = arg->fh_in;$

ERROR: code indent should never use tabs
#1888: FILE: tools/virtiofsd/fuse_lowlevel.c:1867:
+^Imemset(&fi_out, 0, sizeof(fi_out));$

ERROR: code indent should never use tabs
#1889: FILE: tools/virtiofsd/fuse_lowlevel.c:1868:
+^Ifi_out.fh = arg->fh_out;$

ERROR: code indent should never use tabs
#1892: FILE: tools/virtiofsd/fuse_lowlevel.c:1871:
+^Iif (req->se->op.copy_file_range)$

ERROR: code indent should never use tabs
#1893: FILE: tools/virtiofsd/fuse_lowlevel.c:1872:
+^I^Ireq->se->op.copy_file_range(req, nodeid_in, arg->off_in,$

ERROR: code indent should never use tabs
#1894: FILE: tools/virtiofsd/fuse_lowlevel.c:1873:
+^I^I^I^I^I    &fi_in, arg->nodeid_out,$

ERROR: code indent should never use tabs
#1895: FILE: tools/virtiofsd/fuse_lowlevel.c:1874:
+^I^I^I^I^I    arg->off_out, &fi_out, arg->len,$

ERROR: code indent should never use tabs
#1896: FILE: tools/virtiofsd/fuse_lowlevel.c:1875:
+^I^I^I^I^I    arg->flags);$

ERROR: code indent should never use tabs
#1897: FILE: tools/virtiofsd/fuse_lowlevel.c:1876:
+^Ielse$

ERROR: code indent should never use tabs
#1898: FILE: tools/virtiofsd/fuse_lowlevel.c:1877:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1903: FILE: tools/virtiofsd/fuse_lowlevel.c:1882:
+^Istruct fuse_lseek_in *arg = (struct fuse_lseek_in *) inarg;$

ERROR: code indent should never use tabs
#1904: FILE: tools/virtiofsd/fuse_lowlevel.c:1883:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1906: FILE: tools/virtiofsd/fuse_lowlevel.c:1885:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1907: FILE: tools/virtiofsd/fuse_lowlevel.c:1886:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1909: FILE: tools/virtiofsd/fuse_lowlevel.c:1888:
+^Iif (req->se->op.lseek)$

ERROR: braces {} are necessary for all arms of this statement
#1909: FILE: tools/virtiofsd/fuse_lowlevel.c:1888:
+       if (req->se->op.lseek)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1910: FILE: tools/virtiofsd/fuse_lowlevel.c:1889:
+^I^Ireq->se->op.lseek(req, nodeid, arg->offset, arg->whence, &fi);$

ERROR: code indent should never use tabs
#1911: FILE: tools/virtiofsd/fuse_lowlevel.c:1890:
+^Ielse$

ERROR: code indent should never use tabs
#1912: FILE: tools/virtiofsd/fuse_lowlevel.c:1891:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1917: FILE: tools/virtiofsd/fuse_lowlevel.c:1896:
+^Istruct fuse_init_in *arg = (struct fuse_init_in *) inarg;$

ERROR: code indent should never use tabs
#1918: FILE: tools/virtiofsd/fuse_lowlevel.c:1897:
+^Istruct fuse_init_out outarg;$

ERROR: code indent should never use tabs
#1919: FILE: tools/virtiofsd/fuse_lowlevel.c:1898:
+^Istruct fuse_session *se = req->se;$

ERROR: code indent should never use tabs
#1920: FILE: tools/virtiofsd/fuse_lowlevel.c:1899:
+^Isize_t bufsize = se->bufsize;$

ERROR: code indent should never use tabs
#1921: FILE: tools/virtiofsd/fuse_lowlevel.c:1900:
+^Isize_t outargsize = sizeof(outarg);$

ERROR: code indent should never use tabs
#1923: FILE: tools/virtiofsd/fuse_lowlevel.c:1902:
+^I(void) nodeid;$

ERROR: code indent should never use tabs
#1924: FILE: tools/virtiofsd/fuse_lowlevel.c:1903:
+^Iif (se->debug) {$

WARNING: line over 80 characters
#1925: FILE: tools/virtiofsd/fuse_lowlevel.c:1904:
+               fuse_log(FUSE_LOG_DEBUG, "INIT: %u.%u\n", arg->major, arg->minor);

ERROR: code indent should never use tabs
#1925: FILE: tools/virtiofsd/fuse_lowlevel.c:1904:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "INIT: %u.%u\n", arg->major, arg->minor);$

ERROR: code indent should never use tabs
#1926: FILE: tools/virtiofsd/fuse_lowlevel.c:1905:
+^I^Iif (arg->major == 7 && arg->minor >= 6) {$

ERROR: code indent should never use tabs
#1927: FILE: tools/virtiofsd/fuse_lowlevel.c:1906:
+^I^I^Ifuse_log(FUSE_LOG_DEBUG, "flags=0x%08x\n", arg->flags);$

ERROR: code indent should never use tabs
#1928: FILE: tools/virtiofsd/fuse_lowlevel.c:1907:
+^I^I^Ifuse_log(FUSE_LOG_DEBUG, "max_readahead=0x%08x\n",$

ERROR: code indent should never use tabs
#1929: FILE: tools/virtiofsd/fuse_lowlevel.c:1908:
+^I^I^I^Iarg->max_readahead);$

ERROR: code indent should never use tabs
#1930: FILE: tools/virtiofsd/fuse_lowlevel.c:1909:
+^I^I}$

ERROR: code indent should never use tabs
#1931: FILE: tools/virtiofsd/fuse_lowlevel.c:1910:
+^I}$

ERROR: code indent should never use tabs
#1932: FILE: tools/virtiofsd/fuse_lowlevel.c:1911:
+^Ise->conn.proto_major = arg->major;$

ERROR: code indent should never use tabs
#1933: FILE: tools/virtiofsd/fuse_lowlevel.c:1912:
+^Ise->conn.proto_minor = arg->minor;$

ERROR: code indent should never use tabs
#1934: FILE: tools/virtiofsd/fuse_lowlevel.c:1913:
+^Ise->conn.capable = 0;$

ERROR: code indent should never use tabs
#1935: FILE: tools/virtiofsd/fuse_lowlevel.c:1914:
+^Ise->conn.want = 0;$

ERROR: code indent should never use tabs
#1937: FILE: tools/virtiofsd/fuse_lowlevel.c:1916:
+^Imemset(&outarg, 0, sizeof(outarg));$

ERROR: code indent should never use tabs
#1938: FILE: tools/virtiofsd/fuse_lowlevel.c:1917:
+^Ioutarg.major = FUSE_KERNEL_VERSION;$

ERROR: code indent should never use tabs
#1939: FILE: tools/virtiofsd/fuse_lowlevel.c:1918:
+^Ioutarg.minor = FUSE_KERNEL_MINOR_VERSION;$

ERROR: code indent should never use tabs
#1941: FILE: tools/virtiofsd/fuse_lowlevel.c:1920:
+^Iif (arg->major < 7) {$

WARNING: line over 80 characters
#1942: FILE: tools/virtiofsd/fuse_lowlevel.c:1921:
+               fuse_log(FUSE_LOG_ERR, "fuse: unsupported protocol version: %u.%u\n",

ERROR: code indent should never use tabs
#1942: FILE: tools/virtiofsd/fuse_lowlevel.c:1921:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: unsupported protocol version: %u.%u\n",$

ERROR: code indent should never use tabs
#1943: FILE: tools/virtiofsd/fuse_lowlevel.c:1922:
+^I^I^Iarg->major, arg->minor);$

ERROR: code indent should never use tabs
#1944: FILE: tools/virtiofsd/fuse_lowlevel.c:1923:
+^I^Ifuse_reply_err(req, EPROTO);$

ERROR: code indent should never use tabs
#1945: FILE: tools/virtiofsd/fuse_lowlevel.c:1924:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#1946: FILE: tools/virtiofsd/fuse_lowlevel.c:1925:
+^I}$

ERROR: code indent should never use tabs
#1948: FILE: tools/virtiofsd/fuse_lowlevel.c:1927:
+^Iif (arg->major > 7) {$

ERROR: code indent should never use tabs
#1949: FILE: tools/virtiofsd/fuse_lowlevel.c:1928:
+^I^I/* Wait for a second INIT request with a 7.X version */$

ERROR: code indent should never use tabs
#1950: FILE: tools/virtiofsd/fuse_lowlevel.c:1929:
+^I^Isend_reply_ok(req, &outarg, sizeof(outarg));$

ERROR: code indent should never use tabs
#1951: FILE: tools/virtiofsd/fuse_lowlevel.c:1930:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#1952: FILE: tools/virtiofsd/fuse_lowlevel.c:1931:
+^I}$

ERROR: code indent should never use tabs
#1954: FILE: tools/virtiofsd/fuse_lowlevel.c:1933:
+^Iif (arg->minor >= 6) {$

ERROR: code indent should never use tabs
#1955: FILE: tools/virtiofsd/fuse_lowlevel.c:1934:
+^I^Iif (arg->max_readahead < se->conn.max_readahead)$

ERROR: braces {} are necessary for all arms of this statement
#1955: FILE: tools/virtiofsd/fuse_lowlevel.c:1934:
+               if (arg->max_readahead < se->conn.max_readahead)
[...]

ERROR: code indent should never use tabs
#1956: FILE: tools/virtiofsd/fuse_lowlevel.c:1935:
+^I^I^Ise->conn.max_readahead = arg->max_readahead;$

ERROR: code indent should never use tabs
#1957: FILE: tools/virtiofsd/fuse_lowlevel.c:1936:
+^I^Iif (arg->flags & FUSE_ASYNC_READ)$

ERROR: braces {} are necessary for all arms of this statement
#1957: FILE: tools/virtiofsd/fuse_lowlevel.c:1936:
+               if (arg->flags & FUSE_ASYNC_READ)
[...]

ERROR: code indent should never use tabs
#1958: FILE: tools/virtiofsd/fuse_lowlevel.c:1937:
+^I^I^Ise->conn.capable |= FUSE_CAP_ASYNC_READ;$

ERROR: code indent should never use tabs
#1959: FILE: tools/virtiofsd/fuse_lowlevel.c:1938:
+^I^Iif (arg->flags & FUSE_POSIX_LOCKS)$

ERROR: braces {} are necessary for all arms of this statement
#1959: FILE: tools/virtiofsd/fuse_lowlevel.c:1938:
+               if (arg->flags & FUSE_POSIX_LOCKS)
[...]

ERROR: code indent should never use tabs
#1960: FILE: tools/virtiofsd/fuse_lowlevel.c:1939:
+^I^I^Ise->conn.capable |= FUSE_CAP_POSIX_LOCKS;$

ERROR: code indent should never use tabs
#1961: FILE: tools/virtiofsd/fuse_lowlevel.c:1940:
+^I^Iif (arg->flags & FUSE_ATOMIC_O_TRUNC)$

ERROR: braces {} are necessary for all arms of this statement
#1961: FILE: tools/virtiofsd/fuse_lowlevel.c:1940:
+               if (arg->flags & FUSE_ATOMIC_O_TRUNC)
[...]

ERROR: code indent should never use tabs
#1962: FILE: tools/virtiofsd/fuse_lowlevel.c:1941:
+^I^I^Ise->conn.capable |= FUSE_CAP_ATOMIC_O_TRUNC;$

ERROR: code indent should never use tabs
#1963: FILE: tools/virtiofsd/fuse_lowlevel.c:1942:
+^I^Iif (arg->flags & FUSE_EXPORT_SUPPORT)$

ERROR: braces {} are necessary for all arms of this statement
#1963: FILE: tools/virtiofsd/fuse_lowlevel.c:1942:
+               if (arg->flags & FUSE_EXPORT_SUPPORT)
[...]

ERROR: code indent should never use tabs
#1964: FILE: tools/virtiofsd/fuse_lowlevel.c:1943:
+^I^I^Ise->conn.capable |= FUSE_CAP_EXPORT_SUPPORT;$

ERROR: code indent should never use tabs
#1965: FILE: tools/virtiofsd/fuse_lowlevel.c:1944:
+^I^Iif (arg->flags & FUSE_DONT_MASK)$

ERROR: braces {} are necessary for all arms of this statement
#1965: FILE: tools/virtiofsd/fuse_lowlevel.c:1944:
+               if (arg->flags & FUSE_DONT_MASK)
[...]

ERROR: code indent should never use tabs
#1966: FILE: tools/virtiofsd/fuse_lowlevel.c:1945:
+^I^I^Ise->conn.capable |= FUSE_CAP_DONT_MASK;$

ERROR: code indent should never use tabs
#1967: FILE: tools/virtiofsd/fuse_lowlevel.c:1946:
+^I^Iif (arg->flags & FUSE_FLOCK_LOCKS)$

ERROR: braces {} are necessary for all arms of this statement
#1967: FILE: tools/virtiofsd/fuse_lowlevel.c:1946:
+               if (arg->flags & FUSE_FLOCK_LOCKS)
[...]

ERROR: code indent should never use tabs
#1968: FILE: tools/virtiofsd/fuse_lowlevel.c:1947:
+^I^I^Ise->conn.capable |= FUSE_CAP_FLOCK_LOCKS;$

ERROR: code indent should never use tabs
#1969: FILE: tools/virtiofsd/fuse_lowlevel.c:1948:
+^I^Iif (arg->flags & FUSE_AUTO_INVAL_DATA)$

ERROR: braces {} are necessary for all arms of this statement
#1969: FILE: tools/virtiofsd/fuse_lowlevel.c:1948:
+               if (arg->flags & FUSE_AUTO_INVAL_DATA)
[...]

ERROR: code indent should never use tabs
#1970: FILE: tools/virtiofsd/fuse_lowlevel.c:1949:
+^I^I^Ise->conn.capable |= FUSE_CAP_AUTO_INVAL_DATA;$

ERROR: code indent should never use tabs
#1971: FILE: tools/virtiofsd/fuse_lowlevel.c:1950:
+^I^Iif (arg->flags & FUSE_DO_READDIRPLUS)$

ERROR: braces {} are necessary for all arms of this statement
#1971: FILE: tools/virtiofsd/fuse_lowlevel.c:1950:
+               if (arg->flags & FUSE_DO_READDIRPLUS)
[...]

ERROR: code indent should never use tabs
#1972: FILE: tools/virtiofsd/fuse_lowlevel.c:1951:
+^I^I^Ise->conn.capable |= FUSE_CAP_READDIRPLUS;$

ERROR: code indent should never use tabs
#1973: FILE: tools/virtiofsd/fuse_lowlevel.c:1952:
+^I^Iif (arg->flags & FUSE_READDIRPLUS_AUTO)$

ERROR: braces {} are necessary for all arms of this statement
#1973: FILE: tools/virtiofsd/fuse_lowlevel.c:1952:
+               if (arg->flags & FUSE_READDIRPLUS_AUTO)
[...]

ERROR: code indent should never use tabs
#1974: FILE: tools/virtiofsd/fuse_lowlevel.c:1953:
+^I^I^Ise->conn.capable |= FUSE_CAP_READDIRPLUS_AUTO;$

ERROR: code indent should never use tabs
#1975: FILE: tools/virtiofsd/fuse_lowlevel.c:1954:
+^I^Iif (arg->flags & FUSE_ASYNC_DIO)$

ERROR: braces {} are necessary for all arms of this statement
#1975: FILE: tools/virtiofsd/fuse_lowlevel.c:1954:
+               if (arg->flags & FUSE_ASYNC_DIO)
[...]

ERROR: code indent should never use tabs
#1976: FILE: tools/virtiofsd/fuse_lowlevel.c:1955:
+^I^I^Ise->conn.capable |= FUSE_CAP_ASYNC_DIO;$

ERROR: code indent should never use tabs
#1977: FILE: tools/virtiofsd/fuse_lowlevel.c:1956:
+^I^Iif (arg->flags & FUSE_WRITEBACK_CACHE)$

ERROR: braces {} are necessary for all arms of this statement
#1977: FILE: tools/virtiofsd/fuse_lowlevel.c:1956:
+               if (arg->flags & FUSE_WRITEBACK_CACHE)
[...]

ERROR: code indent should never use tabs
#1978: FILE: tools/virtiofsd/fuse_lowlevel.c:1957:
+^I^I^Ise->conn.capable |= FUSE_CAP_WRITEBACK_CACHE;$

ERROR: code indent should never use tabs
#1979: FILE: tools/virtiofsd/fuse_lowlevel.c:1958:
+^I^Iif (arg->flags & FUSE_NO_OPEN_SUPPORT)$

ERROR: braces {} are necessary for all arms of this statement
#1979: FILE: tools/virtiofsd/fuse_lowlevel.c:1958:
+               if (arg->flags & FUSE_NO_OPEN_SUPPORT)
[...]

ERROR: code indent should never use tabs
#1980: FILE: tools/virtiofsd/fuse_lowlevel.c:1959:
+^I^I^Ise->conn.capable |= FUSE_CAP_NO_OPEN_SUPPORT;$

ERROR: code indent should never use tabs
#1981: FILE: tools/virtiofsd/fuse_lowlevel.c:1960:
+^I^Iif (arg->flags & FUSE_PARALLEL_DIROPS)$

ERROR: braces {} are necessary for all arms of this statement
#1981: FILE: tools/virtiofsd/fuse_lowlevel.c:1960:
+               if (arg->flags & FUSE_PARALLEL_DIROPS)
[...]

ERROR: code indent should never use tabs
#1982: FILE: tools/virtiofsd/fuse_lowlevel.c:1961:
+^I^I^Ise->conn.capable |= FUSE_CAP_PARALLEL_DIROPS;$

ERROR: code indent should never use tabs
#1983: FILE: tools/virtiofsd/fuse_lowlevel.c:1962:
+^I^Iif (arg->flags & FUSE_POSIX_ACL)$

ERROR: braces {} are necessary for all arms of this statement
#1983: FILE: tools/virtiofsd/fuse_lowlevel.c:1962:
+               if (arg->flags & FUSE_POSIX_ACL)
[...]

ERROR: code indent should never use tabs
#1984: FILE: tools/virtiofsd/fuse_lowlevel.c:1963:
+^I^I^Ise->conn.capable |= FUSE_CAP_POSIX_ACL;$

ERROR: code indent should never use tabs
#1985: FILE: tools/virtiofsd/fuse_lowlevel.c:1964:
+^I^Iif (arg->flags & FUSE_HANDLE_KILLPRIV)$

ERROR: braces {} are necessary for all arms of this statement
#1985: FILE: tools/virtiofsd/fuse_lowlevel.c:1964:
+               if (arg->flags & FUSE_HANDLE_KILLPRIV)
[...]

ERROR: code indent should never use tabs
#1986: FILE: tools/virtiofsd/fuse_lowlevel.c:1965:
+^I^I^Ise->conn.capable |= FUSE_CAP_HANDLE_KILLPRIV;$

ERROR: code indent should never use tabs
#1987: FILE: tools/virtiofsd/fuse_lowlevel.c:1966:
+^I^Iif (arg->flags & FUSE_NO_OPENDIR_SUPPORT)$

ERROR: braces {} are necessary for all arms of this statement
#1987: FILE: tools/virtiofsd/fuse_lowlevel.c:1966:
+               if (arg->flags & FUSE_NO_OPENDIR_SUPPORT)
[...]

ERROR: code indent should never use tabs
#1988: FILE: tools/virtiofsd/fuse_lowlevel.c:1967:
+^I^I^Ise->conn.capable |= FUSE_CAP_NO_OPENDIR_SUPPORT;$

ERROR: code indent should never use tabs
#1989: FILE: tools/virtiofsd/fuse_lowlevel.c:1968:
+^I^Iif (!(arg->flags & FUSE_MAX_PAGES)) {$

ERROR: code indent should never use tabs
#1990: FILE: tools/virtiofsd/fuse_lowlevel.c:1969:
+^I^I^Isize_t max_bufsize =$

ERROR: code indent should never use tabs
#1991: FILE: tools/virtiofsd/fuse_lowlevel.c:1970:
+^I^I^I^IFUSE_DEFAULT_MAX_PAGES_PER_REQ * getpagesize()$

ERROR: use qemu_real_host_page_size instead of getpagesize()
#1991: FILE: tools/virtiofsd/fuse_lowlevel.c:1970:
+                               FUSE_DEFAULT_MAX_PAGES_PER_REQ * getpagesize()

ERROR: code indent should never use tabs
#1992: FILE: tools/virtiofsd/fuse_lowlevel.c:1971:
+^I^I^I^I+ FUSE_BUFFER_HEADER_SIZE;$

ERROR: code indent should never use tabs
#1993: FILE: tools/virtiofsd/fuse_lowlevel.c:1972:
+^I^I^Iif (bufsize > max_bufsize) {$

ERROR: code indent should never use tabs
#1994: FILE: tools/virtiofsd/fuse_lowlevel.c:1973:
+^I^I^I^Ibufsize = max_bufsize;$

ERROR: code indent should never use tabs
#1995: FILE: tools/virtiofsd/fuse_lowlevel.c:1974:
+^I^I^I}$

ERROR: code indent should never use tabs
#1996: FILE: tools/virtiofsd/fuse_lowlevel.c:1975:
+^I^I}$

ERROR: code indent should never use tabs
#1997: FILE: tools/virtiofsd/fuse_lowlevel.c:1976:
+^I} else {$

ERROR: code indent should never use tabs
#1998: FILE: tools/virtiofsd/fuse_lowlevel.c:1977:
+^I^Ise->conn.max_readahead = 0;$

ERROR: code indent should never use tabs
#1999: FILE: tools/virtiofsd/fuse_lowlevel.c:1978:
+^I}$

ERROR: code indent should never use tabs
#2001: FILE: tools/virtiofsd/fuse_lowlevel.c:1980:
+^Iif (se->conn.proto_minor >= 14) {$

WARNING: line over 80 characters
#2004: FILE: tools/virtiofsd/fuse_lowlevel.c:1983:
+               se->conn.capable |= FUSE_CAP_SPLICE_WRITE | FUSE_CAP_SPLICE_MOVE;

ERROR: code indent should never use tabs
#2004: FILE: tools/virtiofsd/fuse_lowlevel.c:1983:
+^I^Ise->conn.capable |= FUSE_CAP_SPLICE_WRITE | FUSE_CAP_SPLICE_MOVE;$

ERROR: code indent should never use tabs
#2006: FILE: tools/virtiofsd/fuse_lowlevel.c:1985:
+^I^Ise->conn.capable |= FUSE_CAP_SPLICE_READ;$

ERROR: code indent should never use tabs
#2008: FILE: tools/virtiofsd/fuse_lowlevel.c:1987:
+^I}$

ERROR: code indent should never use tabs
#2009: FILE: tools/virtiofsd/fuse_lowlevel.c:1988:
+^Iif (se->conn.proto_minor >= 18)$

ERROR: braces {} are necessary for all arms of this statement
#2009: FILE: tools/virtiofsd/fuse_lowlevel.c:1988:
+       if (se->conn.proto_minor >= 18)
[...]

ERROR: code indent should never use tabs
#2010: FILE: tools/virtiofsd/fuse_lowlevel.c:1989:
+^I^Ise->conn.capable |= FUSE_CAP_IOCTL_DIR;$

ERROR: code indent should never use tabs
#2012: FILE: tools/virtiofsd/fuse_lowlevel.c:1991:
+^I/* Default settings for modern filesystems.$

WARNING: Block comments use a leading /* on a separate line
#2012: FILE: tools/virtiofsd/fuse_lowlevel.c:1991:
+       /* Default settings for modern filesystems.

ERROR: code indent should never use tabs
#2013: FILE: tools/virtiofsd/fuse_lowlevel.c:1992:
+^I *$

ERROR: code indent should never use tabs
#2014: FILE: tools/virtiofsd/fuse_lowlevel.c:1993:
+^I * Most of these capabilities were disabled by default in$

ERROR: code indent should never use tabs
#2015: FILE: tools/virtiofsd/fuse_lowlevel.c:1994:
+^I * libfuse2 for backwards compatibility reasons. In libfuse3,$

ERROR: code indent should never use tabs
#2016: FILE: tools/virtiofsd/fuse_lowlevel.c:1995:
+^I * we can finally enable them by default (as long as they're$

ERROR: code indent should never use tabs
#2017: FILE: tools/virtiofsd/fuse_lowlevel.c:1996:
+^I * supported by the kernel).$

ERROR: code indent should never use tabs
#2018: FILE: tools/virtiofsd/fuse_lowlevel.c:1997:
+^I */$

ERROR: Macros with complex values should be enclosed in parenthesis
#2019: FILE: tools/virtiofsd/fuse_lowlevel.c:1998:
+#define LL_SET_DEFAULT(cond, cap) \
+       if ((cond) && (se->conn.capable & (cap))) \
+               se->conn.want |= (cap)

ERROR: code indent should never use tabs
#2020: FILE: tools/virtiofsd/fuse_lowlevel.c:1999:
+^Iif ((cond) && (se->conn.capable & (cap))) \$

ERROR: code indent should never use tabs
#2021: FILE: tools/virtiofsd/fuse_lowlevel.c:2000:
+^I^Ise->conn.want |= (cap)$

ERROR: code indent should never use tabs
#2022: FILE: tools/virtiofsd/fuse_lowlevel.c:2001:
+^ILL_SET_DEFAULT(1, FUSE_CAP_ASYNC_READ);$

ERROR: code indent should never use tabs
#2023: FILE: tools/virtiofsd/fuse_lowlevel.c:2002:
+^ILL_SET_DEFAULT(1, FUSE_CAP_PARALLEL_DIROPS);$

ERROR: code indent should never use tabs
#2024: FILE: tools/virtiofsd/fuse_lowlevel.c:2003:
+^ILL_SET_DEFAULT(1, FUSE_CAP_AUTO_INVAL_DATA);$

ERROR: code indent should never use tabs
#2025: FILE: tools/virtiofsd/fuse_lowlevel.c:2004:
+^ILL_SET_DEFAULT(1, FUSE_CAP_HANDLE_KILLPRIV);$

ERROR: code indent should never use tabs
#2026: FILE: tools/virtiofsd/fuse_lowlevel.c:2005:
+^ILL_SET_DEFAULT(1, FUSE_CAP_ASYNC_DIO);$

ERROR: code indent should never use tabs
#2027: FILE: tools/virtiofsd/fuse_lowlevel.c:2006:
+^ILL_SET_DEFAULT(1, FUSE_CAP_IOCTL_DIR);$

ERROR: code indent should never use tabs
#2028: FILE: tools/virtiofsd/fuse_lowlevel.c:2007:
+^ILL_SET_DEFAULT(1, FUSE_CAP_ATOMIC_O_TRUNC);$

ERROR: code indent should never use tabs
#2029: FILE: tools/virtiofsd/fuse_lowlevel.c:2008:
+^ILL_SET_DEFAULT(se->op.write_buf, FUSE_CAP_SPLICE_READ);$

ERROR: code indent should never use tabs
#2030: FILE: tools/virtiofsd/fuse_lowlevel.c:2009:
+^ILL_SET_DEFAULT(se->op.getlk && se->op.setlk,$

ERROR: code indent should never use tabs
#2031: FILE: tools/virtiofsd/fuse_lowlevel.c:2010:
+^I^I       FUSE_CAP_POSIX_LOCKS);$

ERROR: code indent should never use tabs
#2032: FILE: tools/virtiofsd/fuse_lowlevel.c:2011:
+^ILL_SET_DEFAULT(se->op.flock, FUSE_CAP_FLOCK_LOCKS);$

ERROR: code indent should never use tabs
#2033: FILE: tools/virtiofsd/fuse_lowlevel.c:2012:
+^ILL_SET_DEFAULT(se->op.readdirplus, FUSE_CAP_READDIRPLUS);$

ERROR: code indent should never use tabs
#2034: FILE: tools/virtiofsd/fuse_lowlevel.c:2013:
+^ILL_SET_DEFAULT(se->op.readdirplus && se->op.readdir,$

ERROR: code indent should never use tabs
#2035: FILE: tools/virtiofsd/fuse_lowlevel.c:2014:
+^I^I       FUSE_CAP_READDIRPLUS_AUTO);$

ERROR: code indent should never use tabs
#2036: FILE: tools/virtiofsd/fuse_lowlevel.c:2015:
+^Ise->conn.time_gran = 1;$

ERROR: trailing whitespace
#2037: FILE: tools/virtiofsd/fuse_lowlevel.c:2016:
+^I$

ERROR: code indent should never use tabs
#2037: FILE: tools/virtiofsd/fuse_lowlevel.c:2016:
+^I$

ERROR: code indent should never use tabs
#2038: FILE: tools/virtiofsd/fuse_lowlevel.c:2017:
+^Iif (bufsize < FUSE_MIN_READ_BUFFER) {$

WARNING: line over 80 characters
#2039: FILE: tools/virtiofsd/fuse_lowlevel.c:2018:
+               fuse_log(FUSE_LOG_ERR, "fuse: warning: buffer size too small: %zu\n",

ERROR: code indent should never use tabs
#2039: FILE: tools/virtiofsd/fuse_lowlevel.c:2018:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: warning: buffer size too small: %zu\n",$

ERROR: code indent should never use tabs
#2040: FILE: tools/virtiofsd/fuse_lowlevel.c:2019:
+^I^I^Ibufsize);$

ERROR: code indent should never use tabs
#2041: FILE: tools/virtiofsd/fuse_lowlevel.c:2020:
+^I^Ibufsize = FUSE_MIN_READ_BUFFER;$

ERROR: code indent should never use tabs
#2042: FILE: tools/virtiofsd/fuse_lowlevel.c:2021:
+^I}$

ERROR: code indent should never use tabs
#2043: FILE: tools/virtiofsd/fuse_lowlevel.c:2022:
+^Ise->bufsize = bufsize;$

ERROR: code indent should never use tabs
#2045: FILE: tools/virtiofsd/fuse_lowlevel.c:2024:
+^Iif (se->conn.max_write > bufsize - FUSE_BUFFER_HEADER_SIZE)$

ERROR: braces {} are necessary for all arms of this statement
#2045: FILE: tools/virtiofsd/fuse_lowlevel.c:2024:
+       if (se->conn.max_write > bufsize - FUSE_BUFFER_HEADER_SIZE)
[...]

ERROR: code indent should never use tabs
#2046: FILE: tools/virtiofsd/fuse_lowlevel.c:2025:
+^I^Ise->conn.max_write = bufsize - FUSE_BUFFER_HEADER_SIZE;$

ERROR: code indent should never use tabs
#2048: FILE: tools/virtiofsd/fuse_lowlevel.c:2027:
+^Ise->got_init = 1;$

ERROR: code indent should never use tabs
#2049: FILE: tools/virtiofsd/fuse_lowlevel.c:2028:
+^Iif (se->op.init)$

ERROR: braces {} are necessary for all arms of this statement
#2049: FILE: tools/virtiofsd/fuse_lowlevel.c:2028:
+       if (se->op.init)
[...]

ERROR: code indent should never use tabs
#2050: FILE: tools/virtiofsd/fuse_lowlevel.c:2029:
+^I^Ise->op.init(se->userdata, &se->conn);$

ERROR: code indent should never use tabs
#2052: FILE: tools/virtiofsd/fuse_lowlevel.c:2031:
+^Iif (se->conn.want & (~se->conn.capable)) {$

WARNING: line over 80 characters
#2053: FILE: tools/virtiofsd/fuse_lowlevel.c:2032:
+               fuse_log(FUSE_LOG_ERR, "fuse: error: filesystem requested capabilities "

ERROR: code indent should never use tabs
#2053: FILE: tools/virtiofsd/fuse_lowlevel.c:2032:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: error: filesystem requested capabilities "$

ERROR: code indent should never use tabs
#2054: FILE: tools/virtiofsd/fuse_lowlevel.c:2033:
+^I^I^I"0x%x that are not supported by kernel, aborting.\n",$

ERROR: code indent should never use tabs
#2055: FILE: tools/virtiofsd/fuse_lowlevel.c:2034:
+^I^I^Ise->conn.want & (~se->conn.capable));$

ERROR: code indent should never use tabs
#2056: FILE: tools/virtiofsd/fuse_lowlevel.c:2035:
+^I^Ifuse_reply_err(req, EPROTO);$

ERROR: code indent should never use tabs
#2057: FILE: tools/virtiofsd/fuse_lowlevel.c:2036:
+^I^Ise->error = -EPROTO;$

ERROR: code indent should never use tabs
#2058: FILE: tools/virtiofsd/fuse_lowlevel.c:2037:
+^I^Ifuse_session_exit(se);$

ERROR: code indent should never use tabs
#2059: FILE: tools/virtiofsd/fuse_lowlevel.c:2038:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#2060: FILE: tools/virtiofsd/fuse_lowlevel.c:2039:
+^I}$

ERROR: code indent should never use tabs
#2062: FILE: tools/virtiofsd/fuse_lowlevel.c:2041:
+^Iunsigned max_read_mo = get_max_read(se->mo);$

ERROR: code indent should never use tabs
#2063: FILE: tools/virtiofsd/fuse_lowlevel.c:2042:
+^Iif (se->conn.max_read != max_read_mo) {$

WARNING: line over 80 characters
#2064: FILE: tools/virtiofsd/fuse_lowlevel.c:2043:
+               fuse_log(FUSE_LOG_ERR, "fuse: error: init() and fuse_session_new() "

ERROR: code indent should never use tabs
#2064: FILE: tools/virtiofsd/fuse_lowlevel.c:2043:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: error: init() and fuse_session_new() "$

ERROR: code indent should never use tabs
#2065: FILE: tools/virtiofsd/fuse_lowlevel.c:2044:
+^I^I^I"requested different maximum read size (%u vs %u)\n",$

ERROR: code indent should never use tabs
#2066: FILE: tools/virtiofsd/fuse_lowlevel.c:2045:
+^I^I^Ise->conn.max_read, max_read_mo);$

ERROR: code indent should never use tabs
#2067: FILE: tools/virtiofsd/fuse_lowlevel.c:2046:
+^I^Ifuse_reply_err(req, EPROTO);$

ERROR: code indent should never use tabs
#2068: FILE: tools/virtiofsd/fuse_lowlevel.c:2047:
+^I^Ise->error = -EPROTO;$

ERROR: code indent should never use tabs
#2069: FILE: tools/virtiofsd/fuse_lowlevel.c:2048:
+^I^Ifuse_session_exit(se);$

ERROR: code indent should never use tabs
#2070: FILE: tools/virtiofsd/fuse_lowlevel.c:2049:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#2071: FILE: tools/virtiofsd/fuse_lowlevel.c:2050:
+^I}$

ERROR: code indent should never use tabs
#2073: FILE: tools/virtiofsd/fuse_lowlevel.c:2052:
+^Iif (se->conn.max_write < bufsize - FUSE_BUFFER_HEADER_SIZE) {$

ERROR: code indent should never use tabs
#2074: FILE: tools/virtiofsd/fuse_lowlevel.c:2053:
+^I^Ise->bufsize = se->conn.max_write + FUSE_BUFFER_HEADER_SIZE;$

ERROR: code indent should never use tabs
#2075: FILE: tools/virtiofsd/fuse_lowlevel.c:2054:
+^I}$

ERROR: code indent should never use tabs
#2076: FILE: tools/virtiofsd/fuse_lowlevel.c:2055:
+^Iif (arg->flags & FUSE_MAX_PAGES) {$

ERROR: code indent should never use tabs
#2077: FILE: tools/virtiofsd/fuse_lowlevel.c:2056:
+^I^Ioutarg.flags |= FUSE_MAX_PAGES;$

ERROR: code indent should never use tabs
#2078: FILE: tools/virtiofsd/fuse_lowlevel.c:2057:
+^I^Ioutarg.max_pages = (se->conn.max_write - 1) / getpagesize() + 1;$

ERROR: use qemu_real_host_page_size instead of getpagesize()
#2078: FILE: tools/virtiofsd/fuse_lowlevel.c:2057:
+               outarg.max_pages = (se->conn.max_write - 1) / getpagesize() + 1;

ERROR: code indent should never use tabs
#2079: FILE: tools/virtiofsd/fuse_lowlevel.c:2058:
+^I}$

ERROR: code indent should never use tabs
#2081: FILE: tools/virtiofsd/fuse_lowlevel.c:2060:
+^I/* Always enable big writes, this is superseded$

WARNING: Block comments use a leading /* on a separate line
#2081: FILE: tools/virtiofsd/fuse_lowlevel.c:2060:
+       /* Always enable big writes, this is superseded

ERROR: code indent should never use tabs
#2082: FILE: tools/virtiofsd/fuse_lowlevel.c:2061:
+^I   by the max_write option */$

WARNING: Block comments use * on subsequent lines
#2082: FILE: tools/virtiofsd/fuse_lowlevel.c:2061:
+       /* Always enable big writes, this is superseded
+          by the max_write option */

WARNING: Block comments use a trailing */ on a separate line
#2082: FILE: tools/virtiofsd/fuse_lowlevel.c:2061:
+          by the max_write option */

ERROR: code indent should never use tabs
#2083: FILE: tools/virtiofsd/fuse_lowlevel.c:2062:
+^Ioutarg.flags |= FUSE_BIG_WRITES;$

ERROR: code indent should never use tabs
#2085: FILE: tools/virtiofsd/fuse_lowlevel.c:2064:
+^Iif (se->conn.want & FUSE_CAP_ASYNC_READ)$

ERROR: braces {} are necessary for all arms of this statement
#2085: FILE: tools/virtiofsd/fuse_lowlevel.c:2064:
+       if (se->conn.want & FUSE_CAP_ASYNC_READ)
[...]

ERROR: code indent should never use tabs
#2086: FILE: tools/virtiofsd/fuse_lowlevel.c:2065:
+^I^Ioutarg.flags |= FUSE_ASYNC_READ;$

ERROR: code indent should never use tabs
#2087: FILE: tools/virtiofsd/fuse_lowlevel.c:2066:
+^Iif (se->conn.want & FUSE_CAP_POSIX_LOCKS)$

ERROR: braces {} are necessary for all arms of this statement
#2087: FILE: tools/virtiofsd/fuse_lowlevel.c:2066:
+       if (se->conn.want & FUSE_CAP_POSIX_LOCKS)
[...]

ERROR: code indent should never use tabs
#2088: FILE: tools/virtiofsd/fuse_lowlevel.c:2067:
+^I^Ioutarg.flags |= FUSE_POSIX_LOCKS;$

ERROR: code indent should never use tabs
#2089: FILE: tools/virtiofsd/fuse_lowlevel.c:2068:
+^Iif (se->conn.want & FUSE_CAP_ATOMIC_O_TRUNC)$

ERROR: braces {} are necessary for all arms of this statement
#2089: FILE: tools/virtiofsd/fuse_lowlevel.c:2068:
+       if (se->conn.want & FUSE_CAP_ATOMIC_O_TRUNC)
[...]

ERROR: code indent should never use tabs
#2090: FILE: tools/virtiofsd/fuse_lowlevel.c:2069:
+^I^Ioutarg.flags |= FUSE_ATOMIC_O_TRUNC;$

ERROR: code indent should never use tabs
#2091: FILE: tools/virtiofsd/fuse_lowlevel.c:2070:
+^Iif (se->conn.want & FUSE_CAP_EXPORT_SUPPORT)$

ERROR: braces {} are necessary for all arms of this statement
#2091: FILE: tools/virtiofsd/fuse_lowlevel.c:2070:
+       if (se->conn.want & FUSE_CAP_EXPORT_SUPPORT)
[...]

ERROR: code indent should never use tabs
#2092: FILE: tools/virtiofsd/fuse_lowlevel.c:2071:
+^I^Ioutarg.flags |= FUSE_EXPORT_SUPPORT;$

ERROR: code indent should never use tabs
#2093: FILE: tools/virtiofsd/fuse_lowlevel.c:2072:
+^Iif (se->conn.want & FUSE_CAP_DONT_MASK)$

ERROR: braces {} are necessary for all arms of this statement
#2093: FILE: tools/virtiofsd/fuse_lowlevel.c:2072:
+       if (se->conn.want & FUSE_CAP_DONT_MASK)
[...]

ERROR: code indent should never use tabs
#2094: FILE: tools/virtiofsd/fuse_lowlevel.c:2073:
+^I^Ioutarg.flags |= FUSE_DONT_MASK;$

ERROR: code indent should never use tabs
#2095: FILE: tools/virtiofsd/fuse_lowlevel.c:2074:
+^Iif (se->conn.want & FUSE_CAP_FLOCK_LOCKS)$

ERROR: braces {} are necessary for all arms of this statement
#2095: FILE: tools/virtiofsd/fuse_lowlevel.c:2074:
+       if (se->conn.want & FUSE_CAP_FLOCK_LOCKS)
[...]

ERROR: code indent should never use tabs
#2096: FILE: tools/virtiofsd/fuse_lowlevel.c:2075:
+^I^Ioutarg.flags |= FUSE_FLOCK_LOCKS;$

ERROR: code indent should never use tabs
#2097: FILE: tools/virtiofsd/fuse_lowlevel.c:2076:
+^Iif (se->conn.want & FUSE_CAP_AUTO_INVAL_DATA)$

ERROR: braces {} are necessary for all arms of this statement
#2097: FILE: tools/virtiofsd/fuse_lowlevel.c:2076:
+       if (se->conn.want & FUSE_CAP_AUTO_INVAL_DATA)
[...]

ERROR: code indent should never use tabs
#2098: FILE: tools/virtiofsd/fuse_lowlevel.c:2077:
+^I^Ioutarg.flags |= FUSE_AUTO_INVAL_DATA;$

ERROR: code indent should never use tabs
#2099: FILE: tools/virtiofsd/fuse_lowlevel.c:2078:
+^Iif (se->conn.want & FUSE_CAP_READDIRPLUS)$

ERROR: braces {} are necessary for all arms of this statement
#2099: FILE: tools/virtiofsd/fuse_lowlevel.c:2078:
+       if (se->conn.want & FUSE_CAP_READDIRPLUS)
[...]

ERROR: code indent should never use tabs
#2100: FILE: tools/virtiofsd/fuse_lowlevel.c:2079:
+^I^Ioutarg.flags |= FUSE_DO_READDIRPLUS;$

ERROR: code indent should never use tabs
#2101: FILE: tools/virtiofsd/fuse_lowlevel.c:2080:
+^Iif (se->conn.want & FUSE_CAP_READDIRPLUS_AUTO)$

ERROR: braces {} are necessary for all arms of this statement
#2101: FILE: tools/virtiofsd/fuse_lowlevel.c:2080:
+       if (se->conn.want & FUSE_CAP_READDIRPLUS_AUTO)
[...]

ERROR: code indent should never use tabs
#2102: FILE: tools/virtiofsd/fuse_lowlevel.c:2081:
+^I^Ioutarg.flags |= FUSE_READDIRPLUS_AUTO;$

ERROR: code indent should never use tabs
#2103: FILE: tools/virtiofsd/fuse_lowlevel.c:2082:
+^Iif (se->conn.want & FUSE_CAP_ASYNC_DIO)$

ERROR: braces {} are necessary for all arms of this statement
#2103: FILE: tools/virtiofsd/fuse_lowlevel.c:2082:
+       if (se->conn.want & FUSE_CAP_ASYNC_DIO)
[...]

ERROR: code indent should never use tabs
#2104: FILE: tools/virtiofsd/fuse_lowlevel.c:2083:
+^I^Ioutarg.flags |= FUSE_ASYNC_DIO;$

ERROR: code indent should never use tabs
#2105: FILE: tools/virtiofsd/fuse_lowlevel.c:2084:
+^Iif (se->conn.want & FUSE_CAP_WRITEBACK_CACHE)$

ERROR: braces {} are necessary for all arms of this statement
#2105: FILE: tools/virtiofsd/fuse_lowlevel.c:2084:
+       if (se->conn.want & FUSE_CAP_WRITEBACK_CACHE)
[...]

ERROR: code indent should never use tabs
#2106: FILE: tools/virtiofsd/fuse_lowlevel.c:2085:
+^I^Ioutarg.flags |= FUSE_WRITEBACK_CACHE;$

ERROR: code indent should never use tabs
#2107: FILE: tools/virtiofsd/fuse_lowlevel.c:2086:
+^Iif (se->conn.want & FUSE_CAP_POSIX_ACL)$

ERROR: braces {} are necessary for all arms of this statement
#2107: FILE: tools/virtiofsd/fuse_lowlevel.c:2086:
+       if (se->conn.want & FUSE_CAP_POSIX_ACL)
[...]

ERROR: code indent should never use tabs
#2108: FILE: tools/virtiofsd/fuse_lowlevel.c:2087:
+^I^Ioutarg.flags |= FUSE_POSIX_ACL;$

ERROR: code indent should never use tabs
#2109: FILE: tools/virtiofsd/fuse_lowlevel.c:2088:
+^Ioutarg.max_readahead = se->conn.max_readahead;$

ERROR: code indent should never use tabs
#2110: FILE: tools/virtiofsd/fuse_lowlevel.c:2089:
+^Ioutarg.max_write = se->conn.max_write;$

ERROR: code indent should never use tabs
#2111: FILE: tools/virtiofsd/fuse_lowlevel.c:2090:
+^Iif (se->conn.proto_minor >= 13) {$

ERROR: code indent should never use tabs
#2112: FILE: tools/virtiofsd/fuse_lowlevel.c:2091:
+^I^Iif (se->conn.max_background >= (1 << 16))$

ERROR: braces {} are necessary for all arms of this statement
#2112: FILE: tools/virtiofsd/fuse_lowlevel.c:2091:
+               if (se->conn.max_background >= (1 << 16))
[...]

ERROR: code indent should never use tabs
#2113: FILE: tools/virtiofsd/fuse_lowlevel.c:2092:
+^I^I^Ise->conn.max_background = (1 << 16) - 1;$

ERROR: code indent should never use tabs
#2114: FILE: tools/virtiofsd/fuse_lowlevel.c:2093:
+^I^Iif (se->conn.congestion_threshold > se->conn.max_background)$

ERROR: braces {} are necessary for all arms of this statement
#2114: FILE: tools/virtiofsd/fuse_lowlevel.c:2093:
+               if (se->conn.congestion_threshold > se->conn.max_background)
[...]

ERROR: code indent should never use tabs
#2115: FILE: tools/virtiofsd/fuse_lowlevel.c:2094:
+^I^I^Ise->conn.congestion_threshold = se->conn.max_background;$

ERROR: code indent should never use tabs
#2116: FILE: tools/virtiofsd/fuse_lowlevel.c:2095:
+^I^Iif (!se->conn.congestion_threshold) {$

ERROR: code indent should never use tabs
#2117: FILE: tools/virtiofsd/fuse_lowlevel.c:2096:
+^I^I^Ise->conn.congestion_threshold =$

ERROR: code indent should never use tabs
#2118: FILE: tools/virtiofsd/fuse_lowlevel.c:2097:
+^I^I^I^Ise->conn.max_background * 3 / 4;$

ERROR: code indent should never use tabs
#2119: FILE: tools/virtiofsd/fuse_lowlevel.c:2098:
+^I^I}$

ERROR: code indent should never use tabs
#2121: FILE: tools/virtiofsd/fuse_lowlevel.c:2100:
+^I^Ioutarg.max_background = se->conn.max_background;$

ERROR: code indent should never use tabs
#2122: FILE: tools/virtiofsd/fuse_lowlevel.c:2101:
+^I^Ioutarg.congestion_threshold = se->conn.congestion_threshold;$

ERROR: code indent should never use tabs
#2123: FILE: tools/virtiofsd/fuse_lowlevel.c:2102:
+^I}$

ERROR: code indent should never use tabs
#2124: FILE: tools/virtiofsd/fuse_lowlevel.c:2103:
+^Iif (se->conn.proto_minor >= 23)$

ERROR: braces {} are necessary for all arms of this statement
#2124: FILE: tools/virtiofsd/fuse_lowlevel.c:2103:
+       if (se->conn.proto_minor >= 23)
[...]

ERROR: code indent should never use tabs
#2125: FILE: tools/virtiofsd/fuse_lowlevel.c:2104:
+^I^Ioutarg.time_gran = se->conn.time_gran;$

ERROR: code indent should never use tabs
#2127: FILE: tools/virtiofsd/fuse_lowlevel.c:2106:
+^Iif (se->debug) {$

WARNING: line over 80 characters
#2128: FILE: tools/virtiofsd/fuse_lowlevel.c:2107:
+               fuse_log(FUSE_LOG_DEBUG, "   INIT: %u.%u\n", outarg.major, outarg.minor);

ERROR: code indent should never use tabs
#2128: FILE: tools/virtiofsd/fuse_lowlevel.c:2107:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "   INIT: %u.%u\n", outarg.major, outarg.minor);$

ERROR: code indent should never use tabs
#2129: FILE: tools/virtiofsd/fuse_lowlevel.c:2108:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "   flags=0x%08x\n", outarg.flags);$

ERROR: code indent should never use tabs
#2130: FILE: tools/virtiofsd/fuse_lowlevel.c:2109:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "   max_readahead=0x%08x\n",$

ERROR: code indent should never use tabs
#2131: FILE: tools/virtiofsd/fuse_lowlevel.c:2110:
+^I^I^Ioutarg.max_readahead);$

WARNING: line over 80 characters
#2132: FILE: tools/virtiofsd/fuse_lowlevel.c:2111:
+               fuse_log(FUSE_LOG_DEBUG, "   max_write=0x%08x\n", outarg.max_write);

ERROR: code indent should never use tabs
#2132: FILE: tools/virtiofsd/fuse_lowlevel.c:2111:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "   max_write=0x%08x\n", outarg.max_write);$

ERROR: code indent should never use tabs
#2133: FILE: tools/virtiofsd/fuse_lowlevel.c:2112:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "   max_background=%i\n",$

ERROR: code indent should never use tabs
#2134: FILE: tools/virtiofsd/fuse_lowlevel.c:2113:
+^I^I^Ioutarg.max_background);$

ERROR: code indent should never use tabs
#2135: FILE: tools/virtiofsd/fuse_lowlevel.c:2114:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "   congestion_threshold=%i\n",$

ERROR: code indent should never use tabs
#2136: FILE: tools/virtiofsd/fuse_lowlevel.c:2115:
+^I^I^Ioutarg.congestion_threshold);$

ERROR: code indent should never use tabs
#2137: FILE: tools/virtiofsd/fuse_lowlevel.c:2116:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "   time_gran=%u\n",$

ERROR: code indent should never use tabs
#2138: FILE: tools/virtiofsd/fuse_lowlevel.c:2117:
+^I^I^Ioutarg.time_gran);$

ERROR: code indent should never use tabs
#2139: FILE: tools/virtiofsd/fuse_lowlevel.c:2118:
+^I}$

ERROR: code indent should never use tabs
#2140: FILE: tools/virtiofsd/fuse_lowlevel.c:2119:
+^Iif (arg->minor < 5)$

ERROR: braces {} are necessary for all arms of this statement
#2140: FILE: tools/virtiofsd/fuse_lowlevel.c:2119:
+       if (arg->minor < 5)
[...]
+       else if (arg->minor < 23)
[...]

ERROR: code indent should never use tabs
#2141: FILE: tools/virtiofsd/fuse_lowlevel.c:2120:
+^I^Ioutargsize = FUSE_COMPAT_INIT_OUT_SIZE;$

ERROR: code indent should never use tabs
#2142: FILE: tools/virtiofsd/fuse_lowlevel.c:2121:
+^Ielse if (arg->minor < 23)$

ERROR: braces {} are necessary for all arms of this statement
#2142: FILE: tools/virtiofsd/fuse_lowlevel.c:2121:
+       else if (arg->minor < 23)
[...]

ERROR: code indent should never use tabs
#2143: FILE: tools/virtiofsd/fuse_lowlevel.c:2122:
+^I^Ioutargsize = FUSE_COMPAT_22_INIT_OUT_SIZE;$

ERROR: code indent should never use tabs
#2145: FILE: tools/virtiofsd/fuse_lowlevel.c:2124:
+^Isend_reply_ok(req, &outarg, outargsize);$

ERROR: code indent should never use tabs
#2150: FILE: tools/virtiofsd/fuse_lowlevel.c:2129:
+^Istruct fuse_session *se = req->se;$

ERROR: code indent should never use tabs
#2152: FILE: tools/virtiofsd/fuse_lowlevel.c:2131:
+^I(void) nodeid;$

ERROR: code indent should never use tabs
#2153: FILE: tools/virtiofsd/fuse_lowlevel.c:2132:
+^I(void) inarg;$

ERROR: code indent should never use tabs
#2155: FILE: tools/virtiofsd/fuse_lowlevel.c:2134:
+^Ise->got_destroy = 1;$

ERROR: code indent should never use tabs
#2156: FILE: tools/virtiofsd/fuse_lowlevel.c:2135:
+^Iif (se->op.destroy)$

ERROR: braces {} are necessary for all arms of this statement
#2156: FILE: tools/virtiofsd/fuse_lowlevel.c:2135:
+       if (se->op.destroy)
[...]

ERROR: code indent should never use tabs
#2157: FILE: tools/virtiofsd/fuse_lowlevel.c:2136:
+^I^Ise->op.destroy(se->userdata);$

ERROR: code indent should never use tabs
#2159: FILE: tools/virtiofsd/fuse_lowlevel.c:2138:
+^Isend_reply_ok(req, NULL, 0);$

ERROR: code indent should never use tabs
#2164: FILE: tools/virtiofsd/fuse_lowlevel.c:2143:
+^Istruct fuse_notify_req *prev = nreq->prev;$

ERROR: code indent should never use tabs
#2165: FILE: tools/virtiofsd/fuse_lowlevel.c:2144:
+^Istruct fuse_notify_req *next = nreq->next;$

ERROR: code indent should never use tabs
#2166: FILE: tools/virtiofsd/fuse_lowlevel.c:2145:
+^Iprev->next = next;$

ERROR: code indent should never use tabs
#2167: FILE: tools/virtiofsd/fuse_lowlevel.c:2146:
+^Inext->prev = prev;$

ERROR: code indent should never use tabs
#2171: FILE: tools/virtiofsd/fuse_lowlevel.c:2150:
+^I^I^I  struct fuse_notify_req *next)$

ERROR: code indent should never use tabs
#2173: FILE: tools/virtiofsd/fuse_lowlevel.c:2152:
+^Istruct fuse_notify_req *prev = next->prev;$

ERROR: code indent should never use tabs
#2174: FILE: tools/virtiofsd/fuse_lowlevel.c:2153:
+^Inreq->next = next;$

ERROR: code indent should never use tabs
#2175: FILE: tools/virtiofsd/fuse_lowlevel.c:2154:
+^Inreq->prev = prev;$

ERROR: code indent should never use tabs
#2176: FILE: tools/virtiofsd/fuse_lowlevel.c:2155:
+^Iprev->next = nreq;$

ERROR: code indent should never use tabs
#2177: FILE: tools/virtiofsd/fuse_lowlevel.c:2156:
+^Inext->prev = nreq;$

ERROR: code indent should never use tabs
#2182: FILE: tools/virtiofsd/fuse_lowlevel.c:2161:
+^Inreq->next = nreq;$

ERROR: code indent should never use tabs
#2183: FILE: tools/virtiofsd/fuse_lowlevel.c:2162:
+^Inreq->prev = nreq;$

ERROR: code indent should never use tabs
#2187: FILE: tools/virtiofsd/fuse_lowlevel.c:2166:
+^I^I^I    const void *inarg, const struct fuse_buf *buf)$

ERROR: code indent should never use tabs
#2189: FILE: tools/virtiofsd/fuse_lowlevel.c:2168:
+^Istruct fuse_session *se = req->se;$

ERROR: code indent should never use tabs
#2190: FILE: tools/virtiofsd/fuse_lowlevel.c:2169:
+^Istruct fuse_notify_req *nreq;$

ERROR: code indent should never use tabs
#2191: FILE: tools/virtiofsd/fuse_lowlevel.c:2170:
+^Istruct fuse_notify_req *head;$

ERROR: code indent should never use tabs
#2193: FILE: tools/virtiofsd/fuse_lowlevel.c:2172:
+^Ipthread_mutex_lock(&se->lock);$

ERROR: code indent should never use tabs
#2194: FILE: tools/virtiofsd/fuse_lowlevel.c:2173:
+^Ihead = &se->notify_list;$

ERROR: code indent should never use tabs
#2195: FILE: tools/virtiofsd/fuse_lowlevel.c:2174:
+^Ifor (nreq = head->next; nreq != head; nreq = nreq->next) {$

ERROR: code indent should never use tabs
#2196: FILE: tools/virtiofsd/fuse_lowlevel.c:2175:
+^I^Iif (nreq->unique == req->unique) {$

ERROR: code indent should never use tabs
#2197: FILE: tools/virtiofsd/fuse_lowlevel.c:2176:
+^I^I^Ilist_del_nreq(nreq);$

ERROR: code indent should never use tabs
#2198: FILE: tools/virtiofsd/fuse_lowlevel.c:2177:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#2199: FILE: tools/virtiofsd/fuse_lowlevel.c:2178:
+^I^I}$

ERROR: code indent should never use tabs
#2200: FILE: tools/virtiofsd/fuse_lowlevel.c:2179:
+^I}$

ERROR: code indent should never use tabs
#2201: FILE: tools/virtiofsd/fuse_lowlevel.c:2180:
+^Ipthread_mutex_unlock(&se->lock);$

ERROR: code indent should never use tabs
#2203: FILE: tools/virtiofsd/fuse_lowlevel.c:2182:
+^Iif (nreq != head)$

ERROR: braces {} are necessary for all arms of this statement
#2203: FILE: tools/virtiofsd/fuse_lowlevel.c:2182:
+       if (nreq != head)
[...]

ERROR: code indent should never use tabs
#2204: FILE: tools/virtiofsd/fuse_lowlevel.c:2183:
+^I^Inreq->reply(nreq, req, nodeid, inarg, buf);$

ERROR: code indent should never use tabs
#2208: FILE: tools/virtiofsd/fuse_lowlevel.c:2187:
+^I^I^I   struct iovec *iov, int count)$

ERROR: code indent should never use tabs
#2210: FILE: tools/virtiofsd/fuse_lowlevel.c:2189:
+^Istruct fuse_out_header out;$

ERROR: code indent should never use tabs
#2212: FILE: tools/virtiofsd/fuse_lowlevel.c:2191:
+^Iif (!se->got_init)$

ERROR: braces {} are necessary for all arms of this statement
#2212: FILE: tools/virtiofsd/fuse_lowlevel.c:2191:
+       if (!se->got_init)
[...]

ERROR: code indent should never use tabs
#2213: FILE: tools/virtiofsd/fuse_lowlevel.c:2192:
+^I^Ireturn -ENOTCONN;$

ERROR: code indent should never use tabs
#2215: FILE: tools/virtiofsd/fuse_lowlevel.c:2194:
+^Iout.unique = 0;$

ERROR: code indent should never use tabs
#2216: FILE: tools/virtiofsd/fuse_lowlevel.c:2195:
+^Iout.error = notify_code;$

ERROR: code indent should never use tabs
#2217: FILE: tools/virtiofsd/fuse_lowlevel.c:2196:
+^Iiov[0].iov_base = &out;$

ERROR: code indent should never use tabs
#2218: FILE: tools/virtiofsd/fuse_lowlevel.c:2197:
+^Iiov[0].iov_len = sizeof(struct fuse_out_header);$

ERROR: code indent should never use tabs
#2220: FILE: tools/virtiofsd/fuse_lowlevel.c:2199:
+^Ireturn fuse_send_msg(se, NULL, iov, count);$

ERROR: code indent should never use tabs
#2225: FILE: tools/virtiofsd/fuse_lowlevel.c:2204:
+^Iif (ph != NULL) {$

ERROR: code indent should never use tabs
#2226: FILE: tools/virtiofsd/fuse_lowlevel.c:2205:
+^I^Istruct fuse_notify_poll_wakeup_out outarg;$

ERROR: code indent should never use tabs
#2227: FILE: tools/virtiofsd/fuse_lowlevel.c:2206:
+^I^Istruct iovec iov[2];$

ERROR: code indent should never use tabs
#2229: FILE: tools/virtiofsd/fuse_lowlevel.c:2208:
+^I^Ioutarg.kh = ph->kh;$

ERROR: code indent should never use tabs
#2231: FILE: tools/virtiofsd/fuse_lowlevel.c:2210:
+^I^Iiov[1].iov_base = &outarg;$

ERROR: code indent should never use tabs
#2232: FILE: tools/virtiofsd/fuse_lowlevel.c:2211:
+^I^Iiov[1].iov_len = sizeof(outarg);$

ERROR: code indent should never use tabs
#2234: FILE: tools/virtiofsd/fuse_lowlevel.c:2213:
+^I^Ireturn send_notify_iov(ph->se, FUSE_NOTIFY_POLL, iov, 2);$

ERROR: code indent should never use tabs
#2235: FILE: tools/virtiofsd/fuse_lowlevel.c:2214:
+^I} else {$

ERROR: code indent should never use tabs
#2236: FILE: tools/virtiofsd/fuse_lowlevel.c:2215:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#2237: FILE: tools/virtiofsd/fuse_lowlevel.c:2216:
+^I}$

ERROR: code indent should never use tabs
#2241: FILE: tools/virtiofsd/fuse_lowlevel.c:2220:
+^I^I^I^I     off_t off, off_t len)$

ERROR: code indent should never use tabs
#2243: FILE: tools/virtiofsd/fuse_lowlevel.c:2222:
+^Istruct fuse_notify_inval_inode_out outarg;$

ERROR: code indent should never use tabs
#2244: FILE: tools/virtiofsd/fuse_lowlevel.c:2223:
+^Istruct iovec iov[2];$

ERROR: code indent should never use tabs
#2246: FILE: tools/virtiofsd/fuse_lowlevel.c:2225:
+^Iif (!se)$

ERROR: braces {} are necessary for all arms of this statement
#2246: FILE: tools/virtiofsd/fuse_lowlevel.c:2225:
+       if (!se)
[...]

ERROR: code indent should never use tabs
#2247: FILE: tools/virtiofsd/fuse_lowlevel.c:2226:
+^I^Ireturn -EINVAL;$

ERROR: code indent should never use tabs
#2249: FILE: tools/virtiofsd/fuse_lowlevel.c:2228:
+^Iif (se->conn.proto_major < 6 || se->conn.proto_minor < 12)$

ERROR: braces {} are necessary for all arms of this statement
#2249: FILE: tools/virtiofsd/fuse_lowlevel.c:2228:
+       if (se->conn.proto_major < 6 || se->conn.proto_minor < 12)
[...]

ERROR: code indent should never use tabs
#2250: FILE: tools/virtiofsd/fuse_lowlevel.c:2229:
+^I^Ireturn -ENOSYS;$

ERROR: trailing whitespace
#2251: FILE: tools/virtiofsd/fuse_lowlevel.c:2230:
+^I$

ERROR: code indent should never use tabs
#2251: FILE: tools/virtiofsd/fuse_lowlevel.c:2230:
+^I$

ERROR: code indent should never use tabs
#2252: FILE: tools/virtiofsd/fuse_lowlevel.c:2231:
+^Ioutarg.ino = ino;$

ERROR: code indent should never use tabs
#2253: FILE: tools/virtiofsd/fuse_lowlevel.c:2232:
+^Ioutarg.off = off;$

ERROR: code indent should never use tabs
#2254: FILE: tools/virtiofsd/fuse_lowlevel.c:2233:
+^Ioutarg.len = len;$

ERROR: code indent should never use tabs
#2256: FILE: tools/virtiofsd/fuse_lowlevel.c:2235:
+^Iiov[1].iov_base = &outarg;$

ERROR: code indent should never use tabs
#2257: FILE: tools/virtiofsd/fuse_lowlevel.c:2236:
+^Iiov[1].iov_len = sizeof(outarg);$

ERROR: code indent should never use tabs
#2259: FILE: tools/virtiofsd/fuse_lowlevel.c:2238:
+^Ireturn send_notify_iov(se, FUSE_NOTIFY_INVAL_INODE, iov, 2);$

ERROR: code indent should never use tabs
#2263: FILE: tools/virtiofsd/fuse_lowlevel.c:2242:
+^I^I^I^I     const char *name, size_t namelen)$

ERROR: code indent should never use tabs
#2265: FILE: tools/virtiofsd/fuse_lowlevel.c:2244:
+^Istruct fuse_notify_inval_entry_out outarg;$

ERROR: code indent should never use tabs
#2266: FILE: tools/virtiofsd/fuse_lowlevel.c:2245:
+^Istruct iovec iov[3];$

ERROR: code indent should never use tabs
#2268: FILE: tools/virtiofsd/fuse_lowlevel.c:2247:
+^Iif (!se)$

ERROR: braces {} are necessary for all arms of this statement
#2268: FILE: tools/virtiofsd/fuse_lowlevel.c:2247:
+       if (!se)
[...]

ERROR: code indent should never use tabs
#2269: FILE: tools/virtiofsd/fuse_lowlevel.c:2248:
+^I^Ireturn -EINVAL;$

ERROR: trailing whitespace
#2270: FILE: tools/virtiofsd/fuse_lowlevel.c:2249:
+^I$

ERROR: code indent should never use tabs
#2270: FILE: tools/virtiofsd/fuse_lowlevel.c:2249:
+^I$

ERROR: code indent should never use tabs
#2271: FILE: tools/virtiofsd/fuse_lowlevel.c:2250:
+^Iif (se->conn.proto_major < 6 || se->conn.proto_minor < 12)$

ERROR: braces {} are necessary for all arms of this statement
#2271: FILE: tools/virtiofsd/fuse_lowlevel.c:2250:
+       if (se->conn.proto_major < 6 || se->conn.proto_minor < 12)
[...]

ERROR: code indent should never use tabs
#2272: FILE: tools/virtiofsd/fuse_lowlevel.c:2251:
+^I^Ireturn -ENOSYS;$

ERROR: code indent should never use tabs
#2274: FILE: tools/virtiofsd/fuse_lowlevel.c:2253:
+^Ioutarg.parent = parent;$

ERROR: code indent should never use tabs
#2275: FILE: tools/virtiofsd/fuse_lowlevel.c:2254:
+^Ioutarg.namelen = namelen;$

ERROR: code indent should never use tabs
#2276: FILE: tools/virtiofsd/fuse_lowlevel.c:2255:
+^Ioutarg.padding = 0;$

ERROR: code indent should never use tabs
#2278: FILE: tools/virtiofsd/fuse_lowlevel.c:2257:
+^Iiov[1].iov_base = &outarg;$

ERROR: code indent should never use tabs
#2279: FILE: tools/virtiofsd/fuse_lowlevel.c:2258:
+^Iiov[1].iov_len = sizeof(outarg);$

ERROR: code indent should never use tabs
#2280: FILE: tools/virtiofsd/fuse_lowlevel.c:2259:
+^Iiov[2].iov_base = (void *)name;$

ERROR: code indent should never use tabs
#2281: FILE: tools/virtiofsd/fuse_lowlevel.c:2260:
+^Iiov[2].iov_len = namelen + 1;$

ERROR: code indent should never use tabs
#2283: FILE: tools/virtiofsd/fuse_lowlevel.c:2262:
+^Ireturn send_notify_iov(se, FUSE_NOTIFY_INVAL_ENTRY, iov, 3);$

ERROR: code indent should never use tabs
#2287: FILE: tools/virtiofsd/fuse_lowlevel.c:2266:
+^I^I^I^Ifuse_ino_t parent, fuse_ino_t child,$

ERROR: code indent should never use tabs
#2288: FILE: tools/virtiofsd/fuse_lowlevel.c:2267:
+^I^I^I^Iconst char *name, size_t namelen)$

ERROR: code indent should never use tabs
#2290: FILE: tools/virtiofsd/fuse_lowlevel.c:2269:
+^Istruct fuse_notify_delete_out outarg;$

ERROR: code indent should never use tabs
#2291: FILE: tools/virtiofsd/fuse_lowlevel.c:2270:
+^Istruct iovec iov[3];$

ERROR: code indent should never use tabs
#2293: FILE: tools/virtiofsd/fuse_lowlevel.c:2272:
+^Iif (!se)$

ERROR: braces {} are necessary for all arms of this statement
#2293: FILE: tools/virtiofsd/fuse_lowlevel.c:2272:
+       if (!se)
[...]

ERROR: code indent should never use tabs
#2294: FILE: tools/virtiofsd/fuse_lowlevel.c:2273:
+^I^Ireturn -EINVAL;$

ERROR: code indent should never use tabs
#2296: FILE: tools/virtiofsd/fuse_lowlevel.c:2275:
+^Iif (se->conn.proto_major < 6 || se->conn.proto_minor < 18)$

ERROR: braces {} are necessary for all arms of this statement
#2296: FILE: tools/virtiofsd/fuse_lowlevel.c:2275:
+       if (se->conn.proto_major < 6 || se->conn.proto_minor < 18)
[...]

ERROR: code indent should never use tabs
#2297: FILE: tools/virtiofsd/fuse_lowlevel.c:2276:
+^I^Ireturn -ENOSYS;$

ERROR: code indent should never use tabs
#2299: FILE: tools/virtiofsd/fuse_lowlevel.c:2278:
+^Ioutarg.parent = parent;$

ERROR: code indent should never use tabs
#2300: FILE: tools/virtiofsd/fuse_lowlevel.c:2279:
+^Ioutarg.child = child;$

ERROR: code indent should never use tabs
#2301: FILE: tools/virtiofsd/fuse_lowlevel.c:2280:
+^Ioutarg.namelen = namelen;$

ERROR: code indent should never use tabs
#2302: FILE: tools/virtiofsd/fuse_lowlevel.c:2281:
+^Ioutarg.padding = 0;$

ERROR: code indent should never use tabs
#2304: FILE: tools/virtiofsd/fuse_lowlevel.c:2283:
+^Iiov[1].iov_base = &outarg;$

ERROR: code indent should never use tabs
#2305: FILE: tools/virtiofsd/fuse_lowlevel.c:2284:
+^Iiov[1].iov_len = sizeof(outarg);$

ERROR: code indent should never use tabs
#2306: FILE: tools/virtiofsd/fuse_lowlevel.c:2285:
+^Iiov[2].iov_base = (void *)name;$

ERROR: code indent should never use tabs
#2307: FILE: tools/virtiofsd/fuse_lowlevel.c:2286:
+^Iiov[2].iov_len = namelen + 1;$

ERROR: code indent should never use tabs
#2309: FILE: tools/virtiofsd/fuse_lowlevel.c:2288:
+^Ireturn send_notify_iov(se, FUSE_NOTIFY_DELETE, iov, 3);$

ERROR: code indent should never use tabs
#2313: FILE: tools/virtiofsd/fuse_lowlevel.c:2292:
+^I^I^I       off_t offset, struct fuse_bufvec *bufv,$

ERROR: code indent should never use tabs
#2314: FILE: tools/virtiofsd/fuse_lowlevel.c:2293:
+^I^I^I       enum fuse_buf_copy_flags flags)$

ERROR: code indent should never use tabs
#2316: FILE: tools/virtiofsd/fuse_lowlevel.c:2295:
+^Istruct fuse_out_header out;$

ERROR: code indent should never use tabs
#2317: FILE: tools/virtiofsd/fuse_lowlevel.c:2296:
+^Istruct fuse_notify_store_out outarg;$

ERROR: code indent should never use tabs
#2318: FILE: tools/virtiofsd/fuse_lowlevel.c:2297:
+^Istruct iovec iov[3];$

ERROR: code indent should never use tabs
#2319: FILE: tools/virtiofsd/fuse_lowlevel.c:2298:
+^Isize_t size = fuse_buf_size(bufv);$

ERROR: code indent should never use tabs
#2320: FILE: tools/virtiofsd/fuse_lowlevel.c:2299:
+^Iint res;$

ERROR: code indent should never use tabs
#2322: FILE: tools/virtiofsd/fuse_lowlevel.c:2301:
+^Iif (!se)$

ERROR: braces {} are necessary for all arms of this statement
#2322: FILE: tools/virtiofsd/fuse_lowlevel.c:2301:
+       if (!se)
[...]

ERROR: code indent should never use tabs
#2323: FILE: tools/virtiofsd/fuse_lowlevel.c:2302:
+^I^Ireturn -EINVAL;$

ERROR: code indent should never use tabs
#2325: FILE: tools/virtiofsd/fuse_lowlevel.c:2304:
+^Iif (se->conn.proto_major < 6 || se->conn.proto_minor < 15)$

ERROR: braces {} are necessary for all arms of this statement
#2325: FILE: tools/virtiofsd/fuse_lowlevel.c:2304:
+       if (se->conn.proto_major < 6 || se->conn.proto_minor < 15)
[...]

ERROR: code indent should never use tabs
#2326: FILE: tools/virtiofsd/fuse_lowlevel.c:2305:
+^I^Ireturn -ENOSYS;$

ERROR: code indent should never use tabs
#2328: FILE: tools/virtiofsd/fuse_lowlevel.c:2307:
+^Iout.unique = 0;$

ERROR: code indent should never use tabs
#2329: FILE: tools/virtiofsd/fuse_lowlevel.c:2308:
+^Iout.error = FUSE_NOTIFY_STORE;$

ERROR: code indent should never use tabs
#2331: FILE: tools/virtiofsd/fuse_lowlevel.c:2310:
+^Ioutarg.nodeid = ino;$

ERROR: code indent should never use tabs
#2332: FILE: tools/virtiofsd/fuse_lowlevel.c:2311:
+^Ioutarg.offset = offset;$

ERROR: code indent should never use tabs
#2333: FILE: tools/virtiofsd/fuse_lowlevel.c:2312:
+^Ioutarg.size = size;$

ERROR: code indent should never use tabs
#2334: FILE: tools/virtiofsd/fuse_lowlevel.c:2313:
+^Ioutarg.padding = 0;$

ERROR: code indent should never use tabs
#2336: FILE: tools/virtiofsd/fuse_lowlevel.c:2315:
+^Iiov[0].iov_base = &out;$

ERROR: code indent should never use tabs
#2337: FILE: tools/virtiofsd/fuse_lowlevel.c:2316:
+^Iiov[0].iov_len = sizeof(out);$

ERROR: code indent should never use tabs
#2338: FILE: tools/virtiofsd/fuse_lowlevel.c:2317:
+^Iiov[1].iov_base = &outarg;$

ERROR: code indent should never use tabs
#2339: FILE: tools/virtiofsd/fuse_lowlevel.c:2318:
+^Iiov[1].iov_len = sizeof(outarg);$

ERROR: code indent should never use tabs
#2341: FILE: tools/virtiofsd/fuse_lowlevel.c:2320:
+^Ires = fuse_send_data_iov(se, NULL, iov, 2, bufv, flags);$

ERROR: code indent should never use tabs
#2342: FILE: tools/virtiofsd/fuse_lowlevel.c:2321:
+^Iif (res > 0)$

ERROR: braces {} are necessary for all arms of this statement
#2342: FILE: tools/virtiofsd/fuse_lowlevel.c:2321:
+       if (res > 0)
[...]

ERROR: code indent should never use tabs
#2343: FILE: tools/virtiofsd/fuse_lowlevel.c:2322:
+^I^Ires = -res;$

ERROR: code indent should never use tabs
#2345: FILE: tools/virtiofsd/fuse_lowlevel.c:2324:
+^Ireturn res;$

ERROR: code indent should never use tabs
#2349: FILE: tools/virtiofsd/fuse_lowlevel.c:2328:
+^Istruct fuse_notify_req nreq;$

ERROR: code indent should never use tabs
#2350: FILE: tools/virtiofsd/fuse_lowlevel.c:2329:
+^Ivoid *cookie;$

ERROR: code indent should never use tabs
#2354: FILE: tools/virtiofsd/fuse_lowlevel.c:2333:
+^I^I^I^I   fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#2355: FILE: tools/virtiofsd/fuse_lowlevel.c:2334:
+^I^I^I^I   const void *inarg,$

ERROR: code indent should never use tabs
#2356: FILE: tools/virtiofsd/fuse_lowlevel.c:2335:
+^I^I^I^I   const struct fuse_buf *ibuf)$

ERROR: code indent should never use tabs
#2358: FILE: tools/virtiofsd/fuse_lowlevel.c:2337:
+^Istruct fuse_session *se = req->se;$

ERROR: code indent should never use tabs
#2359: FILE: tools/virtiofsd/fuse_lowlevel.c:2338:
+^Istruct fuse_retrieve_req *rreq =$

ERROR: code indent should never use tabs
#2360: FILE: tools/virtiofsd/fuse_lowlevel.c:2339:
+^I^Icontainer_of(nreq, struct fuse_retrieve_req, nreq);$

ERROR: code indent should never use tabs
#2361: FILE: tools/virtiofsd/fuse_lowlevel.c:2340:
+^Iconst struct fuse_notify_retrieve_in *arg = inarg;$

ERROR: code indent should never use tabs
#2362: FILE: tools/virtiofsd/fuse_lowlevel.c:2341:
+^Istruct fuse_bufvec bufv = {$

ERROR: code indent should never use tabs
#2363: FILE: tools/virtiofsd/fuse_lowlevel.c:2342:
+^I^I.buf[0] = *ibuf,$

ERROR: code indent should never use tabs
#2364: FILE: tools/virtiofsd/fuse_lowlevel.c:2343:
+^I^I.count = 1,$

ERROR: code indent should never use tabs
#2365: FILE: tools/virtiofsd/fuse_lowlevel.c:2344:
+^I};$

ERROR: code indent should never use tabs
#2367: FILE: tools/virtiofsd/fuse_lowlevel.c:2346:
+^Iif (!(bufv.buf[0].flags & FUSE_BUF_IS_FD))$

ERROR: braces {} are necessary for all arms of this statement
#2367: FILE: tools/virtiofsd/fuse_lowlevel.c:2346:
+       if (!(bufv.buf[0].flags & FUSE_BUF_IS_FD))
[...]

ERROR: code indent should never use tabs
#2368: FILE: tools/virtiofsd/fuse_lowlevel.c:2347:
+^I^Ibufv.buf[0].mem = PARAM(arg);$

ERROR: code indent should never use tabs
#2370: FILE: tools/virtiofsd/fuse_lowlevel.c:2349:
+^Ibufv.buf[0].size -= sizeof(struct fuse_in_header) +$

ERROR: code indent should never use tabs
#2371: FILE: tools/virtiofsd/fuse_lowlevel.c:2350:
+^I^Isizeof(struct fuse_notify_retrieve_in);$

ERROR: code indent should never use tabs
#2373: FILE: tools/virtiofsd/fuse_lowlevel.c:2352:
+^Iif (bufv.buf[0].size < arg->size) {$

WARNING: line over 80 characters
#2374: FILE: tools/virtiofsd/fuse_lowlevel.c:2353:
+               fuse_log(FUSE_LOG_ERR, "fuse: retrieve reply: buffer size too small\n");

ERROR: code indent should never use tabs
#2374: FILE: tools/virtiofsd/fuse_lowlevel.c:2353:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: retrieve reply: buffer size too small\n");$

ERROR: code indent should never use tabs
#2375: FILE: tools/virtiofsd/fuse_lowlevel.c:2354:
+^I^Ifuse_reply_none(req);$

ERROR: code indent should never use tabs
#2376: FILE: tools/virtiofsd/fuse_lowlevel.c:2355:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#2377: FILE: tools/virtiofsd/fuse_lowlevel.c:2356:
+^I}$

ERROR: code indent should never use tabs
#2378: FILE: tools/virtiofsd/fuse_lowlevel.c:2357:
+^Ibufv.buf[0].size = arg->size;$

ERROR: code indent should never use tabs
#2380: FILE: tools/virtiofsd/fuse_lowlevel.c:2359:
+^Iif (se->op.retrieve_reply) {$

ERROR: code indent should never use tabs
#2381: FILE: tools/virtiofsd/fuse_lowlevel.c:2360:
+^I^Ise->op.retrieve_reply(req, rreq->cookie, ino,$

ERROR: code indent should never use tabs
#2382: FILE: tools/virtiofsd/fuse_lowlevel.c:2361:
+^I^I^I^I^I  arg->offset, &bufv);$

ERROR: code indent should never use tabs
#2383: FILE: tools/virtiofsd/fuse_lowlevel.c:2362:
+^I} else {$

ERROR: code indent should never use tabs
#2384: FILE: tools/virtiofsd/fuse_lowlevel.c:2363:
+^I^Ifuse_reply_none(req);$

ERROR: code indent should never use tabs
#2385: FILE: tools/virtiofsd/fuse_lowlevel.c:2364:
+^I}$

ERROR: code indent should never use tabs
#2387: FILE: tools/virtiofsd/fuse_lowlevel.c:2366:
+^Ifree(rreq);$

ERROR: code indent should never use tabs
#2388: FILE: tools/virtiofsd/fuse_lowlevel.c:2367:
+^Iif ((ibuf->flags & FUSE_BUF_IS_FD) && bufv.idx < bufv.count)$

ERROR: braces {} are necessary for all arms of this statement
#2388: FILE: tools/virtiofsd/fuse_lowlevel.c:2367:
+       if ((ibuf->flags & FUSE_BUF_IS_FD) && bufv.idx < bufv.count)
[...]

ERROR: code indent should never use tabs
#2389: FILE: tools/virtiofsd/fuse_lowlevel.c:2368:
+^I^Ifuse_ll_clear_pipe(se);$

ERROR: code indent should never use tabs
#2393: FILE: tools/virtiofsd/fuse_lowlevel.c:2372:
+^I^I^I^I  size_t size, off_t offset, void *cookie)$

ERROR: code indent should never use tabs
#2395: FILE: tools/virtiofsd/fuse_lowlevel.c:2374:
+^Istruct fuse_notify_retrieve_out outarg;$

ERROR: code indent should never use tabs
#2396: FILE: tools/virtiofsd/fuse_lowlevel.c:2375:
+^Istruct iovec iov[2];$

ERROR: code indent should never use tabs
#2397: FILE: tools/virtiofsd/fuse_lowlevel.c:2376:
+^Istruct fuse_retrieve_req *rreq;$

ERROR: code indent should never use tabs
#2398: FILE: tools/virtiofsd/fuse_lowlevel.c:2377:
+^Iint err;$

ERROR: code indent should never use tabs
#2400: FILE: tools/virtiofsd/fuse_lowlevel.c:2379:
+^Iif (!se)$

ERROR: braces {} are necessary for all arms of this statement
#2400: FILE: tools/virtiofsd/fuse_lowlevel.c:2379:
+       if (!se)
[...]

ERROR: code indent should never use tabs
#2401: FILE: tools/virtiofsd/fuse_lowlevel.c:2380:
+^I^Ireturn -EINVAL;$

ERROR: code indent should never use tabs
#2403: FILE: tools/virtiofsd/fuse_lowlevel.c:2382:
+^Iif (se->conn.proto_major < 6 || se->conn.proto_minor < 15)$

ERROR: braces {} are necessary for all arms of this statement
#2403: FILE: tools/virtiofsd/fuse_lowlevel.c:2382:
+       if (se->conn.proto_major < 6 || se->conn.proto_minor < 15)
[...]

ERROR: code indent should never use tabs
#2404: FILE: tools/virtiofsd/fuse_lowlevel.c:2383:
+^I^Ireturn -ENOSYS;$

ERROR: code indent should never use tabs
#2406: FILE: tools/virtiofsd/fuse_lowlevel.c:2385:
+^Irreq = malloc(sizeof(*rreq));$

ERROR: code indent should never use tabs
#2407: FILE: tools/virtiofsd/fuse_lowlevel.c:2386:
+^Iif (rreq == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#2407: FILE: tools/virtiofsd/fuse_lowlevel.c:2386:
+       if (rreq == NULL)
[...]

ERROR: code indent should never use tabs
#2408: FILE: tools/virtiofsd/fuse_lowlevel.c:2387:
+^I^Ireturn -ENOMEM;$

ERROR: code indent should never use tabs
#2410: FILE: tools/virtiofsd/fuse_lowlevel.c:2389:
+^Ipthread_mutex_lock(&se->lock);$

ERROR: code indent should never use tabs
#2411: FILE: tools/virtiofsd/fuse_lowlevel.c:2390:
+^Irreq->cookie = cookie;$

ERROR: code indent should never use tabs
#2412: FILE: tools/virtiofsd/fuse_lowlevel.c:2391:
+^Irreq->nreq.unique = se->notify_ctr++;$

ERROR: code indent should never use tabs
#2413: FILE: tools/virtiofsd/fuse_lowlevel.c:2392:
+^Irreq->nreq.reply = fuse_ll_retrieve_reply;$

ERROR: code indent should never use tabs
#2414: FILE: tools/virtiofsd/fuse_lowlevel.c:2393:
+^Ilist_add_nreq(&rreq->nreq, &se->notify_list);$

ERROR: code indent should never use tabs
#2415: FILE: tools/virtiofsd/fuse_lowlevel.c:2394:
+^Ipthread_mutex_unlock(&se->lock);$

ERROR: code indent should never use tabs
#2417: FILE: tools/virtiofsd/fuse_lowlevel.c:2396:
+^Ioutarg.notify_unique = rreq->nreq.unique;$

ERROR: code indent should never use tabs
#2418: FILE: tools/virtiofsd/fuse_lowlevel.c:2397:
+^Ioutarg.nodeid = ino;$

ERROR: code indent should never use tabs
#2419: FILE: tools/virtiofsd/fuse_lowlevel.c:2398:
+^Ioutarg.offset = offset;$

ERROR: code indent should never use tabs
#2420: FILE: tools/virtiofsd/fuse_lowlevel.c:2399:
+^Ioutarg.size = size;$

ERROR: code indent should never use tabs
#2421: FILE: tools/virtiofsd/fuse_lowlevel.c:2400:
+^Ioutarg.padding = 0;$

ERROR: code indent should never use tabs
#2423: FILE: tools/virtiofsd/fuse_lowlevel.c:2402:
+^Iiov[1].iov_base = &outarg;$

ERROR: code indent should never use tabs
#2424: FILE: tools/virtiofsd/fuse_lowlevel.c:2403:
+^Iiov[1].iov_len = sizeof(outarg);$

ERROR: code indent should never use tabs
#2426: FILE: tools/virtiofsd/fuse_lowlevel.c:2405:
+^Ierr = send_notify_iov(se, FUSE_NOTIFY_RETRIEVE, iov, 2);$

ERROR: code indent should never use tabs
#2427: FILE: tools/virtiofsd/fuse_lowlevel.c:2406:
+^Iif (err) {$

ERROR: code indent should never use tabs
#2428: FILE: tools/virtiofsd/fuse_lowlevel.c:2407:
+^I^Ipthread_mutex_lock(&se->lock);$

ERROR: code indent should never use tabs
#2429: FILE: tools/virtiofsd/fuse_lowlevel.c:2408:
+^I^Ilist_del_nreq(&rreq->nreq);$

ERROR: code indent should never use tabs
#2430: FILE: tools/virtiofsd/fuse_lowlevel.c:2409:
+^I^Ipthread_mutex_unlock(&se->lock);$

ERROR: code indent should never use tabs
#2431: FILE: tools/virtiofsd/fuse_lowlevel.c:2410:
+^I^Ifree(rreq);$

ERROR: code indent should never use tabs
#2432: FILE: tools/virtiofsd/fuse_lowlevel.c:2411:
+^I}$

ERROR: code indent should never use tabs
#2434: FILE: tools/virtiofsd/fuse_lowlevel.c:2413:
+^Ireturn err;$

ERROR: code indent should never use tabs
#2439: FILE: tools/virtiofsd/fuse_lowlevel.c:2418:
+^Ireturn req->se->userdata;$

ERROR: code indent should never use tabs
#2444: FILE: tools/virtiofsd/fuse_lowlevel.c:2423:
+^Ireturn &req->ctx;$

ERROR: code indent should never use tabs
#2448: FILE: tools/virtiofsd/fuse_lowlevel.c:2427:
+^I^I^I     void *data)$

ERROR: code indent should never use tabs
#2450: FILE: tools/virtiofsd/fuse_lowlevel.c:2429:
+^Ipthread_mutex_lock(&req->lock);$

ERROR: code indent should never use tabs
#2451: FILE: tools/virtiofsd/fuse_lowlevel.c:2430:
+^Ipthread_mutex_lock(&req->se->lock);$

ERROR: code indent should never use tabs
#2452: FILE: tools/virtiofsd/fuse_lowlevel.c:2431:
+^Ireq->u.ni.func = func;$

ERROR: code indent should never use tabs
#2453: FILE: tools/virtiofsd/fuse_lowlevel.c:2432:
+^Ireq->u.ni.data = data;$

ERROR: code indent should never use tabs
#2454: FILE: tools/virtiofsd/fuse_lowlevel.c:2433:
+^Ipthread_mutex_unlock(&req->se->lock);$

ERROR: code indent should never use tabs
#2455: FILE: tools/virtiofsd/fuse_lowlevel.c:2434:
+^Iif (req->interrupted && func)$

ERROR: braces {} are necessary for all arms of this statement
#2455: FILE: tools/virtiofsd/fuse_lowlevel.c:2434:
+       if (req->interrupted && func)
[...]

ERROR: code indent should never use tabs
#2456: FILE: tools/virtiofsd/fuse_lowlevel.c:2435:
+^I^Ifunc(req, data);$

ERROR: code indent should never use tabs
#2457: FILE: tools/virtiofsd/fuse_lowlevel.c:2436:
+^Ipthread_mutex_unlock(&req->lock);$

ERROR: code indent should never use tabs
#2462: FILE: tools/virtiofsd/fuse_lowlevel.c:2441:
+^Iint interrupted;$

ERROR: code indent should never use tabs
#2464: FILE: tools/virtiofsd/fuse_lowlevel.c:2443:
+^Ipthread_mutex_lock(&req->se->lock);$

ERROR: code indent should never use tabs
#2465: FILE: tools/virtiofsd/fuse_lowlevel.c:2444:
+^Iinterrupted = req->interrupted;$

ERROR: code indent should never use tabs
#2466: FILE: tools/virtiofsd/fuse_lowlevel.c:2445:
+^Ipthread_mutex_unlock(&req->se->lock);$

ERROR: code indent should never use tabs
#2468: FILE: tools/virtiofsd/fuse_lowlevel.c:2447:
+^Ireturn interrupted;$

ERROR: code indent should never use tabs
#2472: FILE: tools/virtiofsd/fuse_lowlevel.c:2451:
+^Ivoid (*func)(fuse_req_t, fuse_ino_t, const void *);$

ERROR: code indent should never use tabs
#2473: FILE: tools/virtiofsd/fuse_lowlevel.c:2452:
+^Iconst char *name;$

ERROR: code indent should never use tabs
#2475: FILE: tools/virtiofsd/fuse_lowlevel.c:2454:
+^I[FUSE_LOOKUP]^I   = { do_lookup,      "LOOKUP"^I     },$

ERROR: code indent should never use tabs
#2476: FILE: tools/virtiofsd/fuse_lowlevel.c:2455:
+^I[FUSE_FORGET]^I   = { do_forget,      "FORGET"^I     },$

ERROR: code indent should never use tabs
#2477: FILE: tools/virtiofsd/fuse_lowlevel.c:2456:
+^I[FUSE_GETATTR]^I   = { do_getattr,     "GETATTR"     },$

ERROR: code indent should never use tabs
#2478: FILE: tools/virtiofsd/fuse_lowlevel.c:2457:
+^I[FUSE_SETATTR]^I   = { do_setattr,     "SETATTR"     },$

ERROR: code indent should never use tabs
#2479: FILE: tools/virtiofsd/fuse_lowlevel.c:2458:
+^I[FUSE_READLINK]^I   = { do_readlink,    "READLINK"    },$

ERROR: code indent should never use tabs
#2480: FILE: tools/virtiofsd/fuse_lowlevel.c:2459:
+^I[FUSE_SYMLINK]^I   = { do_symlink,     "SYMLINK"     },$

ERROR: code indent should never use tabs
#2481: FILE: tools/virtiofsd/fuse_lowlevel.c:2460:
+^I[FUSE_MKNOD]^I   = { do_mknod,       "MKNOD"^I     },$

ERROR: code indent should never use tabs
#2482: FILE: tools/virtiofsd/fuse_lowlevel.c:2461:
+^I[FUSE_MKDIR]^I   = { do_mkdir,       "MKDIR"^I     },$

ERROR: code indent should never use tabs
#2483: FILE: tools/virtiofsd/fuse_lowlevel.c:2462:
+^I[FUSE_UNLINK]^I   = { do_unlink,      "UNLINK"^I     },$

ERROR: code indent should never use tabs
#2484: FILE: tools/virtiofsd/fuse_lowlevel.c:2463:
+^I[FUSE_RMDIR]^I   = { do_rmdir,       "RMDIR"^I     },$

ERROR: code indent should never use tabs
#2485: FILE: tools/virtiofsd/fuse_lowlevel.c:2464:
+^I[FUSE_RENAME]^I   = { do_rename,      "RENAME"^I     },$

ERROR: code indent should never use tabs
#2486: FILE: tools/virtiofsd/fuse_lowlevel.c:2465:
+^I[FUSE_LINK]^I   = { do_link,^I       "LINK"^I     },$

ERROR: code indent should never use tabs
#2487: FILE: tools/virtiofsd/fuse_lowlevel.c:2466:
+^I[FUSE_OPEN]^I   = { do_open,^I       "OPEN"^I     },$

ERROR: code indent should never use tabs
#2488: FILE: tools/virtiofsd/fuse_lowlevel.c:2467:
+^I[FUSE_READ]^I   = { do_read,^I       "READ"^I     },$

ERROR: code indent should never use tabs
#2489: FILE: tools/virtiofsd/fuse_lowlevel.c:2468:
+^I[FUSE_WRITE]^I   = { do_write,       "WRITE"^I     },$

ERROR: code indent should never use tabs
#2490: FILE: tools/virtiofsd/fuse_lowlevel.c:2469:
+^I[FUSE_STATFS]^I   = { do_statfs,      "STATFS"^I     },$

ERROR: code indent should never use tabs
#2491: FILE: tools/virtiofsd/fuse_lowlevel.c:2470:
+^I[FUSE_RELEASE]^I   = { do_release,     "RELEASE"     },$

ERROR: code indent should never use tabs
#2492: FILE: tools/virtiofsd/fuse_lowlevel.c:2471:
+^I[FUSE_FSYNC]^I   = { do_fsync,       "FSYNC"^I     },$

ERROR: code indent should never use tabs
#2493: FILE: tools/virtiofsd/fuse_lowlevel.c:2472:
+^I[FUSE_SETXATTR]^I   = { do_setxattr,    "SETXATTR"    },$

ERROR: code indent should never use tabs
#2494: FILE: tools/virtiofsd/fuse_lowlevel.c:2473:
+^I[FUSE_GETXATTR]^I   = { do_getxattr,    "GETXATTR"    },$

ERROR: code indent should never use tabs
#2495: FILE: tools/virtiofsd/fuse_lowlevel.c:2474:
+^I[FUSE_LISTXATTR]   = { do_listxattr,   "LISTXATTR"   },$

ERROR: code indent should never use tabs
#2496: FILE: tools/virtiofsd/fuse_lowlevel.c:2475:
+^I[FUSE_REMOVEXATTR] = { do_removexattr, "REMOVEXATTR" },$

ERROR: code indent should never use tabs
#2497: FILE: tools/virtiofsd/fuse_lowlevel.c:2476:
+^I[FUSE_FLUSH]^I   = { do_flush,       "FLUSH"^I     },$

ERROR: code indent should never use tabs
#2498: FILE: tools/virtiofsd/fuse_lowlevel.c:2477:
+^I[FUSE_INIT]^I   = { do_init,^I       "INIT"^I     },$

ERROR: code indent should never use tabs
#2499: FILE: tools/virtiofsd/fuse_lowlevel.c:2478:
+^I[FUSE_OPENDIR]^I   = { do_opendir,     "OPENDIR"     },$

ERROR: code indent should never use tabs
#2500: FILE: tools/virtiofsd/fuse_lowlevel.c:2479:
+^I[FUSE_READDIR]^I   = { do_readdir,     "READDIR"     },$

ERROR: code indent should never use tabs
#2501: FILE: tools/virtiofsd/fuse_lowlevel.c:2480:
+^I[FUSE_RELEASEDIR]  = { do_releasedir,  "RELEASEDIR"  },$

ERROR: code indent should never use tabs
#2502: FILE: tools/virtiofsd/fuse_lowlevel.c:2481:
+^I[FUSE_FSYNCDIR]^I   = { do_fsyncdir,    "FSYNCDIR"    },$

ERROR: code indent should never use tabs
#2503: FILE: tools/virtiofsd/fuse_lowlevel.c:2482:
+^I[FUSE_GETLK]^I   = { do_getlk,       "GETLK"^I     },$

ERROR: code indent should never use tabs
#2504: FILE: tools/virtiofsd/fuse_lowlevel.c:2483:
+^I[FUSE_SETLK]^I   = { do_setlk,       "SETLK"^I     },$

ERROR: code indent should never use tabs
#2505: FILE: tools/virtiofsd/fuse_lowlevel.c:2484:
+^I[FUSE_SETLKW]^I   = { do_setlkw,      "SETLKW"^I     },$

ERROR: code indent should never use tabs
#2506: FILE: tools/virtiofsd/fuse_lowlevel.c:2485:
+^I[FUSE_ACCESS]^I   = { do_access,      "ACCESS"^I     },$

ERROR: code indent should never use tabs
#2507: FILE: tools/virtiofsd/fuse_lowlevel.c:2486:
+^I[FUSE_CREATE]^I   = { do_create,      "CREATE"^I     },$

ERROR: code indent should never use tabs
#2508: FILE: tools/virtiofsd/fuse_lowlevel.c:2487:
+^I[FUSE_INTERRUPT]   = { do_interrupt,   "INTERRUPT"   },$

ERROR: code indent should never use tabs
#2509: FILE: tools/virtiofsd/fuse_lowlevel.c:2488:
+^I[FUSE_BMAP]^I   = { do_bmap,^I       "BMAP"^I     },$

ERROR: code indent should never use tabs
#2510: FILE: tools/virtiofsd/fuse_lowlevel.c:2489:
+^I[FUSE_IOCTL]^I   = { do_ioctl,       "IOCTL"^I     },$

ERROR: code indent should never use tabs
#2511: FILE: tools/virtiofsd/fuse_lowlevel.c:2490:
+^I[FUSE_POLL]^I   = { do_poll,        "POLL"^I     },$

ERROR: code indent should never use tabs
#2512: FILE: tools/virtiofsd/fuse_lowlevel.c:2491:
+^I[FUSE_FALLOCATE]   = { do_fallocate,   "FALLOCATE"   },$

ERROR: code indent should never use tabs
#2513: FILE: tools/virtiofsd/fuse_lowlevel.c:2492:
+^I[FUSE_DESTROY]^I   = { do_destroy,     "DESTROY"     },$

ERROR: code indent should never use tabs
#2514: FILE: tools/virtiofsd/fuse_lowlevel.c:2493:
+^I[FUSE_NOTIFY_REPLY] = { (void *) 1,    "NOTIFY_REPLY" },$

ERROR: code indent should never use tabs
#2515: FILE: tools/virtiofsd/fuse_lowlevel.c:2494:
+^I[FUSE_BATCH_FORGET] = { do_batch_forget, "BATCH_FORGET" },$

ERROR: code indent should never use tabs
#2516: FILE: tools/virtiofsd/fuse_lowlevel.c:2495:
+^I[FUSE_READDIRPLUS] = { do_readdirplus,^I"READDIRPLUS"},$

ERROR: code indent should never use tabs
#2517: FILE: tools/virtiofsd/fuse_lowlevel.c:2496:
+^I[FUSE_RENAME2]     = { do_rename2,      "RENAME2"    },$

ERROR: code indent should never use tabs
#2518: FILE: tools/virtiofsd/fuse_lowlevel.c:2497:
+^I[FUSE_COPY_FILE_RANGE] = { do_copy_file_range, "COPY_FILE_RANGE" },$

ERROR: code indent should never use tabs
#2519: FILE: tools/virtiofsd/fuse_lowlevel.c:2498:
+^I[FUSE_LSEEK]^I   = { do_lseek,       "LSEEK"^I     },$

ERROR: code indent should never use tabs
#2520: FILE: tools/virtiofsd/fuse_lowlevel.c:2499:
+^I[CUSE_INIT]^I   = { cuse_lowlevel_init, "CUSE_INIT"   },$

ERROR: code indent should never use tabs
#2527: FILE: tools/virtiofsd/fuse_lowlevel.c:2506:
+^Iif (opcode >= FUSE_MAXOP || !fuse_ll_ops[opcode].name)$

ERROR: braces {} are necessary for all arms of this statement
#2527: FILE: tools/virtiofsd/fuse_lowlevel.c:2506:
+       if (opcode >= FUSE_MAXOP || !fuse_ll_ops[opcode].name)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#2528: FILE: tools/virtiofsd/fuse_lowlevel.c:2507:
+^I^Ireturn "???";$

ERROR: code indent should never use tabs
#2529: FILE: tools/virtiofsd/fuse_lowlevel.c:2508:
+^Ielse$

ERROR: code indent should never use tabs
#2530: FILE: tools/virtiofsd/fuse_lowlevel.c:2509:
+^I^Ireturn fuse_ll_ops[opcode].name;$

ERROR: code indent should never use tabs
#2534: FILE: tools/virtiofsd/fuse_lowlevel.c:2513:
+^I^I^I^I  struct fuse_bufvec *src)$

ERROR: code indent should never use tabs
#2536: FILE: tools/virtiofsd/fuse_lowlevel.c:2515:
+^Issize_t res = fuse_buf_copy(dst, src, 0);$

ERROR: code indent should never use tabs
#2537: FILE: tools/virtiofsd/fuse_lowlevel.c:2516:
+^Iif (res < 0) {$

WARNING: line over 80 characters
#2538: FILE: tools/virtiofsd/fuse_lowlevel.c:2517:
+               fuse_log(FUSE_LOG_ERR, "fuse: copy from pipe: %s\n", strerror(-res));

ERROR: code indent should never use tabs
#2538: FILE: tools/virtiofsd/fuse_lowlevel.c:2517:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: copy from pipe: %s\n", strerror(-res));$

ERROR: code indent should never use tabs
#2539: FILE: tools/virtiofsd/fuse_lowlevel.c:2518:
+^I^Ireturn res;$

ERROR: code indent should never use tabs
#2540: FILE: tools/virtiofsd/fuse_lowlevel.c:2519:
+^I}$

ERROR: code indent should never use tabs
#2541: FILE: tools/virtiofsd/fuse_lowlevel.c:2520:
+^Iif ((size_t)res < fuse_buf_size(dst)) {$

ERROR: code indent should never use tabs
#2542: FILE: tools/virtiofsd/fuse_lowlevel.c:2521:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: copy from pipe: short read\n");$

ERROR: code indent should never use tabs
#2543: FILE: tools/virtiofsd/fuse_lowlevel.c:2522:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#2544: FILE: tools/virtiofsd/fuse_lowlevel.c:2523:
+^I}$

ERROR: code indent should never use tabs
#2545: FILE: tools/virtiofsd/fuse_lowlevel.c:2524:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#2549: FILE: tools/virtiofsd/fuse_lowlevel.c:2528:
+^I^I^I      const struct fuse_buf *buf)$

ERROR: code indent should never use tabs
#2551: FILE: tools/virtiofsd/fuse_lowlevel.c:2530:
+^Ifuse_session_process_buf_int(se, buf, NULL);$

WARNING: line over 80 characters
#2555: FILE: tools/virtiofsd/fuse_lowlevel.c:2534:
+                                 const struct fuse_buf *buf, struct fuse_chan *ch)

ERROR: code indent should never use tabs
#2555: FILE: tools/virtiofsd/fuse_lowlevel.c:2534:
+^I^I^I^I  const struct fuse_buf *buf, struct fuse_chan *ch)$

ERROR: code indent should never use tabs
#2557: FILE: tools/virtiofsd/fuse_lowlevel.c:2536:
+^Iconst size_t write_header_size = sizeof(struct fuse_in_header) +$

ERROR: code indent should never use tabs
#2558: FILE: tools/virtiofsd/fuse_lowlevel.c:2537:
+^I^Isizeof(struct fuse_write_in);$

ERROR: code indent should never use tabs
#2559: FILE: tools/virtiofsd/fuse_lowlevel.c:2538:
+^Istruct fuse_bufvec bufv = { .buf[0] = *buf, .count = 1 };$

ERROR: code indent should never use tabs
#2560: FILE: tools/virtiofsd/fuse_lowlevel.c:2539:
+^Istruct fuse_bufvec tmpbuf = FUSE_BUFVEC_INIT(write_header_size);$

ERROR: code indent should never use tabs
#2561: FILE: tools/virtiofsd/fuse_lowlevel.c:2540:
+^Istruct fuse_in_header *in;$

ERROR: code indent should never use tabs
#2562: FILE: tools/virtiofsd/fuse_lowlevel.c:2541:
+^Iconst void *inarg;$

ERROR: code indent should never use tabs
#2563: FILE: tools/virtiofsd/fuse_lowlevel.c:2542:
+^Istruct fuse_req *req;$

ERROR: code indent should never use tabs
#2564: FILE: tools/virtiofsd/fuse_lowlevel.c:2543:
+^Ivoid *mbuf = NULL;$

ERROR: code indent should never use tabs
#2565: FILE: tools/virtiofsd/fuse_lowlevel.c:2544:
+^Iint err;$

ERROR: code indent should never use tabs
#2566: FILE: tools/virtiofsd/fuse_lowlevel.c:2545:
+^Iint res;$

ERROR: code indent should never use tabs
#2568: FILE: tools/virtiofsd/fuse_lowlevel.c:2547:
+^Iif (buf->flags & FUSE_BUF_IS_FD) {$

ERROR: code indent should never use tabs
#2569: FILE: tools/virtiofsd/fuse_lowlevel.c:2548:
+^I^Iif (buf->size < tmpbuf.buf[0].size)$

ERROR: braces {} are necessary for all arms of this statement
#2569: FILE: tools/virtiofsd/fuse_lowlevel.c:2548:
+               if (buf->size < tmpbuf.buf[0].size)
[...]

ERROR: code indent should never use tabs
#2570: FILE: tools/virtiofsd/fuse_lowlevel.c:2549:
+^I^I^Itmpbuf.buf[0].size = buf->size;$

ERROR: code indent should never use tabs
#2572: FILE: tools/virtiofsd/fuse_lowlevel.c:2551:
+^I^Imbuf = malloc(tmpbuf.buf[0].size);$

ERROR: code indent should never use tabs
#2573: FILE: tools/virtiofsd/fuse_lowlevel.c:2552:
+^I^Iif (mbuf == NULL) {$

WARNING: line over 80 characters
#2574: FILE: tools/virtiofsd/fuse_lowlevel.c:2553:
+                       fuse_log(FUSE_LOG_ERR, "fuse: failed to allocate header\n");

ERROR: code indent should never use tabs
#2574: FILE: tools/virtiofsd/fuse_lowlevel.c:2553:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "fuse: failed to allocate header\n");$

ERROR: code indent should never use tabs
#2575: FILE: tools/virtiofsd/fuse_lowlevel.c:2554:
+^I^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#2576: FILE: tools/virtiofsd/fuse_lowlevel.c:2555:
+^I^I}$

ERROR: code indent should never use tabs
#2577: FILE: tools/virtiofsd/fuse_lowlevel.c:2556:
+^I^Itmpbuf.buf[0].mem = mbuf;$

ERROR: code indent should never use tabs
#2579: FILE: tools/virtiofsd/fuse_lowlevel.c:2558:
+^I^Ires = fuse_ll_copy_from_pipe(&tmpbuf, &bufv);$

ERROR: code indent should never use tabs
#2580: FILE: tools/virtiofsd/fuse_lowlevel.c:2559:
+^I^Iif (res < 0)$

ERROR: braces {} are necessary for all arms of this statement
#2580: FILE: tools/virtiofsd/fuse_lowlevel.c:2559:
+               if (res < 0)
[...]

ERROR: code indent should never use tabs
#2581: FILE: tools/virtiofsd/fuse_lowlevel.c:2560:
+^I^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#2583: FILE: tools/virtiofsd/fuse_lowlevel.c:2562:
+^I^Iin = mbuf;$

ERROR: code indent should never use tabs
#2584: FILE: tools/virtiofsd/fuse_lowlevel.c:2563:
+^I} else {$

ERROR: code indent should never use tabs
#2585: FILE: tools/virtiofsd/fuse_lowlevel.c:2564:
+^I^Iin = buf->mem;$

ERROR: code indent should never use tabs
#2586: FILE: tools/virtiofsd/fuse_lowlevel.c:2565:
+^I}$

ERROR: code indent should never use tabs
#2588: FILE: tools/virtiofsd/fuse_lowlevel.c:2567:
+^Iif (se->debug) {$

ERROR: code indent should never use tabs
#2589: FILE: tools/virtiofsd/fuse_lowlevel.c:2568:
+^I^Ifuse_log(FUSE_LOG_DEBUG,$

ERROR: code indent should never use tabs
#2590: FILE: tools/virtiofsd/fuse_lowlevel.c:2569:
+^I^I^I"unique: %llu, opcode: %s (%i), nodeid: %llu, insize: %zu, pid: %u\n",$

ERROR: code indent should never use tabs
#2591: FILE: tools/virtiofsd/fuse_lowlevel.c:2570:
+^I^I^I(unsigned long long) in->unique,$

ERROR: code indent should never use tabs
#2592: FILE: tools/virtiofsd/fuse_lowlevel.c:2571:
+^I^I^Iopname((enum fuse_opcode) in->opcode), in->opcode,$

ERROR: code indent should never use tabs
#2593: FILE: tools/virtiofsd/fuse_lowlevel.c:2572:
+^I^I^I(unsigned long long) in->nodeid, buf->size, in->pid);$

ERROR: code indent should never use tabs
#2594: FILE: tools/virtiofsd/fuse_lowlevel.c:2573:
+^I}$

ERROR: code indent should never use tabs
#2596: FILE: tools/virtiofsd/fuse_lowlevel.c:2575:
+^Ireq = fuse_ll_alloc_req(se);$

ERROR: code indent should never use tabs
#2597: FILE: tools/virtiofsd/fuse_lowlevel.c:2576:
+^Iif (req == NULL) {$

ERROR: code indent should never use tabs
#2598: FILE: tools/virtiofsd/fuse_lowlevel.c:2577:
+^I^Istruct fuse_out_header out = {$

ERROR: code indent should never use tabs
#2599: FILE: tools/virtiofsd/fuse_lowlevel.c:2578:
+^I^I^I.unique = in->unique,$

ERROR: code indent should never use tabs
#2600: FILE: tools/virtiofsd/fuse_lowlevel.c:2579:
+^I^I^I.error = -ENOMEM,$

ERROR: code indent should never use tabs
#2601: FILE: tools/virtiofsd/fuse_lowlevel.c:2580:
+^I^I};$

ERROR: code indent should never use tabs
#2602: FILE: tools/virtiofsd/fuse_lowlevel.c:2581:
+^I^Istruct iovec iov = {$

ERROR: code indent should never use tabs
#2603: FILE: tools/virtiofsd/fuse_lowlevel.c:2582:
+^I^I^I.iov_base = &out,$

ERROR: code indent should never use tabs
#2604: FILE: tools/virtiofsd/fuse_lowlevel.c:2583:
+^I^I^I.iov_len = sizeof(struct fuse_out_header),$

ERROR: code indent should never use tabs
#2605: FILE: tools/virtiofsd/fuse_lowlevel.c:2584:
+^I^I};$

ERROR: code indent should never use tabs
#2607: FILE: tools/virtiofsd/fuse_lowlevel.c:2586:
+^I^Ifuse_send_msg(se, ch, &iov, 1);$

ERROR: code indent should never use tabs
#2608: FILE: tools/virtiofsd/fuse_lowlevel.c:2587:
+^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#2609: FILE: tools/virtiofsd/fuse_lowlevel.c:2588:
+^I}$

ERROR: code indent should never use tabs
#2611: FILE: tools/virtiofsd/fuse_lowlevel.c:2590:
+^Ireq->unique = in->unique;$

ERROR: code indent should never use tabs
#2612: FILE: tools/virtiofsd/fuse_lowlevel.c:2591:
+^Ireq->ctx.uid = in->uid;$

ERROR: code indent should never use tabs
#2613: FILE: tools/virtiofsd/fuse_lowlevel.c:2592:
+^Ireq->ctx.gid = in->gid;$

ERROR: code indent should never use tabs
#2614: FILE: tools/virtiofsd/fuse_lowlevel.c:2593:
+^Ireq->ctx.pid = in->pid;$

ERROR: code indent should never use tabs
#2615: FILE: tools/virtiofsd/fuse_lowlevel.c:2594:
+^Ireq->ch = ch ? fuse_chan_get(ch) : NULL;$

ERROR: code indent should never use tabs
#2617: FILE: tools/virtiofsd/fuse_lowlevel.c:2596:
+^Ierr = EIO;$

ERROR: code indent should never use tabs
#2618: FILE: tools/virtiofsd/fuse_lowlevel.c:2597:
+^Iif (!se->got_init) {$

ERROR: code indent should never use tabs
#2619: FILE: tools/virtiofsd/fuse_lowlevel.c:2598:
+^I^Ienum fuse_opcode expected;$

ERROR: code indent should never use tabs
#2621: FILE: tools/virtiofsd/fuse_lowlevel.c:2600:
+^I^Iexpected = se->cuse_data ? CUSE_INIT : FUSE_INIT;$

ERROR: code indent should never use tabs
#2622: FILE: tools/virtiofsd/fuse_lowlevel.c:2601:
+^I^Iif (in->opcode != expected)$

ERROR: braces {} are necessary for all arms of this statement
#2622: FILE: tools/virtiofsd/fuse_lowlevel.c:2601:
+               if (in->opcode != expected)
[...]

ERROR: code indent should never use tabs
#2623: FILE: tools/virtiofsd/fuse_lowlevel.c:2602:
+^I^I^Igoto reply_err;$

ERROR: code indent should never use tabs
#2624: FILE: tools/virtiofsd/fuse_lowlevel.c:2603:
+^I} else if (in->opcode == FUSE_INIT || in->opcode == CUSE_INIT)$

ERROR: braces {} are necessary for all arms of this statement
#2624: FILE: tools/virtiofsd/fuse_lowlevel.c:2603:
+       } else if (in->opcode == FUSE_INIT || in->opcode == CUSE_INIT)
[...]

ERROR: code indent should never use tabs
#2625: FILE: tools/virtiofsd/fuse_lowlevel.c:2604:
+^I^Igoto reply_err;$

ERROR: code indent should never use tabs
#2627: FILE: tools/virtiofsd/fuse_lowlevel.c:2606:
+^Ierr = EACCES;$

ERROR: code indent should never use tabs
#2628: FILE: tools/virtiofsd/fuse_lowlevel.c:2607:
+^I/* Implement -o allow_root */$

ERROR: code indent should never use tabs
#2629: FILE: tools/virtiofsd/fuse_lowlevel.c:2608:
+^Iif (se->deny_others && in->uid != se->owner && in->uid != 0 &&$

ERROR: code indent should never use tabs
#2630: FILE: tools/virtiofsd/fuse_lowlevel.c:2609:
+^I^I in->opcode != FUSE_INIT && in->opcode != FUSE_READ &&$

ERROR: code indent should never use tabs
#2631: FILE: tools/virtiofsd/fuse_lowlevel.c:2610:
+^I^I in->opcode != FUSE_WRITE && in->opcode != FUSE_FSYNC &&$

ERROR: code indent should never use tabs
#2632: FILE: tools/virtiofsd/fuse_lowlevel.c:2611:
+^I^I in->opcode != FUSE_RELEASE && in->opcode != FUSE_READDIR &&$

ERROR: code indent should never use tabs
#2633: FILE: tools/virtiofsd/fuse_lowlevel.c:2612:
+^I^I in->opcode != FUSE_FSYNCDIR && in->opcode != FUSE_RELEASEDIR &&$

ERROR: code indent should never use tabs
#2634: FILE: tools/virtiofsd/fuse_lowlevel.c:2613:
+^I^I in->opcode != FUSE_NOTIFY_REPLY &&$

ERROR: code indent should never use tabs
#2635: FILE: tools/virtiofsd/fuse_lowlevel.c:2614:
+^I^I in->opcode != FUSE_READDIRPLUS)$

ERROR: code indent should never use tabs
#2636: FILE: tools/virtiofsd/fuse_lowlevel.c:2615:
+^I^Igoto reply_err;$

ERROR: code indent should never use tabs
#2638: FILE: tools/virtiofsd/fuse_lowlevel.c:2617:
+^Ierr = ENOSYS;$

ERROR: code indent should never use tabs
#2639: FILE: tools/virtiofsd/fuse_lowlevel.c:2618:
+^Iif (in->opcode >= FUSE_MAXOP || !fuse_ll_ops[in->opcode].func)$

ERROR: braces {} are necessary for all arms of this statement
#2639: FILE: tools/virtiofsd/fuse_lowlevel.c:2618:
+       if (in->opcode >= FUSE_MAXOP || !fuse_ll_ops[in->opcode].func)
[...]

ERROR: code indent should never use tabs
#2640: FILE: tools/virtiofsd/fuse_lowlevel.c:2619:
+^I^Igoto reply_err;$

ERROR: code indent should never use tabs
#2641: FILE: tools/virtiofsd/fuse_lowlevel.c:2620:
+^Iif (in->opcode != FUSE_INTERRUPT) {$

ERROR: code indent should never use tabs
#2642: FILE: tools/virtiofsd/fuse_lowlevel.c:2621:
+^I^Istruct fuse_req *intr;$

ERROR: code indent should never use tabs
#2643: FILE: tools/virtiofsd/fuse_lowlevel.c:2622:
+^I^Ipthread_mutex_lock(&se->lock);$

ERROR: code indent should never use tabs
#2644: FILE: tools/virtiofsd/fuse_lowlevel.c:2623:
+^I^Iintr = check_interrupt(se, req);$

ERROR: code indent should never use tabs
#2645: FILE: tools/virtiofsd/fuse_lowlevel.c:2624:
+^I^Ilist_add_req(req, &se->list);$

ERROR: code indent should never use tabs
#2646: FILE: tools/virtiofsd/fuse_lowlevel.c:2625:
+^I^Ipthread_mutex_unlock(&se->lock);$

ERROR: code indent should never use tabs
#2647: FILE: tools/virtiofsd/fuse_lowlevel.c:2626:
+^I^Iif (intr)$

ERROR: braces {} are necessary for all arms of this statement
#2647: FILE: tools/virtiofsd/fuse_lowlevel.c:2626:
+               if (intr)
[...]

ERROR: code indent should never use tabs
#2648: FILE: tools/virtiofsd/fuse_lowlevel.c:2627:
+^I^I^Ifuse_reply_err(intr, EAGAIN);$

ERROR: code indent should never use tabs
#2649: FILE: tools/virtiofsd/fuse_lowlevel.c:2628:
+^I}$

ERROR: code indent should never use tabs
#2651: FILE: tools/virtiofsd/fuse_lowlevel.c:2630:
+^Iif ((buf->flags & FUSE_BUF_IS_FD) && write_header_size < buf->size &&$

ERROR: code indent should never use tabs
#2652: FILE: tools/virtiofsd/fuse_lowlevel.c:2631:
+^I    (in->opcode != FUSE_WRITE || !se->op.write_buf) &&$

ERROR: code indent should never use tabs
#2653: FILE: tools/virtiofsd/fuse_lowlevel.c:2632:
+^I    in->opcode != FUSE_NOTIFY_REPLY) {$

ERROR: code indent should never use tabs
#2654: FILE: tools/virtiofsd/fuse_lowlevel.c:2633:
+^I^Ivoid *newmbuf;$

ERROR: code indent should never use tabs
#2656: FILE: tools/virtiofsd/fuse_lowlevel.c:2635:
+^I^Ierr = ENOMEM;$

ERROR: code indent should never use tabs
#2657: FILE: tools/virtiofsd/fuse_lowlevel.c:2636:
+^I^Inewmbuf = realloc(mbuf, buf->size);$

ERROR: code indent should never use tabs
#2658: FILE: tools/virtiofsd/fuse_lowlevel.c:2637:
+^I^Iif (newmbuf == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#2658: FILE: tools/virtiofsd/fuse_lowlevel.c:2637:
+               if (newmbuf == NULL)
[...]

ERROR: code indent should never use tabs
#2659: FILE: tools/virtiofsd/fuse_lowlevel.c:2638:
+^I^I^Igoto reply_err;$

ERROR: code indent should never use tabs
#2660: FILE: tools/virtiofsd/fuse_lowlevel.c:2639:
+^I^Imbuf = newmbuf;$

ERROR: code indent should never use tabs
#2662: FILE: tools/virtiofsd/fuse_lowlevel.c:2641:
+^I^Itmpbuf = FUSE_BUFVEC_INIT(buf->size - write_header_size);$

ERROR: code indent should never use tabs
#2663: FILE: tools/virtiofsd/fuse_lowlevel.c:2642:
+^I^Itmpbuf.buf[0].mem = (char *)mbuf + write_header_size;$

ERROR: code indent should never use tabs
#2665: FILE: tools/virtiofsd/fuse_lowlevel.c:2644:
+^I^Ires = fuse_ll_copy_from_pipe(&tmpbuf, &bufv);$

ERROR: code indent should never use tabs
#2666: FILE: tools/virtiofsd/fuse_lowlevel.c:2645:
+^I^Ierr = -res;$

ERROR: code indent should never use tabs
#2667: FILE: tools/virtiofsd/fuse_lowlevel.c:2646:
+^I^Iif (res < 0)$

ERROR: braces {} are necessary for all arms of this statement
#2667: FILE: tools/virtiofsd/fuse_lowlevel.c:2646:
+               if (res < 0)
[...]

ERROR: code indent should never use tabs
#2668: FILE: tools/virtiofsd/fuse_lowlevel.c:2647:
+^I^I^Igoto reply_err;$

ERROR: code indent should never use tabs
#2670: FILE: tools/virtiofsd/fuse_lowlevel.c:2649:
+^I^Iin = mbuf;$

ERROR: code indent should never use tabs
#2671: FILE: tools/virtiofsd/fuse_lowlevel.c:2650:
+^I}$

ERROR: code indent should never use tabs
#2673: FILE: tools/virtiofsd/fuse_lowlevel.c:2652:
+^Iinarg = (void *) &in[1];$

ERROR: code indent should never use tabs
#2674: FILE: tools/virtiofsd/fuse_lowlevel.c:2653:
+^Iif (in->opcode == FUSE_WRITE && se->op.write_buf)$

ERROR: braces {} are necessary for all arms of this statement
#2674: FILE: tools/virtiofsd/fuse_lowlevel.c:2653:
+       if (in->opcode == FUSE_WRITE && se->op.write_buf)
[...]
+       else if (in->opcode == FUSE_NOTIFY_REPLY)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#2675: FILE: tools/virtiofsd/fuse_lowlevel.c:2654:
+^I^Ido_write_buf(req, in->nodeid, inarg, buf);$

ERROR: code indent should never use tabs
#2676: FILE: tools/virtiofsd/fuse_lowlevel.c:2655:
+^Ielse if (in->opcode == FUSE_NOTIFY_REPLY)$

ERROR: braces {} are necessary for all arms of this statement
#2676: FILE: tools/virtiofsd/fuse_lowlevel.c:2655:
+       else if (in->opcode == FUSE_NOTIFY_REPLY)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#2677: FILE: tools/virtiofsd/fuse_lowlevel.c:2656:
+^I^Ido_notify_reply(req, in->nodeid, inarg, buf);$

ERROR: code indent should never use tabs
#2678: FILE: tools/virtiofsd/fuse_lowlevel.c:2657:
+^Ielse$

ERROR: code indent should never use tabs
#2679: FILE: tools/virtiofsd/fuse_lowlevel.c:2658:
+^I^Ifuse_ll_ops[in->opcode].func(req, in->nodeid, inarg);$

ERROR: code indent should never use tabs
#2682: FILE: tools/virtiofsd/fuse_lowlevel.c:2661:
+^Ifree(mbuf);$

ERROR: code indent should never use tabs
#2683: FILE: tools/virtiofsd/fuse_lowlevel.c:2662:
+^Ireturn;$

ERROR: code indent should never use tabs
#2686: FILE: tools/virtiofsd/fuse_lowlevel.c:2665:
+^Ifuse_reply_err(req, err);$

ERROR: code indent should never use tabs
#2688: FILE: tools/virtiofsd/fuse_lowlevel.c:2667:
+^Iif (buf->flags & FUSE_BUF_IS_FD)$

ERROR: braces {} are necessary for all arms of this statement
#2688: FILE: tools/virtiofsd/fuse_lowlevel.c:2667:
+       if (buf->flags & FUSE_BUF_IS_FD)
[...]

ERROR: code indent should never use tabs
#2689: FILE: tools/virtiofsd/fuse_lowlevel.c:2668:
+^I^Ifuse_ll_clear_pipe(se);$

ERROR: code indent should never use tabs
#2690: FILE: tools/virtiofsd/fuse_lowlevel.c:2669:
+^Igoto out_free;$

ERROR: space required after that ',' (ctx:VxV)
#2693: FILE: tools/virtiofsd/fuse_lowlevel.c:2672:
+#define LL_OPTION(n,o,v) \
                    ^

ERROR: space required after that ',' (ctx:VxV)
#2693: FILE: tools/virtiofsd/fuse_lowlevel.c:2672:
+#define LL_OPTION(n,o,v) \
                      ^

ERROR: code indent should never use tabs
#2694: FILE: tools/virtiofsd/fuse_lowlevel.c:2673:
+^I{ n, offsetof(struct fuse_session, o), v }$

ERROR: code indent should never use tabs
#2697: FILE: tools/virtiofsd/fuse_lowlevel.c:2676:
+^ILL_OPTION("debug", debug, 1),$

ERROR: code indent should never use tabs
#2698: FILE: tools/virtiofsd/fuse_lowlevel.c:2677:
+^ILL_OPTION("-d", debug, 1),$

ERROR: code indent should never use tabs
#2699: FILE: tools/virtiofsd/fuse_lowlevel.c:2678:
+^ILL_OPTION("--debug", debug, 1),$

ERROR: code indent should never use tabs
#2700: FILE: tools/virtiofsd/fuse_lowlevel.c:2679:
+^ILL_OPTION("allow_root", deny_others, 1),$

ERROR: code indent should never use tabs
#2701: FILE: tools/virtiofsd/fuse_lowlevel.c:2680:
+^IFUSE_OPT_END$

ERROR: code indent should never use tabs
#2706: FILE: tools/virtiofsd/fuse_lowlevel.c:2685:
+^Iprintf("using FUSE kernel interface version %i.%i\n",$

ERROR: code indent should never use tabs
#2707: FILE: tools/virtiofsd/fuse_lowlevel.c:2686:
+^I       FUSE_KERNEL_VERSION, FUSE_KERNEL_MINOR_VERSION);$

ERROR: code indent should never use tabs
#2708: FILE: tools/virtiofsd/fuse_lowlevel.c:2687:
+^Ifuse_mount_version();$

ERROR: code indent should never use tabs
#2713: FILE: tools/virtiofsd/fuse_lowlevel.c:2692:
+^I/* These are not all options, but the ones that are$

WARNING: Block comments use a leading /* on a separate line
#2713: FILE: tools/virtiofsd/fuse_lowlevel.c:2692:
+       /* These are not all options, but the ones that are

ERROR: code indent should never use tabs
#2714: FILE: tools/virtiofsd/fuse_lowlevel.c:2693:
+^I   potentially of interest to an end-user */$

WARNING: Block comments use * on subsequent lines
#2714: FILE: tools/virtiofsd/fuse_lowlevel.c:2693:
+       /* These are not all options, but the ones that are
+          potentially of interest to an end-user */

WARNING: Block comments use a trailing */ on a separate line
#2714: FILE: tools/virtiofsd/fuse_lowlevel.c:2693:
+          potentially of interest to an end-user */

ERROR: code indent should never use tabs
#2715: FILE: tools/virtiofsd/fuse_lowlevel.c:2694:
+^Iprintf($

ERROR: code indent should never use tabs
#2723: FILE: tools/virtiofsd/fuse_lowlevel.c:2702:
+^Istruct fuse_ll_pipe *llp;$

ERROR: code indent should never use tabs
#2725: FILE: tools/virtiofsd/fuse_lowlevel.c:2704:
+^Iif (se->got_init && !se->got_destroy) {$

ERROR: code indent should never use tabs
#2726: FILE: tools/virtiofsd/fuse_lowlevel.c:2705:
+^I^Iif (se->op.destroy)$

ERROR: braces {} are necessary for all arms of this statement
#2726: FILE: tools/virtiofsd/fuse_lowlevel.c:2705:
+               if (se->op.destroy)
[...]

ERROR: code indent should never use tabs
#2727: FILE: tools/virtiofsd/fuse_lowlevel.c:2706:
+^I^I^Ise->op.destroy(se->userdata);$

ERROR: code indent should never use tabs
#2728: FILE: tools/virtiofsd/fuse_lowlevel.c:2707:
+^I}$

ERROR: code indent should never use tabs
#2729: FILE: tools/virtiofsd/fuse_lowlevel.c:2708:
+^Illp = pthread_getspecific(se->pipe_key);$

ERROR: code indent should never use tabs
#2730: FILE: tools/virtiofsd/fuse_lowlevel.c:2709:
+^Iif (llp != NULL)$

ERROR: braces {} are necessary for all arms of this statement
#2730: FILE: tools/virtiofsd/fuse_lowlevel.c:2709:
+       if (llp != NULL)
[...]

ERROR: code indent should never use tabs
#2731: FILE: tools/virtiofsd/fuse_lowlevel.c:2710:
+^I^Ifuse_ll_pipe_free(llp);$

ERROR: code indent should never use tabs
#2732: FILE: tools/virtiofsd/fuse_lowlevel.c:2711:
+^Ipthread_key_delete(se->pipe_key);$

ERROR: code indent should never use tabs
#2733: FILE: tools/virtiofsd/fuse_lowlevel.c:2712:
+^Ipthread_mutex_destroy(&se->lock);$

ERROR: code indent should never use tabs
#2734: FILE: tools/virtiofsd/fuse_lowlevel.c:2713:
+^Ifree(se->cuse_data);$

ERROR: code indent should never use tabs
#2735: FILE: tools/virtiofsd/fuse_lowlevel.c:2714:
+^Iif (se->fd != -1)$

ERROR: braces {} are necessary for all arms of this statement
#2735: FILE: tools/virtiofsd/fuse_lowlevel.c:2714:
+       if (se->fd != -1)
[...]

ERROR: code indent should never use tabs
#2736: FILE: tools/virtiofsd/fuse_lowlevel.c:2715:
+^I^Iclose(se->fd);$

ERROR: code indent should never use tabs
#2737: FILE: tools/virtiofsd/fuse_lowlevel.c:2716:
+^Idestroy_mount_opts(se->mo);$

ERROR: code indent should never use tabs
#2738: FILE: tools/virtiofsd/fuse_lowlevel.c:2717:
+^Ifree(se);$

ERROR: code indent should never use tabs
#2744: FILE: tools/virtiofsd/fuse_lowlevel.c:2723:
+^Istruct fuse_ll_pipe *llp = data;$

ERROR: code indent should never use tabs
#2745: FILE: tools/virtiofsd/fuse_lowlevel.c:2724:
+^Ifuse_ll_pipe_free(llp);$

ERROR: code indent should never use tabs
#2750: FILE: tools/virtiofsd/fuse_lowlevel.c:2729:
+^Ireturn fuse_session_receive_buf_int(se, buf, NULL);$

ERROR: code indent should never use tabs
#2754: FILE: tools/virtiofsd/fuse_lowlevel.c:2733:
+^I^I^I^I struct fuse_chan *ch)$

ERROR: code indent should never use tabs
#2756: FILE: tools/virtiofsd/fuse_lowlevel.c:2735:
+^Iint err;$

ERROR: code indent should never use tabs
#2757: FILE: tools/virtiofsd/fuse_lowlevel.c:2736:
+^Issize_t res;$

ERROR: code indent should never use tabs
#2759: FILE: tools/virtiofsd/fuse_lowlevel.c:2738:
+^Isize_t bufsize = se->bufsize;$

ERROR: code indent should never use tabs
#2760: FILE: tools/virtiofsd/fuse_lowlevel.c:2739:
+^Istruct fuse_ll_pipe *llp;$

ERROR: code indent should never use tabs
#2761: FILE: tools/virtiofsd/fuse_lowlevel.c:2740:
+^Istruct fuse_buf tmpbuf;$

WARNING: line over 80 characters
#2763: FILE: tools/virtiofsd/fuse_lowlevel.c:2742:
+       if (se->conn.proto_minor < 14 || !(se->conn.want & FUSE_CAP_SPLICE_READ))

ERROR: code indent should never use tabs
#2763: FILE: tools/virtiofsd/fuse_lowlevel.c:2742:
+^Iif (se->conn.proto_minor < 14 || !(se->conn.want & FUSE_CAP_SPLICE_READ))$

ERROR: braces {} are necessary for all arms of this statement
#2763: FILE: tools/virtiofsd/fuse_lowlevel.c:2742:
+       if (se->conn.proto_minor < 14 || !(se->conn.want & FUSE_CAP_SPLICE_READ))
[...]

ERROR: code indent should never use tabs
#2764: FILE: tools/virtiofsd/fuse_lowlevel.c:2743:
+^I^Igoto fallback;$

ERROR: code indent should never use tabs
#2766: FILE: tools/virtiofsd/fuse_lowlevel.c:2745:
+^Illp = fuse_ll_get_pipe(se);$

ERROR: code indent should never use tabs
#2767: FILE: tools/virtiofsd/fuse_lowlevel.c:2746:
+^Iif (llp == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#2767: FILE: tools/virtiofsd/fuse_lowlevel.c:2746:
+       if (llp == NULL)
[...]

ERROR: code indent should never use tabs
#2768: FILE: tools/virtiofsd/fuse_lowlevel.c:2747:
+^I^Igoto fallback;$

ERROR: code indent should never use tabs
#2770: FILE: tools/virtiofsd/fuse_lowlevel.c:2749:
+^Iif (llp->size < bufsize) {$

ERROR: code indent should never use tabs
#2771: FILE: tools/virtiofsd/fuse_lowlevel.c:2750:
+^I^Iif (llp->can_grow) {$

ERROR: code indent should never use tabs
#2772: FILE: tools/virtiofsd/fuse_lowlevel.c:2751:
+^I^I^Ires = fcntl(llp->pipe[0], F_SETPIPE_SZ, bufsize);$

ERROR: code indent should never use tabs
#2773: FILE: tools/virtiofsd/fuse_lowlevel.c:2752:
+^I^I^Iif (res == -1) {$

ERROR: code indent should never use tabs
#2774: FILE: tools/virtiofsd/fuse_lowlevel.c:2753:
+^I^I^I^Illp->can_grow = 0;$

ERROR: code indent should never use tabs
#2775: FILE: tools/virtiofsd/fuse_lowlevel.c:2754:
+^I^I^I^Ires = grow_pipe_to_max(llp->pipe[0]);$

ERROR: code indent should never use tabs
#2776: FILE: tools/virtiofsd/fuse_lowlevel.c:2755:
+^I^I^I^Iif (res > 0)$

ERROR: braces {} are necessary for all arms of this statement
#2776: FILE: tools/virtiofsd/fuse_lowlevel.c:2755:
+                               if (res > 0)
[...]

ERROR: code indent should never use tabs
#2777: FILE: tools/virtiofsd/fuse_lowlevel.c:2756:
+^I^I^I^I^Illp->size = res;$

ERROR: code indent should never use tabs
#2778: FILE: tools/virtiofsd/fuse_lowlevel.c:2757:
+^I^I^I^Igoto fallback;$

ERROR: code indent should never use tabs
#2779: FILE: tools/virtiofsd/fuse_lowlevel.c:2758:
+^I^I^I}$

ERROR: code indent should never use tabs
#2780: FILE: tools/virtiofsd/fuse_lowlevel.c:2759:
+^I^I^Illp->size = res;$

ERROR: code indent should never use tabs
#2781: FILE: tools/virtiofsd/fuse_lowlevel.c:2760:
+^I^I}$

ERROR: code indent should never use tabs
#2782: FILE: tools/virtiofsd/fuse_lowlevel.c:2761:
+^I^Iif (llp->size < bufsize)$

ERROR: braces {} are necessary for all arms of this statement
#2782: FILE: tools/virtiofsd/fuse_lowlevel.c:2761:
+               if (llp->size < bufsize)
[...]

ERROR: code indent should never use tabs
#2783: FILE: tools/virtiofsd/fuse_lowlevel.c:2762:
+^I^I^Igoto fallback;$

ERROR: code indent should never use tabs
#2784: FILE: tools/virtiofsd/fuse_lowlevel.c:2763:
+^I}$

ERROR: code indent should never use tabs
#2786: FILE: tools/virtiofsd/fuse_lowlevel.c:2765:
+^Ires = splice(ch ? ch->fd : se->fd,$

ERROR: code indent should never use tabs
#2787: FILE: tools/virtiofsd/fuse_lowlevel.c:2766:
+^I^I     NULL, llp->pipe[1], NULL, bufsize, 0);$

ERROR: code indent should never use tabs
#2788: FILE: tools/virtiofsd/fuse_lowlevel.c:2767:
+^Ierr = errno;$

ERROR: code indent should never use tabs
#2790: FILE: tools/virtiofsd/fuse_lowlevel.c:2769:
+^Iif (fuse_session_exited(se))$

ERROR: braces {} are necessary for all arms of this statement
#2790: FILE: tools/virtiofsd/fuse_lowlevel.c:2769:
+       if (fuse_session_exited(se))
[...]

ERROR: code indent should never use tabs
#2791: FILE: tools/virtiofsd/fuse_lowlevel.c:2770:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#2793: FILE: tools/virtiofsd/fuse_lowlevel.c:2772:
+^Iif (res == -1) {$

ERROR: code indent should never use tabs
#2794: FILE: tools/virtiofsd/fuse_lowlevel.c:2773:
+^I^Iif (err == ENODEV) {$

ERROR: code indent should never use tabs
#2795: FILE: tools/virtiofsd/fuse_lowlevel.c:2774:
+^I^I^I/* Filesystem was unmounted, or connection was aborted$

WARNING: Block comments use a leading /* on a separate line
#2795: FILE: tools/virtiofsd/fuse_lowlevel.c:2774:
+                       /* Filesystem was unmounted, or connection was aborted

ERROR: code indent should never use tabs
#2796: FILE: tools/virtiofsd/fuse_lowlevel.c:2775:
+^I^I^I   via /sys/fs/fuse/connections */$

WARNING: Block comments use * on subsequent lines
#2796: FILE: tools/virtiofsd/fuse_lowlevel.c:2775:
+                       /* Filesystem was unmounted, or connection was aborted
+                          via /sys/fs/fuse/connections */

WARNING: Block comments use a trailing */ on a separate line
#2796: FILE: tools/virtiofsd/fuse_lowlevel.c:2775:
+                          via /sys/fs/fuse/connections */

ERROR: code indent should never use tabs
#2797: FILE: tools/virtiofsd/fuse_lowlevel.c:2776:
+^I^I^Ifuse_session_exit(se);$

ERROR: code indent should never use tabs
#2798: FILE: tools/virtiofsd/fuse_lowlevel.c:2777:
+^I^I^Ireturn 0;$

ERROR: code indent should never use tabs
#2799: FILE: tools/virtiofsd/fuse_lowlevel.c:2778:
+^I^I}$

ERROR: code indent should never use tabs
#2800: FILE: tools/virtiofsd/fuse_lowlevel.c:2779:
+^I^Iif (err != EINTR && err != EAGAIN)$

ERROR: braces {} are necessary for all arms of this statement
#2800: FILE: tools/virtiofsd/fuse_lowlevel.c:2779:
+               if (err != EINTR && err != EAGAIN)
[...]

ERROR: code indent should never use tabs
#2801: FILE: tools/virtiofsd/fuse_lowlevel.c:2780:
+^I^I^Iperror("fuse: splice from device");$

ERROR: code indent should never use tabs
#2802: FILE: tools/virtiofsd/fuse_lowlevel.c:2781:
+^I^Ireturn -err;$

ERROR: code indent should never use tabs
#2803: FILE: tools/virtiofsd/fuse_lowlevel.c:2782:
+^I}$

ERROR: code indent should never use tabs
#2805: FILE: tools/virtiofsd/fuse_lowlevel.c:2784:
+^Iif (res < sizeof(struct fuse_in_header)) {$

ERROR: code indent should never use tabs
#2806: FILE: tools/virtiofsd/fuse_lowlevel.c:2785:
+^I^Ifuse_log(FUSE_LOG_ERR, "short splice from fuse device\n");$

ERROR: code indent should never use tabs
#2807: FILE: tools/virtiofsd/fuse_lowlevel.c:2786:
+^I^Ireturn -EIO;$

ERROR: code indent should never use tabs
#2808: FILE: tools/virtiofsd/fuse_lowlevel.c:2787:
+^I}$

ERROR: code indent should never use tabs
#2810: FILE: tools/virtiofsd/fuse_lowlevel.c:2789:
+^Itmpbuf = (struct fuse_buf) {$

ERROR: code indent should never use tabs
#2811: FILE: tools/virtiofsd/fuse_lowlevel.c:2790:
+^I^I.size = res,$

ERROR: code indent should never use tabs
#2812: FILE: tools/virtiofsd/fuse_lowlevel.c:2791:
+^I^I.flags = FUSE_BUF_IS_FD,$

ERROR: code indent should never use tabs
#2813: FILE: tools/virtiofsd/fuse_lowlevel.c:2792:
+^I^I.fd = llp->pipe[0],$

ERROR: code indent should never use tabs
#2814: FILE: tools/virtiofsd/fuse_lowlevel.c:2793:
+^I};$

ERROR: code indent should never use tabs
#2816: FILE: tools/virtiofsd/fuse_lowlevel.c:2795:
+^I/*$

ERROR: code indent should never use tabs
#2817: FILE: tools/virtiofsd/fuse_lowlevel.c:2796:
+^I * Don't bother with zero copy for small requests.$

ERROR: code indent should never use tabs
#2818: FILE: tools/virtiofsd/fuse_lowlevel.c:2797:
+^I * fuse_loop_mt() needs to check for FORGET so this more than$

ERROR: code indent should never use tabs
#2819: FILE: tools/virtiofsd/fuse_lowlevel.c:2798:
+^I * just an optimization.$

ERROR: code indent should never use tabs
#2820: FILE: tools/virtiofsd/fuse_lowlevel.c:2799:
+^I */$

ERROR: code indent should never use tabs
#2821: FILE: tools/virtiofsd/fuse_lowlevel.c:2800:
+^Iif (res < sizeof(struct fuse_in_header) +$

ERROR: code indent should never use tabs
#2822: FILE: tools/virtiofsd/fuse_lowlevel.c:2801:
+^I    sizeof(struct fuse_write_in) + pagesize) {$

ERROR: code indent should never use tabs
#2823: FILE: tools/virtiofsd/fuse_lowlevel.c:2802:
+^I^Istruct fuse_bufvec src = { .buf[0] = tmpbuf, .count = 1 };$

ERROR: code indent should never use tabs
#2824: FILE: tools/virtiofsd/fuse_lowlevel.c:2803:
+^I^Istruct fuse_bufvec dst = { .count = 1 };$

ERROR: code indent should never use tabs
#2826: FILE: tools/virtiofsd/fuse_lowlevel.c:2805:
+^I^Iif (!buf->mem) {$

ERROR: code indent should never use tabs
#2827: FILE: tools/virtiofsd/fuse_lowlevel.c:2806:
+^I^I^Ibuf->mem = malloc(se->bufsize);$

ERROR: code indent should never use tabs
#2828: FILE: tools/virtiofsd/fuse_lowlevel.c:2807:
+^I^I^Iif (!buf->mem) {$

ERROR: code indent should never use tabs
#2829: FILE: tools/virtiofsd/fuse_lowlevel.c:2808:
+^I^I^I^Ifuse_log(FUSE_LOG_ERR,$

ERROR: code indent should never use tabs
#2830: FILE: tools/virtiofsd/fuse_lowlevel.c:2809:
+^I^I^I^I^I"fuse: failed to allocate read buffer\n");$

ERROR: code indent should never use tabs
#2831: FILE: tools/virtiofsd/fuse_lowlevel.c:2810:
+^I^I^I^Ireturn -ENOMEM;$

ERROR: code indent should never use tabs
#2832: FILE: tools/virtiofsd/fuse_lowlevel.c:2811:
+^I^I^I}$

ERROR: code indent should never use tabs
#2833: FILE: tools/virtiofsd/fuse_lowlevel.c:2812:
+^I^I}$

ERROR: code indent should never use tabs
#2834: FILE: tools/virtiofsd/fuse_lowlevel.c:2813:
+^I^Ibuf->size = se->bufsize;$

ERROR: code indent should never use tabs
#2835: FILE: tools/virtiofsd/fuse_lowlevel.c:2814:
+^I^Ibuf->flags = 0;$

ERROR: code indent should never use tabs
#2836: FILE: tools/virtiofsd/fuse_lowlevel.c:2815:
+^I^Idst.buf[0] = *buf;$

ERROR: code indent should never use tabs
#2838: FILE: tools/virtiofsd/fuse_lowlevel.c:2817:
+^I^Ires = fuse_buf_copy(&dst, &src, 0);$

ERROR: code indent should never use tabs
#2839: FILE: tools/virtiofsd/fuse_lowlevel.c:2818:
+^I^Iif (res < 0) {$

ERROR: code indent should never use tabs
#2840: FILE: tools/virtiofsd/fuse_lowlevel.c:2819:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "fuse: copy from pipe: %s\n",$

ERROR: code indent should never use tabs
#2841: FILE: tools/virtiofsd/fuse_lowlevel.c:2820:
+^I^I^I^Istrerror(-res));$

ERROR: code indent should never use tabs
#2842: FILE: tools/virtiofsd/fuse_lowlevel.c:2821:
+^I^I^Ifuse_ll_clear_pipe(se);$

ERROR: code indent should never use tabs
#2843: FILE: tools/virtiofsd/fuse_lowlevel.c:2822:
+^I^I^Ireturn res;$

ERROR: code indent should never use tabs
#2844: FILE: tools/virtiofsd/fuse_lowlevel.c:2823:
+^I^I}$

ERROR: code indent should never use tabs
#2845: FILE: tools/virtiofsd/fuse_lowlevel.c:2824:
+^I^Iif (res < tmpbuf.size) {$

WARNING: line over 80 characters
#2846: FILE: tools/virtiofsd/fuse_lowlevel.c:2825:
+                       fuse_log(FUSE_LOG_ERR, "fuse: copy from pipe: short read\n");

ERROR: code indent should never use tabs
#2846: FILE: tools/virtiofsd/fuse_lowlevel.c:2825:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "fuse: copy from pipe: short read\n");$

ERROR: code indent should never use tabs
#2847: FILE: tools/virtiofsd/fuse_lowlevel.c:2826:
+^I^I^Ifuse_ll_clear_pipe(se);$

ERROR: code indent should never use tabs
#2848: FILE: tools/virtiofsd/fuse_lowlevel.c:2827:
+^I^I^Ireturn -EIO;$

ERROR: code indent should never use tabs
#2849: FILE: tools/virtiofsd/fuse_lowlevel.c:2828:
+^I^I}$

ERROR: code indent should never use tabs
#2850: FILE: tools/virtiofsd/fuse_lowlevel.c:2829:
+^I^Iassert(res == tmpbuf.size);$

ERROR: code indent should never use tabs
#2852: FILE: tools/virtiofsd/fuse_lowlevel.c:2831:
+^I} else {$

ERROR: code indent should never use tabs
#2853: FILE: tools/virtiofsd/fuse_lowlevel.c:2832:
+^I^I/* Don't overwrite buf->mem, as that would cause a leak */$

ERROR: code indent should never use tabs
#2854: FILE: tools/virtiofsd/fuse_lowlevel.c:2833:
+^I^Ibuf->fd = tmpbuf.fd;$

ERROR: code indent should never use tabs
#2855: FILE: tools/virtiofsd/fuse_lowlevel.c:2834:
+^I^Ibuf->flags = tmpbuf.flags;$

ERROR: code indent should never use tabs
#2856: FILE: tools/virtiofsd/fuse_lowlevel.c:2835:
+^I}$

ERROR: code indent should never use tabs
#2857: FILE: tools/virtiofsd/fuse_lowlevel.c:2836:
+^Ibuf->size = tmpbuf.size;$

ERROR: code indent should never use tabs
#2859: FILE: tools/virtiofsd/fuse_lowlevel.c:2838:
+^Ireturn res;$

ERROR: code indent should never use tabs
#2863: FILE: tools/virtiofsd/fuse_lowlevel.c:2842:
+^Iif (!buf->mem) {$

ERROR: code indent should never use tabs
#2864: FILE: tools/virtiofsd/fuse_lowlevel.c:2843:
+^I^Ibuf->mem = malloc(se->bufsize);$

ERROR: code indent should never use tabs
#2865: FILE: tools/virtiofsd/fuse_lowlevel.c:2844:
+^I^Iif (!buf->mem) {$

ERROR: code indent should never use tabs
#2866: FILE: tools/virtiofsd/fuse_lowlevel.c:2845:
+^I^I^Ifuse_log(FUSE_LOG_ERR,$

ERROR: code indent should never use tabs
#2867: FILE: tools/virtiofsd/fuse_lowlevel.c:2846:
+^I^I^I^I"fuse: failed to allocate read buffer\n");$

ERROR: code indent should never use tabs
#2868: FILE: tools/virtiofsd/fuse_lowlevel.c:2847:
+^I^I^Ireturn -ENOMEM;$

ERROR: code indent should never use tabs
#2869: FILE: tools/virtiofsd/fuse_lowlevel.c:2848:
+^I^I}$

ERROR: code indent should never use tabs
#2870: FILE: tools/virtiofsd/fuse_lowlevel.c:2849:
+^I}$

ERROR: code indent should never use tabs
#2873: FILE: tools/virtiofsd/fuse_lowlevel.c:2852:
+^Ires = read(ch ? ch->fd : se->fd, buf->mem, se->bufsize);$

ERROR: code indent should never use tabs
#2874: FILE: tools/virtiofsd/fuse_lowlevel.c:2853:
+^Ierr = errno;$

ERROR: code indent should never use tabs
#2876: FILE: tools/virtiofsd/fuse_lowlevel.c:2855:
+^Iif (fuse_session_exited(se))$

ERROR: braces {} are necessary for all arms of this statement
#2876: FILE: tools/virtiofsd/fuse_lowlevel.c:2855:
+       if (fuse_session_exited(se))
[...]

ERROR: code indent should never use tabs
#2877: FILE: tools/virtiofsd/fuse_lowlevel.c:2856:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#2878: FILE: tools/virtiofsd/fuse_lowlevel.c:2857:
+^Iif (res == -1) {$

ERROR: code indent should never use tabs
#2879: FILE: tools/virtiofsd/fuse_lowlevel.c:2858:
+^I^I/* ENOENT means the operation was interrupted, it's safe$

WARNING: Block comments use a leading /* on a separate line
#2879: FILE: tools/virtiofsd/fuse_lowlevel.c:2858:
+               /* ENOENT means the operation was interrupted, it's safe

ERROR: code indent should never use tabs
#2880: FILE: tools/virtiofsd/fuse_lowlevel.c:2859:
+^I^I   to restart */$

WARNING: Block comments use * on subsequent lines
#2880: FILE: tools/virtiofsd/fuse_lowlevel.c:2859:
+               /* ENOENT means the operation was interrupted, it's safe
+                  to restart */

WARNING: Block comments use a trailing */ on a separate line
#2880: FILE: tools/virtiofsd/fuse_lowlevel.c:2859:
+                  to restart */

ERROR: code indent should never use tabs
#2881: FILE: tools/virtiofsd/fuse_lowlevel.c:2860:
+^I^Iif (err == ENOENT)$

ERROR: braces {} are necessary for all arms of this statement
#2881: FILE: tools/virtiofsd/fuse_lowlevel.c:2860:
+               if (err == ENOENT)
[...]

ERROR: code indent should never use tabs
#2882: FILE: tools/virtiofsd/fuse_lowlevel.c:2861:
+^I^I^Igoto restart;$

ERROR: code indent should never use tabs
#2884: FILE: tools/virtiofsd/fuse_lowlevel.c:2863:
+^I^Iif (err == ENODEV) {$

ERROR: code indent should never use tabs
#2885: FILE: tools/virtiofsd/fuse_lowlevel.c:2864:
+^I^I^I/* Filesystem was unmounted, or connection was aborted$

WARNING: Block comments use a leading /* on a separate line
#2885: FILE: tools/virtiofsd/fuse_lowlevel.c:2864:
+                       /* Filesystem was unmounted, or connection was aborted

ERROR: code indent should never use tabs
#2886: FILE: tools/virtiofsd/fuse_lowlevel.c:2865:
+^I^I^I   via /sys/fs/fuse/connections */$

WARNING: Block comments use * on subsequent lines
#2886: FILE: tools/virtiofsd/fuse_lowlevel.c:2865:
+                       /* Filesystem was unmounted, or connection was aborted
+                          via /sys/fs/fuse/connections */

WARNING: Block comments use a trailing */ on a separate line
#2886: FILE: tools/virtiofsd/fuse_lowlevel.c:2865:
+                          via /sys/fs/fuse/connections */

ERROR: code indent should never use tabs
#2887: FILE: tools/virtiofsd/fuse_lowlevel.c:2866:
+^I^I^Ifuse_session_exit(se);$

ERROR: code indent should never use tabs
#2888: FILE: tools/virtiofsd/fuse_lowlevel.c:2867:
+^I^I^Ireturn 0;$

ERROR: code indent should never use tabs
#2889: FILE: tools/virtiofsd/fuse_lowlevel.c:2868:
+^I^I}$

ERROR: code indent should never use tabs
#2890: FILE: tools/virtiofsd/fuse_lowlevel.c:2869:
+^I^I/* Errors occurring during normal operation: EINTR (read$

WARNING: Block comments use a leading /* on a separate line
#2890: FILE: tools/virtiofsd/fuse_lowlevel.c:2869:
+               /* Errors occurring during normal operation: EINTR (read

ERROR: code indent should never use tabs
#2891: FILE: tools/virtiofsd/fuse_lowlevel.c:2870:
+^I^I   interrupted), EAGAIN (nonblocking I/O), ENODEV (filesystem$

WARNING: Block comments use * on subsequent lines
#2891: FILE: tools/virtiofsd/fuse_lowlevel.c:2870:
+               /* Errors occurring during normal operation: EINTR (read
+                  interrupted), EAGAIN (nonblocking I/O), ENODEV (filesystem

ERROR: code indent should never use tabs
#2892: FILE: tools/virtiofsd/fuse_lowlevel.c:2871:
+^I^I   umounted) */$

WARNING: Block comments use a trailing */ on a separate line
#2892: FILE: tools/virtiofsd/fuse_lowlevel.c:2871:
+                  umounted) */

ERROR: code indent should never use tabs
#2893: FILE: tools/virtiofsd/fuse_lowlevel.c:2872:
+^I^Iif (err != EINTR && err != EAGAIN)$

ERROR: braces {} are necessary for all arms of this statement
#2893: FILE: tools/virtiofsd/fuse_lowlevel.c:2872:
+               if (err != EINTR && err != EAGAIN)
[...]

ERROR: code indent should never use tabs
#2894: FILE: tools/virtiofsd/fuse_lowlevel.c:2873:
+^I^I^Iperror("fuse: reading device");$

ERROR: code indent should never use tabs
#2895: FILE: tools/virtiofsd/fuse_lowlevel.c:2874:
+^I^Ireturn -err;$

ERROR: code indent should never use tabs
#2896: FILE: tools/virtiofsd/fuse_lowlevel.c:2875:
+^I}$

ERROR: code indent should never use tabs
#2897: FILE: tools/virtiofsd/fuse_lowlevel.c:2876:
+^Iif ((size_t) res < sizeof(struct fuse_in_header)) {$

ERROR: code indent should never use tabs
#2898: FILE: tools/virtiofsd/fuse_lowlevel.c:2877:
+^I^Ifuse_log(FUSE_LOG_ERR, "short read on fuse device\n");$

ERROR: code indent should never use tabs
#2899: FILE: tools/virtiofsd/fuse_lowlevel.c:2878:
+^I^Ireturn -EIO;$

ERROR: code indent should never use tabs
#2900: FILE: tools/virtiofsd/fuse_lowlevel.c:2879:
+^I}$

ERROR: code indent should never use tabs
#2902: FILE: tools/virtiofsd/fuse_lowlevel.c:2881:
+^Ibuf->size = res;$

ERROR: code indent should never use tabs
#2904: FILE: tools/virtiofsd/fuse_lowlevel.c:2883:
+^Ireturn res;$

ERROR: code indent should never use tabs
#2908: FILE: tools/virtiofsd/fuse_lowlevel.c:2887:
+^I^I^I^I      const struct fuse_lowlevel_ops *op,$

ERROR: code indent should never use tabs
#2909: FILE: tools/virtiofsd/fuse_lowlevel.c:2888:
+^I^I^I^I      size_t op_size, void *userdata)$

ERROR: code indent should never use tabs
#2911: FILE: tools/virtiofsd/fuse_lowlevel.c:2890:
+^Iint err;$

ERROR: code indent should never use tabs
#2912: FILE: tools/virtiofsd/fuse_lowlevel.c:2891:
+^Istruct fuse_session *se;$

ERROR: code indent should never use tabs
#2913: FILE: tools/virtiofsd/fuse_lowlevel.c:2892:
+^Istruct mount_opts *mo;$

ERROR: code indent should never use tabs
#2915: FILE: tools/virtiofsd/fuse_lowlevel.c:2894:
+^Iif (sizeof(struct fuse_lowlevel_ops) < op_size) {$

ERROR: line over 90 characters
#2916: FILE: tools/virtiofsd/fuse_lowlevel.c:2895:
+               fuse_log(FUSE_LOG_ERR, "fuse: warning: library too old, some operations may not work\n");

ERROR: code indent should never use tabs
#2916: FILE: tools/virtiofsd/fuse_lowlevel.c:2895:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: warning: library too old, some operations may not work\n");$

ERROR: code indent should never use tabs
#2917: FILE: tools/virtiofsd/fuse_lowlevel.c:2896:
+^I^Iop_size = sizeof(struct fuse_lowlevel_ops);$

ERROR: code indent should never use tabs
#2918: FILE: tools/virtiofsd/fuse_lowlevel.c:2897:
+^I}$

ERROR: code indent should never use tabs
#2920: FILE: tools/virtiofsd/fuse_lowlevel.c:2899:
+^Iif (args->argc == 0) {$

ERROR: line over 90 characters
#2921: FILE: tools/virtiofsd/fuse_lowlevel.c:2900:
+               fuse_log(FUSE_LOG_ERR, "fuse: empty argv passed to fuse_session_new().\n");

ERROR: code indent should never use tabs
#2921: FILE: tools/virtiofsd/fuse_lowlevel.c:2900:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: empty argv passed to fuse_session_new().\n");$

ERROR: code indent should never use tabs
#2922: FILE: tools/virtiofsd/fuse_lowlevel.c:2901:
+^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#2923: FILE: tools/virtiofsd/fuse_lowlevel.c:2902:
+^I}$

ERROR: code indent should never use tabs
#2925: FILE: tools/virtiofsd/fuse_lowlevel.c:2904:
+^Ise = (struct fuse_session *) calloc(1, sizeof(struct fuse_session));$

ERROR: code indent should never use tabs
#2926: FILE: tools/virtiofsd/fuse_lowlevel.c:2905:
+^Iif (se == NULL) {$

WARNING: line over 80 characters
#2927: FILE: tools/virtiofsd/fuse_lowlevel.c:2906:
+               fuse_log(FUSE_LOG_ERR, "fuse: failed to allocate fuse object\n");

ERROR: code indent should never use tabs
#2927: FILE: tools/virtiofsd/fuse_lowlevel.c:2906:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: failed to allocate fuse object\n");$

ERROR: code indent should never use tabs
#2928: FILE: tools/virtiofsd/fuse_lowlevel.c:2907:
+^I^Igoto out1;$

ERROR: code indent should never use tabs
#2929: FILE: tools/virtiofsd/fuse_lowlevel.c:2908:
+^I}$

ERROR: code indent should never use tabs
#2930: FILE: tools/virtiofsd/fuse_lowlevel.c:2909:
+^Ise->fd = -1;$

ERROR: code indent should never use tabs
#2931: FILE: tools/virtiofsd/fuse_lowlevel.c:2910:
+^Ise->conn.max_write = UINT_MAX;$

ERROR: code indent should never use tabs
#2932: FILE: tools/virtiofsd/fuse_lowlevel.c:2911:
+^Ise->conn.max_readahead = UINT_MAX;$

ERROR: code indent should never use tabs
#2934: FILE: tools/virtiofsd/fuse_lowlevel.c:2913:
+^I/* Parse options */$

ERROR: code indent should never use tabs
#2935: FILE: tools/virtiofsd/fuse_lowlevel.c:2914:
+^Iif(fuse_opt_parse(args, se, fuse_ll_opts, NULL) == -1)$

ERROR: space required before the open parenthesis '('
#2935: FILE: tools/virtiofsd/fuse_lowlevel.c:2914:
+       if(fuse_opt_parse(args, se, fuse_ll_opts, NULL) == -1)

ERROR: braces {} are necessary for all arms of this statement
#2935: FILE: tools/virtiofsd/fuse_lowlevel.c:2914:
+       if(fuse_opt_parse(args, se, fuse_ll_opts, NULL) == -1)
[...]

ERROR: code indent should never use tabs
#2936: FILE: tools/virtiofsd/fuse_lowlevel.c:2915:
+^I^Igoto out2;$

ERROR: code indent should never use tabs
#2937: FILE: tools/virtiofsd/fuse_lowlevel.c:2916:
+^Iif(se->deny_others) {$

ERROR: space required before the open parenthesis '('
#2937: FILE: tools/virtiofsd/fuse_lowlevel.c:2916:
+       if(se->deny_others) {

ERROR: code indent should never use tabs
#2938: FILE: tools/virtiofsd/fuse_lowlevel.c:2917:
+^I^I/* Allowing access only by root is done by instructing$

WARNING: Block comments use a leading /* on a separate line
#2938: FILE: tools/virtiofsd/fuse_lowlevel.c:2917:
+               /* Allowing access only by root is done by instructing

ERROR: code indent should never use tabs
#2939: FILE: tools/virtiofsd/fuse_lowlevel.c:2918:
+^I^I * kernel to allow access by everyone, and then restricting$

ERROR: code indent should never use tabs
#2940: FILE: tools/virtiofsd/fuse_lowlevel.c:2919:
+^I^I * access to root and mountpoint owner in libfuse.$

ERROR: code indent should never use tabs
#2941: FILE: tools/virtiofsd/fuse_lowlevel.c:2920:
+^I^I */$

ERROR: code indent should never use tabs
#2942: FILE: tools/virtiofsd/fuse_lowlevel.c:2921:
+^I^I// We may be adding the option a second time, but$

ERROR: do not use C99 // comments
#2942: FILE: tools/virtiofsd/fuse_lowlevel.c:2921:
+               // We may be adding the option a second time, but

ERROR: code indent should never use tabs
#2943: FILE: tools/virtiofsd/fuse_lowlevel.c:2922:
+^I^I// that doesn't hurt.$

ERROR: do not use C99 // comments
#2943: FILE: tools/virtiofsd/fuse_lowlevel.c:2922:
+               // that doesn't hurt.

ERROR: code indent should never use tabs
#2944: FILE: tools/virtiofsd/fuse_lowlevel.c:2923:
+^I^Iif(fuse_opt_add_arg(args, "-oallow_other") == -1)$

ERROR: space required before the open parenthesis '('
#2944: FILE: tools/virtiofsd/fuse_lowlevel.c:2923:
+               if(fuse_opt_add_arg(args, "-oallow_other") == -1)

ERROR: braces {} are necessary for all arms of this statement
#2944: FILE: tools/virtiofsd/fuse_lowlevel.c:2923:
+               if(fuse_opt_add_arg(args, "-oallow_other") == -1)
[...]

ERROR: code indent should never use tabs
#2945: FILE: tools/virtiofsd/fuse_lowlevel.c:2924:
+^I^I^Igoto out2;$

ERROR: code indent should never use tabs
#2946: FILE: tools/virtiofsd/fuse_lowlevel.c:2925:
+^I}$

ERROR: code indent should never use tabs
#2947: FILE: tools/virtiofsd/fuse_lowlevel.c:2926:
+^Imo = parse_mount_opts(args);$

ERROR: code indent should never use tabs
#2948: FILE: tools/virtiofsd/fuse_lowlevel.c:2927:
+^Iif (mo == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#2948: FILE: tools/virtiofsd/fuse_lowlevel.c:2927:
+       if (mo == NULL)
[...]

ERROR: code indent should never use tabs
#2949: FILE: tools/virtiofsd/fuse_lowlevel.c:2928:
+^I^Igoto out3;$

ERROR: code indent should never use tabs
#2951: FILE: tools/virtiofsd/fuse_lowlevel.c:2930:
+^Iif(args->argc == 1 &&$

ERROR: space required before the open parenthesis '('
#2951: FILE: tools/virtiofsd/fuse_lowlevel.c:2930:
+       if(args->argc == 1 &&

ERROR: code indent should never use tabs
#2952: FILE: tools/virtiofsd/fuse_lowlevel.c:2931:
+^I   args->argv[0][0] == '-') {$

WARNING: line over 80 characters
#2953: FILE: tools/virtiofsd/fuse_lowlevel.c:2932:
+               fuse_log(FUSE_LOG_ERR, "fuse: warning: argv[0] looks like an option, but "

ERROR: code indent should never use tabs
#2953: FILE: tools/virtiofsd/fuse_lowlevel.c:2932:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: warning: argv[0] looks like an option, but "$

ERROR: code indent should never use tabs
#2954: FILE: tools/virtiofsd/fuse_lowlevel.c:2933:
+^I^I^I"will be ignored\n");$

ERROR: code indent should never use tabs
#2955: FILE: tools/virtiofsd/fuse_lowlevel.c:2934:
+^I} else if (args->argc != 1) {$

ERROR: code indent should never use tabs
#2956: FILE: tools/virtiofsd/fuse_lowlevel.c:2935:
+^I^Iint i;$

ERROR: code indent should never use tabs
#2957: FILE: tools/virtiofsd/fuse_lowlevel.c:2936:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: unknown option(s): `");$

ERROR: code indent should never use tabs
#2958: FILE: tools/virtiofsd/fuse_lowlevel.c:2937:
+^I^Ifor(i = 1; i < args->argc-1; i++)$

ERROR: spaces required around that '-' (ctx:VxV)
#2958: FILE: tools/virtiofsd/fuse_lowlevel.c:2937:
+               for(i = 1; i < args->argc-1; i++)
                                         ^

ERROR: space required before the open parenthesis '('
#2958: FILE: tools/virtiofsd/fuse_lowlevel.c:2937:
+               for(i = 1; i < args->argc-1; i++)

ERROR: braces {} are necessary for all arms of this statement
#2958: FILE: tools/virtiofsd/fuse_lowlevel.c:2937:
+               for(i = 1; i < args->argc-1; i++)
[...]

ERROR: code indent should never use tabs
#2959: FILE: tools/virtiofsd/fuse_lowlevel.c:2938:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "%s ", args->argv[i]);$

ERROR: code indent should never use tabs
#2960: FILE: tools/virtiofsd/fuse_lowlevel.c:2939:
+^I^Ifuse_log(FUSE_LOG_ERR, "%s'\n", args->argv[i]);$

ERROR: code indent should never use tabs
#2961: FILE: tools/virtiofsd/fuse_lowlevel.c:2940:
+^I^Igoto out4;$

ERROR: code indent should never use tabs
#2962: FILE: tools/virtiofsd/fuse_lowlevel.c:2941:
+^I}$

ERROR: code indent should never use tabs
#2964: FILE: tools/virtiofsd/fuse_lowlevel.c:2943:
+^Iif (se->debug)$

ERROR: braces {} are necessary for all arms of this statement
#2964: FILE: tools/virtiofsd/fuse_lowlevel.c:2943:
+       if (se->debug)
[...]

WARNING: line over 80 characters
#2965: FILE: tools/virtiofsd/fuse_lowlevel.c:2944:
+               fuse_log(FUSE_LOG_DEBUG, "FUSE library version: %s\n", PACKAGE_VERSION);

ERROR: code indent should never use tabs
#2965: FILE: tools/virtiofsd/fuse_lowlevel.c:2944:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "FUSE library version: %s\n", PACKAGE_VERSION);$

ERROR: code indent should never use tabs
#2967: FILE: tools/virtiofsd/fuse_lowlevel.c:2946:
+^Ise->bufsize = FUSE_MAX_MAX_PAGES * getpagesize() +$

ERROR: use qemu_real_host_page_size instead of getpagesize()
#2967: FILE: tools/virtiofsd/fuse_lowlevel.c:2946:
+       se->bufsize = FUSE_MAX_MAX_PAGES * getpagesize() +

ERROR: code indent should never use tabs
#2968: FILE: tools/virtiofsd/fuse_lowlevel.c:2947:
+^I^IFUSE_BUFFER_HEADER_SIZE;$

ERROR: code indent should never use tabs
#2970: FILE: tools/virtiofsd/fuse_lowlevel.c:2949:
+^Ilist_init_req(&se->list);$

ERROR: code indent should never use tabs
#2971: FILE: tools/virtiofsd/fuse_lowlevel.c:2950:
+^Ilist_init_req(&se->interrupts);$

ERROR: code indent should never use tabs
#2972: FILE: tools/virtiofsd/fuse_lowlevel.c:2951:
+^Ilist_init_nreq(&se->notify_list);$

ERROR: code indent should never use tabs
#2973: FILE: tools/virtiofsd/fuse_lowlevel.c:2952:
+^Ise->notify_ctr = 1;$

ERROR: code indent should never use tabs
#2974: FILE: tools/virtiofsd/fuse_lowlevel.c:2953:
+^Ifuse_mutex_init(&se->lock);$

ERROR: code indent should never use tabs
#2976: FILE: tools/virtiofsd/fuse_lowlevel.c:2955:
+^Ierr = pthread_key_create(&se->pipe_key, fuse_ll_pipe_destructor);$

ERROR: code indent should never use tabs
#2977: FILE: tools/virtiofsd/fuse_lowlevel.c:2956:
+^Iif (err) {$

WARNING: line over 80 characters
#2978: FILE: tools/virtiofsd/fuse_lowlevel.c:2957:
+               fuse_log(FUSE_LOG_ERR, "fuse: failed to create thread specific key: %s\n",

ERROR: code indent should never use tabs
#2978: FILE: tools/virtiofsd/fuse_lowlevel.c:2957:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: failed to create thread specific key: %s\n",$

ERROR: code indent should never use tabs
#2979: FILE: tools/virtiofsd/fuse_lowlevel.c:2958:
+^I^I^Istrerror(err));$

ERROR: code indent should never use tabs
#2980: FILE: tools/virtiofsd/fuse_lowlevel.c:2959:
+^I^Igoto out5;$

ERROR: code indent should never use tabs
#2981: FILE: tools/virtiofsd/fuse_lowlevel.c:2960:
+^I}$

ERROR: code indent should never use tabs
#2983: FILE: tools/virtiofsd/fuse_lowlevel.c:2962:
+^Imemcpy(&se->op, op, op_size);$

ERROR: code indent should never use tabs
#2984: FILE: tools/virtiofsd/fuse_lowlevel.c:2963:
+^Ise->owner = getuid();$

ERROR: code indent should never use tabs
#2985: FILE: tools/virtiofsd/fuse_lowlevel.c:2964:
+^Ise->userdata = userdata;$

ERROR: code indent should never use tabs
#2987: FILE: tools/virtiofsd/fuse_lowlevel.c:2966:
+^Ise->mo = mo;$

ERROR: code indent should never use tabs
#2988: FILE: tools/virtiofsd/fuse_lowlevel.c:2967:
+^Ireturn se;$

ERROR: code indent should never use tabs
#2991: FILE: tools/virtiofsd/fuse_lowlevel.c:2970:
+^Ipthread_mutex_destroy(&se->lock);$

ERROR: code indent should never use tabs
#2993: FILE: tools/virtiofsd/fuse_lowlevel.c:2972:
+^Ifuse_opt_free_args(args);$

ERROR: code indent should never use tabs
#2995: FILE: tools/virtiofsd/fuse_lowlevel.c:2974:
+^Ifree(mo);$

ERROR: code indent should never use tabs
#2997: FILE: tools/virtiofsd/fuse_lowlevel.c:2976:
+^Ifree(se);$

ERROR: code indent should never use tabs
#2999: FILE: tools/virtiofsd/fuse_lowlevel.c:2978:
+^Ireturn NULL;$

ERROR: code indent should never use tabs
#3004: FILE: tools/virtiofsd/fuse_lowlevel.c:2983:
+^Iint fd;$

ERROR: code indent should never use tabs
#3006: FILE: tools/virtiofsd/fuse_lowlevel.c:2985:
+^I/*$

ERROR: code indent should never use tabs
#3007: FILE: tools/virtiofsd/fuse_lowlevel.c:2986:
+^I * Make sure file descriptors 0, 1 and 2 are open, otherwise chaos$

ERROR: code indent should never use tabs
#3008: FILE: tools/virtiofsd/fuse_lowlevel.c:2987:
+^I * would ensue.$

ERROR: code indent should never use tabs
#3009: FILE: tools/virtiofsd/fuse_lowlevel.c:2988:
+^I */$

ERROR: code indent should never use tabs
#3010: FILE: tools/virtiofsd/fuse_lowlevel.c:2989:
+^Ido {$

ERROR: code indent should never use tabs
#3011: FILE: tools/virtiofsd/fuse_lowlevel.c:2990:
+^I^Ifd = open("/dev/null", O_RDWR);$

ERROR: code indent should never use tabs
#3012: FILE: tools/virtiofsd/fuse_lowlevel.c:2991:
+^I^Iif (fd > 2)$

ERROR: braces {} are necessary for all arms of this statement
#3012: FILE: tools/virtiofsd/fuse_lowlevel.c:2991:
+               if (fd > 2)
[...]

ERROR: code indent should never use tabs
#3013: FILE: tools/virtiofsd/fuse_lowlevel.c:2992:
+^I^I^Iclose(fd);$

ERROR: code indent should never use tabs
#3014: FILE: tools/virtiofsd/fuse_lowlevel.c:2993:
+^I} while (fd >= 0 && fd <= 2);$

ERROR: code indent should never use tabs
#3016: FILE: tools/virtiofsd/fuse_lowlevel.c:2995:
+^I/*$

ERROR: code indent should never use tabs
#3017: FILE: tools/virtiofsd/fuse_lowlevel.c:2996:
+^I * To allow FUSE daemons to run without privileges, the caller may open$

ERROR: code indent should never use tabs
#3018: FILE: tools/virtiofsd/fuse_lowlevel.c:2997:
+^I * /dev/fuse before launching the file system and pass on the file$

ERROR: code indent should never use tabs
#3019: FILE: tools/virtiofsd/fuse_lowlevel.c:2998:
+^I * descriptor by specifying /dev/fd/N as the mount point. Note that the$

ERROR: code indent should never use tabs
#3020: FILE: tools/virtiofsd/fuse_lowlevel.c:2999:
+^I * parent process takes care of performing the mount in this case.$

ERROR: code indent should never use tabs
#3021: FILE: tools/virtiofsd/fuse_lowlevel.c:3000:
+^I */$

ERROR: code indent should never use tabs
#3022: FILE: tools/virtiofsd/fuse_lowlevel.c:3001:
+^Ifd = fuse_mnt_parse_fuse_fd(mountpoint);$

ERROR: code indent should never use tabs
#3023: FILE: tools/virtiofsd/fuse_lowlevel.c:3002:
+^Iif (fd != -1) {$

ERROR: code indent should never use tabs
#3024: FILE: tools/virtiofsd/fuse_lowlevel.c:3003:
+^I^Iif (fcntl(fd, F_GETFD) == -1) {$

ERROR: code indent should never use tabs
#3025: FILE: tools/virtiofsd/fuse_lowlevel.c:3004:
+^I^I^Ifuse_log(FUSE_LOG_ERR,$

ERROR: code indent should never use tabs
#3026: FILE: tools/virtiofsd/fuse_lowlevel.c:3005:
+^I^I^I^I"fuse: Invalid file descriptor /dev/fd/%u\n",$

ERROR: code indent should never use tabs
#3027: FILE: tools/virtiofsd/fuse_lowlevel.c:3006:
+^I^I^I^Ifd);$

ERROR: code indent should never use tabs
#3028: FILE: tools/virtiofsd/fuse_lowlevel.c:3007:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#3029: FILE: tools/virtiofsd/fuse_lowlevel.c:3008:
+^I^I}$

ERROR: code indent should never use tabs
#3030: FILE: tools/virtiofsd/fuse_lowlevel.c:3009:
+^I^Ise->fd = fd;$

ERROR: code indent should never use tabs
#3031: FILE: tools/virtiofsd/fuse_lowlevel.c:3010:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#3032: FILE: tools/virtiofsd/fuse_lowlevel.c:3011:
+^I}$

ERROR: code indent should never use tabs
#3034: FILE: tools/virtiofsd/fuse_lowlevel.c:3013:
+^I/* Open channel */$

ERROR: code indent should never use tabs
#3035: FILE: tools/virtiofsd/fuse_lowlevel.c:3014:
+^Ifd = fuse_kern_mount(mountpoint, se->mo);$

ERROR: code indent should never use tabs
#3036: FILE: tools/virtiofsd/fuse_lowlevel.c:3015:
+^Iif (fd == -1)$

ERROR: braces {} are necessary for all arms of this statement
#3036: FILE: tools/virtiofsd/fuse_lowlevel.c:3015:
+       if (fd == -1)
[...]

ERROR: code indent should never use tabs
#3037: FILE: tools/virtiofsd/fuse_lowlevel.c:3016:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#3038: FILE: tools/virtiofsd/fuse_lowlevel.c:3017:
+^Ise->fd = fd;$

ERROR: code indent should never use tabs
#3040: FILE: tools/virtiofsd/fuse_lowlevel.c:3019:
+^I/* Save mountpoint */$

ERROR: code indent should never use tabs
#3041: FILE: tools/virtiofsd/fuse_lowlevel.c:3020:
+^Ise->mountpoint = strdup(mountpoint);$

ERROR: code indent should never use tabs
#3042: FILE: tools/virtiofsd/fuse_lowlevel.c:3021:
+^Iif (se->mountpoint == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#3042: FILE: tools/virtiofsd/fuse_lowlevel.c:3021:
+       if (se->mountpoint == NULL)
[...]

ERROR: code indent should never use tabs
#3043: FILE: tools/virtiofsd/fuse_lowlevel.c:3022:
+^I^Igoto error_out;$

ERROR: code indent should never use tabs
#3045: FILE: tools/virtiofsd/fuse_lowlevel.c:3024:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#3048: FILE: tools/virtiofsd/fuse_lowlevel.c:3027:
+^Ifuse_kern_unmount(mountpoint, fd);$

ERROR: code indent should never use tabs
#3049: FILE: tools/virtiofsd/fuse_lowlevel.c:3028:
+^Ireturn -1;$

ERROR: code indent should never use tabs
#3054: FILE: tools/virtiofsd/fuse_lowlevel.c:3033:
+^Ireturn se->fd;$

ERROR: code indent should never use tabs
#3059: FILE: tools/virtiofsd/fuse_lowlevel.c:3038:
+^Iif (se->mountpoint != NULL) {$

ERROR: code indent should never use tabs
#3060: FILE: tools/virtiofsd/fuse_lowlevel.c:3039:
+^I^Ifuse_kern_unmount(se->mountpoint, se->fd);$

ERROR: code indent should never use tabs
#3061: FILE: tools/virtiofsd/fuse_lowlevel.c:3040:
+^I^Ifree(se->mountpoint);$

ERROR: code indent should never use tabs
#3062: FILE: tools/virtiofsd/fuse_lowlevel.c:3041:
+^I^Ise->mountpoint = NULL;$

ERROR: code indent should never use tabs
#3063: FILE: tools/virtiofsd/fuse_lowlevel.c:3042:
+^I}$

ERROR: code indent should never use tabs
#3069: FILE: tools/virtiofsd/fuse_lowlevel.c:3048:
+^Ichar *buf;$

ERROR: code indent should never use tabs
#3070: FILE: tools/virtiofsd/fuse_lowlevel.c:3049:
+^Isize_t bufsize = 1024;$

ERROR: code indent should never use tabs
#3071: FILE: tools/virtiofsd/fuse_lowlevel.c:3050:
+^Ichar path[128];$

ERROR: code indent should never use tabs
#3072: FILE: tools/virtiofsd/fuse_lowlevel.c:3051:
+^Iint ret;$

ERROR: code indent should never use tabs
#3073: FILE: tools/virtiofsd/fuse_lowlevel.c:3052:
+^Iint fd;$

ERROR: code indent should never use tabs
#3074: FILE: tools/virtiofsd/fuse_lowlevel.c:3053:
+^Iunsigned long pid = req->ctx.pid;$

ERROR: code indent should never use tabs
#3075: FILE: tools/virtiofsd/fuse_lowlevel.c:3054:
+^Ichar *s;$

ERROR: code indent should never use tabs
#3077: FILE: tools/virtiofsd/fuse_lowlevel.c:3056:
+^Isprintf(path, "/proc/%lu/task/%lu/status", pid, pid);$

ERROR: code indent should never use tabs
#3080: FILE: tools/virtiofsd/fuse_lowlevel.c:3059:
+^Ibuf = malloc(bufsize);$

ERROR: code indent should never use tabs
#3081: FILE: tools/virtiofsd/fuse_lowlevel.c:3060:
+^Iif (buf == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#3081: FILE: tools/virtiofsd/fuse_lowlevel.c:3060:
+       if (buf == NULL)
[...]

ERROR: code indent should never use tabs
#3082: FILE: tools/virtiofsd/fuse_lowlevel.c:3061:
+^I^Ireturn -ENOMEM;$

ERROR: code indent should never use tabs
#3084: FILE: tools/virtiofsd/fuse_lowlevel.c:3063:
+^Iret = -EIO;$

ERROR: code indent should never use tabs
#3085: FILE: tools/virtiofsd/fuse_lowlevel.c:3064:
+^Ifd = open(path, O_RDONLY);$

ERROR: code indent should never use tabs
#3086: FILE: tools/virtiofsd/fuse_lowlevel.c:3065:
+^Iif (fd == -1)$

ERROR: braces {} are necessary for all arms of this statement
#3086: FILE: tools/virtiofsd/fuse_lowlevel.c:3065:
+       if (fd == -1)
[...]

ERROR: code indent should never use tabs
#3087: FILE: tools/virtiofsd/fuse_lowlevel.c:3066:
+^I^Igoto out_free;$

ERROR: code indent should never use tabs
#3089: FILE: tools/virtiofsd/fuse_lowlevel.c:3068:
+^Iret = read(fd, buf, bufsize);$

ERROR: code indent should never use tabs
#3090: FILE: tools/virtiofsd/fuse_lowlevel.c:3069:
+^Iclose(fd);$

ERROR: code indent should never use tabs
#3091: FILE: tools/virtiofsd/fuse_lowlevel.c:3070:
+^Iif (ret < 0) {$

ERROR: code indent should never use tabs
#3092: FILE: tools/virtiofsd/fuse_lowlevel.c:3071:
+^I^Iret = -EIO;$

ERROR: code indent should never use tabs
#3093: FILE: tools/virtiofsd/fuse_lowlevel.c:3072:
+^I^Igoto out_free;$

ERROR: code indent should never use tabs
#3094: FILE: tools/virtiofsd/fuse_lowlevel.c:3073:
+^I}$

ERROR: code indent should never use tabs
#3096: FILE: tools/virtiofsd/fuse_lowlevel.c:3075:
+^Iif ((size_t)ret == bufsize) {$

ERROR: code indent should never use tabs
#3097: FILE: tools/virtiofsd/fuse_lowlevel.c:3076:
+^I^Ifree(buf);$

ERROR: code indent should never use tabs
#3098: FILE: tools/virtiofsd/fuse_lowlevel.c:3077:
+^I^Ibufsize *= 4;$

ERROR: code indent should never use tabs
#3099: FILE: tools/virtiofsd/fuse_lowlevel.c:3078:
+^I^Igoto retry;$

ERROR: code indent should never use tabs
#3100: FILE: tools/virtiofsd/fuse_lowlevel.c:3079:
+^I}$

ERROR: code indent should never use tabs
#3102: FILE: tools/virtiofsd/fuse_lowlevel.c:3081:
+^Iret = -EIO;$

ERROR: code indent should never use tabs
#3103: FILE: tools/virtiofsd/fuse_lowlevel.c:3082:
+^Is = strstr(buf, "\nGroups:");$

ERROR: code indent should never use tabs
#3104: FILE: tools/virtiofsd/fuse_lowlevel.c:3083:
+^Iif (s == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#3104: FILE: tools/virtiofsd/fuse_lowlevel.c:3083:
+       if (s == NULL)
[...]

ERROR: code indent should never use tabs
#3105: FILE: tools/virtiofsd/fuse_lowlevel.c:3084:
+^I^Igoto out_free;$

ERROR: code indent should never use tabs
#3107: FILE: tools/virtiofsd/fuse_lowlevel.c:3086:
+^Is += 8;$

ERROR: code indent should never use tabs
#3108: FILE: tools/virtiofsd/fuse_lowlevel.c:3087:
+^Iret = 0;$

ERROR: code indent should never use tabs
#3109: FILE: tools/virtiofsd/fuse_lowlevel.c:3088:
+^Iwhile (1) {$

ERROR: code indent should never use tabs
#3110: FILE: tools/virtiofsd/fuse_lowlevel.c:3089:
+^I^Ichar *end;$

ERROR: code indent should never use tabs
#3111: FILE: tools/virtiofsd/fuse_lowlevel.c:3090:
+^I^Iunsigned long val = strtoul(s, &end, 0);$

ERROR: consider using qemu_strtoul in preference to strtoul
#3111: FILE: tools/virtiofsd/fuse_lowlevel.c:3090:
+               unsigned long val = strtoul(s, &end, 0);

ERROR: code indent should never use tabs
#3112: FILE: tools/virtiofsd/fuse_lowlevel.c:3091:
+^I^Iif (end == s)$

ERROR: braces {} are necessary for all arms of this statement
#3112: FILE: tools/virtiofsd/fuse_lowlevel.c:3091:
+               if (end == s)
[...]

ERROR: code indent should never use tabs
#3113: FILE: tools/virtiofsd/fuse_lowlevel.c:3092:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#3115: FILE: tools/virtiofsd/fuse_lowlevel.c:3094:
+^I^Is = end;$

ERROR: code indent should never use tabs
#3116: FILE: tools/virtiofsd/fuse_lowlevel.c:3095:
+^I^Iif (ret < size)$

ERROR: braces {} are necessary for all arms of this statement
#3116: FILE: tools/virtiofsd/fuse_lowlevel.c:3095:
+               if (ret < size)
[...]

ERROR: code indent should never use tabs
#3117: FILE: tools/virtiofsd/fuse_lowlevel.c:3096:
+^I^I^Ilist[ret] = val;$

ERROR: code indent should never use tabs
#3118: FILE: tools/virtiofsd/fuse_lowlevel.c:3097:
+^I^Iret++;$

ERROR: code indent should never use tabs
#3119: FILE: tools/virtiofsd/fuse_lowlevel.c:3098:
+^I}$

ERROR: code indent should never use tabs
#3122: FILE: tools/virtiofsd/fuse_lowlevel.c:3101:
+^Ifree(buf);$

ERROR: code indent should never use tabs
#3123: FILE: tools/virtiofsd/fuse_lowlevel.c:3102:
+^Ireturn ret;$

ERROR: code indent should never use tabs
#3131: FILE: tools/virtiofsd/fuse_lowlevel.c:3110:
+^I(void) req; (void) size; (void) list;$

ERROR: code indent should never use tabs
#3132: FILE: tools/virtiofsd/fuse_lowlevel.c:3111:
+^Ireturn -ENOSYS;$

ERROR: code indent should never use tabs
#3138: FILE: tools/virtiofsd/fuse_lowlevel.c:3117:
+^Ise->exited = 1;$

ERROR: code indent should never use tabs
#3143: FILE: tools/virtiofsd/fuse_lowlevel.c:3122:
+^Ise->exited = 0;$

ERROR: code indent should never use tabs
#3144: FILE: tools/virtiofsd/fuse_lowlevel.c:3123:
+^Ise->error = 0;$

ERROR: code indent should never use tabs
#3149: FILE: tools/virtiofsd/fuse_lowlevel.c:3128:
+^Ireturn se->exited;$

total: 2338 errors, 57 warnings, 3129 lines checked

Patch 4/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

5/109 Checking commit 396751999515 (virtiofsd: Add passthrough_ll)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#22: 
new file mode 100644

WARNING: Block comments use * on subsequent lines
#28: FILE: tools/virtiofsd/passthrough_ll.c:2:
+/*
+  FUSE: Filesystem in Userspace

WARNING: Block comments use a leading /* on a separate line
#35: FILE: tools/virtiofsd/passthrough_ll.c:9:
+/** @file

WARNING: line over 80 characters
#57: FILE: tools/virtiofsd/passthrough_ll.c:31:
+ *     gcc -Wall passthrough_ll.c `pkg-config fuse3 --cflags --libs` -o passthrough_ll

WARNING: Block comments use a leading /* on a separate line
#86: FILE: tools/virtiofsd/passthrough_ll.c:60:
+/* We are re-using pointers to our `struct lo_inode` and `struct

WARNING: Block comments use * on subsequent lines
#87: FILE: tools/virtiofsd/passthrough_ll.c:61:
+/* We are re-using pointers to our `struct lo_inode` and `struct
+   lo_dirp` elements as inodes. This means that we must be able to

WARNING: Block comments use a trailing */ on a separate line
#89: FILE: tools/virtiofsd/passthrough_ll.c:63:
+   incantation checks this condition at compile time. */

ERROR: line over 90 characters
#90: FILE: tools/virtiofsd/passthrough_ll.c:64:
+#if defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 6) && !defined __cplusplus

WARNING: architecture specific defines should be avoided
#90: FILE: tools/virtiofsd/passthrough_ll.c:64:
+#if defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 6) && !defined __cplusplus

ERROR: code indent should never use tabs
#92: FILE: tools/virtiofsd/passthrough_ll.c:66:
+^I       "fuse_ino_t too small to hold uintptr_t values!");$

ERROR: code indent should never use tabs
#95: FILE: tools/virtiofsd/passthrough_ll.c:69:
+^I{ unsigned _uintptr_to_must_hold_fuse_ino_t:$

ERROR: code indent should never use tabs
#96: FILE: tools/virtiofsd/passthrough_ll.c:70:
+^I^I^I((sizeof(fuse_ino_t) >= sizeof(uintptr_t)) ? 1 : -1); };$

ERROR: code indent should never use tabs
#100: FILE: tools/virtiofsd/passthrough_ll.c:74:
+^Istruct lo_inode *next; /* protected by lo->mutex */$

ERROR: code indent should never use tabs
#101: FILE: tools/virtiofsd/passthrough_ll.c:75:
+^Istruct lo_inode *prev; /* protected by lo->mutex */$

ERROR: code indent should never use tabs
#102: FILE: tools/virtiofsd/passthrough_ll.c:76:
+^Iint fd;$

ERROR: code indent should never use tabs
#103: FILE: tools/virtiofsd/passthrough_ll.c:77:
+^Ibool is_symlink;$

ERROR: code indent should never use tabs
#104: FILE: tools/virtiofsd/passthrough_ll.c:78:
+^Iino_t ino;$

ERROR: code indent should never use tabs
#105: FILE: tools/virtiofsd/passthrough_ll.c:79:
+^Idev_t dev;$

ERROR: code indent should never use tabs
#106: FILE: tools/virtiofsd/passthrough_ll.c:80:
+^Iuint64_t refcount; /* protected by lo->mutex */$

ERROR: code indent should never use tabs
#110: FILE: tools/virtiofsd/passthrough_ll.c:84:
+^ICACHE_NEVER,$

ERROR: code indent should never use tabs
#111: FILE: tools/virtiofsd/passthrough_ll.c:85:
+^ICACHE_NORMAL,$

ERROR: code indent should never use tabs
#112: FILE: tools/virtiofsd/passthrough_ll.c:86:
+^ICACHE_ALWAYS,$

ERROR: code indent should never use tabs
#116: FILE: tools/virtiofsd/passthrough_ll.c:90:
+^Ipthread_mutex_t mutex;$

ERROR: code indent should never use tabs
#117: FILE: tools/virtiofsd/passthrough_ll.c:91:
+^Iint debug;$

ERROR: code indent should never use tabs
#118: FILE: tools/virtiofsd/passthrough_ll.c:92:
+^Iint writeback;$

ERROR: code indent should never use tabs
#119: FILE: tools/virtiofsd/passthrough_ll.c:93:
+^Iint flock;$

ERROR: code indent should never use tabs
#120: FILE: tools/virtiofsd/passthrough_ll.c:94:
+^Iint xattr;$

ERROR: code indent should never use tabs
#121: FILE: tools/virtiofsd/passthrough_ll.c:95:
+^Iconst char *source;$

ERROR: code indent should never use tabs
#122: FILE: tools/virtiofsd/passthrough_ll.c:96:
+^Idouble timeout;$

ERROR: code indent should never use tabs
#123: FILE: tools/virtiofsd/passthrough_ll.c:97:
+^Iint cache;$

ERROR: code indent should never use tabs
#124: FILE: tools/virtiofsd/passthrough_ll.c:98:
+^Iint timeout_set;$

ERROR: code indent should never use tabs
#125: FILE: tools/virtiofsd/passthrough_ll.c:99:
+^Istruct lo_inode root; /* protected by lo->mutex */$

ERROR: code indent should never use tabs
#129: FILE: tools/virtiofsd/passthrough_ll.c:103:
+^I{ "writeback",$

ERROR: code indent should never use tabs
#130: FILE: tools/virtiofsd/passthrough_ll.c:104:
+^I  offsetof(struct lo_data, writeback), 1 },$

ERROR: code indent should never use tabs
#131: FILE: tools/virtiofsd/passthrough_ll.c:105:
+^I{ "no_writeback",$

ERROR: code indent should never use tabs
#132: FILE: tools/virtiofsd/passthrough_ll.c:106:
+^I  offsetof(struct lo_data, writeback), 0 },$

ERROR: code indent should never use tabs
#133: FILE: tools/virtiofsd/passthrough_ll.c:107:
+^I{ "source=%s",$

ERROR: code indent should never use tabs
#134: FILE: tools/virtiofsd/passthrough_ll.c:108:
+^I  offsetof(struct lo_data, source), 0 },$

ERROR: code indent should never use tabs
#135: FILE: tools/virtiofsd/passthrough_ll.c:109:
+^I{ "flock",$

ERROR: code indent should never use tabs
#136: FILE: tools/virtiofsd/passthrough_ll.c:110:
+^I  offsetof(struct lo_data, flock), 1 },$

ERROR: code indent should never use tabs
#137: FILE: tools/virtiofsd/passthrough_ll.c:111:
+^I{ "no_flock",$

ERROR: code indent should never use tabs
#138: FILE: tools/virtiofsd/passthrough_ll.c:112:
+^I  offsetof(struct lo_data, flock), 0 },$

ERROR: code indent should never use tabs
#139: FILE: tools/virtiofsd/passthrough_ll.c:113:
+^I{ "xattr",$

ERROR: code indent should never use tabs
#140: FILE: tools/virtiofsd/passthrough_ll.c:114:
+^I  offsetof(struct lo_data, xattr), 1 },$

ERROR: code indent should never use tabs
#141: FILE: tools/virtiofsd/passthrough_ll.c:115:
+^I{ "no_xattr",$

ERROR: code indent should never use tabs
#142: FILE: tools/virtiofsd/passthrough_ll.c:116:
+^I  offsetof(struct lo_data, xattr), 0 },$

ERROR: code indent should never use tabs
#143: FILE: tools/virtiofsd/passthrough_ll.c:117:
+^I{ "timeout=%lf",$

ERROR: code indent should never use tabs
#144: FILE: tools/virtiofsd/passthrough_ll.c:118:
+^I  offsetof(struct lo_data, timeout), 0 },$

ERROR: code indent should never use tabs
#145: FILE: tools/virtiofsd/passthrough_ll.c:119:
+^I{ "timeout=",$

ERROR: code indent should never use tabs
#146: FILE: tools/virtiofsd/passthrough_ll.c:120:
+^I  offsetof(struct lo_data, timeout_set), 1 },$

ERROR: code indent should never use tabs
#147: FILE: tools/virtiofsd/passthrough_ll.c:121:
+^I{ "cache=never",$

ERROR: code indent should never use tabs
#148: FILE: tools/virtiofsd/passthrough_ll.c:122:
+^I  offsetof(struct lo_data, cache), CACHE_NEVER },$

ERROR: code indent should never use tabs
#149: FILE: tools/virtiofsd/passthrough_ll.c:123:
+^I{ "cache=auto",$

ERROR: code indent should never use tabs
#150: FILE: tools/virtiofsd/passthrough_ll.c:124:
+^I  offsetof(struct lo_data, cache), CACHE_NORMAL },$

ERROR: code indent should never use tabs
#151: FILE: tools/virtiofsd/passthrough_ll.c:125:
+^I{ "cache=always",$

ERROR: code indent should never use tabs
#152: FILE: tools/virtiofsd/passthrough_ll.c:126:
+^I  offsetof(struct lo_data, cache), CACHE_ALWAYS },$

ERROR: code indent should never use tabs
#154: FILE: tools/virtiofsd/passthrough_ll.c:128:
+^IFUSE_OPT_END$

ERROR: code indent should never use tabs
#159: FILE: tools/virtiofsd/passthrough_ll.c:133:
+^Ireturn (struct lo_data *) fuse_req_userdata(req);$

ERROR: code indent should never use tabs
#164: FILE: tools/virtiofsd/passthrough_ll.c:138:
+^Iif (ino == FUSE_ROOT_ID)$

ERROR: braces {} are necessary for all arms of this statement
#164: FILE: tools/virtiofsd/passthrough_ll.c:138:
+       if (ino == FUSE_ROOT_ID)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#165: FILE: tools/virtiofsd/passthrough_ll.c:139:
+^I^Ireturn &lo_data(req)->root;$

ERROR: code indent should never use tabs
#166: FILE: tools/virtiofsd/passthrough_ll.c:140:
+^Ielse$

ERROR: code indent should never use tabs
#167: FILE: tools/virtiofsd/passthrough_ll.c:141:
+^I^Ireturn (struct lo_inode *) (uintptr_t) ino;$

ERROR: code indent should never use tabs
#172: FILE: tools/virtiofsd/passthrough_ll.c:146:
+^Ireturn lo_inode(req, ino)->fd;$

ERROR: code indent should never use tabs
#177: FILE: tools/virtiofsd/passthrough_ll.c:151:
+^Ireturn lo_data(req)->debug != 0;$

ERROR: code indent should never use tabs
#181: FILE: tools/virtiofsd/passthrough_ll.c:155:
+^I^I    struct fuse_conn_info *conn)$

ERROR: code indent should never use tabs
#183: FILE: tools/virtiofsd/passthrough_ll.c:157:
+^Istruct lo_data *lo = (struct lo_data*) userdata;$

ERROR: "(foo*)" should be "(foo *)"
#183: FILE: tools/virtiofsd/passthrough_ll.c:157:
+       struct lo_data *lo = (struct lo_data*) userdata;

ERROR: code indent should never use tabs
#185: FILE: tools/virtiofsd/passthrough_ll.c:159:
+^Iif(conn->capable & FUSE_CAP_EXPORT_SUPPORT)$

ERROR: space required before the open parenthesis '('
#185: FILE: tools/virtiofsd/passthrough_ll.c:159:
+       if(conn->capable & FUSE_CAP_EXPORT_SUPPORT)

ERROR: braces {} are necessary for all arms of this statement
#185: FILE: tools/virtiofsd/passthrough_ll.c:159:
+       if(conn->capable & FUSE_CAP_EXPORT_SUPPORT)
[...]

ERROR: code indent should never use tabs
#186: FILE: tools/virtiofsd/passthrough_ll.c:160:
+^I^Iconn->want |= FUSE_CAP_EXPORT_SUPPORT;$

ERROR: code indent should never use tabs
#188: FILE: tools/virtiofsd/passthrough_ll.c:162:
+^Iif (lo->writeback &&$

ERROR: code indent should never use tabs
#189: FILE: tools/virtiofsd/passthrough_ll.c:163:
+^I    conn->capable & FUSE_CAP_WRITEBACK_CACHE) {$

ERROR: code indent should never use tabs
#190: FILE: tools/virtiofsd/passthrough_ll.c:164:
+^I^Iif (lo->debug)$

ERROR: braces {} are necessary for all arms of this statement
#190: FILE: tools/virtiofsd/passthrough_ll.c:164:
+               if (lo->debug)
[...]

WARNING: line over 80 characters
#191: FILE: tools/virtiofsd/passthrough_ll.c:165:
+                       fuse_log(FUSE_LOG_DEBUG, "lo_init: activating writeback\n");

ERROR: code indent should never use tabs
#191: FILE: tools/virtiofsd/passthrough_ll.c:165:
+^I^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_init: activating writeback\n");$

ERROR: code indent should never use tabs
#192: FILE: tools/virtiofsd/passthrough_ll.c:166:
+^I^Iconn->want |= FUSE_CAP_WRITEBACK_CACHE;$

ERROR: code indent should never use tabs
#193: FILE: tools/virtiofsd/passthrough_ll.c:167:
+^I}$

ERROR: code indent should never use tabs
#194: FILE: tools/virtiofsd/passthrough_ll.c:168:
+^Iif (lo->flock && conn->capable & FUSE_CAP_FLOCK_LOCKS) {$

ERROR: code indent should never use tabs
#195: FILE: tools/virtiofsd/passthrough_ll.c:169:
+^I^Iif (lo->debug)$

ERROR: braces {} are necessary for all arms of this statement
#195: FILE: tools/virtiofsd/passthrough_ll.c:169:
+               if (lo->debug)
[...]

WARNING: line over 80 characters
#196: FILE: tools/virtiofsd/passthrough_ll.c:170:
+                       fuse_log(FUSE_LOG_DEBUG, "lo_init: activating flock locks\n");

ERROR: code indent should never use tabs
#196: FILE: tools/virtiofsd/passthrough_ll.c:170:
+^I^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_init: activating flock locks\n");$

ERROR: code indent should never use tabs
#197: FILE: tools/virtiofsd/passthrough_ll.c:171:
+^I^Iconn->want |= FUSE_CAP_FLOCK_LOCKS;$

ERROR: code indent should never use tabs
#198: FILE: tools/virtiofsd/passthrough_ll.c:172:
+^I}$

ERROR: code indent should never use tabs
#202: FILE: tools/virtiofsd/passthrough_ll.c:176:
+^I^I^I     struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#204: FILE: tools/virtiofsd/passthrough_ll.c:178:
+^Iint res;$

ERROR: code indent should never use tabs
#205: FILE: tools/virtiofsd/passthrough_ll.c:179:
+^Istruct stat buf;$

ERROR: code indent should never use tabs
#206: FILE: tools/virtiofsd/passthrough_ll.c:180:
+^Istruct lo_data *lo = lo_data(req);$

ERROR: code indent should never use tabs
#208: FILE: tools/virtiofsd/passthrough_ll.c:182:
+^I(void) fi;$

WARNING: line over 80 characters
#210: FILE: tools/virtiofsd/passthrough_ll.c:184:
+       res = fstatat(lo_fd(req, ino), "", &buf, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW);

ERROR: code indent should never use tabs
#210: FILE: tools/virtiofsd/passthrough_ll.c:184:
+^Ires = fstatat(lo_fd(req, ino), "", &buf, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW);$

ERROR: code indent should never use tabs
#211: FILE: tools/virtiofsd/passthrough_ll.c:185:
+^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#211: FILE: tools/virtiofsd/passthrough_ll.c:185:
+       if (res == -1)
[...]

ERROR: code indent should never use tabs
#212: FILE: tools/virtiofsd/passthrough_ll.c:186:
+^I^Ireturn (void) fuse_reply_err(req, errno);$

ERROR: code indent should never use tabs
#214: FILE: tools/virtiofsd/passthrough_ll.c:188:
+^Ifuse_reply_attr(req, &buf, lo->timeout);$

ERROR: code indent should never use tabs
#218: FILE: tools/virtiofsd/passthrough_ll.c:192:
+^I^I^I^I    const struct timespec *tv)$

ERROR: code indent should never use tabs
#220: FILE: tools/virtiofsd/passthrough_ll.c:194:
+^Iint res;$

ERROR: code indent should never use tabs
#221: FILE: tools/virtiofsd/passthrough_ll.c:195:
+^Ichar procname[64];$

ERROR: code indent should never use tabs
#223: FILE: tools/virtiofsd/passthrough_ll.c:197:
+^Iif (inode->is_symlink) {$

ERROR: code indent should never use tabs
#224: FILE: tools/virtiofsd/passthrough_ll.c:198:
+^I^Ires = utimensat(inode->fd, "", tv,$

ERROR: code indent should never use tabs
#225: FILE: tools/virtiofsd/passthrough_ll.c:199:
+^I^I^I^IAT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW);$

ERROR: code indent should never use tabs
#226: FILE: tools/virtiofsd/passthrough_ll.c:200:
+^I^Iif (res == -1 && errno == EINVAL) {$

ERROR: code indent should never use tabs
#227: FILE: tools/virtiofsd/passthrough_ll.c:201:
+^I^I^I/* Sorry, no race free way to set times on symlink. */$

ERROR: code indent should never use tabs
#228: FILE: tools/virtiofsd/passthrough_ll.c:202:
+^I^I^Ierrno = EPERM;$

ERROR: code indent should never use tabs
#229: FILE: tools/virtiofsd/passthrough_ll.c:203:
+^I^I}$

ERROR: code indent should never use tabs
#230: FILE: tools/virtiofsd/passthrough_ll.c:204:
+^I^Ireturn res;$

ERROR: code indent should never use tabs
#231: FILE: tools/virtiofsd/passthrough_ll.c:205:
+^I}$

ERROR: code indent should never use tabs
#232: FILE: tools/virtiofsd/passthrough_ll.c:206:
+^Isprintf(procname, "/proc/self/fd/%i", inode->fd);$

ERROR: code indent should never use tabs
#234: FILE: tools/virtiofsd/passthrough_ll.c:208:
+^Ireturn utimensat(AT_FDCWD, procname, tv, 0);$

ERROR: code indent should never use tabs
#238: FILE: tools/virtiofsd/passthrough_ll.c:212:
+^I^I       int valid, struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#240: FILE: tools/virtiofsd/passthrough_ll.c:214:
+^Iint saverr;$

ERROR: code indent should never use tabs
#241: FILE: tools/virtiofsd/passthrough_ll.c:215:
+^Ichar procname[64];$

ERROR: code indent should never use tabs
#242: FILE: tools/virtiofsd/passthrough_ll.c:216:
+^Istruct lo_inode *inode = lo_inode(req, ino);$

ERROR: code indent should never use tabs
#243: FILE: tools/virtiofsd/passthrough_ll.c:217:
+^Iint ifd = inode->fd;$

ERROR: code indent should never use tabs
#244: FILE: tools/virtiofsd/passthrough_ll.c:218:
+^Iint res;$

ERROR: code indent should never use tabs
#246: FILE: tools/virtiofsd/passthrough_ll.c:220:
+^Iif (valid & FUSE_SET_ATTR_MODE) {$

ERROR: code indent should never use tabs
#247: FILE: tools/virtiofsd/passthrough_ll.c:221:
+^I^Iif (fi) {$

ERROR: code indent should never use tabs
#248: FILE: tools/virtiofsd/passthrough_ll.c:222:
+^I^I^Ires = fchmod(fi->fh, attr->st_mode);$

ERROR: code indent should never use tabs
#249: FILE: tools/virtiofsd/passthrough_ll.c:223:
+^I^I} else {$

ERROR: code indent should never use tabs
#250: FILE: tools/virtiofsd/passthrough_ll.c:224:
+^I^I^Isprintf(procname, "/proc/self/fd/%i", ifd);$

ERROR: code indent should never use tabs
#251: FILE: tools/virtiofsd/passthrough_ll.c:225:
+^I^I^Ires = chmod(procname, attr->st_mode);$

ERROR: code indent should never use tabs
#252: FILE: tools/virtiofsd/passthrough_ll.c:226:
+^I^I}$

ERROR: code indent should never use tabs
#253: FILE: tools/virtiofsd/passthrough_ll.c:227:
+^I^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#253: FILE: tools/virtiofsd/passthrough_ll.c:227:
+               if (res == -1)
[...]

ERROR: code indent should never use tabs
#254: FILE: tools/virtiofsd/passthrough_ll.c:228:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#255: FILE: tools/virtiofsd/passthrough_ll.c:229:
+^I}$

ERROR: code indent should never use tabs
#256: FILE: tools/virtiofsd/passthrough_ll.c:230:
+^Iif (valid & (FUSE_SET_ATTR_UID | FUSE_SET_ATTR_GID)) {$

ERROR: code indent should never use tabs
#257: FILE: tools/virtiofsd/passthrough_ll.c:231:
+^I^Iuid_t uid = (valid & FUSE_SET_ATTR_UID) ?$

ERROR: code indent should never use tabs
#258: FILE: tools/virtiofsd/passthrough_ll.c:232:
+^I^I^Iattr->st_uid : (uid_t) -1;$

ERROR: code indent should never use tabs
#259: FILE: tools/virtiofsd/passthrough_ll.c:233:
+^I^Igid_t gid = (valid & FUSE_SET_ATTR_GID) ?$

ERROR: code indent should never use tabs
#260: FILE: tools/virtiofsd/passthrough_ll.c:234:
+^I^I^Iattr->st_gid : (gid_t) -1;$

ERROR: code indent should never use tabs
#262: FILE: tools/virtiofsd/passthrough_ll.c:236:
+^I^Ires = fchownat(ifd, "", uid, gid,$

ERROR: code indent should never use tabs
#263: FILE: tools/virtiofsd/passthrough_ll.c:237:
+^I^I^I       AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW);$

ERROR: code indent should never use tabs
#264: FILE: tools/virtiofsd/passthrough_ll.c:238:
+^I^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#264: FILE: tools/virtiofsd/passthrough_ll.c:238:
+               if (res == -1)
[...]

ERROR: code indent should never use tabs
#265: FILE: tools/virtiofsd/passthrough_ll.c:239:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#266: FILE: tools/virtiofsd/passthrough_ll.c:240:
+^I}$

ERROR: code indent should never use tabs
#267: FILE: tools/virtiofsd/passthrough_ll.c:241:
+^Iif (valid & FUSE_SET_ATTR_SIZE) {$

ERROR: code indent should never use tabs
#268: FILE: tools/virtiofsd/passthrough_ll.c:242:
+^I^Iif (fi) {$

ERROR: code indent should never use tabs
#269: FILE: tools/virtiofsd/passthrough_ll.c:243:
+^I^I^Ires = ftruncate(fi->fh, attr->st_size);$

ERROR: code indent should never use tabs
#270: FILE: tools/virtiofsd/passthrough_ll.c:244:
+^I^I} else {$

ERROR: code indent should never use tabs
#271: FILE: tools/virtiofsd/passthrough_ll.c:245:
+^I^I^Isprintf(procname, "/proc/self/fd/%i", ifd);$

ERROR: code indent should never use tabs
#272: FILE: tools/virtiofsd/passthrough_ll.c:246:
+^I^I^Ires = truncate(procname, attr->st_size);$

ERROR: code indent should never use tabs
#273: FILE: tools/virtiofsd/passthrough_ll.c:247:
+^I^I}$

ERROR: code indent should never use tabs
#274: FILE: tools/virtiofsd/passthrough_ll.c:248:
+^I^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#274: FILE: tools/virtiofsd/passthrough_ll.c:248:
+               if (res == -1)
[...]

ERROR: code indent should never use tabs
#275: FILE: tools/virtiofsd/passthrough_ll.c:249:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#276: FILE: tools/virtiofsd/passthrough_ll.c:250:
+^I}$

ERROR: code indent should never use tabs
#277: FILE: tools/virtiofsd/passthrough_ll.c:251:
+^Iif (valid & (FUSE_SET_ATTR_ATIME | FUSE_SET_ATTR_MTIME)) {$

ERROR: code indent should never use tabs
#278: FILE: tools/virtiofsd/passthrough_ll.c:252:
+^I^Istruct timespec tv[2];$

ERROR: code indent should never use tabs
#280: FILE: tools/virtiofsd/passthrough_ll.c:254:
+^I^Itv[0].tv_sec = 0;$

ERROR: code indent should never use tabs
#281: FILE: tools/virtiofsd/passthrough_ll.c:255:
+^I^Itv[1].tv_sec = 0;$

ERROR: code indent should never use tabs
#282: FILE: tools/virtiofsd/passthrough_ll.c:256:
+^I^Itv[0].tv_nsec = UTIME_OMIT;$

ERROR: code indent should never use tabs
#283: FILE: tools/virtiofsd/passthrough_ll.c:257:
+^I^Itv[1].tv_nsec = UTIME_OMIT;$

ERROR: code indent should never use tabs
#285: FILE: tools/virtiofsd/passthrough_ll.c:259:
+^I^Iif (valid & FUSE_SET_ATTR_ATIME_NOW)$

ERROR: braces {} are necessary for all arms of this statement
#285: FILE: tools/virtiofsd/passthrough_ll.c:259:
+               if (valid & FUSE_SET_ATTR_ATIME_NOW)
[...]
+               else if (valid & FUSE_SET_ATTR_ATIME)
[...]

ERROR: code indent should never use tabs
#286: FILE: tools/virtiofsd/passthrough_ll.c:260:
+^I^I^Itv[0].tv_nsec = UTIME_NOW;$

ERROR: code indent should never use tabs
#287: FILE: tools/virtiofsd/passthrough_ll.c:261:
+^I^Ielse if (valid & FUSE_SET_ATTR_ATIME)$

ERROR: braces {} are necessary for all arms of this statement
#287: FILE: tools/virtiofsd/passthrough_ll.c:261:
+               else if (valid & FUSE_SET_ATTR_ATIME)
[...]

ERROR: code indent should never use tabs
#288: FILE: tools/virtiofsd/passthrough_ll.c:262:
+^I^I^Itv[0] = attr->st_atim;$

ERROR: code indent should never use tabs
#290: FILE: tools/virtiofsd/passthrough_ll.c:264:
+^I^Iif (valid & FUSE_SET_ATTR_MTIME_NOW)$

ERROR: braces {} are necessary for all arms of this statement
#290: FILE: tools/virtiofsd/passthrough_ll.c:264:
+               if (valid & FUSE_SET_ATTR_MTIME_NOW)
[...]
+               else if (valid & FUSE_SET_ATTR_MTIME)
[...]

ERROR: code indent should never use tabs
#291: FILE: tools/virtiofsd/passthrough_ll.c:265:
+^I^I^Itv[1].tv_nsec = UTIME_NOW;$

ERROR: code indent should never use tabs
#292: FILE: tools/virtiofsd/passthrough_ll.c:266:
+^I^Ielse if (valid & FUSE_SET_ATTR_MTIME)$

ERROR: braces {} are necessary for all arms of this statement
#292: FILE: tools/virtiofsd/passthrough_ll.c:266:
+               else if (valid & FUSE_SET_ATTR_MTIME)
[...]

ERROR: code indent should never use tabs
#293: FILE: tools/virtiofsd/passthrough_ll.c:267:
+^I^I^Itv[1] = attr->st_mtim;$

ERROR: code indent should never use tabs
#295: FILE: tools/virtiofsd/passthrough_ll.c:269:
+^I^Iif (fi)$

ERROR: braces {} are necessary for all arms of this statement
#295: FILE: tools/virtiofsd/passthrough_ll.c:269:
+               if (fi)
[...]
+               else
[...]

ERROR: code indent should never use tabs
#296: FILE: tools/virtiofsd/passthrough_ll.c:270:
+^I^I^Ires = futimens(fi->fh, tv);$

ERROR: code indent should never use tabs
#297: FILE: tools/virtiofsd/passthrough_ll.c:271:
+^I^Ielse$

ERROR: code indent should never use tabs
#298: FILE: tools/virtiofsd/passthrough_ll.c:272:
+^I^I^Ires = utimensat_empty_nofollow(inode, tv);$

ERROR: code indent should never use tabs
#299: FILE: tools/virtiofsd/passthrough_ll.c:273:
+^I^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#299: FILE: tools/virtiofsd/passthrough_ll.c:273:
+               if (res == -1)
[...]

ERROR: code indent should never use tabs
#300: FILE: tools/virtiofsd/passthrough_ll.c:274:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#301: FILE: tools/virtiofsd/passthrough_ll.c:275:
+^I}$

ERROR: code indent should never use tabs
#303: FILE: tools/virtiofsd/passthrough_ll.c:277:
+^Ireturn lo_getattr(req, ino, fi);$

ERROR: code indent should never use tabs
#306: FILE: tools/virtiofsd/passthrough_ll.c:280:
+^Isaverr = errno;$

ERROR: code indent should never use tabs
#307: FILE: tools/virtiofsd/passthrough_ll.c:281:
+^Ifuse_reply_err(req, saverr);$

ERROR: code indent should never use tabs
#312: FILE: tools/virtiofsd/passthrough_ll.c:286:
+^Istruct lo_inode *p;$

ERROR: code indent should never use tabs
#313: FILE: tools/virtiofsd/passthrough_ll.c:287:
+^Istruct lo_inode *ret = NULL;$

ERROR: code indent should never use tabs
#315: FILE: tools/virtiofsd/passthrough_ll.c:289:
+^Ipthread_mutex_lock(&lo->mutex);$

ERROR: code indent should never use tabs
#316: FILE: tools/virtiofsd/passthrough_ll.c:290:
+^Ifor (p = lo->root.next; p != &lo->root; p = p->next) {$

ERROR: code indent should never use tabs
#317: FILE: tools/virtiofsd/passthrough_ll.c:291:
+^I^Iif (p->ino == st->st_ino && p->dev == st->st_dev) {$

ERROR: code indent should never use tabs
#318: FILE: tools/virtiofsd/passthrough_ll.c:292:
+^I^I^Iassert(p->refcount > 0);$

ERROR: code indent should never use tabs
#319: FILE: tools/virtiofsd/passthrough_ll.c:293:
+^I^I^Iret = p;$

ERROR: code indent should never use tabs
#320: FILE: tools/virtiofsd/passthrough_ll.c:294:
+^I^I^Iret->refcount++;$

ERROR: code indent should never use tabs
#321: FILE: tools/virtiofsd/passthrough_ll.c:295:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#322: FILE: tools/virtiofsd/passthrough_ll.c:296:
+^I^I}$

ERROR: code indent should never use tabs
#323: FILE: tools/virtiofsd/passthrough_ll.c:297:
+^I}$

ERROR: code indent should never use tabs
#324: FILE: tools/virtiofsd/passthrough_ll.c:298:
+^Ipthread_mutex_unlock(&lo->mutex);$

ERROR: code indent should never use tabs
#325: FILE: tools/virtiofsd/passthrough_ll.c:299:
+^Ireturn ret;$

ERROR: code indent should never use tabs
#329: FILE: tools/virtiofsd/passthrough_ll.c:303:
+^I^I^I struct fuse_entry_param *e)$

ERROR: code indent should never use tabs
#331: FILE: tools/virtiofsd/passthrough_ll.c:305:
+^Iint newfd;$

ERROR: code indent should never use tabs
#332: FILE: tools/virtiofsd/passthrough_ll.c:306:
+^Iint res;$

ERROR: code indent should never use tabs
#333: FILE: tools/virtiofsd/passthrough_ll.c:307:
+^Iint saverr;$

ERROR: code indent should never use tabs
#334: FILE: tools/virtiofsd/passthrough_ll.c:308:
+^Istruct lo_data *lo = lo_data(req);$

ERROR: code indent should never use tabs
#335: FILE: tools/virtiofsd/passthrough_ll.c:309:
+^Istruct lo_inode *inode;$

ERROR: code indent should never use tabs
#337: FILE: tools/virtiofsd/passthrough_ll.c:311:
+^Imemset(e, 0, sizeof(*e));$

ERROR: code indent should never use tabs
#338: FILE: tools/virtiofsd/passthrough_ll.c:312:
+^Ie->attr_timeout = lo->timeout;$

ERROR: code indent should never use tabs
#339: FILE: tools/virtiofsd/passthrough_ll.c:313:
+^Ie->entry_timeout = lo->timeout;$

ERROR: code indent should never use tabs
#341: FILE: tools/virtiofsd/passthrough_ll.c:315:
+^Inewfd = openat(lo_fd(req, parent), name, O_PATH | O_NOFOLLOW);$

ERROR: code indent should never use tabs
#342: FILE: tools/virtiofsd/passthrough_ll.c:316:
+^Iif (newfd == -1)$

ERROR: braces {} are necessary for all arms of this statement
#342: FILE: tools/virtiofsd/passthrough_ll.c:316:
+       if (newfd == -1)
[...]

ERROR: code indent should never use tabs
#343: FILE: tools/virtiofsd/passthrough_ll.c:317:
+^I^Igoto out_err;$

ERROR: code indent should never use tabs
#345: FILE: tools/virtiofsd/passthrough_ll.c:319:
+^Ires = fstatat(newfd, "", &e->attr, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW);$

ERROR: code indent should never use tabs
#346: FILE: tools/virtiofsd/passthrough_ll.c:320:
+^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#346: FILE: tools/virtiofsd/passthrough_ll.c:320:
+       if (res == -1)
[...]

ERROR: code indent should never use tabs
#347: FILE: tools/virtiofsd/passthrough_ll.c:321:
+^I^Igoto out_err;$

ERROR: code indent should never use tabs
#349: FILE: tools/virtiofsd/passthrough_ll.c:323:
+^Iinode = lo_find(lo_data(req), &e->attr);$

ERROR: code indent should never use tabs
#350: FILE: tools/virtiofsd/passthrough_ll.c:324:
+^Iif (inode) {$

ERROR: code indent should never use tabs
#351: FILE: tools/virtiofsd/passthrough_ll.c:325:
+^I^Iclose(newfd);$

ERROR: code indent should never use tabs
#352: FILE: tools/virtiofsd/passthrough_ll.c:326:
+^I^Inewfd = -1;$

ERROR: code indent should never use tabs
#353: FILE: tools/virtiofsd/passthrough_ll.c:327:
+^I} else {$

ERROR: code indent should never use tabs
#354: FILE: tools/virtiofsd/passthrough_ll.c:328:
+^I^Istruct lo_inode *prev, *next;$

ERROR: code indent should never use tabs
#356: FILE: tools/virtiofsd/passthrough_ll.c:330:
+^I^Isaverr = ENOMEM;$

ERROR: code indent should never use tabs
#357: FILE: tools/virtiofsd/passthrough_ll.c:331:
+^I^Iinode = calloc(1, sizeof(struct lo_inode));$

ERROR: code indent should never use tabs
#358: FILE: tools/virtiofsd/passthrough_ll.c:332:
+^I^Iif (!inode)$

ERROR: braces {} are necessary for all arms of this statement
#358: FILE: tools/virtiofsd/passthrough_ll.c:332:
+               if (!inode)
[...]

ERROR: code indent should never use tabs
#359: FILE: tools/virtiofsd/passthrough_ll.c:333:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#361: FILE: tools/virtiofsd/passthrough_ll.c:335:
+^I^Iinode->is_symlink = S_ISLNK(e->attr.st_mode);$

ERROR: code indent should never use tabs
#362: FILE: tools/virtiofsd/passthrough_ll.c:336:
+^I^Iinode->refcount = 1;$

ERROR: code indent should never use tabs
#363: FILE: tools/virtiofsd/passthrough_ll.c:337:
+^I^Iinode->fd = newfd;$

ERROR: code indent should never use tabs
#364: FILE: tools/virtiofsd/passthrough_ll.c:338:
+^I^Iinode->ino = e->attr.st_ino;$

ERROR: code indent should never use tabs
#365: FILE: tools/virtiofsd/passthrough_ll.c:339:
+^I^Iinode->dev = e->attr.st_dev;$

ERROR: code indent should never use tabs
#367: FILE: tools/virtiofsd/passthrough_ll.c:341:
+^I^Ipthread_mutex_lock(&lo->mutex);$

ERROR: code indent should never use tabs
#368: FILE: tools/virtiofsd/passthrough_ll.c:342:
+^I^Iprev = &lo->root;$

ERROR: code indent should never use tabs
#369: FILE: tools/virtiofsd/passthrough_ll.c:343:
+^I^Inext = prev->next;$

ERROR: code indent should never use tabs
#370: FILE: tools/virtiofsd/passthrough_ll.c:344:
+^I^Inext->prev = inode;$

ERROR: code indent should never use tabs
#371: FILE: tools/virtiofsd/passthrough_ll.c:345:
+^I^Iinode->next = next;$

ERROR: code indent should never use tabs
#372: FILE: tools/virtiofsd/passthrough_ll.c:346:
+^I^Iinode->prev = prev;$

ERROR: code indent should never use tabs
#373: FILE: tools/virtiofsd/passthrough_ll.c:347:
+^I^Iprev->next = inode;$

ERROR: code indent should never use tabs
#374: FILE: tools/virtiofsd/passthrough_ll.c:348:
+^I^Ipthread_mutex_unlock(&lo->mutex);$

ERROR: code indent should never use tabs
#375: FILE: tools/virtiofsd/passthrough_ll.c:349:
+^I}$

ERROR: code indent should never use tabs
#376: FILE: tools/virtiofsd/passthrough_ll.c:350:
+^Ie->ino = (uintptr_t) inode;$

ERROR: code indent should never use tabs
#378: FILE: tools/virtiofsd/passthrough_ll.c:352:
+^Iif (lo_debug(req))$

ERROR: code indent should never use tabs
#379: FILE: tools/virtiofsd/passthrough_ll.c:353:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "  %lli/%s -> %lli\n",$

WARNING: line over 80 characters
#380: FILE: tools/virtiofsd/passthrough_ll.c:354:
+                       (unsigned long long) parent, name, (unsigned long long) e->ino);

ERROR: code indent should never use tabs
#380: FILE: tools/virtiofsd/passthrough_ll.c:354:
+^I^I^I(unsigned long long) parent, name, (unsigned long long) e->ino);$

ERROR: code indent should never use tabs
#382: FILE: tools/virtiofsd/passthrough_ll.c:356:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#385: FILE: tools/virtiofsd/passthrough_ll.c:359:
+^Isaverr = errno;$

ERROR: code indent should never use tabs
#386: FILE: tools/virtiofsd/passthrough_ll.c:360:
+^Iif (newfd != -1)$

ERROR: braces {} are necessary for all arms of this statement
#386: FILE: tools/virtiofsd/passthrough_ll.c:360:
+       if (newfd != -1)
[...]

ERROR: code indent should never use tabs
#387: FILE: tools/virtiofsd/passthrough_ll.c:361:
+^I^Iclose(newfd);$

ERROR: code indent should never use tabs
#388: FILE: tools/virtiofsd/passthrough_ll.c:362:
+^Ireturn saverr;$

ERROR: code indent should never use tabs
#393: FILE: tools/virtiofsd/passthrough_ll.c:367:
+^Istruct fuse_entry_param e;$

ERROR: code indent should never use tabs
#394: FILE: tools/virtiofsd/passthrough_ll.c:368:
+^Iint err;$

ERROR: code indent should never use tabs
#396: FILE: tools/virtiofsd/passthrough_ll.c:370:
+^Iif (lo_debug(req))$

WARNING: line over 80 characters
#397: FILE: tools/virtiofsd/passthrough_ll.c:371:
+               fuse_log(FUSE_LOG_DEBUG, "lo_lookup(parent=%" PRIu64 ", name=%s)\n",

ERROR: code indent should never use tabs
#397: FILE: tools/virtiofsd/passthrough_ll.c:371:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_lookup(parent=%" PRIu64 ", name=%s)\n",$

ERROR: code indent should never use tabs
#398: FILE: tools/virtiofsd/passthrough_ll.c:372:
+^I^I^Iparent, name);$

ERROR: code indent should never use tabs
#400: FILE: tools/virtiofsd/passthrough_ll.c:374:
+^Ierr = lo_do_lookup(req, parent, name, &e);$

ERROR: code indent should never use tabs
#401: FILE: tools/virtiofsd/passthrough_ll.c:375:
+^Iif (err)$

ERROR: braces {} are necessary for all arms of this statement
#401: FILE: tools/virtiofsd/passthrough_ll.c:375:
+       if (err)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#402: FILE: tools/virtiofsd/passthrough_ll.c:376:
+^I^Ifuse_reply_err(req, err);$

ERROR: code indent should never use tabs
#403: FILE: tools/virtiofsd/passthrough_ll.c:377:
+^Ielse$

ERROR: code indent should never use tabs
#404: FILE: tools/virtiofsd/passthrough_ll.c:378:
+^I^Ifuse_reply_entry(req, &e);$

ERROR: code indent should never use tabs
#408: FILE: tools/virtiofsd/passthrough_ll.c:382:
+^I^I^I     const char *name, mode_t mode, dev_t rdev,$

ERROR: code indent should never use tabs
#409: FILE: tools/virtiofsd/passthrough_ll.c:383:
+^I^I^I     const char *link)$

ERROR: code indent should never use tabs
#411: FILE: tools/virtiofsd/passthrough_ll.c:385:
+^Iint res;$

ERROR: code indent should never use tabs
#412: FILE: tools/virtiofsd/passthrough_ll.c:386:
+^Iint saverr;$

ERROR: code indent should never use tabs
#413: FILE: tools/virtiofsd/passthrough_ll.c:387:
+^Istruct lo_inode *dir = lo_inode(req, parent);$

ERROR: code indent should never use tabs
#414: FILE: tools/virtiofsd/passthrough_ll.c:388:
+^Istruct fuse_entry_param e;$

ERROR: code indent should never use tabs
#416: FILE: tools/virtiofsd/passthrough_ll.c:390:
+^Isaverr = ENOMEM;$

ERROR: code indent should never use tabs
#418: FILE: tools/virtiofsd/passthrough_ll.c:392:
+^Ires = mknod_wrapper(dir->fd, name, link, mode, rdev);$

ERROR: code indent should never use tabs
#420: FILE: tools/virtiofsd/passthrough_ll.c:394:
+^Isaverr = errno;$

ERROR: code indent should never use tabs
#421: FILE: tools/virtiofsd/passthrough_ll.c:395:
+^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#421: FILE: tools/virtiofsd/passthrough_ll.c:395:
+       if (res == -1)
[...]

ERROR: code indent should never use tabs
#422: FILE: tools/virtiofsd/passthrough_ll.c:396:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#424: FILE: tools/virtiofsd/passthrough_ll.c:398:
+^Isaverr = lo_do_lookup(req, parent, name, &e);$

ERROR: code indent should never use tabs
#425: FILE: tools/virtiofsd/passthrough_ll.c:399:
+^Iif (saverr)$

ERROR: braces {} are necessary for all arms of this statement
#425: FILE: tools/virtiofsd/passthrough_ll.c:399:
+       if (saverr)
[...]

ERROR: code indent should never use tabs
#426: FILE: tools/virtiofsd/passthrough_ll.c:400:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#428: FILE: tools/virtiofsd/passthrough_ll.c:402:
+^Iif (lo_debug(req))$

ERROR: code indent should never use tabs
#429: FILE: tools/virtiofsd/passthrough_ll.c:403:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "  %lli/%s -> %lli\n",$

WARNING: line over 80 characters
#430: FILE: tools/virtiofsd/passthrough_ll.c:404:
+                       (unsigned long long) parent, name, (unsigned long long) e.ino);

ERROR: code indent should never use tabs
#430: FILE: tools/virtiofsd/passthrough_ll.c:404:
+^I^I^I(unsigned long long) parent, name, (unsigned long long) e.ino);$

ERROR: code indent should never use tabs
#432: FILE: tools/virtiofsd/passthrough_ll.c:406:
+^Ifuse_reply_entry(req, &e);$

ERROR: code indent should never use tabs
#433: FILE: tools/virtiofsd/passthrough_ll.c:407:
+^Ireturn;$

ERROR: code indent should never use tabs
#436: FILE: tools/virtiofsd/passthrough_ll.c:410:
+^Ifuse_reply_err(req, saverr);$

ERROR: code indent should never use tabs
#440: FILE: tools/virtiofsd/passthrough_ll.c:414:
+^I^I     const char *name, mode_t mode, dev_t rdev)$

ERROR: code indent should never use tabs
#442: FILE: tools/virtiofsd/passthrough_ll.c:416:
+^Ilo_mknod_symlink(req, parent, name, mode, rdev, NULL);$

ERROR: code indent should never use tabs
#446: FILE: tools/virtiofsd/passthrough_ll.c:420:
+^I^I     mode_t mode)$

ERROR: code indent should never use tabs
#448: FILE: tools/virtiofsd/passthrough_ll.c:422:
+^Ilo_mknod_symlink(req, parent, name, S_IFDIR | mode, 0, NULL);$

ERROR: code indent should never use tabs
#452: FILE: tools/virtiofsd/passthrough_ll.c:426:
+^I^I       fuse_ino_t parent, const char *name)$

ERROR: code indent should never use tabs
#454: FILE: tools/virtiofsd/passthrough_ll.c:428:
+^Ilo_mknod_symlink(req, parent, name, S_IFLNK, 0, link);$

ERROR: code indent should never use tabs
#458: FILE: tools/virtiofsd/passthrough_ll.c:432:
+^I^I^I^I const char *name)$

ERROR: code indent should never use tabs
#460: FILE: tools/virtiofsd/passthrough_ll.c:434:
+^Iint res;$

ERROR: code indent should never use tabs
#461: FILE: tools/virtiofsd/passthrough_ll.c:435:
+^Ichar procname[64];$

ERROR: code indent should never use tabs
#463: FILE: tools/virtiofsd/passthrough_ll.c:437:
+^Iif (inode->is_symlink) {$

ERROR: code indent should never use tabs
#464: FILE: tools/virtiofsd/passthrough_ll.c:438:
+^I^Ires = linkat(inode->fd, "", dfd, name, AT_EMPTY_PATH);$

ERROR: code indent should never use tabs
#465: FILE: tools/virtiofsd/passthrough_ll.c:439:
+^I^Iif (res == -1 && (errno == ENOENT || errno == EINVAL)) {$

ERROR: code indent should never use tabs
#466: FILE: tools/virtiofsd/passthrough_ll.c:440:
+^I^I^I/* Sorry, no race free way to hard-link a symlink. */$

ERROR: code indent should never use tabs
#467: FILE: tools/virtiofsd/passthrough_ll.c:441:
+^I^I^Ierrno = EPERM;$

ERROR: code indent should never use tabs
#468: FILE: tools/virtiofsd/passthrough_ll.c:442:
+^I^I}$

ERROR: code indent should never use tabs
#469: FILE: tools/virtiofsd/passthrough_ll.c:443:
+^I^Ireturn res;$

ERROR: code indent should never use tabs
#470: FILE: tools/virtiofsd/passthrough_ll.c:444:
+^I}$

ERROR: code indent should never use tabs
#472: FILE: tools/virtiofsd/passthrough_ll.c:446:
+^Isprintf(procname, "/proc/self/fd/%i", inode->fd);$

ERROR: code indent should never use tabs
#474: FILE: tools/virtiofsd/passthrough_ll.c:448:
+^Ireturn linkat(AT_FDCWD, procname, dfd, name, AT_SYMLINK_FOLLOW);$

ERROR: code indent should never use tabs
#478: FILE: tools/virtiofsd/passthrough_ll.c:452:
+^I^I    const char *name)$

ERROR: code indent should never use tabs
#480: FILE: tools/virtiofsd/passthrough_ll.c:454:
+^Iint res;$

ERROR: code indent should never use tabs
#481: FILE: tools/virtiofsd/passthrough_ll.c:455:
+^Istruct lo_data *lo = lo_data(req);$

ERROR: code indent should never use tabs
#482: FILE: tools/virtiofsd/passthrough_ll.c:456:
+^Istruct lo_inode *inode = lo_inode(req, ino);$

ERROR: code indent should never use tabs
#483: FILE: tools/virtiofsd/passthrough_ll.c:457:
+^Istruct fuse_entry_param e;$

ERROR: code indent should never use tabs
#484: FILE: tools/virtiofsd/passthrough_ll.c:458:
+^Iint saverr;$

ERROR: code indent should never use tabs
#486: FILE: tools/virtiofsd/passthrough_ll.c:460:
+^Imemset(&e, 0, sizeof(struct fuse_entry_param));$

ERROR: code indent should never use tabs
#487: FILE: tools/virtiofsd/passthrough_ll.c:461:
+^Ie.attr_timeout = lo->timeout;$

ERROR: code indent should never use tabs
#488: FILE: tools/virtiofsd/passthrough_ll.c:462:
+^Ie.entry_timeout = lo->timeout;$

ERROR: code indent should never use tabs
#490: FILE: tools/virtiofsd/passthrough_ll.c:464:
+^Ires = linkat_empty_nofollow(inode, lo_fd(req, parent), name);$

ERROR: code indent should never use tabs
#491: FILE: tools/virtiofsd/passthrough_ll.c:465:
+^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#491: FILE: tools/virtiofsd/passthrough_ll.c:465:
+       if (res == -1)
[...]

ERROR: code indent should never use tabs
#492: FILE: tools/virtiofsd/passthrough_ll.c:466:
+^I^Igoto out_err;$

WARNING: line over 80 characters
#494: FILE: tools/virtiofsd/passthrough_ll.c:468:
+       res = fstatat(inode->fd, "", &e.attr, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW);

ERROR: code indent should never use tabs
#494: FILE: tools/virtiofsd/passthrough_ll.c:468:
+^Ires = fstatat(inode->fd, "", &e.attr, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW);$

ERROR: code indent should never use tabs
#495: FILE: tools/virtiofsd/passthrough_ll.c:469:
+^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#495: FILE: tools/virtiofsd/passthrough_ll.c:469:
+       if (res == -1)
[...]

ERROR: code indent should never use tabs
#496: FILE: tools/virtiofsd/passthrough_ll.c:470:
+^I^Igoto out_err;$

ERROR: code indent should never use tabs
#498: FILE: tools/virtiofsd/passthrough_ll.c:472:
+^Ipthread_mutex_lock(&lo->mutex);$

ERROR: code indent should never use tabs
#499: FILE: tools/virtiofsd/passthrough_ll.c:473:
+^Iinode->refcount++;$

ERROR: code indent should never use tabs
#500: FILE: tools/virtiofsd/passthrough_ll.c:474:
+^Ipthread_mutex_unlock(&lo->mutex);$

ERROR: code indent should never use tabs
#501: FILE: tools/virtiofsd/passthrough_ll.c:475:
+^Ie.ino = (uintptr_t) inode;$

ERROR: code indent should never use tabs
#503: FILE: tools/virtiofsd/passthrough_ll.c:477:
+^Iif (lo_debug(req))$

ERROR: code indent should never use tabs
#504: FILE: tools/virtiofsd/passthrough_ll.c:478:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "  %lli/%s -> %lli\n",$

ERROR: code indent should never use tabs
#505: FILE: tools/virtiofsd/passthrough_ll.c:479:
+^I^I^I(unsigned long long) parent, name,$

ERROR: code indent should never use tabs
#506: FILE: tools/virtiofsd/passthrough_ll.c:480:
+^I^I^I(unsigned long long) e.ino);$

ERROR: code indent should never use tabs
#508: FILE: tools/virtiofsd/passthrough_ll.c:482:
+^Ifuse_reply_entry(req, &e);$

ERROR: code indent should never use tabs
#509: FILE: tools/virtiofsd/passthrough_ll.c:483:
+^Ireturn;$

ERROR: code indent should never use tabs
#512: FILE: tools/virtiofsd/passthrough_ll.c:486:
+^Isaverr = errno;$

ERROR: code indent should never use tabs
#513: FILE: tools/virtiofsd/passthrough_ll.c:487:
+^Ifuse_reply_err(req, saverr);$

ERROR: code indent should never use tabs
#518: FILE: tools/virtiofsd/passthrough_ll.c:492:
+^Iint res;$

ERROR: code indent should never use tabs
#520: FILE: tools/virtiofsd/passthrough_ll.c:494:
+^Ires = unlinkat(lo_fd(req, parent), name, AT_REMOVEDIR);$

ERROR: code indent should never use tabs
#522: FILE: tools/virtiofsd/passthrough_ll.c:496:
+^Ifuse_reply_err(req, res == -1 ? errno : 0);$

ERROR: code indent should never use tabs
#526: FILE: tools/virtiofsd/passthrough_ll.c:500:
+^I^I      fuse_ino_t newparent, const char *newname,$

ERROR: code indent should never use tabs
#527: FILE: tools/virtiofsd/passthrough_ll.c:501:
+^I^I      unsigned int flags)$

ERROR: code indent should never use tabs
#529: FILE: tools/virtiofsd/passthrough_ll.c:503:
+^Iint res;$

ERROR: code indent should never use tabs
#531: FILE: tools/virtiofsd/passthrough_ll.c:505:
+^Iif (flags) {$

ERROR: code indent should never use tabs
#532: FILE: tools/virtiofsd/passthrough_ll.c:506:
+^I^Ifuse_reply_err(req, EINVAL);$

ERROR: code indent should never use tabs
#533: FILE: tools/virtiofsd/passthrough_ll.c:507:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#534: FILE: tools/virtiofsd/passthrough_ll.c:508:
+^I}$

ERROR: code indent should never use tabs
#536: FILE: tools/virtiofsd/passthrough_ll.c:510:
+^Ires = renameat(lo_fd(req, parent), name,$

ERROR: code indent should never use tabs
#537: FILE: tools/virtiofsd/passthrough_ll.c:511:
+^I^I^Ilo_fd(req, newparent), newname);$

ERROR: code indent should never use tabs
#539: FILE: tools/virtiofsd/passthrough_ll.c:513:
+^Ifuse_reply_err(req, res == -1 ? errno : 0);$

ERROR: code indent should never use tabs
#544: FILE: tools/virtiofsd/passthrough_ll.c:518:
+^Iint res;$

ERROR: code indent should never use tabs
#546: FILE: tools/virtiofsd/passthrough_ll.c:520:
+^Ires = unlinkat(lo_fd(req, parent), name, 0);$

ERROR: code indent should never use tabs
#548: FILE: tools/virtiofsd/passthrough_ll.c:522:
+^Ifuse_reply_err(req, res == -1 ? errno : 0);$

ERROR: code indent should never use tabs
#553: FILE: tools/virtiofsd/passthrough_ll.c:527:
+^Iif (!inode)$

ERROR: braces {} are necessary for all arms of this statement
#553: FILE: tools/virtiofsd/passthrough_ll.c:527:
+       if (!inode)
[...]

ERROR: code indent should never use tabs
#554: FILE: tools/virtiofsd/passthrough_ll.c:528:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#556: FILE: tools/virtiofsd/passthrough_ll.c:530:
+^Ipthread_mutex_lock(&lo->mutex);$

ERROR: code indent should never use tabs
#557: FILE: tools/virtiofsd/passthrough_ll.c:531:
+^Iassert(inode->refcount >= n);$

ERROR: code indent should never use tabs
#558: FILE: tools/virtiofsd/passthrough_ll.c:532:
+^Iinode->refcount -= n;$

ERROR: code indent should never use tabs
#559: FILE: tools/virtiofsd/passthrough_ll.c:533:
+^Iif (!inode->refcount) {$

ERROR: code indent should never use tabs
#560: FILE: tools/virtiofsd/passthrough_ll.c:534:
+^I^Istruct lo_inode *prev, *next;$

ERROR: code indent should never use tabs
#562: FILE: tools/virtiofsd/passthrough_ll.c:536:
+^I^Iprev = inode->prev;$

ERROR: code indent should never use tabs
#563: FILE: tools/virtiofsd/passthrough_ll.c:537:
+^I^Inext = inode->next;$

ERROR: code indent should never use tabs
#564: FILE: tools/virtiofsd/passthrough_ll.c:538:
+^I^Inext->prev = prev;$

ERROR: code indent should never use tabs
#565: FILE: tools/virtiofsd/passthrough_ll.c:539:
+^I^Iprev->next = next;$

ERROR: code indent should never use tabs
#567: FILE: tools/virtiofsd/passthrough_ll.c:541:
+^I^Ipthread_mutex_unlock(&lo->mutex);$

ERROR: code indent should never use tabs
#568: FILE: tools/virtiofsd/passthrough_ll.c:542:
+^I^Iclose(inode->fd);$

ERROR: code indent should never use tabs
#569: FILE: tools/virtiofsd/passthrough_ll.c:543:
+^I^Ifree(inode);$

ERROR: code indent should never use tabs
#571: FILE: tools/virtiofsd/passthrough_ll.c:545:
+^I} else {$

ERROR: code indent should never use tabs
#572: FILE: tools/virtiofsd/passthrough_ll.c:546:
+^I^Ipthread_mutex_unlock(&lo->mutex);$

ERROR: code indent should never use tabs
#573: FILE: tools/virtiofsd/passthrough_ll.c:547:
+^I}$

ERROR: code indent should never use tabs
#578: FILE: tools/virtiofsd/passthrough_ll.c:552:
+^Istruct lo_data *lo = lo_data(req);$

ERROR: code indent should never use tabs
#579: FILE: tools/virtiofsd/passthrough_ll.c:553:
+^Istruct lo_inode *inode = lo_inode(req, ino);$

ERROR: code indent should never use tabs
#581: FILE: tools/virtiofsd/passthrough_ll.c:555:
+^Iif (lo_debug(req)) {$

ERROR: code indent should never use tabs
#582: FILE: tools/virtiofsd/passthrough_ll.c:556:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "  forget %lli %lli -%lli\n",$

ERROR: code indent should never use tabs
#583: FILE: tools/virtiofsd/passthrough_ll.c:557:
+^I^I^I(unsigned long long) ino,$

ERROR: code indent should never use tabs
#584: FILE: tools/virtiofsd/passthrough_ll.c:558:
+^I^I^I(unsigned long long) inode->refcount,$

ERROR: code indent should never use tabs
#585: FILE: tools/virtiofsd/passthrough_ll.c:559:
+^I^I^I(unsigned long long) nlookup);$

ERROR: code indent should never use tabs
#586: FILE: tools/virtiofsd/passthrough_ll.c:560:
+^I}$

ERROR: code indent should never use tabs
#588: FILE: tools/virtiofsd/passthrough_ll.c:562:
+^Iunref_inode(lo, inode, nlookup);$

ERROR: code indent should never use tabs
#593: FILE: tools/virtiofsd/passthrough_ll.c:567:
+^Ilo_forget_one(req, ino, nlookup);$

ERROR: code indent should never use tabs
#594: FILE: tools/virtiofsd/passthrough_ll.c:568:
+^Ifuse_reply_none(req);$

ERROR: code indent should never use tabs
#598: FILE: tools/virtiofsd/passthrough_ll.c:572:
+^I^I^I^Istruct fuse_forget_data *forgets)$

ERROR: code indent should never use tabs
#600: FILE: tools/virtiofsd/passthrough_ll.c:574:
+^Iint i;$

ERROR: code indent should never use tabs
#602: FILE: tools/virtiofsd/passthrough_ll.c:576:
+^Ifor (i = 0; i < count; i++)$

ERROR: braces {} are necessary for all arms of this statement
#602: FILE: tools/virtiofsd/passthrough_ll.c:576:
+       for (i = 0; i < count; i++)
[...]

ERROR: code indent should never use tabs
#603: FILE: tools/virtiofsd/passthrough_ll.c:577:
+^I^Ilo_forget_one(req, forgets[i].ino, forgets[i].nlookup);$

ERROR: code indent should never use tabs
#604: FILE: tools/virtiofsd/passthrough_ll.c:578:
+^Ifuse_reply_none(req);$

ERROR: code indent should never use tabs
#609: FILE: tools/virtiofsd/passthrough_ll.c:583:
+^Ichar buf[PATH_MAX + 1];$

ERROR: code indent should never use tabs
#610: FILE: tools/virtiofsd/passthrough_ll.c:584:
+^Iint res;$

ERROR: code indent should never use tabs
#612: FILE: tools/virtiofsd/passthrough_ll.c:586:
+^Ires = readlinkat(lo_fd(req, ino), "", buf, sizeof(buf));$

ERROR: code indent should never use tabs
#613: FILE: tools/virtiofsd/passthrough_ll.c:587:
+^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#613: FILE: tools/virtiofsd/passthrough_ll.c:587:
+       if (res == -1)
[...]

ERROR: code indent should never use tabs
#614: FILE: tools/virtiofsd/passthrough_ll.c:588:
+^I^Ireturn (void) fuse_reply_err(req, errno);$

ERROR: code indent should never use tabs
#616: FILE: tools/virtiofsd/passthrough_ll.c:590:
+^Iif (res == sizeof(buf))$

ERROR: braces {} are necessary for all arms of this statement
#616: FILE: tools/virtiofsd/passthrough_ll.c:590:
+       if (res == sizeof(buf))
[...]

ERROR: code indent should never use tabs
#617: FILE: tools/virtiofsd/passthrough_ll.c:591:
+^I^Ireturn (void) fuse_reply_err(req, ENAMETOOLONG);$

ERROR: code indent should never use tabs
#619: FILE: tools/virtiofsd/passthrough_ll.c:593:
+^Ibuf[res] = '\0';$

ERROR: code indent should never use tabs
#621: FILE: tools/virtiofsd/passthrough_ll.c:595:
+^Ifuse_reply_readlink(req, buf);$

ERROR: code indent should never use tabs
#625: FILE: tools/virtiofsd/passthrough_ll.c:599:
+^IDIR *dp;$

ERROR: code indent should never use tabs
#626: FILE: tools/virtiofsd/passthrough_ll.c:600:
+^Istruct dirent *entry;$

ERROR: code indent should never use tabs
#627: FILE: tools/virtiofsd/passthrough_ll.c:601:
+^Ioff_t offset;$

ERROR: code indent should never use tabs
#632: FILE: tools/virtiofsd/passthrough_ll.c:606:
+^Ireturn (struct lo_dirp *) (uintptr_t) fi->fh;$

WARNING: line over 80 characters
#635: FILE: tools/virtiofsd/passthrough_ll.c:609:
+static void lo_opendir(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)

ERROR: code indent should never use tabs
#637: FILE: tools/virtiofsd/passthrough_ll.c:611:
+^Iint error = ENOMEM;$

ERROR: code indent should never use tabs
#638: FILE: tools/virtiofsd/passthrough_ll.c:612:
+^Istruct lo_data *lo = lo_data(req);$

ERROR: code indent should never use tabs
#639: FILE: tools/virtiofsd/passthrough_ll.c:613:
+^Istruct lo_dirp *d;$

ERROR: code indent should never use tabs
#640: FILE: tools/virtiofsd/passthrough_ll.c:614:
+^Iint fd;$

ERROR: code indent should never use tabs
#642: FILE: tools/virtiofsd/passthrough_ll.c:616:
+^Id = calloc(1, sizeof(struct lo_dirp));$

ERROR: code indent should never use tabs
#643: FILE: tools/virtiofsd/passthrough_ll.c:617:
+^Iif (d == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#643: FILE: tools/virtiofsd/passthrough_ll.c:617:
+       if (d == NULL)
[...]

ERROR: code indent should never use tabs
#644: FILE: tools/virtiofsd/passthrough_ll.c:618:
+^I^Igoto out_err;$

ERROR: code indent should never use tabs
#646: FILE: tools/virtiofsd/passthrough_ll.c:620:
+^Ifd = openat(lo_fd(req, ino), ".", O_RDONLY);$

ERROR: code indent should never use tabs
#647: FILE: tools/virtiofsd/passthrough_ll.c:621:
+^Iif (fd == -1)$

ERROR: braces {} are necessary for all arms of this statement
#647: FILE: tools/virtiofsd/passthrough_ll.c:621:
+       if (fd == -1)
[...]

ERROR: code indent should never use tabs
#648: FILE: tools/virtiofsd/passthrough_ll.c:622:
+^I^Igoto out_errno;$

ERROR: code indent should never use tabs
#650: FILE: tools/virtiofsd/passthrough_ll.c:624:
+^Id->dp = fdopendir(fd);$

ERROR: code indent should never use tabs
#651: FILE: tools/virtiofsd/passthrough_ll.c:625:
+^Iif (d->dp == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#651: FILE: tools/virtiofsd/passthrough_ll.c:625:
+       if (d->dp == NULL)
[...]

ERROR: code indent should never use tabs
#652: FILE: tools/virtiofsd/passthrough_ll.c:626:
+^I^Igoto out_errno;$

ERROR: code indent should never use tabs
#654: FILE: tools/virtiofsd/passthrough_ll.c:628:
+^Id->offset = 0;$

ERROR: code indent should never use tabs
#655: FILE: tools/virtiofsd/passthrough_ll.c:629:
+^Id->entry = NULL;$

ERROR: code indent should never use tabs
#657: FILE: tools/virtiofsd/passthrough_ll.c:631:
+^Ifi->fh = (uintptr_t) d;$

ERROR: code indent should never use tabs
#658: FILE: tools/virtiofsd/passthrough_ll.c:632:
+^Iif (lo->cache == CACHE_ALWAYS)$

ERROR: braces {} are necessary for all arms of this statement
#658: FILE: tools/virtiofsd/passthrough_ll.c:632:
+       if (lo->cache == CACHE_ALWAYS)
[...]

ERROR: code indent should never use tabs
#659: FILE: tools/virtiofsd/passthrough_ll.c:633:
+^I^Ifi->keep_cache = 1;$

ERROR: code indent should never use tabs
#660: FILE: tools/virtiofsd/passthrough_ll.c:634:
+^Ifuse_reply_open(req, fi);$

ERROR: code indent should never use tabs
#661: FILE: tools/virtiofsd/passthrough_ll.c:635:
+^Ireturn;$

ERROR: code indent should never use tabs
#664: FILE: tools/virtiofsd/passthrough_ll.c:638:
+^Ierror = errno;$

ERROR: code indent should never use tabs
#666: FILE: tools/virtiofsd/passthrough_ll.c:640:
+^Iif (d) {$

ERROR: code indent should never use tabs
#667: FILE: tools/virtiofsd/passthrough_ll.c:641:
+^I^Iif (fd != -1)$

ERROR: braces {} are necessary for all arms of this statement
#667: FILE: tools/virtiofsd/passthrough_ll.c:641:
+               if (fd != -1)
[...]

ERROR: code indent should never use tabs
#668: FILE: tools/virtiofsd/passthrough_ll.c:642:
+^I^I^Iclose(fd);$

ERROR: code indent should never use tabs
#669: FILE: tools/virtiofsd/passthrough_ll.c:643:
+^I^Ifree(d);$

ERROR: code indent should never use tabs
#670: FILE: tools/virtiofsd/passthrough_ll.c:644:
+^I}$

ERROR: code indent should never use tabs
#671: FILE: tools/virtiofsd/passthrough_ll.c:645:
+^Ifuse_reply_err(req, error);$

ERROR: code indent should never use tabs
#676: FILE: tools/virtiofsd/passthrough_ll.c:650:
+^Ireturn name[0] == '.' && (name[1] == '\0' ||$

ERROR: code indent should never use tabs
#677: FILE: tools/virtiofsd/passthrough_ll.c:651:
+^I^I^I^I  (name[1] == '.' && name[2] == '\0'));$

ERROR: code indent should never use tabs
#681: FILE: tools/virtiofsd/passthrough_ll.c:655:
+^I^I^I  off_t offset, struct fuse_file_info *fi, int plus)$

ERROR: code indent should never use tabs
#683: FILE: tools/virtiofsd/passthrough_ll.c:657:
+^Istruct lo_dirp *d = lo_dirp(fi);$

ERROR: code indent should never use tabs
#684: FILE: tools/virtiofsd/passthrough_ll.c:658:
+^Ichar *buf;$

ERROR: code indent should never use tabs
#685: FILE: tools/virtiofsd/passthrough_ll.c:659:
+^Ichar *p;$

ERROR: code indent should never use tabs
#686: FILE: tools/virtiofsd/passthrough_ll.c:660:
+^Isize_t rem = size;$

ERROR: code indent should never use tabs
#687: FILE: tools/virtiofsd/passthrough_ll.c:661:
+^Iint err;$

ERROR: code indent should never use tabs
#689: FILE: tools/virtiofsd/passthrough_ll.c:663:
+^I(void) ino;$

ERROR: code indent should never use tabs
#691: FILE: tools/virtiofsd/passthrough_ll.c:665:
+^Ibuf = calloc(1, size);$

ERROR: code indent should never use tabs
#692: FILE: tools/virtiofsd/passthrough_ll.c:666:
+^Iif (!buf) {$

ERROR: code indent should never use tabs
#693: FILE: tools/virtiofsd/passthrough_ll.c:667:
+^I^Ierr = ENOMEM;$

ERROR: code indent should never use tabs
#694: FILE: tools/virtiofsd/passthrough_ll.c:668:
+^I^Igoto error;$

ERROR: code indent should never use tabs
#695: FILE: tools/virtiofsd/passthrough_ll.c:669:
+^I}$

ERROR: code indent should never use tabs
#696: FILE: tools/virtiofsd/passthrough_ll.c:670:
+^Ip = buf;$

ERROR: code indent should never use tabs
#698: FILE: tools/virtiofsd/passthrough_ll.c:672:
+^Iif (offset != d->offset) {$

ERROR: code indent should never use tabs
#699: FILE: tools/virtiofsd/passthrough_ll.c:673:
+^I^Iseekdir(d->dp, offset);$

ERROR: code indent should never use tabs
#700: FILE: tools/virtiofsd/passthrough_ll.c:674:
+^I^Id->entry = NULL;$

ERROR: code indent should never use tabs
#701: FILE: tools/virtiofsd/passthrough_ll.c:675:
+^I^Id->offset = offset;$

ERROR: code indent should never use tabs
#702: FILE: tools/virtiofsd/passthrough_ll.c:676:
+^I}$

ERROR: code indent should never use tabs
#703: FILE: tools/virtiofsd/passthrough_ll.c:677:
+^Iwhile (1) {$

ERROR: code indent should never use tabs
#704: FILE: tools/virtiofsd/passthrough_ll.c:678:
+^I^Isize_t entsize;$

ERROR: code indent should never use tabs
#705: FILE: tools/virtiofsd/passthrough_ll.c:679:
+^I^Ioff_t nextoff;$

ERROR: code indent should never use tabs
#706: FILE: tools/virtiofsd/passthrough_ll.c:680:
+^I^Iconst char *name;$

ERROR: code indent should never use tabs
#708: FILE: tools/virtiofsd/passthrough_ll.c:682:
+^I^Iif (!d->entry) {$

ERROR: code indent should never use tabs
#709: FILE: tools/virtiofsd/passthrough_ll.c:683:
+^I^I^Ierrno = 0;$

ERROR: code indent should never use tabs
#710: FILE: tools/virtiofsd/passthrough_ll.c:684:
+^I^I^Id->entry = readdir(d->dp);$

ERROR: code indent should never use tabs
#711: FILE: tools/virtiofsd/passthrough_ll.c:685:
+^I^I^Iif (!d->entry) {$

ERROR: code indent should never use tabs
#712: FILE: tools/virtiofsd/passthrough_ll.c:686:
+^I^I^I^Iif (errno) {  // Error$

ERROR: do not use C99 // comments
#712: FILE: tools/virtiofsd/passthrough_ll.c:686:
+                               if (errno) {  // Error

ERROR: trailing statements should be on next line
#712: FILE: tools/virtiofsd/passthrough_ll.c:686:
+                               if (errno) {  // Error

ERROR: code indent should never use tabs
#713: FILE: tools/virtiofsd/passthrough_ll.c:687:
+^I^I^I^I^Ierr = errno;$

ERROR: code indent should never use tabs
#714: FILE: tools/virtiofsd/passthrough_ll.c:688:
+^I^I^I^I^Igoto error;$

ERROR: code indent should never use tabs
#715: FILE: tools/virtiofsd/passthrough_ll.c:689:
+^I^I^I^I} else {  // End of stream$

ERROR: do not use C99 // comments
#715: FILE: tools/virtiofsd/passthrough_ll.c:689:
+                               } else {  // End of stream

ERROR: trailing whitespace
#716: FILE: tools/virtiofsd/passthrough_ll.c:690:
+^I^I^I^I^Ibreak; $

ERROR: code indent should never use tabs
#716: FILE: tools/virtiofsd/passthrough_ll.c:690:
+^I^I^I^I^Ibreak; $

ERROR: code indent should never use tabs
#717: FILE: tools/virtiofsd/passthrough_ll.c:691:
+^I^I^I^I}$

ERROR: code indent should never use tabs
#718: FILE: tools/virtiofsd/passthrough_ll.c:692:
+^I^I^I}$

ERROR: code indent should never use tabs
#719: FILE: tools/virtiofsd/passthrough_ll.c:693:
+^I^I}$

ERROR: code indent should never use tabs
#720: FILE: tools/virtiofsd/passthrough_ll.c:694:
+^I^Inextoff = d->entry->d_off;$

ERROR: code indent should never use tabs
#721: FILE: tools/virtiofsd/passthrough_ll.c:695:
+^I^Iname = d->entry->d_name;$

ERROR: code indent should never use tabs
#722: FILE: tools/virtiofsd/passthrough_ll.c:696:
+^I^Ifuse_ino_t entry_ino = 0;$

ERROR: code indent should never use tabs
#723: FILE: tools/virtiofsd/passthrough_ll.c:697:
+^I^Iif (plus) {$

ERROR: code indent should never use tabs
#724: FILE: tools/virtiofsd/passthrough_ll.c:698:
+^I^I^Istruct fuse_entry_param e;$

ERROR: code indent should never use tabs
#725: FILE: tools/virtiofsd/passthrough_ll.c:699:
+^I^I^Iif (is_dot_or_dotdot(name)) {$

ERROR: code indent should never use tabs
#726: FILE: tools/virtiofsd/passthrough_ll.c:700:
+^I^I^I^Ie = (struct fuse_entry_param) {$

ERROR: code indent should never use tabs
#727: FILE: tools/virtiofsd/passthrough_ll.c:701:
+^I^I^I^I^I.attr.st_ino = d->entry->d_ino,$

ERROR: code indent should never use tabs
#728: FILE: tools/virtiofsd/passthrough_ll.c:702:
+^I^I^I^I^I.attr.st_mode = d->entry->d_type << 12,$

ERROR: code indent should never use tabs
#729: FILE: tools/virtiofsd/passthrough_ll.c:703:
+^I^I^I^I};$

ERROR: code indent should never use tabs
#730: FILE: tools/virtiofsd/passthrough_ll.c:704:
+^I^I^I} else {$

ERROR: code indent should never use tabs
#731: FILE: tools/virtiofsd/passthrough_ll.c:705:
+^I^I^I^Ierr = lo_do_lookup(req, ino, name, &e);$

ERROR: code indent should never use tabs
#732: FILE: tools/virtiofsd/passthrough_ll.c:706:
+^I^I^I^Iif (err)$

ERROR: braces {} are necessary for all arms of this statement
#732: FILE: tools/virtiofsd/passthrough_ll.c:706:
+                               if (err)
[...]

ERROR: code indent should never use tabs
#733: FILE: tools/virtiofsd/passthrough_ll.c:707:
+^I^I^I^I^Igoto error;$

ERROR: code indent should never use tabs
#734: FILE: tools/virtiofsd/passthrough_ll.c:708:
+^I^I^I^Ientry_ino = e.ino;$

ERROR: code indent should never use tabs
#735: FILE: tools/virtiofsd/passthrough_ll.c:709:
+^I^I^I}$

ERROR: code indent should never use tabs
#737: FILE: tools/virtiofsd/passthrough_ll.c:711:
+^I^I^Ientsize = fuse_add_direntry_plus(req, p, rem, name,$

ERROR: code indent should never use tabs
#738: FILE: tools/virtiofsd/passthrough_ll.c:712:
+^I^I^I^I^I^I^I &e, nextoff);$

ERROR: code indent should never use tabs
#739: FILE: tools/virtiofsd/passthrough_ll.c:713:
+^I^I} else {$

ERROR: code indent should never use tabs
#740: FILE: tools/virtiofsd/passthrough_ll.c:714:
+^I^I^Istruct stat st = {$

ERROR: code indent should never use tabs
#741: FILE: tools/virtiofsd/passthrough_ll.c:715:
+^I^I^I^I.st_ino = d->entry->d_ino,$

ERROR: code indent should never use tabs
#742: FILE: tools/virtiofsd/passthrough_ll.c:716:
+^I^I^I^I.st_mode = d->entry->d_type << 12,$

ERROR: code indent should never use tabs
#743: FILE: tools/virtiofsd/passthrough_ll.c:717:
+^I^I^I};$

ERROR: code indent should never use tabs
#744: FILE: tools/virtiofsd/passthrough_ll.c:718:
+^I^I^Ientsize = fuse_add_direntry(req, p, rem, name,$

ERROR: code indent should never use tabs
#745: FILE: tools/virtiofsd/passthrough_ll.c:719:
+^I^I^I^I^I^I    &st, nextoff);$

ERROR: code indent should never use tabs
#746: FILE: tools/virtiofsd/passthrough_ll.c:720:
+^I^I}$

ERROR: code indent should never use tabs
#747: FILE: tools/virtiofsd/passthrough_ll.c:721:
+^I^Iif (entsize > rem) {$

ERROR: trailing whitespace
#748: FILE: tools/virtiofsd/passthrough_ll.c:722:
+^I^I^Iif (entry_ino != 0) $

ERROR: code indent should never use tabs
#748: FILE: tools/virtiofsd/passthrough_ll.c:722:
+^I^I^Iif (entry_ino != 0) $

ERROR: braces {} are necessary for all arms of this statement
#748: FILE: tools/virtiofsd/passthrough_ll.c:722:
+                       if (entry_ino != 0) 
[...]

ERROR: code indent should never use tabs
#749: FILE: tools/virtiofsd/passthrough_ll.c:723:
+^I^I^I^Ilo_forget_one(req, entry_ino, 1);$

ERROR: code indent should never use tabs
#750: FILE: tools/virtiofsd/passthrough_ll.c:724:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#751: FILE: tools/virtiofsd/passthrough_ll.c:725:
+^I^I}$

ERROR: trailing whitespace
#752: FILE: tools/virtiofsd/passthrough_ll.c:726:
+^I^I$

ERROR: code indent should never use tabs
#752: FILE: tools/virtiofsd/passthrough_ll.c:726:
+^I^I$

ERROR: code indent should never use tabs
#753: FILE: tools/virtiofsd/passthrough_ll.c:727:
+^I^Ip += entsize;$

ERROR: code indent should never use tabs
#754: FILE: tools/virtiofsd/passthrough_ll.c:728:
+^I^Irem -= entsize;$

ERROR: code indent should never use tabs
#756: FILE: tools/virtiofsd/passthrough_ll.c:730:
+^I^Id->entry = NULL;$

ERROR: code indent should never use tabs
#757: FILE: tools/virtiofsd/passthrough_ll.c:731:
+^I^Id->offset = nextoff;$

ERROR: code indent should never use tabs
#758: FILE: tools/virtiofsd/passthrough_ll.c:732:
+^I}$

ERROR: do not use C99 // comments
#762: FILE: tools/virtiofsd/passthrough_ll.c:736:
+    // If there's an error, we can only signal it if we haven't stored

ERROR: do not use C99 // comments
#763: FILE: tools/virtiofsd/passthrough_ll.c:737:
+    // any entries yet - otherwise we'd end up with wrong lookup

ERROR: do not use C99 // comments
#764: FILE: tools/virtiofsd/passthrough_ll.c:738:
+    // counts for the entries that are already in the buffer. So we

ERROR: do not use C99 // comments
#765: FILE: tools/virtiofsd/passthrough_ll.c:739:
+    // return what we've collected until that point.

ERROR: braces {} are necessary for all arms of this statement
#766: FILE: tools/virtiofsd/passthrough_ll.c:740:
+    if (err && rem == size)
[...]
+    else
[...]

ERROR: code indent should never use tabs
#767: FILE: tools/virtiofsd/passthrough_ll.c:741:
+^I    fuse_reply_err(req, err);$

ERROR: code indent should never use tabs
#769: FILE: tools/virtiofsd/passthrough_ll.c:743:
+^I    fuse_reply_buf(req, buf, size - rem);$

ERROR: code indent should never use tabs
#774: FILE: tools/virtiofsd/passthrough_ll.c:748:
+^I^I       off_t offset, struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#776: FILE: tools/virtiofsd/passthrough_ll.c:750:
+^Ilo_do_readdir(req, ino, size, offset, fi, 0);$

ERROR: code indent should never use tabs
#780: FILE: tools/virtiofsd/passthrough_ll.c:754:
+^I^I^I   off_t offset, struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#782: FILE: tools/virtiofsd/passthrough_ll.c:756:
+^Ilo_do_readdir(req, ino, size, offset, fi, 1);$

WARNING: line over 80 characters
#785: FILE: tools/virtiofsd/passthrough_ll.c:759:
+static void lo_releasedir(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)

ERROR: code indent should never use tabs
#787: FILE: tools/virtiofsd/passthrough_ll.c:761:
+^Istruct lo_dirp *d = lo_dirp(fi);$

ERROR: code indent should never use tabs
#788: FILE: tools/virtiofsd/passthrough_ll.c:762:
+^I(void) ino;$

ERROR: code indent should never use tabs
#789: FILE: tools/virtiofsd/passthrough_ll.c:763:
+^Iclosedir(d->dp);$

ERROR: code indent should never use tabs
#790: FILE: tools/virtiofsd/passthrough_ll.c:764:
+^Ifree(d);$

ERROR: code indent should never use tabs
#791: FILE: tools/virtiofsd/passthrough_ll.c:765:
+^Ifuse_reply_err(req, 0);$

ERROR: code indent should never use tabs
#795: FILE: tools/virtiofsd/passthrough_ll.c:769:
+^I^I      mode_t mode, struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#797: FILE: tools/virtiofsd/passthrough_ll.c:771:
+^Iint fd;$

ERROR: code indent should never use tabs
#798: FILE: tools/virtiofsd/passthrough_ll.c:772:
+^Istruct lo_data *lo = lo_data(req);$

ERROR: code indent should never use tabs
#799: FILE: tools/virtiofsd/passthrough_ll.c:773:
+^Istruct fuse_entry_param e;$

ERROR: code indent should never use tabs
#800: FILE: tools/virtiofsd/passthrough_ll.c:774:
+^Iint err;$

ERROR: code indent should never use tabs
#802: FILE: tools/virtiofsd/passthrough_ll.c:776:
+^Iif (lo_debug(req))$

WARNING: line over 80 characters
#803: FILE: tools/virtiofsd/passthrough_ll.c:777:
+               fuse_log(FUSE_LOG_DEBUG, "lo_create(parent=%" PRIu64 ", name=%s)\n",

ERROR: code indent should never use tabs
#803: FILE: tools/virtiofsd/passthrough_ll.c:777:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_create(parent=%" PRIu64 ", name=%s)\n",$

ERROR: code indent should never use tabs
#804: FILE: tools/virtiofsd/passthrough_ll.c:778:
+^I^I^Iparent, name);$

ERROR: code indent should never use tabs
#806: FILE: tools/virtiofsd/passthrough_ll.c:780:
+^Ifd = openat(lo_fd(req, parent), name,$

ERROR: code indent should never use tabs
#807: FILE: tools/virtiofsd/passthrough_ll.c:781:
+^I^I    (fi->flags | O_CREAT) & ~O_NOFOLLOW, mode);$

ERROR: code indent should never use tabs
#808: FILE: tools/virtiofsd/passthrough_ll.c:782:
+^Iif (fd == -1)$

ERROR: braces {} are necessary for all arms of this statement
#808: FILE: tools/virtiofsd/passthrough_ll.c:782:
+       if (fd == -1)
[...]

ERROR: code indent should never use tabs
#809: FILE: tools/virtiofsd/passthrough_ll.c:783:
+^I^Ireturn (void) fuse_reply_err(req, errno);$

ERROR: code indent should never use tabs
#811: FILE: tools/virtiofsd/passthrough_ll.c:785:
+^Ifi->fh = fd;$

ERROR: code indent should never use tabs
#812: FILE: tools/virtiofsd/passthrough_ll.c:786:
+^Iif (lo->cache == CACHE_NEVER)$

ERROR: braces {} are necessary for all arms of this statement
#812: FILE: tools/virtiofsd/passthrough_ll.c:786:
+       if (lo->cache == CACHE_NEVER)
[...]
+       else if (lo->cache == CACHE_ALWAYS)
[...]

ERROR: code indent should never use tabs
#813: FILE: tools/virtiofsd/passthrough_ll.c:787:
+^I^Ifi->direct_io = 1;$

ERROR: code indent should never use tabs
#814: FILE: tools/virtiofsd/passthrough_ll.c:788:
+^Ielse if (lo->cache == CACHE_ALWAYS)$

ERROR: braces {} are necessary for all arms of this statement
#814: FILE: tools/virtiofsd/passthrough_ll.c:788:
+       else if (lo->cache == CACHE_ALWAYS)
[...]

ERROR: code indent should never use tabs
#815: FILE: tools/virtiofsd/passthrough_ll.c:789:
+^I^Ifi->keep_cache = 1;$

ERROR: code indent should never use tabs
#817: FILE: tools/virtiofsd/passthrough_ll.c:791:
+^Ierr = lo_do_lookup(req, parent, name, &e);$

ERROR: code indent should never use tabs
#818: FILE: tools/virtiofsd/passthrough_ll.c:792:
+^Iif (err)$

ERROR: braces {} are necessary for all arms of this statement
#818: FILE: tools/virtiofsd/passthrough_ll.c:792:
+       if (err)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#819: FILE: tools/virtiofsd/passthrough_ll.c:793:
+^I^Ifuse_reply_err(req, err);$

ERROR: code indent should never use tabs
#820: FILE: tools/virtiofsd/passthrough_ll.c:794:
+^Ielse$

ERROR: code indent should never use tabs
#821: FILE: tools/virtiofsd/passthrough_ll.c:795:
+^I^Ifuse_reply_create(req, &e, fi);$

ERROR: code indent should never use tabs
#825: FILE: tools/virtiofsd/passthrough_ll.c:799:
+^I^I^Istruct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#827: FILE: tools/virtiofsd/passthrough_ll.c:801:
+^Iint res;$

ERROR: code indent should never use tabs
#828: FILE: tools/virtiofsd/passthrough_ll.c:802:
+^Iint fd = dirfd(lo_dirp(fi)->dp);$

ERROR: code indent should never use tabs
#829: FILE: tools/virtiofsd/passthrough_ll.c:803:
+^I(void) ino;$

ERROR: code indent should never use tabs
#830: FILE: tools/virtiofsd/passthrough_ll.c:804:
+^Iif (datasync)$

ERROR: braces {} are necessary for all arms of this statement
#830: FILE: tools/virtiofsd/passthrough_ll.c:804:
+       if (datasync)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#831: FILE: tools/virtiofsd/passthrough_ll.c:805:
+^I^Ires = fdatasync(fd);$

ERROR: code indent should never use tabs
#832: FILE: tools/virtiofsd/passthrough_ll.c:806:
+^Ielse$

ERROR: code indent should never use tabs
#833: FILE: tools/virtiofsd/passthrough_ll.c:807:
+^I^Ires = fsync(fd);$

ERROR: code indent should never use tabs
#834: FILE: tools/virtiofsd/passthrough_ll.c:808:
+^Ifuse_reply_err(req, res == -1 ? errno : 0);$

ERROR: code indent should never use tabs
#839: FILE: tools/virtiofsd/passthrough_ll.c:813:
+^Iint fd;$

ERROR: code indent should never use tabs
#840: FILE: tools/virtiofsd/passthrough_ll.c:814:
+^Ichar buf[64];$

ERROR: code indent should never use tabs
#841: FILE: tools/virtiofsd/passthrough_ll.c:815:
+^Istruct lo_data *lo = lo_data(req);$

ERROR: code indent should never use tabs
#843: FILE: tools/virtiofsd/passthrough_ll.c:817:
+^Iif (lo_debug(req))$

ERROR: code indent should never use tabs
#844: FILE: tools/virtiofsd/passthrough_ll.c:818:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_open(ino=%" PRIu64 ", flags=%d)\n",$

ERROR: code indent should never use tabs
#845: FILE: tools/virtiofsd/passthrough_ll.c:819:
+^I^I^Iino, fi->flags);$

ERROR: code indent should never use tabs
#847: FILE: tools/virtiofsd/passthrough_ll.c:821:
+^I/* With writeback cache, kernel may send read requests even$

WARNING: Block comments use a leading /* on a separate line
#847: FILE: tools/virtiofsd/passthrough_ll.c:821:
+       /* With writeback cache, kernel may send read requests even

ERROR: code indent should never use tabs
#848: FILE: tools/virtiofsd/passthrough_ll.c:822:
+^I   when userspace opened write-only */$

WARNING: Block comments use * on subsequent lines
#848: FILE: tools/virtiofsd/passthrough_ll.c:822:
+       /* With writeback cache, kernel may send read requests even
+          when userspace opened write-only */

WARNING: Block comments use a trailing */ on a separate line
#848: FILE: tools/virtiofsd/passthrough_ll.c:822:
+          when userspace opened write-only */

ERROR: code indent should never use tabs
#849: FILE: tools/virtiofsd/passthrough_ll.c:823:
+^Iif (lo->writeback && (fi->flags & O_ACCMODE) == O_WRONLY) {$

ERROR: code indent should never use tabs
#850: FILE: tools/virtiofsd/passthrough_ll.c:824:
+^I^Ifi->flags &= ~O_ACCMODE;$

ERROR: code indent should never use tabs
#851: FILE: tools/virtiofsd/passthrough_ll.c:825:
+^I^Ifi->flags |= O_RDWR;$

ERROR: code indent should never use tabs
#852: FILE: tools/virtiofsd/passthrough_ll.c:826:
+^I}$

ERROR: code indent should never use tabs
#854: FILE: tools/virtiofsd/passthrough_ll.c:828:
+^I/* With writeback cache, O_APPEND is handled by the kernel.$

WARNING: Block comments use a leading /* on a separate line
#854: FILE: tools/virtiofsd/passthrough_ll.c:828:
+       /* With writeback cache, O_APPEND is handled by the kernel.

ERROR: code indent should never use tabs
#855: FILE: tools/virtiofsd/passthrough_ll.c:829:
+^I   This breaks atomicity (since the file may change in the$

WARNING: Block comments use * on subsequent lines
#855: FILE: tools/virtiofsd/passthrough_ll.c:829:
+       /* With writeback cache, O_APPEND is handled by the kernel.
+          This breaks atomicity (since the file may change in the

ERROR: code indent should never use tabs
#856: FILE: tools/virtiofsd/passthrough_ll.c:830:
+^I   underlying filesystem, so that the kernel's idea of the$

ERROR: code indent should never use tabs
#857: FILE: tools/virtiofsd/passthrough_ll.c:831:
+^I   end of the file isn't accurate anymore). In this example,$

ERROR: code indent should never use tabs
#858: FILE: tools/virtiofsd/passthrough_ll.c:832:
+^I   we just accept that. A more rigorous filesystem may want$

ERROR: code indent should never use tabs
#859: FILE: tools/virtiofsd/passthrough_ll.c:833:
+^I   to return an error here */$

WARNING: Block comments use a trailing */ on a separate line
#859: FILE: tools/virtiofsd/passthrough_ll.c:833:
+          to return an error here */

ERROR: code indent should never use tabs
#860: FILE: tools/virtiofsd/passthrough_ll.c:834:
+^Iif (lo->writeback && (fi->flags & O_APPEND))$

ERROR: braces {} are necessary for all arms of this statement
#860: FILE: tools/virtiofsd/passthrough_ll.c:834:
+       if (lo->writeback && (fi->flags & O_APPEND))
[...]

ERROR: code indent should never use tabs
#861: FILE: tools/virtiofsd/passthrough_ll.c:835:
+^I^Ifi->flags &= ~O_APPEND;$

ERROR: code indent should never use tabs
#863: FILE: tools/virtiofsd/passthrough_ll.c:837:
+^Isprintf(buf, "/proc/self/fd/%i", lo_fd(req, ino));$

ERROR: code indent should never use tabs
#864: FILE: tools/virtiofsd/passthrough_ll.c:838:
+^Ifd = open(buf, fi->flags & ~O_NOFOLLOW);$

ERROR: code indent should never use tabs
#865: FILE: tools/virtiofsd/passthrough_ll.c:839:
+^Iif (fd == -1)$

ERROR: braces {} are necessary for all arms of this statement
#865: FILE: tools/virtiofsd/passthrough_ll.c:839:
+       if (fd == -1)
[...]

ERROR: code indent should never use tabs
#866: FILE: tools/virtiofsd/passthrough_ll.c:840:
+^I^Ireturn (void) fuse_reply_err(req, errno);$

ERROR: code indent should never use tabs
#868: FILE: tools/virtiofsd/passthrough_ll.c:842:
+^Ifi->fh = fd;$

ERROR: code indent should never use tabs
#869: FILE: tools/virtiofsd/passthrough_ll.c:843:
+^Iif (lo->cache == CACHE_NEVER)$

ERROR: braces {} are necessary for all arms of this statement
#869: FILE: tools/virtiofsd/passthrough_ll.c:843:
+       if (lo->cache == CACHE_NEVER)
[...]
+       else if (lo->cache == CACHE_ALWAYS)
[...]

ERROR: code indent should never use tabs
#870: FILE: tools/virtiofsd/passthrough_ll.c:844:
+^I^Ifi->direct_io = 1;$

ERROR: code indent should never use tabs
#871: FILE: tools/virtiofsd/passthrough_ll.c:845:
+^Ielse if (lo->cache == CACHE_ALWAYS)$

ERROR: braces {} are necessary for all arms of this statement
#871: FILE: tools/virtiofsd/passthrough_ll.c:845:
+       else if (lo->cache == CACHE_ALWAYS)
[...]

ERROR: code indent should never use tabs
#872: FILE: tools/virtiofsd/passthrough_ll.c:846:
+^I^Ifi->keep_cache = 1;$

ERROR: code indent should never use tabs
#873: FILE: tools/virtiofsd/passthrough_ll.c:847:
+^Ifuse_reply_open(req, fi);$

WARNING: line over 80 characters
#876: FILE: tools/virtiofsd/passthrough_ll.c:850:
+static void lo_release(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)

ERROR: code indent should never use tabs
#878: FILE: tools/virtiofsd/passthrough_ll.c:852:
+^I(void) ino;$

ERROR: code indent should never use tabs
#880: FILE: tools/virtiofsd/passthrough_ll.c:854:
+^Iclose(fi->fh);$

ERROR: code indent should never use tabs
#881: FILE: tools/virtiofsd/passthrough_ll.c:855:
+^Ifuse_reply_err(req, 0);$

ERROR: code indent should never use tabs
#886: FILE: tools/virtiofsd/passthrough_ll.c:860:
+^Iint res;$

ERROR: code indent should never use tabs
#887: FILE: tools/virtiofsd/passthrough_ll.c:861:
+^I(void) ino;$

ERROR: code indent should never use tabs
#888: FILE: tools/virtiofsd/passthrough_ll.c:862:
+^Ires = close(dup(fi->fh));$

ERROR: code indent should never use tabs
#889: FILE: tools/virtiofsd/passthrough_ll.c:863:
+^Ifuse_reply_err(req, res == -1 ? errno : 0);$

ERROR: code indent should never use tabs
#893: FILE: tools/virtiofsd/passthrough_ll.c:867:
+^I^I     struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#895: FILE: tools/virtiofsd/passthrough_ll.c:869:
+^Iint res;$

ERROR: code indent should never use tabs
#896: FILE: tools/virtiofsd/passthrough_ll.c:870:
+^I(void) ino;$

ERROR: code indent should never use tabs
#897: FILE: tools/virtiofsd/passthrough_ll.c:871:
+^Iif (datasync)$

ERROR: braces {} are necessary for all arms of this statement
#897: FILE: tools/virtiofsd/passthrough_ll.c:871:
+       if (datasync)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#898: FILE: tools/virtiofsd/passthrough_ll.c:872:
+^I^Ires = fdatasync(fi->fh);$

ERROR: code indent should never use tabs
#899: FILE: tools/virtiofsd/passthrough_ll.c:873:
+^Ielse$

ERROR: code indent should never use tabs
#900: FILE: tools/virtiofsd/passthrough_ll.c:874:
+^I^Ires = fsync(fi->fh);$

ERROR: code indent should never use tabs
#901: FILE: tools/virtiofsd/passthrough_ll.c:875:
+^Ifuse_reply_err(req, res == -1 ? errno : 0);$

ERROR: code indent should never use tabs
#905: FILE: tools/virtiofsd/passthrough_ll.c:879:
+^I^I    off_t offset, struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#907: FILE: tools/virtiofsd/passthrough_ll.c:881:
+^Istruct fuse_bufvec buf = FUSE_BUFVEC_INIT(size);$

ERROR: code indent should never use tabs
#909: FILE: tools/virtiofsd/passthrough_ll.c:883:
+^Iif (lo_debug(req))$

ERROR: code indent should never use tabs
#910: FILE: tools/virtiofsd/passthrough_ll.c:884:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_read(ino=%" PRIu64 ", size=%zd, "$

ERROR: code indent should never use tabs
#911: FILE: tools/virtiofsd/passthrough_ll.c:885:
+^I^I^I"off=%lu)\n", ino, size, (unsigned long) offset);$

ERROR: code indent should never use tabs
#913: FILE: tools/virtiofsd/passthrough_ll.c:887:
+^Ibuf.buf[0].flags = FUSE_BUF_IS_FD | FUSE_BUF_FD_SEEK;$

ERROR: code indent should never use tabs
#914: FILE: tools/virtiofsd/passthrough_ll.c:888:
+^Ibuf.buf[0].fd = fi->fh;$

ERROR: code indent should never use tabs
#915: FILE: tools/virtiofsd/passthrough_ll.c:889:
+^Ibuf.buf[0].pos = offset;$

ERROR: code indent should never use tabs
#917: FILE: tools/virtiofsd/passthrough_ll.c:891:
+^Ifuse_reply_data(req, &buf, FUSE_BUF_SPLICE_MOVE);$

ERROR: code indent should never use tabs
#921: FILE: tools/virtiofsd/passthrough_ll.c:895:
+^I^I^I struct fuse_bufvec *in_buf, off_t off,$

ERROR: code indent should never use tabs
#922: FILE: tools/virtiofsd/passthrough_ll.c:896:
+^I^I^I struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#924: FILE: tools/virtiofsd/passthrough_ll.c:898:
+^I(void) ino;$

ERROR: code indent should never use tabs
#925: FILE: tools/virtiofsd/passthrough_ll.c:899:
+^Issize_t res;$

ERROR: code indent should never use tabs
#926: FILE: tools/virtiofsd/passthrough_ll.c:900:
+^Istruct fuse_bufvec out_buf = FUSE_BUFVEC_INIT(fuse_buf_size(in_buf));$

ERROR: code indent should never use tabs
#928: FILE: tools/virtiofsd/passthrough_ll.c:902:
+^Iout_buf.buf[0].flags = FUSE_BUF_IS_FD | FUSE_BUF_FD_SEEK;$

ERROR: code indent should never use tabs
#929: FILE: tools/virtiofsd/passthrough_ll.c:903:
+^Iout_buf.buf[0].fd = fi->fh;$

ERROR: code indent should never use tabs
#930: FILE: tools/virtiofsd/passthrough_ll.c:904:
+^Iout_buf.buf[0].pos = off;$

ERROR: code indent should never use tabs
#932: FILE: tools/virtiofsd/passthrough_ll.c:906:
+^Iif (lo_debug(req))$

WARNING: line over 80 characters
#933: FILE: tools/virtiofsd/passthrough_ll.c:907:
+               fuse_log(FUSE_LOG_DEBUG, "lo_write(ino=%" PRIu64 ", size=%zd, off=%lu)\n",

ERROR: code indent should never use tabs
#933: FILE: tools/virtiofsd/passthrough_ll.c:907:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_write(ino=%" PRIu64 ", size=%zd, off=%lu)\n",$

ERROR: code indent should never use tabs
#934: FILE: tools/virtiofsd/passthrough_ll.c:908:
+^I^I^Iino, out_buf.buf[0].size, (unsigned long) off);$

ERROR: code indent should never use tabs
#936: FILE: tools/virtiofsd/passthrough_ll.c:910:
+^Ires = fuse_buf_copy(&out_buf, in_buf, 0);$

ERROR: code indent should never use tabs
#937: FILE: tools/virtiofsd/passthrough_ll.c:911:
+^Iif(res < 0)$

ERROR: space required before the open parenthesis '('
#937: FILE: tools/virtiofsd/passthrough_ll.c:911:
+       if(res < 0)

ERROR: braces {} are necessary for all arms of this statement
#937: FILE: tools/virtiofsd/passthrough_ll.c:911:
+       if(res < 0)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#938: FILE: tools/virtiofsd/passthrough_ll.c:912:
+^I^Ifuse_reply_err(req, -res);$

ERROR: code indent should never use tabs
#939: FILE: tools/virtiofsd/passthrough_ll.c:913:
+^Ielse$

ERROR: code indent should never use tabs
#940: FILE: tools/virtiofsd/passthrough_ll.c:914:
+^I^Ifuse_reply_write(req, (size_t) res);$

ERROR: code indent should never use tabs
#945: FILE: tools/virtiofsd/passthrough_ll.c:919:
+^Iint res;$

ERROR: code indent should never use tabs
#946: FILE: tools/virtiofsd/passthrough_ll.c:920:
+^Istruct statvfs stbuf;$

ERROR: code indent should never use tabs
#948: FILE: tools/virtiofsd/passthrough_ll.c:922:
+^Ires = fstatvfs(lo_fd(req, ino), &stbuf);$

ERROR: code indent should never use tabs
#949: FILE: tools/virtiofsd/passthrough_ll.c:923:
+^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#949: FILE: tools/virtiofsd/passthrough_ll.c:923:
+       if (res == -1)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#950: FILE: tools/virtiofsd/passthrough_ll.c:924:
+^I^Ifuse_reply_err(req, errno);$

ERROR: code indent should never use tabs
#951: FILE: tools/virtiofsd/passthrough_ll.c:925:
+^Ielse$

ERROR: code indent should never use tabs
#952: FILE: tools/virtiofsd/passthrough_ll.c:926:
+^I^Ifuse_reply_statfs(req, &stbuf);$

ERROR: code indent should never use tabs
#956: FILE: tools/virtiofsd/passthrough_ll.c:930:
+^I^I^I off_t offset, off_t length, struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#958: FILE: tools/virtiofsd/passthrough_ll.c:932:
+^Iint err = EOPNOTSUPP;$

ERROR: code indent should never use tabs
#959: FILE: tools/virtiofsd/passthrough_ll.c:933:
+^I(void) ino;$

ERROR: code indent should never use tabs
#962: FILE: tools/virtiofsd/passthrough_ll.c:936:
+^Ierr = fallocate(fi->fh, mode, offset, length);$

ERROR: code indent should never use tabs
#963: FILE: tools/virtiofsd/passthrough_ll.c:937:
+^Iif (err < 0)$

ERROR: braces {} are necessary for all arms of this statement
#963: FILE: tools/virtiofsd/passthrough_ll.c:937:
+       if (err < 0)
[...]

ERROR: code indent should never use tabs
#964: FILE: tools/virtiofsd/passthrough_ll.c:938:
+^I^Ierr = errno;$

ERROR: code indent should never use tabs
#967: FILE: tools/virtiofsd/passthrough_ll.c:941:
+^Iif (mode) {$

ERROR: code indent should never use tabs
#968: FILE: tools/virtiofsd/passthrough_ll.c:942:
+^I^Ifuse_reply_err(req, EOPNOTSUPP);$

ERROR: code indent should never use tabs
#969: FILE: tools/virtiofsd/passthrough_ll.c:943:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#970: FILE: tools/virtiofsd/passthrough_ll.c:944:
+^I}$

ERROR: code indent should never use tabs
#972: FILE: tools/virtiofsd/passthrough_ll.c:946:
+^Ierr = posix_fallocate(fi->fh, offset, length);$

ERROR: code indent should never use tabs
#975: FILE: tools/virtiofsd/passthrough_ll.c:949:
+^Ifuse_reply_err(req, err);$

ERROR: code indent should never use tabs
#979: FILE: tools/virtiofsd/passthrough_ll.c:953:
+^I^I     int op)$

ERROR: code indent should never use tabs
#981: FILE: tools/virtiofsd/passthrough_ll.c:955:
+^Iint res;$

ERROR: code indent should never use tabs
#982: FILE: tools/virtiofsd/passthrough_ll.c:956:
+^I(void) ino;$

ERROR: code indent should never use tabs
#984: FILE: tools/virtiofsd/passthrough_ll.c:958:
+^Ires = flock(fi->fh, op);$

ERROR: code indent should never use tabs
#986: FILE: tools/virtiofsd/passthrough_ll.c:960:
+^Ifuse_reply_err(req, res == -1 ? errno : 0);$

ERROR: code indent should never use tabs
#990: FILE: tools/virtiofsd/passthrough_ll.c:964:
+^I^I^Isize_t size)$

ERROR: code indent should never use tabs
#992: FILE: tools/virtiofsd/passthrough_ll.c:966:
+^Ichar *value = NULL;$

ERROR: code indent should never use tabs
#993: FILE: tools/virtiofsd/passthrough_ll.c:967:
+^Ichar procname[64];$

ERROR: code indent should never use tabs
#994: FILE: tools/virtiofsd/passthrough_ll.c:968:
+^Istruct lo_inode *inode = lo_inode(req, ino);$

ERROR: code indent should never use tabs
#995: FILE: tools/virtiofsd/passthrough_ll.c:969:
+^Issize_t ret;$

ERROR: code indent should never use tabs
#996: FILE: tools/virtiofsd/passthrough_ll.c:970:
+^Iint saverr;$

ERROR: code indent should never use tabs
#998: FILE: tools/virtiofsd/passthrough_ll.c:972:
+^Isaverr = ENOSYS;$

ERROR: code indent should never use tabs
#999: FILE: tools/virtiofsd/passthrough_ll.c:973:
+^Iif (!lo_data(req)->xattr)$

ERROR: braces {} are necessary for all arms of this statement
#999: FILE: tools/virtiofsd/passthrough_ll.c:973:
+       if (!lo_data(req)->xattr)
[...]

ERROR: code indent should never use tabs
#1000: FILE: tools/virtiofsd/passthrough_ll.c:974:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1002: FILE: tools/virtiofsd/passthrough_ll.c:976:
+^Iif (lo_debug(req)) {$

ERROR: line over 90 characters
#1003: FILE: tools/virtiofsd/passthrough_ll.c:977:
+               fuse_log(FUSE_LOG_DEBUG, "lo_getxattr(ino=%" PRIu64 ", name=%s size=%zd)\n",

ERROR: code indent should never use tabs
#1003: FILE: tools/virtiofsd/passthrough_ll.c:977:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_getxattr(ino=%" PRIu64 ", name=%s size=%zd)\n",$

ERROR: code indent should never use tabs
#1004: FILE: tools/virtiofsd/passthrough_ll.c:978:
+^I^I^Iino, name, size);$

ERROR: code indent should never use tabs
#1005: FILE: tools/virtiofsd/passthrough_ll.c:979:
+^I}$

ERROR: code indent should never use tabs
#1007: FILE: tools/virtiofsd/passthrough_ll.c:981:
+^Iif (inode->is_symlink) {$

ERROR: code indent should never use tabs
#1008: FILE: tools/virtiofsd/passthrough_ll.c:982:
+^I^I/* Sorry, no race free way to getxattr on symlink. */$

ERROR: code indent should never use tabs
#1009: FILE: tools/virtiofsd/passthrough_ll.c:983:
+^I^Isaverr = EPERM;$

ERROR: code indent should never use tabs
#1010: FILE: tools/virtiofsd/passthrough_ll.c:984:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1011: FILE: tools/virtiofsd/passthrough_ll.c:985:
+^I}$

ERROR: code indent should never use tabs
#1013: FILE: tools/virtiofsd/passthrough_ll.c:987:
+^Isprintf(procname, "/proc/self/fd/%i", inode->fd);$

ERROR: code indent should never use tabs
#1015: FILE: tools/virtiofsd/passthrough_ll.c:989:
+^Iif (size) {$

ERROR: code indent should never use tabs
#1016: FILE: tools/virtiofsd/passthrough_ll.c:990:
+^I^Ivalue = malloc(size);$

ERROR: code indent should never use tabs
#1017: FILE: tools/virtiofsd/passthrough_ll.c:991:
+^I^Iif (!value)$

ERROR: braces {} are necessary for all arms of this statement
#1017: FILE: tools/virtiofsd/passthrough_ll.c:991:
+               if (!value)
[...]

ERROR: code indent should never use tabs
#1018: FILE: tools/virtiofsd/passthrough_ll.c:992:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#1020: FILE: tools/virtiofsd/passthrough_ll.c:994:
+^I^Iret = getxattr(procname, name, value, size);$

ERROR: code indent should never use tabs
#1021: FILE: tools/virtiofsd/passthrough_ll.c:995:
+^I^Iif (ret == -1)$

ERROR: braces {} are necessary for all arms of this statement
#1021: FILE: tools/virtiofsd/passthrough_ll.c:995:
+               if (ret == -1)
[...]

ERROR: code indent should never use tabs
#1022: FILE: tools/virtiofsd/passthrough_ll.c:996:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#1023: FILE: tools/virtiofsd/passthrough_ll.c:997:
+^I^Isaverr = 0;$

ERROR: code indent should never use tabs
#1024: FILE: tools/virtiofsd/passthrough_ll.c:998:
+^I^Iif (ret == 0)$

ERROR: braces {} are necessary for all arms of this statement
#1024: FILE: tools/virtiofsd/passthrough_ll.c:998:
+               if (ret == 0)
[...]

ERROR: code indent should never use tabs
#1025: FILE: tools/virtiofsd/passthrough_ll.c:999:
+^I^I^Igoto out;$

ERROR: code indent should never use tabs
#1027: FILE: tools/virtiofsd/passthrough_ll.c:1001:
+^I^Ifuse_reply_buf(req, value, ret);$

ERROR: code indent should never use tabs
#1028: FILE: tools/virtiofsd/passthrough_ll.c:1002:
+^I} else {$

ERROR: code indent should never use tabs
#1029: FILE: tools/virtiofsd/passthrough_ll.c:1003:
+^I^Iret = getxattr(procname, name, NULL, 0);$

ERROR: code indent should never use tabs
#1030: FILE: tools/virtiofsd/passthrough_ll.c:1004:
+^I^Iif (ret == -1)$

ERROR: braces {} are necessary for all arms of this statement
#1030: FILE: tools/virtiofsd/passthrough_ll.c:1004:
+               if (ret == -1)
[...]

ERROR: code indent should never use tabs
#1031: FILE: tools/virtiofsd/passthrough_ll.c:1005:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#1033: FILE: tools/virtiofsd/passthrough_ll.c:1007:
+^I^Ifuse_reply_xattr(req, ret);$

ERROR: code indent should never use tabs
#1034: FILE: tools/virtiofsd/passthrough_ll.c:1008:
+^I}$

ERROR: code indent should never use tabs
#1036: FILE: tools/virtiofsd/passthrough_ll.c:1010:
+^Ifree(value);$

ERROR: code indent should never use tabs
#1037: FILE: tools/virtiofsd/passthrough_ll.c:1011:
+^Ireturn;$

ERROR: code indent should never use tabs
#1040: FILE: tools/virtiofsd/passthrough_ll.c:1014:
+^Isaverr = errno;$

ERROR: code indent should never use tabs
#1042: FILE: tools/virtiofsd/passthrough_ll.c:1016:
+^Ifuse_reply_err(req, saverr);$

ERROR: code indent should never use tabs
#1043: FILE: tools/virtiofsd/passthrough_ll.c:1017:
+^Igoto out_free;$

ERROR: code indent should never use tabs
#1048: FILE: tools/virtiofsd/passthrough_ll.c:1022:
+^Ichar *value = NULL;$

ERROR: code indent should never use tabs
#1049: FILE: tools/virtiofsd/passthrough_ll.c:1023:
+^Ichar procname[64];$

ERROR: code indent should never use tabs
#1050: FILE: tools/virtiofsd/passthrough_ll.c:1024:
+^Istruct lo_inode *inode = lo_inode(req, ino);$

ERROR: code indent should never use tabs
#1051: FILE: tools/virtiofsd/passthrough_ll.c:1025:
+^Issize_t ret;$

ERROR: code indent should never use tabs
#1052: FILE: tools/virtiofsd/passthrough_ll.c:1026:
+^Iint saverr;$

ERROR: code indent should never use tabs
#1054: FILE: tools/virtiofsd/passthrough_ll.c:1028:
+^Isaverr = ENOSYS;$

ERROR: code indent should never use tabs
#1055: FILE: tools/virtiofsd/passthrough_ll.c:1029:
+^Iif (!lo_data(req)->xattr)$

ERROR: braces {} are necessary for all arms of this statement
#1055: FILE: tools/virtiofsd/passthrough_ll.c:1029:
+       if (!lo_data(req)->xattr)
[...]

ERROR: code indent should never use tabs
#1056: FILE: tools/virtiofsd/passthrough_ll.c:1030:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1058: FILE: tools/virtiofsd/passthrough_ll.c:1032:
+^Iif (lo_debug(req)) {$

WARNING: line over 80 characters
#1059: FILE: tools/virtiofsd/passthrough_ll.c:1033:
+               fuse_log(FUSE_LOG_DEBUG, "lo_listxattr(ino=%" PRIu64 ", size=%zd)\n",

ERROR: code indent should never use tabs
#1059: FILE: tools/virtiofsd/passthrough_ll.c:1033:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_listxattr(ino=%" PRIu64 ", size=%zd)\n",$

ERROR: code indent should never use tabs
#1060: FILE: tools/virtiofsd/passthrough_ll.c:1034:
+^I^I^Iino, size);$

ERROR: code indent should never use tabs
#1061: FILE: tools/virtiofsd/passthrough_ll.c:1035:
+^I}$

ERROR: code indent should never use tabs
#1063: FILE: tools/virtiofsd/passthrough_ll.c:1037:
+^Iif (inode->is_symlink) {$

ERROR: code indent should never use tabs
#1064: FILE: tools/virtiofsd/passthrough_ll.c:1038:
+^I^I/* Sorry, no race free way to listxattr on symlink. */$

ERROR: code indent should never use tabs
#1065: FILE: tools/virtiofsd/passthrough_ll.c:1039:
+^I^Isaverr = EPERM;$

ERROR: code indent should never use tabs
#1066: FILE: tools/virtiofsd/passthrough_ll.c:1040:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1067: FILE: tools/virtiofsd/passthrough_ll.c:1041:
+^I}$

ERROR: code indent should never use tabs
#1069: FILE: tools/virtiofsd/passthrough_ll.c:1043:
+^Isprintf(procname, "/proc/self/fd/%i", inode->fd);$

ERROR: code indent should never use tabs
#1071: FILE: tools/virtiofsd/passthrough_ll.c:1045:
+^Iif (size) {$

ERROR: code indent should never use tabs
#1072: FILE: tools/virtiofsd/passthrough_ll.c:1046:
+^I^Ivalue = malloc(size);$

ERROR: code indent should never use tabs
#1073: FILE: tools/virtiofsd/passthrough_ll.c:1047:
+^I^Iif (!value)$

ERROR: braces {} are necessary for all arms of this statement
#1073: FILE: tools/virtiofsd/passthrough_ll.c:1047:
+               if (!value)
[...]

ERROR: code indent should never use tabs
#1074: FILE: tools/virtiofsd/passthrough_ll.c:1048:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#1076: FILE: tools/virtiofsd/passthrough_ll.c:1050:
+^I^Iret = listxattr(procname, value, size);$

ERROR: code indent should never use tabs
#1077: FILE: tools/virtiofsd/passthrough_ll.c:1051:
+^I^Iif (ret == -1)$

ERROR: braces {} are necessary for all arms of this statement
#1077: FILE: tools/virtiofsd/passthrough_ll.c:1051:
+               if (ret == -1)
[...]

ERROR: code indent should never use tabs
#1078: FILE: tools/virtiofsd/passthrough_ll.c:1052:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#1079: FILE: tools/virtiofsd/passthrough_ll.c:1053:
+^I^Isaverr = 0;$

ERROR: code indent should never use tabs
#1080: FILE: tools/virtiofsd/passthrough_ll.c:1054:
+^I^Iif (ret == 0)$

ERROR: braces {} are necessary for all arms of this statement
#1080: FILE: tools/virtiofsd/passthrough_ll.c:1054:
+               if (ret == 0)
[...]

ERROR: code indent should never use tabs
#1081: FILE: tools/virtiofsd/passthrough_ll.c:1055:
+^I^I^Igoto out;$

ERROR: code indent should never use tabs
#1083: FILE: tools/virtiofsd/passthrough_ll.c:1057:
+^I^Ifuse_reply_buf(req, value, ret);$

ERROR: code indent should never use tabs
#1084: FILE: tools/virtiofsd/passthrough_ll.c:1058:
+^I} else {$

ERROR: code indent should never use tabs
#1085: FILE: tools/virtiofsd/passthrough_ll.c:1059:
+^I^Iret = listxattr(procname, NULL, 0);$

ERROR: code indent should never use tabs
#1086: FILE: tools/virtiofsd/passthrough_ll.c:1060:
+^I^Iif (ret == -1)$

ERROR: braces {} are necessary for all arms of this statement
#1086: FILE: tools/virtiofsd/passthrough_ll.c:1060:
+               if (ret == -1)
[...]

ERROR: code indent should never use tabs
#1087: FILE: tools/virtiofsd/passthrough_ll.c:1061:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#1089: FILE: tools/virtiofsd/passthrough_ll.c:1063:
+^I^Ifuse_reply_xattr(req, ret);$

ERROR: code indent should never use tabs
#1090: FILE: tools/virtiofsd/passthrough_ll.c:1064:
+^I}$

ERROR: code indent should never use tabs
#1092: FILE: tools/virtiofsd/passthrough_ll.c:1066:
+^Ifree(value);$

ERROR: code indent should never use tabs
#1093: FILE: tools/virtiofsd/passthrough_ll.c:1067:
+^Ireturn;$

ERROR: code indent should never use tabs
#1096: FILE: tools/virtiofsd/passthrough_ll.c:1070:
+^Isaverr = errno;$

ERROR: code indent should never use tabs
#1098: FILE: tools/virtiofsd/passthrough_ll.c:1072:
+^Ifuse_reply_err(req, saverr);$

ERROR: code indent should never use tabs
#1099: FILE: tools/virtiofsd/passthrough_ll.c:1073:
+^Igoto out_free;$

ERROR: code indent should never use tabs
#1103: FILE: tools/virtiofsd/passthrough_ll.c:1077:
+^I^I^Iconst char *value, size_t size, int flags)$

ERROR: code indent should never use tabs
#1105: FILE: tools/virtiofsd/passthrough_ll.c:1079:
+^Ichar procname[64];$

ERROR: code indent should never use tabs
#1106: FILE: tools/virtiofsd/passthrough_ll.c:1080:
+^Istruct lo_inode *inode = lo_inode(req, ino);$

ERROR: code indent should never use tabs
#1107: FILE: tools/virtiofsd/passthrough_ll.c:1081:
+^Issize_t ret;$

ERROR: code indent should never use tabs
#1108: FILE: tools/virtiofsd/passthrough_ll.c:1082:
+^Iint saverr;$

ERROR: code indent should never use tabs
#1110: FILE: tools/virtiofsd/passthrough_ll.c:1084:
+^Isaverr = ENOSYS;$

ERROR: code indent should never use tabs
#1111: FILE: tools/virtiofsd/passthrough_ll.c:1085:
+^Iif (!lo_data(req)->xattr)$

ERROR: braces {} are necessary for all arms of this statement
#1111: FILE: tools/virtiofsd/passthrough_ll.c:1085:
+       if (!lo_data(req)->xattr)
[...]

ERROR: code indent should never use tabs
#1112: FILE: tools/virtiofsd/passthrough_ll.c:1086:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1114: FILE: tools/virtiofsd/passthrough_ll.c:1088:
+^Iif (lo_debug(req)) {$

ERROR: line over 90 characters
#1115: FILE: tools/virtiofsd/passthrough_ll.c:1089:
+               fuse_log(FUSE_LOG_DEBUG, "lo_setxattr(ino=%" PRIu64 ", name=%s value=%s size=%zd)\n",

ERROR: code indent should never use tabs
#1115: FILE: tools/virtiofsd/passthrough_ll.c:1089:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_setxattr(ino=%" PRIu64 ", name=%s value=%s size=%zd)\n",$

ERROR: code indent should never use tabs
#1116: FILE: tools/virtiofsd/passthrough_ll.c:1090:
+^I^I^Iino, name, value, size);$

ERROR: code indent should never use tabs
#1117: FILE: tools/virtiofsd/passthrough_ll.c:1091:
+^I}$

ERROR: code indent should never use tabs
#1119: FILE: tools/virtiofsd/passthrough_ll.c:1093:
+^Iif (inode->is_symlink) {$

ERROR: code indent should never use tabs
#1120: FILE: tools/virtiofsd/passthrough_ll.c:1094:
+^I^I/* Sorry, no race free way to setxattr on symlink. */$

ERROR: code indent should never use tabs
#1121: FILE: tools/virtiofsd/passthrough_ll.c:1095:
+^I^Isaverr = EPERM;$

ERROR: code indent should never use tabs
#1122: FILE: tools/virtiofsd/passthrough_ll.c:1096:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1123: FILE: tools/virtiofsd/passthrough_ll.c:1097:
+^I}$

ERROR: code indent should never use tabs
#1125: FILE: tools/virtiofsd/passthrough_ll.c:1099:
+^Isprintf(procname, "/proc/self/fd/%i", inode->fd);$

ERROR: code indent should never use tabs
#1127: FILE: tools/virtiofsd/passthrough_ll.c:1101:
+^Iret = setxattr(procname, name, value, size, flags);$

ERROR: code indent should never use tabs
#1128: FILE: tools/virtiofsd/passthrough_ll.c:1102:
+^Isaverr = ret == -1 ? errno : 0;$

ERROR: code indent should never use tabs
#1131: FILE: tools/virtiofsd/passthrough_ll.c:1105:
+^Ifuse_reply_err(req, saverr);$

ERROR: code indent should never use tabs
#1136: FILE: tools/virtiofsd/passthrough_ll.c:1110:
+^Ichar procname[64];$

ERROR: code indent should never use tabs
#1137: FILE: tools/virtiofsd/passthrough_ll.c:1111:
+^Istruct lo_inode *inode = lo_inode(req, ino);$

ERROR: code indent should never use tabs
#1138: FILE: tools/virtiofsd/passthrough_ll.c:1112:
+^Issize_t ret;$

ERROR: code indent should never use tabs
#1139: FILE: tools/virtiofsd/passthrough_ll.c:1113:
+^Iint saverr;$

ERROR: code indent should never use tabs
#1141: FILE: tools/virtiofsd/passthrough_ll.c:1115:
+^Isaverr = ENOSYS;$

ERROR: code indent should never use tabs
#1142: FILE: tools/virtiofsd/passthrough_ll.c:1116:
+^Iif (!lo_data(req)->xattr)$

ERROR: braces {} are necessary for all arms of this statement
#1142: FILE: tools/virtiofsd/passthrough_ll.c:1116:
+       if (!lo_data(req)->xattr)
[...]

ERROR: code indent should never use tabs
#1143: FILE: tools/virtiofsd/passthrough_ll.c:1117:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1145: FILE: tools/virtiofsd/passthrough_ll.c:1119:
+^Iif (lo_debug(req)) {$

WARNING: line over 80 characters
#1146: FILE: tools/virtiofsd/passthrough_ll.c:1120:
+               fuse_log(FUSE_LOG_DEBUG, "lo_removexattr(ino=%" PRIu64 ", name=%s)\n",

ERROR: code indent should never use tabs
#1146: FILE: tools/virtiofsd/passthrough_ll.c:1120:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_removexattr(ino=%" PRIu64 ", name=%s)\n",$

ERROR: code indent should never use tabs
#1147: FILE: tools/virtiofsd/passthrough_ll.c:1121:
+^I^I^Iino, name);$

ERROR: code indent should never use tabs
#1148: FILE: tools/virtiofsd/passthrough_ll.c:1122:
+^I}$

ERROR: code indent should never use tabs
#1150: FILE: tools/virtiofsd/passthrough_ll.c:1124:
+^Iif (inode->is_symlink) {$

ERROR: code indent should never use tabs
#1151: FILE: tools/virtiofsd/passthrough_ll.c:1125:
+^I^I/* Sorry, no race free way to setxattr on symlink. */$

ERROR: code indent should never use tabs
#1152: FILE: tools/virtiofsd/passthrough_ll.c:1126:
+^I^Isaverr = EPERM;$

ERROR: code indent should never use tabs
#1153: FILE: tools/virtiofsd/passthrough_ll.c:1127:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1154: FILE: tools/virtiofsd/passthrough_ll.c:1128:
+^I}$

ERROR: code indent should never use tabs
#1156: FILE: tools/virtiofsd/passthrough_ll.c:1130:
+^Isprintf(procname, "/proc/self/fd/%i", inode->fd);$

ERROR: code indent should never use tabs
#1158: FILE: tools/virtiofsd/passthrough_ll.c:1132:
+^Iret = removexattr(procname, name);$

ERROR: code indent should never use tabs
#1159: FILE: tools/virtiofsd/passthrough_ll.c:1133:
+^Isaverr = ret == -1 ? errno : 0;$

ERROR: code indent should never use tabs
#1162: FILE: tools/virtiofsd/passthrough_ll.c:1136:
+^Ifuse_reply_err(req, saverr);$

ERROR: code indent should never use tabs
#1167: FILE: tools/virtiofsd/passthrough_ll.c:1141:
+^I^I^I       struct fuse_file_info *fi_in,$

ERROR: code indent should never use tabs
#1168: FILE: tools/virtiofsd/passthrough_ll.c:1142:
+^I^I^I       fuse_ino_t ino_out, off_t off_out,$

ERROR: code indent should never use tabs
#1169: FILE: tools/virtiofsd/passthrough_ll.c:1143:
+^I^I^I       struct fuse_file_info *fi_out, size_t len,$

ERROR: code indent should never use tabs
#1170: FILE: tools/virtiofsd/passthrough_ll.c:1144:
+^I^I^I       int flags)$

ERROR: code indent should never use tabs
#1172: FILE: tools/virtiofsd/passthrough_ll.c:1146:
+^Issize_t res;$

ERROR: code indent should never use tabs
#1174: FILE: tools/virtiofsd/passthrough_ll.c:1148:
+^Iif (lo_debug(req))$

WARNING: line over 80 characters
#1175: FILE: tools/virtiofsd/passthrough_ll.c:1149:
+               fuse_log(FUSE_LOG_DEBUG, "lo_copy_file_range(ino=%" PRIu64 "/fd=%lu, "

ERROR: code indent should never use tabs
#1175: FILE: tools/virtiofsd/passthrough_ll.c:1149:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_copy_file_range(ino=%" PRIu64 "/fd=%lu, "$

ERROR: code indent should never use tabs
#1176: FILE: tools/virtiofsd/passthrough_ll.c:1150:
+^I^I^I^I"off=%lu, ino=%" PRIu64 "/fd=%lu, "$

ERROR: code indent should never use tabs
#1177: FILE: tools/virtiofsd/passthrough_ll.c:1151:
+^I^I^I^I"off=%lu, size=%zd, flags=0x%x)\n",$

ERROR: code indent should never use tabs
#1178: FILE: tools/virtiofsd/passthrough_ll.c:1152:
+^I^I^Iino_in, fi_in->fh, off_in, ino_out, fi_out->fh, off_out,$

ERROR: code indent should never use tabs
#1179: FILE: tools/virtiofsd/passthrough_ll.c:1153:
+^I^I^Ilen, flags);$

ERROR: code indent should never use tabs
#1181: FILE: tools/virtiofsd/passthrough_ll.c:1155:
+^Ires = copy_file_range(fi_in->fh, &off_in, fi_out->fh, &off_out, len,$

ERROR: code indent should never use tabs
#1182: FILE: tools/virtiofsd/passthrough_ll.c:1156:
+^I^I^I      flags);$

ERROR: code indent should never use tabs
#1183: FILE: tools/virtiofsd/passthrough_ll.c:1157:
+^Iif (res < 0)$

ERROR: braces {} are necessary for all arms of this statement
#1183: FILE: tools/virtiofsd/passthrough_ll.c:1157:
+       if (res < 0)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1184: FILE: tools/virtiofsd/passthrough_ll.c:1158:
+^I^Ifuse_reply_err(req, -errno);$

ERROR: code indent should never use tabs
#1185: FILE: tools/virtiofsd/passthrough_ll.c:1159:
+^Ielse$

ERROR: code indent should never use tabs
#1186: FILE: tools/virtiofsd/passthrough_ll.c:1160:
+^I^Ifuse_reply_write(req, res);$

ERROR: code indent should never use tabs
#1191: FILE: tools/virtiofsd/passthrough_ll.c:1165:
+^I^I     struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#1193: FILE: tools/virtiofsd/passthrough_ll.c:1167:
+^Ioff_t res;$

ERROR: code indent should never use tabs
#1195: FILE: tools/virtiofsd/passthrough_ll.c:1169:
+^I(void)ino;$

ERROR: code indent should never use tabs
#1196: FILE: tools/virtiofsd/passthrough_ll.c:1170:
+^Ires = lseek(fi->fh, off, whence);$

ERROR: code indent should never use tabs
#1197: FILE: tools/virtiofsd/passthrough_ll.c:1171:
+^Iif (res != -1)$

ERROR: braces {} are necessary for all arms of this statement
#1197: FILE: tools/virtiofsd/passthrough_ll.c:1171:
+       if (res != -1)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1198: FILE: tools/virtiofsd/passthrough_ll.c:1172:
+^I^Ifuse_reply_lseek(req, res);$

ERROR: code indent should never use tabs
#1199: FILE: tools/virtiofsd/passthrough_ll.c:1173:
+^Ielse$

ERROR: code indent should never use tabs
#1200: FILE: tools/virtiofsd/passthrough_ll.c:1174:
+^I^Ifuse_reply_err(req, errno);$

ERROR: code indent should never use tabs
#1204: FILE: tools/virtiofsd/passthrough_ll.c:1178:
+^I.init^I^I= lo_init,$

ERROR: code indent should never use tabs
#1205: FILE: tools/virtiofsd/passthrough_ll.c:1179:
+^I.lookup^I^I= lo_lookup,$

ERROR: code indent should never use tabs
#1206: FILE: tools/virtiofsd/passthrough_ll.c:1180:
+^I.mkdir^I^I= lo_mkdir,$

ERROR: code indent should never use tabs
#1207: FILE: tools/virtiofsd/passthrough_ll.c:1181:
+^I.mknod^I^I= lo_mknod,$

ERROR: code indent should never use tabs
#1208: FILE: tools/virtiofsd/passthrough_ll.c:1182:
+^I.symlink^I= lo_symlink,$

ERROR: code indent should never use tabs
#1209: FILE: tools/virtiofsd/passthrough_ll.c:1183:
+^I.link^I^I= lo_link,$

ERROR: code indent should never use tabs
#1210: FILE: tools/virtiofsd/passthrough_ll.c:1184:
+^I.unlink^I^I= lo_unlink,$

ERROR: code indent should never use tabs
#1211: FILE: tools/virtiofsd/passthrough_ll.c:1185:
+^I.rmdir^I^I= lo_rmdir,$

ERROR: code indent should never use tabs
#1212: FILE: tools/virtiofsd/passthrough_ll.c:1186:
+^I.rename^I^I= lo_rename,$

ERROR: code indent should never use tabs
#1213: FILE: tools/virtiofsd/passthrough_ll.c:1187:
+^I.forget^I^I= lo_forget,$

ERROR: code indent should never use tabs
#1214: FILE: tools/virtiofsd/passthrough_ll.c:1188:
+^I.forget_multi^I= lo_forget_multi,$

ERROR: code indent should never use tabs
#1215: FILE: tools/virtiofsd/passthrough_ll.c:1189:
+^I.getattr^I= lo_getattr,$

ERROR: code indent should never use tabs
#1216: FILE: tools/virtiofsd/passthrough_ll.c:1190:
+^I.setattr^I= lo_setattr,$

ERROR: code indent should never use tabs
#1217: FILE: tools/virtiofsd/passthrough_ll.c:1191:
+^I.readlink^I= lo_readlink,$

ERROR: code indent should never use tabs
#1218: FILE: tools/virtiofsd/passthrough_ll.c:1192:
+^I.opendir^I= lo_opendir,$

ERROR: code indent should never use tabs
#1219: FILE: tools/virtiofsd/passthrough_ll.c:1193:
+^I.readdir^I= lo_readdir,$

ERROR: code indent should never use tabs
#1220: FILE: tools/virtiofsd/passthrough_ll.c:1194:
+^I.readdirplus^I= lo_readdirplus,$

ERROR: code indent should never use tabs
#1221: FILE: tools/virtiofsd/passthrough_ll.c:1195:
+^I.releasedir^I= lo_releasedir,$

ERROR: code indent should never use tabs
#1222: FILE: tools/virtiofsd/passthrough_ll.c:1196:
+^I.fsyncdir^I= lo_fsyncdir,$

ERROR: code indent should never use tabs
#1223: FILE: tools/virtiofsd/passthrough_ll.c:1197:
+^I.create^I^I= lo_create,$

ERROR: code indent should never use tabs
#1224: FILE: tools/virtiofsd/passthrough_ll.c:1198:
+^I.open^I^I= lo_open,$

ERROR: code indent should never use tabs
#1225: FILE: tools/virtiofsd/passthrough_ll.c:1199:
+^I.release^I= lo_release,$

ERROR: code indent should never use tabs
#1226: FILE: tools/virtiofsd/passthrough_ll.c:1200:
+^I.flush^I^I= lo_flush,$

ERROR: code indent should never use tabs
#1227: FILE: tools/virtiofsd/passthrough_ll.c:1201:
+^I.fsync^I^I= lo_fsync,$

ERROR: code indent should never use tabs
#1228: FILE: tools/virtiofsd/passthrough_ll.c:1202:
+^I.read^I^I= lo_read,$

ERROR: code indent should never use tabs
#1229: FILE: tools/virtiofsd/passthrough_ll.c:1203:
+^I.write_buf      = lo_write_buf,$

ERROR: code indent should never use tabs
#1230: FILE: tools/virtiofsd/passthrough_ll.c:1204:
+^I.statfs^I^I= lo_statfs,$

ERROR: code indent should never use tabs
#1231: FILE: tools/virtiofsd/passthrough_ll.c:1205:
+^I.fallocate^I= lo_fallocate,$

ERROR: code indent should never use tabs
#1232: FILE: tools/virtiofsd/passthrough_ll.c:1206:
+^I.flock^I^I= lo_flock,$

ERROR: code indent should never use tabs
#1233: FILE: tools/virtiofsd/passthrough_ll.c:1207:
+^I.getxattr^I= lo_getxattr,$

ERROR: code indent should never use tabs
#1234: FILE: tools/virtiofsd/passthrough_ll.c:1208:
+^I.listxattr^I= lo_listxattr,$

ERROR: code indent should never use tabs
#1235: FILE: tools/virtiofsd/passthrough_ll.c:1209:
+^I.setxattr^I= lo_setxattr,$

ERROR: code indent should never use tabs
#1236: FILE: tools/virtiofsd/passthrough_ll.c:1210:
+^I.removexattr^I= lo_removexattr,$

ERROR: code indent should never use tabs
#1238: FILE: tools/virtiofsd/passthrough_ll.c:1212:
+^I.copy_file_range = lo_copy_file_range,$

ERROR: code indent should never use tabs
#1240: FILE: tools/virtiofsd/passthrough_ll.c:1214:
+^I.lseek^I^I= lo_lseek,$

ERROR: code indent should never use tabs
#1245: FILE: tools/virtiofsd/passthrough_ll.c:1219:
+^Istruct fuse_args args = FUSE_ARGS_INIT(argc, argv);$

ERROR: code indent should never use tabs
#1246: FILE: tools/virtiofsd/passthrough_ll.c:1220:
+^Istruct fuse_session *se;$

ERROR: code indent should never use tabs
#1247: FILE: tools/virtiofsd/passthrough_ll.c:1221:
+^Istruct fuse_cmdline_opts opts;$

ERROR: code indent should never use tabs
#1248: FILE: tools/virtiofsd/passthrough_ll.c:1222:
+^Istruct lo_data lo = { .debug = 0,$

ERROR: code indent should never use tabs
#1249: FILE: tools/virtiofsd/passthrough_ll.c:1223:
+^I                      .writeback = 0 };$

ERROR: code indent should never use tabs
#1250: FILE: tools/virtiofsd/passthrough_ll.c:1224:
+^Iint ret = -1;$

ERROR: code indent should never use tabs
#1252: FILE: tools/virtiofsd/passthrough_ll.c:1226:
+^I/* Don't mask creation mode, kernel already did that */$

ERROR: code indent should never use tabs
#1253: FILE: tools/virtiofsd/passthrough_ll.c:1227:
+^Iumask(0);$

ERROR: code indent should never use tabs
#1255: FILE: tools/virtiofsd/passthrough_ll.c:1229:
+^Ipthread_mutex_init(&lo.mutex, NULL);$

ERROR: code indent should never use tabs
#1256: FILE: tools/virtiofsd/passthrough_ll.c:1230:
+^Ilo.root.next = lo.root.prev = &lo.root;$

ERROR: code indent should never use tabs
#1257: FILE: tools/virtiofsd/passthrough_ll.c:1231:
+^Ilo.root.fd = -1;$

ERROR: code indent should never use tabs
#1258: FILE: tools/virtiofsd/passthrough_ll.c:1232:
+^Ilo.cache = CACHE_NORMAL;$

ERROR: code indent should never use tabs
#1260: FILE: tools/virtiofsd/passthrough_ll.c:1234:
+^Iif (fuse_parse_cmdline(&args, &opts) != 0)$

ERROR: braces {} are necessary for all arms of this statement
#1260: FILE: tools/virtiofsd/passthrough_ll.c:1234:
+       if (fuse_parse_cmdline(&args, &opts) != 0)
[...]

ERROR: code indent should never use tabs
#1261: FILE: tools/virtiofsd/passthrough_ll.c:1235:
+^I^Ireturn 1;$

ERROR: code indent should never use tabs
#1262: FILE: tools/virtiofsd/passthrough_ll.c:1236:
+^Iif (opts.show_help) {$

ERROR: code indent should never use tabs
#1263: FILE: tools/virtiofsd/passthrough_ll.c:1237:
+^I^Iprintf("usage: %s [options] <mountpoint>\n\n", argv[0]);$

ERROR: code indent should never use tabs
#1264: FILE: tools/virtiofsd/passthrough_ll.c:1238:
+^I^Ifuse_cmdline_help();$

ERROR: code indent should never use tabs
#1265: FILE: tools/virtiofsd/passthrough_ll.c:1239:
+^I^Ifuse_lowlevel_help();$

ERROR: code indent should never use tabs
#1266: FILE: tools/virtiofsd/passthrough_ll.c:1240:
+^I^Iret = 0;$

ERROR: code indent should never use tabs
#1267: FILE: tools/virtiofsd/passthrough_ll.c:1241:
+^I^Igoto err_out1;$

ERROR: code indent should never use tabs
#1268: FILE: tools/virtiofsd/passthrough_ll.c:1242:
+^I} else if (opts.show_version) {$

ERROR: code indent should never use tabs
#1269: FILE: tools/virtiofsd/passthrough_ll.c:1243:
+^I^Iprintf("FUSE library version %s\n", fuse_pkgversion());$

ERROR: code indent should never use tabs
#1270: FILE: tools/virtiofsd/passthrough_ll.c:1244:
+^I^Ifuse_lowlevel_version();$

ERROR: code indent should never use tabs
#1271: FILE: tools/virtiofsd/passthrough_ll.c:1245:
+^I^Iret = 0;$

ERROR: code indent should never use tabs
#1272: FILE: tools/virtiofsd/passthrough_ll.c:1246:
+^I^Igoto err_out1;$

ERROR: code indent should never use tabs
#1273: FILE: tools/virtiofsd/passthrough_ll.c:1247:
+^I}$

ERROR: code indent should never use tabs
#1275: FILE: tools/virtiofsd/passthrough_ll.c:1249:
+^Iif(opts.mountpoint == NULL) {$

ERROR: space required before the open parenthesis '('
#1275: FILE: tools/virtiofsd/passthrough_ll.c:1249:
+       if(opts.mountpoint == NULL) {

ERROR: code indent should never use tabs
#1276: FILE: tools/virtiofsd/passthrough_ll.c:1250:
+^I^Iprintf("usage: %s [options] <mountpoint>\n", argv[0]);$

ERROR: code indent should never use tabs
#1277: FILE: tools/virtiofsd/passthrough_ll.c:1251:
+^I^Iprintf("       %s --help\n", argv[0]);$

ERROR: code indent should never use tabs
#1278: FILE: tools/virtiofsd/passthrough_ll.c:1252:
+^I^Iret = 1;$

ERROR: code indent should never use tabs
#1279: FILE: tools/virtiofsd/passthrough_ll.c:1253:
+^I^Igoto err_out1;$

ERROR: code indent should never use tabs
#1280: FILE: tools/virtiofsd/passthrough_ll.c:1254:
+^I}$

ERROR: code indent should never use tabs
#1282: FILE: tools/virtiofsd/passthrough_ll.c:1256:
+^Iif (fuse_opt_parse(&args, &lo, lo_opts, NULL)== -1)$

ERROR: spaces required around that '==' (ctx:VxW)
#1282: FILE: tools/virtiofsd/passthrough_ll.c:1256:
+       if (fuse_opt_parse(&args, &lo, lo_opts, NULL)== -1)
                                                     ^

ERROR: braces {} are necessary for all arms of this statement
#1282: FILE: tools/virtiofsd/passthrough_ll.c:1256:
+       if (fuse_opt_parse(&args, &lo, lo_opts, NULL)== -1)
[...]

ERROR: code indent should never use tabs
#1283: FILE: tools/virtiofsd/passthrough_ll.c:1257:
+^I^Ireturn 1;$

ERROR: code indent should never use tabs
#1285: FILE: tools/virtiofsd/passthrough_ll.c:1259:
+^Ilo.debug = opts.debug;$

ERROR: code indent should never use tabs
#1286: FILE: tools/virtiofsd/passthrough_ll.c:1260:
+^Ilo.root.refcount = 2;$

ERROR: code indent should never use tabs
#1287: FILE: tools/virtiofsd/passthrough_ll.c:1261:
+^Iif (lo.source) {$

ERROR: code indent should never use tabs
#1288: FILE: tools/virtiofsd/passthrough_ll.c:1262:
+^I^Istruct stat stat;$

ERROR: code indent should never use tabs
#1289: FILE: tools/virtiofsd/passthrough_ll.c:1263:
+^I^Iint res;$

ERROR: code indent should never use tabs
#1291: FILE: tools/virtiofsd/passthrough_ll.c:1265:
+^I^Ires = lstat(lo.source, &stat);$

ERROR: code indent should never use tabs
#1292: FILE: tools/virtiofsd/passthrough_ll.c:1266:
+^I^Iif (res == -1) {$

WARNING: line over 80 characters
#1293: FILE: tools/virtiofsd/passthrough_ll.c:1267:
+                       fuse_log(FUSE_LOG_ERR, "failed to stat source (\"%s\"): %m\n",

ERROR: code indent should never use tabs
#1293: FILE: tools/virtiofsd/passthrough_ll.c:1267:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "failed to stat source (\"%s\"): %m\n",$

ERROR: code indent should never use tabs
#1294: FILE: tools/virtiofsd/passthrough_ll.c:1268:
+^I^I^I^I lo.source);$

ERROR: code indent should never use tabs
#1295: FILE: tools/virtiofsd/passthrough_ll.c:1269:
+^I^I^Iexit(1);$

ERROR: code indent should never use tabs
#1296: FILE: tools/virtiofsd/passthrough_ll.c:1270:
+^I^I}$

ERROR: code indent should never use tabs
#1297: FILE: tools/virtiofsd/passthrough_ll.c:1271:
+^I^Iif (!S_ISDIR(stat.st_mode)) {$

ERROR: code indent should never use tabs
#1298: FILE: tools/virtiofsd/passthrough_ll.c:1272:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "source is not a directory\n");$

ERROR: code indent should never use tabs
#1299: FILE: tools/virtiofsd/passthrough_ll.c:1273:
+^I^I^Iexit(1);$

ERROR: code indent should never use tabs
#1300: FILE: tools/virtiofsd/passthrough_ll.c:1274:
+^I^I}$

ERROR: code indent should never use tabs
#1302: FILE: tools/virtiofsd/passthrough_ll.c:1276:
+^I} else {$

ERROR: code indent should never use tabs
#1303: FILE: tools/virtiofsd/passthrough_ll.c:1277:
+^I^Ilo.source = "/";$

ERROR: code indent should never use tabs
#1304: FILE: tools/virtiofsd/passthrough_ll.c:1278:
+^I}$

ERROR: code indent should never use tabs
#1305: FILE: tools/virtiofsd/passthrough_ll.c:1279:
+^Ilo.root.is_symlink = false;$

ERROR: code indent should never use tabs
#1306: FILE: tools/virtiofsd/passthrough_ll.c:1280:
+^Iif (!lo.timeout_set) {$

ERROR: code indent should never use tabs
#1307: FILE: tools/virtiofsd/passthrough_ll.c:1281:
+^I^Iswitch (lo.cache) {$

ERROR: code indent should never use tabs
#1308: FILE: tools/virtiofsd/passthrough_ll.c:1282:
+^I^Icase CACHE_NEVER:$

ERROR: code indent should never use tabs
#1309: FILE: tools/virtiofsd/passthrough_ll.c:1283:
+^I^I^Ilo.timeout = 0.0;$

ERROR: code indent should never use tabs
#1310: FILE: tools/virtiofsd/passthrough_ll.c:1284:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#1312: FILE: tools/virtiofsd/passthrough_ll.c:1286:
+^I^Icase CACHE_NORMAL:$

ERROR: code indent should never use tabs
#1313: FILE: tools/virtiofsd/passthrough_ll.c:1287:
+^I^I^Ilo.timeout = 1.0;$

ERROR: code indent should never use tabs
#1314: FILE: tools/virtiofsd/passthrough_ll.c:1288:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#1316: FILE: tools/virtiofsd/passthrough_ll.c:1290:
+^I^Icase CACHE_ALWAYS:$

ERROR: code indent should never use tabs
#1317: FILE: tools/virtiofsd/passthrough_ll.c:1291:
+^I^I^Ilo.timeout = 86400.0;$

ERROR: code indent should never use tabs
#1318: FILE: tools/virtiofsd/passthrough_ll.c:1292:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#1319: FILE: tools/virtiofsd/passthrough_ll.c:1293:
+^I^I}$

ERROR: code indent should never use tabs
#1320: FILE: tools/virtiofsd/passthrough_ll.c:1294:
+^I} else if (lo.timeout < 0) {$

ERROR: code indent should never use tabs
#1321: FILE: tools/virtiofsd/passthrough_ll.c:1295:
+^I^Ifuse_log(FUSE_LOG_ERR, "timeout is negative (%lf)\n",$

ERROR: code indent should never use tabs
#1322: FILE: tools/virtiofsd/passthrough_ll.c:1296:
+^I^I^I lo.timeout);$

ERROR: code indent should never use tabs
#1323: FILE: tools/virtiofsd/passthrough_ll.c:1297:
+^I^Iexit(1);$

ERROR: code indent should never use tabs
#1324: FILE: tools/virtiofsd/passthrough_ll.c:1298:
+^I}$

ERROR: code indent should never use tabs
#1326: FILE: tools/virtiofsd/passthrough_ll.c:1300:
+^Ilo.root.fd = open(lo.source, O_PATH);$

ERROR: code indent should never use tabs
#1327: FILE: tools/virtiofsd/passthrough_ll.c:1301:
+^Iif (lo.root.fd == -1) {$

ERROR: code indent should never use tabs
#1328: FILE: tools/virtiofsd/passthrough_ll.c:1302:
+^I^Ifuse_log(FUSE_LOG_ERR, "open(\"%s\", O_PATH): %m\n",$

ERROR: code indent should never use tabs
#1329: FILE: tools/virtiofsd/passthrough_ll.c:1303:
+^I^I^I lo.source);$

ERROR: code indent should never use tabs
#1330: FILE: tools/virtiofsd/passthrough_ll.c:1304:
+^I^Iexit(1);$

ERROR: code indent should never use tabs
#1331: FILE: tools/virtiofsd/passthrough_ll.c:1305:
+^I}$

ERROR: code indent should never use tabs
#1333: FILE: tools/virtiofsd/passthrough_ll.c:1307:
+^Ise = fuse_session_new(&args, &lo_oper, sizeof(lo_oper), &lo);$

ERROR: code indent should never use tabs
#1334: FILE: tools/virtiofsd/passthrough_ll.c:1308:
+^Iif (se == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#1334: FILE: tools/virtiofsd/passthrough_ll.c:1308:
+       if (se == NULL)
[...]

ERROR: code indent should never use tabs
#1335: FILE: tools/virtiofsd/passthrough_ll.c:1309:
+^I    goto err_out1;$

ERROR: code indent should never use tabs
#1337: FILE: tools/virtiofsd/passthrough_ll.c:1311:
+^Iif (fuse_set_signal_handlers(se) != 0)$

ERROR: braces {} are necessary for all arms of this statement
#1337: FILE: tools/virtiofsd/passthrough_ll.c:1311:
+       if (fuse_set_signal_handlers(se) != 0)
[...]

ERROR: code indent should never use tabs
#1338: FILE: tools/virtiofsd/passthrough_ll.c:1312:
+^I    goto err_out2;$

ERROR: code indent should never use tabs
#1340: FILE: tools/virtiofsd/passthrough_ll.c:1314:
+^Iif (fuse_session_mount(se, opts.mountpoint) != 0)$

ERROR: braces {} are necessary for all arms of this statement
#1340: FILE: tools/virtiofsd/passthrough_ll.c:1314:
+       if (fuse_session_mount(se, opts.mountpoint) != 0)
[...]

ERROR: code indent should never use tabs
#1341: FILE: tools/virtiofsd/passthrough_ll.c:1315:
+^I    goto err_out3;$

ERROR: code indent should never use tabs
#1343: FILE: tools/virtiofsd/passthrough_ll.c:1317:
+^Ifuse_daemonize(opts.foreground);$

ERROR: code indent should never use tabs
#1345: FILE: tools/virtiofsd/passthrough_ll.c:1319:
+^I/* Block until ctrl+c or fusermount -u */$

ERROR: code indent should never use tabs
#1346: FILE: tools/virtiofsd/passthrough_ll.c:1320:
+^Iif (opts.singlethread)$

ERROR: braces {} are necessary for all arms of this statement
#1346: FILE: tools/virtiofsd/passthrough_ll.c:1320:
+       if (opts.singlethread)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1347: FILE: tools/virtiofsd/passthrough_ll.c:1321:
+^I^Iret = fuse_session_loop(se);$

ERROR: code indent should never use tabs
#1348: FILE: tools/virtiofsd/passthrough_ll.c:1322:
+^Ielse$

ERROR: code indent should never use tabs
#1349: FILE: tools/virtiofsd/passthrough_ll.c:1323:
+^I^Iret = fuse_session_loop_mt(se, opts.clone_fd);$

ERROR: code indent should never use tabs
#1351: FILE: tools/virtiofsd/passthrough_ll.c:1325:
+^Ifuse_session_unmount(se);$

ERROR: code indent should never use tabs
#1353: FILE: tools/virtiofsd/passthrough_ll.c:1327:
+^Ifuse_remove_signal_handlers(se);$

ERROR: code indent should never use tabs
#1355: FILE: tools/virtiofsd/passthrough_ll.c:1329:
+^Ifuse_session_destroy(se);$

ERROR: code indent should never use tabs
#1357: FILE: tools/virtiofsd/passthrough_ll.c:1331:
+^Ifree(opts.mountpoint);$

ERROR: code indent should never use tabs
#1358: FILE: tools/virtiofsd/passthrough_ll.c:1332:
+^Ifuse_opt_free_args(&args);$

ERROR: code indent should never use tabs
#1360: FILE: tools/virtiofsd/passthrough_ll.c:1334:
+^Iif (lo.root.fd >= 0)$

ERROR: braces {} are necessary for all arms of this statement
#1360: FILE: tools/virtiofsd/passthrough_ll.c:1334:
+       if (lo.root.fd >= 0)
[...]

ERROR: code indent should never use tabs
#1361: FILE: tools/virtiofsd/passthrough_ll.c:1335:
+^I^Iclose(lo.root.fd);$

ERROR: code indent should never use tabs
#1363: FILE: tools/virtiofsd/passthrough_ll.c:1337:
+^Ireturn ret ? 1 : 0;$

total: 954 errors, 30 warnings, 1338 lines checked

Patch 5/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

6/109 Checking commit 6f5a05609974 (virtiofsd: Trim down imported files)
ERROR: code indent should never use tabs
#101: FILE: tools/virtiofsd/buffer.c:184:
+^I^Ireturn fuse_buf_fd_to_fd(dst, dst_off, src, src_off, len);$

ERROR: code indent should never use tabs
#388: FILE: tools/virtiofsd/fuse_lowlevel.c:179:
+^Iabort(); /* virtio should have taken it before here */$

ERROR: code indent should never use tabs
#519: FILE: tools/virtiofsd/fuse_lowlevel.c:475:
+^Iabort(); /* Will have taken vhost path */$

ERROR: code indent should never use tabs
#768: FILE: tools/virtiofsd/fuse_lowlevel.c:1046:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#872: FILE: tools/virtiofsd/fuse_lowlevel.c:2142:
+^Iin = buf->mem;$

ERROR: code indent should never use tabs
#881: FILE: tools/virtiofsd/fuse_lowlevel.c:2164:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#889: FILE: tools/virtiofsd/fuse_lowlevel.c:2171:
+^Ireq->ch = ch;$

total: 7 errors, 0 warnings, 1393 lines checked

Patch 6/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

7/109 Checking commit 16be3a438ac5 (virtiofsd: Format imported files to qemu style)
WARNING: Block comments use a leading /* on a separate line
#3149: FILE: tools/virtiofsd/fuse_common.h:720:
+    ((struct fuse_bufvec){ /* .count= */ 1,                           \

WARNING: Block comments use a leading /* on a separate line
#3150: FILE: tools/virtiofsd/fuse_common.h:721:
+                           /* .idx =  */ 0,                           \

WARNING: Block comments use a leading /* on a separate line
#3151: FILE: tools/virtiofsd/fuse_common.h:722:
+                           /* .off =  */ 0, /* .buf =  */             \

WARNING: Block comments use a leading /* on a separate line
#3152: FILE: tools/virtiofsd/fuse_common.h:723:
+                           { /* [0] = */ {                            \

WARNING: Block comments use a leading /* on a separate line
#3153: FILE: tools/virtiofsd/fuse_common.h:724:
+                               /* .size =  */ (size__),               \

WARNING: Block comments use a leading /* on a separate line
#3154: FILE: tools/virtiofsd/fuse_common.h:725:
+                               /* .flags = */ (enum fuse_buf_flags)0, \

WARNING: Block comments use a leading /* on a separate line
#3155: FILE: tools/virtiofsd/fuse_common.h:726:
+                               /* .mem =   */ NULL,                   \

WARNING: Block comments use a leading /* on a separate line
#3156: FILE: tools/virtiofsd/fuse_common.h:727:
+                               /* .fd =    */ -1,                     \

WARNING: Block comments use a leading /* on a separate line
#3157: FILE: tools/virtiofsd/fuse_common.h:728:
+                               /* .pos =   */ 0,                      \

WARNING: architecture specific defines should be avoided
#3206: FILE: tools/virtiofsd/fuse_common.h:799:
+#if defined(__GNUC__) &&                                      \

ERROR: Use of volatile is usually wrong, please add a comment
#3317: FILE: tools/virtiofsd/fuse_i.h:44:
+    volatile int exited;

ERROR: spaces required around that '*' (ctx:WxV)
#3554: FILE: tools/virtiofsd/fuse_lowlevel.c:36:
+        const typeof(((type *)0)->member) *__mptr = (ptr); \
                                           ^

ERROR: use qemu_real_host_page_size instead of getpagesize()
#3570: FILE: tools/virtiofsd/fuse_lowlevel.c:49:
+    pagesize = getpagesize();

ERROR: use qemu_real_host_page_size instead of getpagesize()
#6226: FILE: tools/virtiofsd/fuse_lowlevel.c:1683:
+                FUSE_DEFAULT_MAX_PAGES_PER_REQ * getpagesize() +

ERROR: Macros with complex values should be enclosed in parenthesis
#6294: FILE: tools/virtiofsd/fuse_lowlevel.c:1713:
+#define LL_SET_DEFAULT(cond, cap)             \
+    if ((cond) && (se->conn.capable & (cap))) \
+        se->conn.want |= (cap)

ERROR: use qemu_real_host_page_size instead of getpagesize()
#6368: FILE: tools/virtiofsd/fuse_lowlevel.c:1763:
+        outarg.max_pages = (se->conn.max_write - 1) / getpagesize() + 1;

ERROR: use qemu_real_host_page_size instead of getpagesize()
#7514: FILE: tools/virtiofsd/fuse_lowlevel.c:2452:
+    se->bufsize = FUSE_MAX_MAX_PAGES * getpagesize() + FUSE_BUFFER_HEADER_SIZE;

ERROR: consider using qemu_strtoul in preference to strtoul
#7732: FILE: tools/virtiofsd/fuse_lowlevel.c:2583:
+        unsigned long val = strtoul(s, &end, 0);

ERROR: Macros with complex values should be enclosed in parenthesis
#11918: FILE: tools/virtiofsd/helper.c:262:
+#define LL_ENABLE(cond, cap) \
+    if (cond)                \
+        conn->want |= (cap)

ERROR: Macros with complex values should be enclosed in parenthesis
#11921: FILE: tools/virtiofsd/helper.c:265:
+#define LL_DISABLE(cond, cap) \
+    if (cond)                 \
+        conn->want &= ~(cap)

WARNING: architecture specific defines should be avoided
#12119: FILE: tools/virtiofsd/passthrough_ll.c:67:
+#if defined(__GNUC__) &&                                      \

total: 10 errors, 11 warnings, 14071 lines checked

Patch 7/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

8/109 Checking commit cd8ab8160a4f (virtiofsd: remove mountpoint dummy argument)
9/109 Checking commit e2d7a5aa29ec (virtiofsd: remove unused notify reply support)
10/109 Checking commit 5d454359bbeb (virtiofsd: Fix fuse_daemonize ignored return values)
11/109 Checking commit 739dd581b062 (virtiofsd: Fix common header and define for QEMU builds)
12/109 Checking commit 574d6f03023d (virtiofsd: Trim out compatibility code)
ERROR: use qemu_real_host_page_size instead of getpagesize()
#411: FILE: tools/virtiofsd/fuse_lowlevel.c:1615:
+        size_t max_bufsize = FUSE_DEFAULT_MAX_PAGES_PER_REQ * getpagesize() +

total: 1 errors, 0 warnings, 486 lines checked

Patch 12/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

13/109 Checking commit 5df6fea2b7d4 (vitriofsd/passthrough_ll: fix fallocate() ifdefs)
14/109 Checking commit 6c2c400ba63e (virtiofsd: Make fsync work even if only inode is passed in)
15/109 Checking commit e35e623b712f (virtiofsd: Add options for virtio)
16/109 Checking commit 1571a3efd154 (virtiofsd: add -o source=PATH to help output)
17/109 Checking commit 9c3144f516ac (virtiofsd: Open vhost connection instead of mounting)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#119: 
new file mode 100644

total: 0 errors, 1 warnings, 192 lines checked

Patch 17/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
18/109 Checking commit 87ea47ac23f5 (virtiofsd: Start wiring up vhost-user)
19/109 Checking commit 9aede916e79d (virtiofsd: Add main virtio loop)
20/109 Checking commit ae010568609f (virtiofsd: get/set features callbacks)
21/109 Checking commit ab5fc4d030fc (virtiofsd: Start queue threads)
22/109 Checking commit fab13e3405fe (virtiofsd: Poll kick_fd for queue)
23/109 Checking commit 3539f64fef34 (virtiofsd: Start reading commands from queue)
24/109 Checking commit f3879c2afec2 (virtiofsd: Send replies to messages)
25/109 Checking commit 8d3af2f917fe (virtiofsd: Keep track of replies)
26/109 Checking commit 218ed21d93cc (virtiofsd: Add Makefile wiring for virtiofsd contrib)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#69: 
new file mode 100644

total: 0 errors, 1 warnings, 44 lines checked

Patch 26/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
27/109 Checking commit 4cc4b1fa1e31 (virtiofsd: Fast path for virtio read)
28/109 Checking commit 4786066b2c6e (virtiofsd: add --fd=FDNUM fd passing option)
29/109 Checking commit 765bef18b5a8 (virtiofsd: make -f (foreground) the default)
30/109 Checking commit 45b7e0511d1c (virtiofsd: add vhost-user.json file)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#40: 
new file mode 100644

total: 0 errors, 1 warnings, 19 lines checked

Patch 30/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
31/109 Checking commit ccd0ea72a43c (virtiofsd: add --print-capabilities option)
32/109 Checking commit 3057356aa709 (virtiofs: Add maintainers entry)
33/109 Checking commit c28971cc85bf (virtiofsd: passthrough_ll: create new files in caller's context)
34/109 Checking commit 939a8c173aed (virtiofsd: passthrough_ll: add lo_map for ino/fh indirection)
ERROR: storage class should be at the beginning of the declaration
#49: FILE: tools/virtiofsd/passthrough_ll.c:147:
+__attribute__((unused)) static void lo_map_init(struct lo_map *map)

ERROR: storage class should be at the beginning of the declaration
#56: FILE: tools/virtiofsd/passthrough_ll.c:154:
+__attribute__((unused)) static void lo_map_destroy(struct lo_map *map)

ERROR: storage class should be at the beginning of the declaration
#87: FILE: tools/virtiofsd/passthrough_ll.c:185:
+__attribute__((unused)) static struct lo_map_elem *

ERROR: storage class should be at the beginning of the declaration
#104: FILE: tools/virtiofsd/passthrough_ll.c:202:
+__attribute__((unused)) static struct lo_map_elem *

ERROR: storage class should be at the beginning of the declaration
#126: FILE: tools/virtiofsd/passthrough_ll.c:224:
+__attribute__((unused)) static struct lo_map_elem *

ERROR: storage class should be at the beginning of the declaration
#138: FILE: tools/virtiofsd/passthrough_ll.c:236:
+__attribute__((unused)) static void lo_map_remove(struct lo_map *map,

total: 6 errors, 0 warnings, 136 lines checked

Patch 34/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

35/109 Checking commit 644fc3d3f3ea (virtiofsd: passthrough_ll: add ino_map to hide lo_inode pointers)
36/109 Checking commit 8636126b9f75 (virtiofsd: passthrough_ll: add dirp_map to hide lo_dirp pointers)
37/109 Checking commit 1503ea8b59e1 (virtiofsd: passthrough_ll: add fd_map to hide file descriptors)
38/109 Checking commit 3091d614e83e (virtiofsd: passthrough_ll: add fallback for racy ops)
39/109 Checking commit ccdf4606e24a (virtiofsd: validate path components)
40/109 Checking commit 43ecbf3a91c2 (virtiofsd: Plumb fuse_bufvec through to do_write_buf)
41/109 Checking commit cc2fbb497b92 (virtiofsd: Pass write iov's all the way through)
42/109 Checking commit 4387aa0bedf5 (virtiofsd: add fuse_mbuf_iter API)
43/109 Checking commit 6876dc5b3f41 (virtiofsd: validate input buffer sizes in do_write_buf())
44/109 Checking commit 50f4f1308bb0 (virtiofsd: check input buffer size in fuse_lowlevel.c ops)
45/109 Checking commit c99dc2e6a4fd (virtiofsd: prevent ".." escape in lo_do_lookup())
46/109 Checking commit 1ef2f819fe3d (virtiofsd: prevent ".." escape in lo_do_readdir())
47/109 Checking commit 339f7726699f (virtiofsd: use /proc/self/fd/ O_PATH file descriptor)
48/109 Checking commit 7c4d13b033c3 (virtiofsd: sandbox mount namespace)
49/109 Checking commit c16b4a4d9a6d (virtiofsd: move to an empty network namespace)
50/109 Checking commit ae376f228cb3 (virtiofsd: move to a new pid namespace)
51/109 Checking commit 40c8f886e5b3 (virtiofsd: add seccomp whitelist)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#73: 
new file mode 100644

WARNING: architecture specific defines should be avoided
#95: FILE: tools/virtiofsd/seccomp.c:18:
+#if !defined(__SNR_ppoll) && defined(__SNR_brk)

WARNING: architecture specific defines should be avoided
#96: FILE: tools/virtiofsd/seccomp.c:19:
+#ifdef __NR_ppoll

WARNING: architecture specific defines should be avoided
#110: FILE: tools/virtiofsd/seccomp.c:33:
+#ifdef __NR_clone3

WARNING: architecture specific defines should be avoided
#170: FILE: tools/virtiofsd/seccomp.c:93:
+#ifdef __NR_setresgid32

WARNING: architecture specific defines should be avoided
#173: FILE: tools/virtiofsd/seccomp.c:96:
+#ifdef __NR_setresuid32

total: 0 errors, 6 warnings, 195 lines checked

Patch 51/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
52/109 Checking commit 2671d8df6ebf (virtiofsd: Parse flag FUSE_WRITE_KILL_PRIV)
53/109 Checking commit ab438962c9e3 (virtiofsd: cap-ng helpers)
ERROR: do not initialise statics to 0 or NULL
#49: FILE: tools/virtiofsd/passthrough_ll.c:147:
+static __thread bool cap_loaded = 0;

total: 1 errors, 0 warnings, 116 lines checked

Patch 53/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

54/109 Checking commit 76446bf59459 (virtiofsd: Drop CAP_FSETID if client asked for it)
55/109 Checking commit c0baae43fd74 (virtiofsd: set maximum RLIMIT_NOFILE limit)
56/109 Checking commit 9f1fa1427d16 (virtiofsd: fix libfuse information leaks)
57/109 Checking commit 2dad7b2fc3c3 (docs: Add docs/tools)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#57: 
new file mode 100644

total: 0 errors, 1 warnings, 60 lines checked

Patch 57/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
58/109 Checking commit efe201e1f3cf (virtiofsd: add security guide document)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#25: 
new file mode 100644

total: 0 errors, 1 warnings, 123 lines checked

Patch 58/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
59/109 Checking commit edd971941a97 (virtiofsd: add --syslog command-line option)
ERROR: do not initialise statics to 0 or NULL
#65: FILE: tools/virtiofsd/passthrough_ll.c:141:
+static bool use_syslog = false;

total: 1 errors, 0 warnings, 165 lines checked

Patch 59/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

60/109 Checking commit a81ca7e25ed3 (virtiofsd: print log only when priority is high enough)
61/109 Checking commit 3d89fb46e69e (virtiofsd: Add ID to the log with FUSE_LOG_DEBUG level)
62/109 Checking commit a67a31a9329d (virtiofsd: Add timestamp to the log with FUSE_LOG_DEBUG level)
63/109 Checking commit e50f35d141c9 (virtiofsd: Handle reinit)
64/109 Checking commit eb8bcda7bd02 (virtiofsd: Handle hard reboot)
65/109 Checking commit 11020ae00ee5 (virtiofsd: Kill threads when queues are stopped)
66/109 Checking commit e3cc2bacbe3f (vhost-user: Print unexpected slave message types)
67/109 Checking commit 11361bd530ad (contrib/libvhost-user: Protect slave fd with mutex)
68/109 Checking commit 53b30be3d773 (virtiofsd: passthrough_ll: add renameat2 support)
69/109 Checking commit 7c9cf1f710e9 (virtiofsd: passthrough_ll: disable readdirplus on cache=never)
70/109 Checking commit c4b3f6a24d53 (virtiofsd: passthrough_ll: control readdirplus)
71/109 Checking commit 6fe9f196d14c (virtiofsd: rename unref_inode() to unref_inode_lolocked())
72/109 Checking commit cec9647d1308 (virtiofsd: fail when parent inode isn't known in lo_do_lookup())
ERROR: return of an errno should typically be -ve (return -ENOENT)
#32: FILE: tools/virtiofsd/passthrough_ll.c:786:
+        return ENOENT;

total: 1 errors, 0 warnings, 38 lines checked

Patch 72/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

73/109 Checking commit d8eb059dadf2 (virtiofsd: extract root inode init into setup_root())
74/109 Checking commit 4d18c7e8b47e (virtiofsd: passthrough_ll: clean up cache related options)
75/109 Checking commit a1dc539ca0d5 (virtiofsd: passthrough_ll: use hashtable)
76/109 Checking commit 7159d81aad4c (virtiofsd: Clean up inodes on destroy)
77/109 Checking commit 63d578fe8eb1 (virtiofsd: support nanosecond resolution for file timestamp)
78/109 Checking commit 508c6fefc387 (virtiofsd: fix error handling in main())
79/109 Checking commit df9ab38af34a (virtiofsd: cleanup allocated resource in se)
80/109 Checking commit e684d3fa0160 (virtiofsd: fix memory leak on lo.source)
81/109 Checking commit 96437e7d5562 (virtiofsd: add helper for lo_data cleanup)
82/109 Checking commit 467dd68be444 (virtiofsd: Prevent multiply running with same vhost_user_socket)
83/109 Checking commit cdf841ad9b1a (virtiofsd: enable PARALLEL_DIROPS during INIT)
84/109 Checking commit 961aacb31d26 (virtiofsd: fix incorrect error handling in lo_do_lookup)
85/109 Checking commit 9f0856c54386 (Virtiofsd: fix memory leak on fuse queueinfo)
86/109 Checking commit c428a7bc3ee4 (virtiofsd: Support remote posix locks)
87/109 Checking commit 2e3eb7d8f8dd (virtiofsd: use fuse_lowlevel_is_virtio() in fuse_session_destroy())
88/109 Checking commit 0cc4d67588df (virtiofsd: prevent fv_queue_thread() vs virtio_loop() races)
89/109 Checking commit a5dcf06285fa (virtiofsd: make lo_release() atomic)
90/109 Checking commit 26f3777d7cc1 (virtiofsd: prevent races with lo_dirp_put())
91/109 Checking commit c8bf8908e158 (virtiofsd: rename inode->refcount to inode->nlookup)
92/109 Checking commit e186f1f504fb (libvhost-user: Fix some memtable remap cases)
93/109 Checking commit b341c298b89c (virtiofsd: add man page)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#49: 
new file mode 100644

total: 0 errors, 1 warnings, 129 lines checked

Patch 93/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
94/109 Checking commit ae82e3609ac1 (virtiofsd: passthrough_ll: fix refcounting on remove/rename)
95/109 Checking commit 8e1ba8b31c58 (virtiofsd: introduce inode refcount to prevent use-after-free)
96/109 Checking commit 5089e4a34a1a (virtiofsd: do not always set FUSE_FLOCK_LOCKS)
97/109 Checking commit 0a73f2979152 (virtiofsd: convert more fprintf and perror to use fuse log infra)
98/109 Checking commit 85c91548107f (virtiofsd: Reset O_DIRECT flag during file open)
99/109 Checking commit 5bcecff4a150 (virtiofsd: Fix data corruption with O_APPEND write in writeback mode)
100/109 Checking commit ac87055880a0 (virtiofsd: add definition of fuse_buf_writev())
101/109 Checking commit 3efc97a2bedc (virtiofsd: use fuse_buf_writev to replace fuse_buf_write for better performance)
102/109 Checking commit 68b49962da9b (virtiofsd: process requests in a thread pool)
WARNING: Block comments use a leading /* on a separate line
#332: FILE: tools/virtiofsd/fuse_virtio.c:577:
+    pool = g_thread_pool_new(fv_queue_worker, qi, 1 /* TODO max_threads */,

total: 0 errors, 1 warnings, 466 lines checked

Patch 102/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
103/109 Checking commit d5f6038a75b5 (virtiofsd: prevent FUSE_INIT/FUSE_DESTROY races)
104/109 Checking commit ed1bf337dcff (virtiofsd: fix lo_destroy() resource leaks)
105/109 Checking commit 685e04910ccb (virtiofsd: add --thread-pool-size=NUM option)
106/109 Checking commit 666dfff5bab8 (virtiofsd: Convert lo_destroy to take the lo->mutex lock itself)
107/109 Checking commit e408daa16742 (virtiofsd/passthrough_ll: Pass errno to fuse_reply_err())
108/109 Checking commit 5de75ca12384 (virtiofsd: stop all queue threads on exit in virtio_loop())
ERROR: braces {} are necessary for all arms of this statement
#40: FILE: tools/virtiofsd/fuse_virtio.c:823:
+        if (!se->virtio_dev->qi[i])
[...]

total: 1 errors, 0 warnings, 18 lines checked

Patch 108/109 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

109/109 Checking commit a8772f4bda46 (virtiofsd: add some options to the help message)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20200121122433.50803-1-dgilbert@redhat.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com