mbox series

[00/30] virtiofs daemon (base)

Message ID 20191021105832.36574-1-dgilbert@redhat.com
Headers show
Series virtiofs daemon (base) | expand

Message

Dr. David Alan Gilbert Oct. 21, 2019, 10:58 a.m. UTC
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>

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

  The kernel and qemu device parts recently went in,
so the daemon is the only thing missing to have a working
set.

  This set is the absolute minimal base set of patches;
it's not yet safe to use (from security or correctness);

I'll follow up with ~3 more series in the next few days
with:

    a) Security patches that add sandboxing and checking
       compared with normal fuse - that makes it safe.
    b) Performance improvements including threading
    c) Other fixes, including correctness.

but, this is a good start and gets things rolling.

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.

For new files I've formatted the code according to qemu
standards; for files that are from upstream libfuse
I've kept with their standards for ease of future updating.

We can't just link with libfuse, since we have to make ABI incompatible
changes for the new transport.

Running this daemon is typically done with:

   ./virtiofsd -o vhost_user_socket=/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

Dave


Dr. David Alan Gilbert (22):
  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: Fix fuse_daemonize ignored return values
  virtiofsd: Fix common header and define for QEMU builds
  virtiofsd: fuse: Make iov_length usable outside fuse_lowlevel.c
  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

Stefan Hajnoczi (7):
  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

Vivek Goyal (1):
  virtiofsd: Make fsync work even if only inode is passed in

 .gitignore                                  |    1 +
 MAINTAINERS                                 |    8 +
 Makefile                                    |    9 +
 Makefile.objs                               |    1 +
 contrib/virtiofsd/50-qemu-virtiofsd.json.in |    5 +
 contrib/virtiofsd/Makefile.objs             |   10 +
 contrib/virtiofsd/buffer.c                  |  318 +++
 contrib/virtiofsd/fuse.h                    | 1268 ++++++++++
 contrib/virtiofsd/fuse_common.h             |  823 +++++++
 contrib/virtiofsd/fuse_i.h                  |  131 ++
 contrib/virtiofsd/fuse_kernel.h             |  858 +++++++
 contrib/virtiofsd/fuse_log.c                |   40 +
 contrib/virtiofsd/fuse_log.h                |   82 +
 contrib/virtiofsd/fuse_loop_mt.c            |   54 +
 contrib/virtiofsd/fuse_lowlevel.c           | 2302 +++++++++++++++++++
 contrib/virtiofsd/fuse_lowlevel.h           | 2024 ++++++++++++++++
 contrib/virtiofsd/fuse_misc.h               |   59 +
 contrib/virtiofsd/fuse_opt.c                |  422 ++++
 contrib/virtiofsd/fuse_opt.h                |  271 +++
 contrib/virtiofsd/fuse_signals.c            |   90 +
 contrib/virtiofsd/fuse_virtio.c             |  717 ++++++
 contrib/virtiofsd/fuse_virtio.h             |   33 +
 contrib/virtiofsd/helper.c                  |  300 +++
 contrib/virtiofsd/passthrough_helpers.h     |   76 +
 contrib/virtiofsd/passthrough_ll.c          | 1341 +++++++++++
 docs/interop/vhost-user.json                |    4 +-
 26 files changed, 11246 insertions(+), 1 deletion(-)
 create mode 100644 contrib/virtiofsd/50-qemu-virtiofsd.json.in
 create mode 100644 contrib/virtiofsd/Makefile.objs
 create mode 100644 contrib/virtiofsd/buffer.c
 create mode 100644 contrib/virtiofsd/fuse.h
 create mode 100644 contrib/virtiofsd/fuse_common.h
 create mode 100644 contrib/virtiofsd/fuse_i.h
 create mode 100644 contrib/virtiofsd/fuse_kernel.h
 create mode 100644 contrib/virtiofsd/fuse_log.c
 create mode 100644 contrib/virtiofsd/fuse_log.h
 create mode 100644 contrib/virtiofsd/fuse_loop_mt.c
 create mode 100644 contrib/virtiofsd/fuse_lowlevel.c
 create mode 100644 contrib/virtiofsd/fuse_lowlevel.h
 create mode 100644 contrib/virtiofsd/fuse_misc.h
 create mode 100644 contrib/virtiofsd/fuse_opt.c
 create mode 100644 contrib/virtiofsd/fuse_opt.h
 create mode 100644 contrib/virtiofsd/fuse_signals.c
 create mode 100644 contrib/virtiofsd/fuse_virtio.c
 create mode 100644 contrib/virtiofsd/fuse_virtio.h
 create mode 100644 contrib/virtiofsd/helper.c
 create mode 100644 contrib/virtiofsd/passthrough_helpers.h
 create mode 100644 contrib/virtiofsd/passthrough_ll.c

Comments

no-reply@patchew.org Oct. 21, 2019, 2:04 p.m. UTC | #1
Patchew URL: https://patchew.org/QEMU/20191021105832.36574-1-dgilbert@redhat.com/



Hi,

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

Subject: [PATCH 00/30] virtiofs daemon (base)
Type: series
Message-id: 20191021105832.36574-1-dgilbert@redhat.com

=== 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'
ddce75f virtiofs: Add maintainers entry
21065c6 virtiofsd: add --print-capabilities option
6c37d73 virtiofsd: add vhost-user.json file
e5c89d5 virtiofsd: make -f (foreground) the default
d79775c virtiofsd: add --fd=FDNUM fd passing option
339d057 virtiofsd: Fast path for virtio read
f16f5a6 virtiofsd: Add Makefile wiring for virtiofsd contrib
6e4b2d0 virtiofsd: Keep track of replies
453d82c virtiofsd: Send replies to messages
3b4e1b5 virtiofsd: Start reading commands from queue
a007c29 virtiofsd: Poll kick_fd for queue
d9a9f1a virtiofsd: Start queue threads
305c879 virtiofsd: get/set features callbacks
2c2af20 virtiofsd: Add main virtio loop
5325e1c virtiofsd: Start wiring up vhost-user
bcdf0f7 virtiofsd: Open vhost connection instead of mounting
617a6aa virtiofsd: add -o source=PATH to help output
86db5bf virtiofsd: Add options for virtio
c57ea31 virtiofsd: Make fsync work even if only inode is passed in
0a8ba93 virtiofsd: fuse: Make iov_length usable outside fuse_lowlevel.c
e06fecf virtiofsd: Fix common header and define for QEMU builds
a59d6ab virtiofsd: Fix fuse_daemonize ignored return values
790e71a virtiofsd: remove unused notify reply support
2a772bb virtiofsd: remove mountpoint dummy argument
b24b5b3 virtiofsd: Trim down imported files
2b860d5 virtiofsd: Add passthrough_ll
0b0bed5 virtiofsd: Add fuse_lowlevel.c
dbce77b virtiofsd: Add auxiliary .c's
d3c6db5 virtiofsd: Pull in kernel's fuse.h
2a2f146 virtiofsd: Pull in upstream headers

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#78: FILE: contrib/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
#79: FILE: contrib/virtiofsd/fuse.h:62:
+^I * and vice versa.$

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

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

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

ERROR: trailing whitespace
#91: FILE: contrib/virtiofsd/fuse.h:74:
+ * $

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

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

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

ERROR: code indent should never use tabs
#112: FILE: contrib/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
#113: FILE: contrib/virtiofsd/fuse.h:96:
+^I * is overwritten with the value of `gid`.$

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

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

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

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

ERROR: code indent should never use tabs
#119: FILE: contrib/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
#120: FILE: contrib/virtiofsd/fuse.h:103:
+^I * is overwritten with the value of `uid`.$

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#198: FILE: contrib/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
#199: FILE: contrib/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
#200: FILE: contrib/virtiofsd/fuse.h:183:
+^I * field in the readdir(2) function. The filesystem does not$

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#210: FILE: contrib/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
#211: FILE: contrib/virtiofsd/fuse.h:194:
+^I * d_ino field in readdir(2). If the name was previously$

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#325: FILE: contrib/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
#326: FILE: contrib/virtiofsd/fuse.h:309:
+^I * may also be NULL if the file is open.$

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#351: FILE: contrib/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
#352: FILE: contrib/virtiofsd/fuse.h:335:
+^I * correct directory type bits use  mode|S_IFDIR$

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#381: FILE: contrib/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
#382: FILE: contrib/virtiofsd/fuse.h:365:
+^I * may also be NULL if the file is open.$

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

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

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

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

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

ERROR: code indent should never use tabs
#388: FILE: contrib/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
#389: FILE: contrib/virtiofsd/fuse.h:372:
+^I * may also be NULL if the file is open.$

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#398: FILE: contrib/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
#399: FILE: contrib/virtiofsd/fuse.h:382:
+^I * may also be NULL if the file is open.$

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#436: FILE: contrib/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
#437: FILE: contrib/virtiofsd/fuse.h:420:
+^I * operations (read, write, flush, release, fsync).$

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

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

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

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

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

ERROR: code indent should never use tabs
#443: FILE: contrib/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
#444: FILE: contrib/virtiofsd/fuse.h:427:
+^I * See fuse_file_info structure in <fuse_common.h> for more details.$

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#470: FILE: contrib/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
#471: FILE: contrib/virtiofsd/fuse.h:454:
+^I * mount option is specified (see read operation).$

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#490: FILE: contrib/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
#491: FILE: contrib/virtiofsd/fuse.h:474:
+^I * release which is called on the close of the last file descriptor for$

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

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

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

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

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

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

ERROR: code indent should never use tabs
#495: FILE: contrib/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
#496: FILE: contrib/virtiofsd/fuse.h:479:
+^I * returns an error. For these reasons, filesystems should not assume$

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

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

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

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

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

ERROR: code indent should never use tabs
#502: FILE: contrib/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
#503: FILE: contrib/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
#504: FILE: contrib/virtiofsd/fuse.h:487:
+^I * be treated equally.  Multiple write-flush sequences are relatively$

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#523: FILE: contrib/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
#524: FILE: contrib/virtiofsd/fuse.h:507:
+^I * release will mean, that no more reads/writes will happen on the$

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#631: FILE: contrib/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
#632: FILE: contrib/virtiofsd/fuse.h:615:
+^I *$

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#651: FILE: contrib/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
#652: FILE: contrib/virtiofsd/fuse.h:635:
+^I * of the process performing the locking operation.$

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#668: FILE: contrib/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
#669: FILE: contrib/virtiofsd/fuse.h:652:
+^I * may also be NULL if the file is open.$

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#691: FILE: contrib/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
#692: FILE: contrib/virtiofsd/fuse.h:675:
+^I * non-NULL cases, the area is of _IOC_SIZE(cmd) bytes.$

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

ERROR: code indent should never use tabs
#694: FILE: contrib/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
#695: FILE: contrib/virtiofsd/fuse.h:678:
+^I * directory file handle.$

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#752: FILE: contrib/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
#753: FILE: contrib/virtiofsd/fuse.h:736:
+^I *$

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#805: FILE: contrib/virtiofsd/fuse.h:788:
+^Istruct fuse *fuse;$

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

ERROR: code indent should never use tabs
#808: FILE: contrib/virtiofsd/fuse.h:791:
+^Iuid_t uid;$

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

ERROR: code indent should never use tabs
#811: FILE: contrib/virtiofsd/fuse.h:794:
+^Igid_t gid;$

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

ERROR: code indent should never use tabs
#814: FILE: contrib/virtiofsd/fuse.h:797:
+^Ipid_t pid;$

ERROR: code indent should never use tabs
#816: FILE: contrib/virtiofsd/fuse.h:799:
+^I/** Private filesystem data */$

ERROR: code indent should never use tabs
#817: FILE: contrib/virtiofsd/fuse.h:800:
+^Ivoid *private_data;$

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

ERROR: code indent should never use tabs
#820: FILE: contrib/virtiofsd/fuse.h:803:
+^Imode_t umask;$

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

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

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

WARNING: Block comments use a leading /* on a separate line
#884: FILE: contrib/virtiofsd/fuse.h:867:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#885: FILE: contrib/virtiofsd/fuse.h:868:
+ * More detailed API^I^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#886: FILE: contrib/virtiofsd/fuse.h:869:
+ * ----------------------------------------------------------- */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ERROR: code indent should never use tabs
#1190: FILE: contrib/virtiofsd/fuse.h:1173:
+^I^I     size_t len);$

ERROR: code indent should never use tabs
#1192: FILE: contrib/virtiofsd/fuse.h:1175:
+^I^I  dev_t rdev);$

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

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

ERROR: code indent should never use tabs
#1199: FILE: contrib/virtiofsd/fuse.h:1182:
+^I^I      size_t size);$

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

WARNING: architecture specific defines should be avoided
#1281: FILE: contrib/virtiofsd/fuse.h:1264:
+#ifdef __cplusplus

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

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

ERROR: line over 90 characters
#1302: FILE: contrib/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
#1322: FILE: contrib/virtiofsd/fuse_common.h:31:
+#ifdef __cplusplus

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

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

ERROR: code indent should never use tabs
#1339: FILE: contrib/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
#1339: FILE: contrib/virtiofsd/fuse_common.h:48:
+       /** In case of a write operation indicates if this was caused

ERROR: code indent should never use tabs
#1340: FILE: contrib/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
#1340: FILE: contrib/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
#1341: FILE: contrib/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
#1342: FILE: contrib/virtiofsd/fuse_common.h:51:
+^I    the *fh* value may not match the *fh* value that would$

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

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

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

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

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1345: FILE: contrib/virtiofsd/fuse_common.h:54:
+       unsigned int writepage : 1;
                               ^

ERROR: code indent should never use tabs
#1347: FILE: contrib/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
#1348: FILE: contrib/virtiofsd/fuse_common.h:57:
+^Iunsigned int direct_io : 1;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1348: FILE: contrib/virtiofsd/fuse_common.h:57:
+       unsigned int direct_io : 1;
                               ^

ERROR: code indent should never use tabs
#1350: FILE: contrib/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
#1350: FILE: contrib/virtiofsd/fuse_common.h:59:
+       /** Can be filled in by open. It signals the kernel that any

ERROR: code indent should never use tabs
#1351: FILE: contrib/virtiofsd/fuse_common.h:60:
+^I    currently cached file data (ie., data that the filesystem$

WARNING: Block comments use * on subsequent lines
#1351: FILE: contrib/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
#1352: FILE: contrib/virtiofsd/fuse_common.h:61:
+^I    provided the last time the file was open) need not be$

ERROR: code indent should never use tabs
#1353: FILE: contrib/virtiofsd/fuse_common.h:62:
+^I    invalidated. Has no effect when set in other contexts (in$

ERROR: code indent should never use tabs
#1354: FILE: contrib/virtiofsd/fuse_common.h:63:
+^I    particular it does nothing when set by opendir()). */$

WARNING: Block comments use a trailing */ on a separate line
#1354: FILE: contrib/virtiofsd/fuse_common.h:63:
+           particular it does nothing when set by opendir()). */

ERROR: code indent should never use tabs
#1355: FILE: contrib/virtiofsd/fuse_common.h:64:
+^Iunsigned int keep_cache : 1;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1355: FILE: contrib/virtiofsd/fuse_common.h:64:
+       unsigned int keep_cache : 1;
                                ^

ERROR: code indent should never use tabs
#1357: FILE: contrib/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
#1357: FILE: contrib/virtiofsd/fuse_common.h:66:
+       /** Indicates a flush operation.  Set in flush operation, also

ERROR: code indent should never use tabs
#1358: FILE: contrib/virtiofsd/fuse_common.h:67:
+^I    maybe set in highlevel lock operation and lowlevel release$

WARNING: Block comments use * on subsequent lines
#1358: FILE: contrib/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
#1359: FILE: contrib/virtiofsd/fuse_common.h:68:
+^I    operation. */$

WARNING: Block comments use a trailing */ on a separate line
#1359: FILE: contrib/virtiofsd/fuse_common.h:68:
+           operation. */

ERROR: code indent should never use tabs
#1360: FILE: contrib/virtiofsd/fuse_common.h:69:
+^Iunsigned int flush : 1;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1360: FILE: contrib/virtiofsd/fuse_common.h:69:
+       unsigned int flush : 1;
                           ^

ERROR: code indent should never use tabs
#1362: FILE: contrib/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
#1362: FILE: contrib/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
#1363: FILE: contrib/virtiofsd/fuse_common.h:72:
+^I    seekable. */$

WARNING: Block comments use * on subsequent lines
#1363: FILE: contrib/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
#1363: FILE: contrib/virtiofsd/fuse_common.h:72:
+           seekable. */

ERROR: code indent should never use tabs
#1364: FILE: contrib/virtiofsd/fuse_common.h:73:
+^Iunsigned int nonseekable : 1;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1364: FILE: contrib/virtiofsd/fuse_common.h:73:
+       unsigned int nonseekable : 1;
                                 ^

ERROR: code indent should never use tabs
#1366: FILE: contrib/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
#1366: FILE: contrib/virtiofsd/fuse_common.h:75:
+       /* Indicates that flock locks for this file should be

ERROR: code indent should never use tabs
#1367: FILE: contrib/virtiofsd/fuse_common.h:76:
+^I   released.  If set, lock_owner shall contain a valid value.$

WARNING: Block comments use * on subsequent lines
#1367: FILE: contrib/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
#1368: FILE: contrib/virtiofsd/fuse_common.h:77:
+^I   May only be set in ->release(). */$

WARNING: Block comments use a trailing */ on a separate line
#1368: FILE: contrib/virtiofsd/fuse_common.h:77:
+          May only be set in ->release(). */

ERROR: code indent should never use tabs
#1369: FILE: contrib/virtiofsd/fuse_common.h:78:
+^Iunsigned int flock_release : 1;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1369: FILE: contrib/virtiofsd/fuse_common.h:78:
+       unsigned int flock_release : 1;
                                   ^

ERROR: code indent should never use tabs
#1371: FILE: contrib/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
#1371: FILE: contrib/virtiofsd/fuse_common.h:80:
+       /** Can be filled in by opendir. It signals the kernel to

ERROR: code indent should never use tabs
#1372: FILE: contrib/virtiofsd/fuse_common.h:81:
+^I    enable caching of entries returned by readdir().  Has no$

WARNING: Block comments use * on subsequent lines
#1372: FILE: contrib/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
#1373: FILE: contrib/virtiofsd/fuse_common.h:82:
+^I    effect when set in other contexts (in particular it does$

ERROR: code indent should never use tabs
#1374: FILE: contrib/virtiofsd/fuse_common.h:83:
+^I    nothing when set by open()). */$

WARNING: Block comments use a trailing */ on a separate line
#1374: FILE: contrib/virtiofsd/fuse_common.h:83:
+           nothing when set by open()). */

ERROR: code indent should never use tabs
#1375: FILE: contrib/virtiofsd/fuse_common.h:84:
+^Iunsigned int cache_readdir : 1;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1375: FILE: contrib/virtiofsd/fuse_common.h:84:
+       unsigned int cache_readdir : 1;
                                   ^

ERROR: code indent should never use tabs
#1377: FILE: contrib/virtiofsd/fuse_common.h:86:
+^I/** Padding.  Reserved for future use*/$

ERROR: code indent should never use tabs
#1378: FILE: contrib/virtiofsd/fuse_common.h:87:
+^Iunsigned int padding : 25;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1378: FILE: contrib/virtiofsd/fuse_common.h:87:
+       unsigned int padding : 25;
                             ^

ERROR: code indent should never use tabs
#1379: FILE: contrib/virtiofsd/fuse_common.h:88:
+^Iunsigned int padding2 : 32;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#1379: FILE: contrib/virtiofsd/fuse_common.h:88:
+       unsigned int padding2 : 32;
                              ^

ERROR: code indent should never use tabs
#1381: FILE: contrib/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
#1381: FILE: contrib/virtiofsd/fuse_common.h:90:
+       /** File handle id.  May be filled in by filesystem in create,

ERROR: code indent should never use tabs
#1382: FILE: contrib/virtiofsd/fuse_common.h:91:
+^I * open, and opendir().  Available in most other file operations on the$

ERROR: code indent should never use tabs
#1383: FILE: contrib/virtiofsd/fuse_common.h:92:
+^I * same file handle. */$

WARNING: Block comments use a trailing */ on a separate line
#1383: FILE: contrib/virtiofsd/fuse_common.h:92:
+        * same file handle. */

ERROR: code indent should never use tabs
#1384: FILE: contrib/virtiofsd/fuse_common.h:93:
+^Iuint64_t fh;$

ERROR: code indent should never use tabs
#1386: FILE: contrib/virtiofsd/fuse_common.h:95:
+^I/** Lock owner id.  Available in locking operations and flush */$

ERROR: code indent should never use tabs
#1387: FILE: contrib/virtiofsd/fuse_common.h:96:
+^Iuint64_t lock_owner;$

ERROR: code indent should never use tabs
#1389: FILE: contrib/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
#1389: FILE: contrib/virtiofsd/fuse_common.h:98:
+       /** Requested poll events.  Available in ->poll.  Only set on kernels

ERROR: code indent should never use tabs
#1390: FILE: contrib/virtiofsd/fuse_common.h:99:
+^I    which support it.  If unsupported, this field is set to zero. */$

WARNING: Block comments use * on subsequent lines
#1390: FILE: contrib/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
#1390: FILE: contrib/virtiofsd/fuse_common.h:99:
+           which support it.  If unsupported, this field is set to zero. */

ERROR: code indent should never use tabs
#1391: FILE: contrib/virtiofsd/fuse_common.h:100:
+^Iuint32_t poll_events;$

ERROR: code indent should never use tabs
#1399: FILE: contrib/virtiofsd/fuse_common.h:108:
+^I/**$

ERROR: code indent should never use tabs
#1400: FILE: contrib/virtiofsd/fuse_common.h:109:
+^I * whether to use separate device fds for each thread$

ERROR: code indent should never use tabs
#1401: FILE: contrib/virtiofsd/fuse_common.h:110:
+^I * (may increase performance)$

ERROR: code indent should never use tabs
#1402: FILE: contrib/virtiofsd/fuse_common.h:111:
+^I */$

ERROR: code indent should never use tabs
#1403: FILE: contrib/virtiofsd/fuse_common.h:112:
+^Iint clone_fd;$

ERROR: code indent should never use tabs
#1405: FILE: contrib/virtiofsd/fuse_common.h:114:
+^I/**$

ERROR: code indent should never use tabs
#1406: FILE: contrib/virtiofsd/fuse_common.h:115:
+^I * The maximum number of available worker threads before they$

ERROR: code indent should never use tabs
#1407: FILE: contrib/virtiofsd/fuse_common.h:116:
+^I * start to get deleted when they become idle. If not$

ERROR: code indent should never use tabs
#1408: FILE: contrib/virtiofsd/fuse_common.h:117:
+^I * specified, the default is 10.$

ERROR: code indent should never use tabs
#1409: FILE: contrib/virtiofsd/fuse_common.h:118:
+^I *$

ERROR: code indent should never use tabs
#1410: FILE: contrib/virtiofsd/fuse_common.h:119:
+^I * Adjusting this has performance implications; a very small number$

ERROR: code indent should never use tabs
#1411: FILE: contrib/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
#1412: FILE: contrib/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
#1413: FILE: contrib/virtiofsd/fuse_common.h:122:
+^I * thread will be created to service every operation.$

ERROR: code indent should never use tabs
#1414: FILE: contrib/virtiofsd/fuse_common.h:123:
+^I */$

ERROR: code indent should never use tabs
#1415: FILE: contrib/virtiofsd/fuse_common.h:124:
+^Iunsigned int max_idle_threads;$

WARNING: Block comments use a leading /* on a separate line
#1418: FILE: contrib/virtiofsd/fuse_common.h:127:
+/**************************************************************************

ERROR: code indent should never use tabs
#1432: FILE: contrib/virtiofsd/fuse_common.h:141:
+#define FUSE_CAP_ASYNC_READ^I^I(1 << 0)$

ERROR: code indent should never use tabs
#1440: FILE: contrib/virtiofsd/fuse_common.h:149:
+#define FUSE_CAP_POSIX_LOCKS^I^I(1 << 1)$

ERROR: code indent should never use tabs
#1449: FILE: contrib/virtiofsd/fuse_common.h:158:
+#define FUSE_CAP_ATOMIC_O_TRUNC^I^I(1 << 3)$

ERROR: code indent should never use tabs
#1456: FILE: contrib/virtiofsd/fuse_common.h:165:
+#define FUSE_CAP_EXPORT_SUPPORT^I^I(1 << 4)$

ERROR: code indent should never use tabs
#1464: FILE: contrib/virtiofsd/fuse_common.h:173:
+#define FUSE_CAP_DONT_MASK^I^I(1 << 6)$

ERROR: code indent should never use tabs
#1472: FILE: contrib/virtiofsd/fuse_common.h:181:
+#define FUSE_CAP_SPLICE_WRITE^I^I(1 << 7)$

ERROR: code indent should never use tabs
#1480: FILE: contrib/virtiofsd/fuse_common.h:189:
+#define FUSE_CAP_SPLICE_MOVE^I^I(1 << 8)$

ERROR: code indent should never use tabs
#1489: FILE: contrib/virtiofsd/fuse_common.h:198:
+#define FUSE_CAP_SPLICE_READ^I^I(1 << 9)$

ERROR: code indent should never use tabs
#1502: FILE: contrib/virtiofsd/fuse_common.h:211:
+#define FUSE_CAP_FLOCK_LOCKS^I^I(1 << 10)$

ERROR: code indent should never use tabs
#1509: FILE: contrib/virtiofsd/fuse_common.h:218:
+#define FUSE_CAP_IOCTL_DIR^I^I(1 << 11)$

ERROR: code indent should never use tabs
#1531: FILE: contrib/virtiofsd/fuse_common.h:240:
+#define FUSE_CAP_AUTO_INVAL_DATA^I(1 << 12)$

ERROR: code indent should never use tabs
#1539: FILE: contrib/virtiofsd/fuse_common.h:248:
+#define FUSE_CAP_READDIRPLUS^I^I(1 << 13)$

ERROR: code indent should never use tabs
#1567: FILE: contrib/virtiofsd/fuse_common.h:276:
+#define FUSE_CAP_READDIRPLUS_AUTO^I(1 << 14)$

ERROR: code indent should never use tabs
#1578: FILE: contrib/virtiofsd/fuse_common.h:287:
+#define FUSE_CAP_ASYNC_DIO^I^I(1 << 15)$

ERROR: code indent should never use tabs
#1587: FILE: contrib/virtiofsd/fuse_common.h:296:
+#define FUSE_CAP_WRITEBACK_CACHE^I(1 << 16)$

ERROR: code indent should never use tabs
#1600: FILE: contrib/virtiofsd/fuse_common.h:309:
+#define FUSE_CAP_NO_OPEN_SUPPORT^I(1 << 17)$

ERROR: code indent should never use tabs
#1662: FILE: contrib/virtiofsd/fuse_common.h:371:
+#define FUSE_IOCTL_COMPAT^I(1 << 0)$

ERROR: code indent should never use tabs
#1663: FILE: contrib/virtiofsd/fuse_common.h:372:
+#define FUSE_IOCTL_UNRESTRICTED^I(1 << 1)$

ERROR: code indent should never use tabs
#1664: FILE: contrib/virtiofsd/fuse_common.h:373:
+#define FUSE_IOCTL_RETRY^I(1 << 2)$

ERROR: code indent should never use tabs
#1665: FILE: contrib/virtiofsd/fuse_common.h:374:
+#define FUSE_IOCTL_DIR^I^I(1 << 4)$

ERROR: code indent should never use tabs
#1667: FILE: contrib/virtiofsd/fuse_common.h:376:
+#define FUSE_IOCTL_MAX_IOV^I256$

ERROR: code indent should never use tabs
#1677: FILE: contrib/virtiofsd/fuse_common.h:386:
+^I/**$

ERROR: code indent should never use tabs
#1678: FILE: contrib/virtiofsd/fuse_common.h:387:
+^I * Major version of the protocol (read-only)$

ERROR: code indent should never use tabs
#1679: FILE: contrib/virtiofsd/fuse_common.h:388:
+^I */$

ERROR: code indent should never use tabs
#1680: FILE: contrib/virtiofsd/fuse_common.h:389:
+^Iunsigned proto_major;$

ERROR: code indent should never use tabs
#1682: FILE: contrib/virtiofsd/fuse_common.h:391:
+^I/**$

ERROR: code indent should never use tabs
#1683: FILE: contrib/virtiofsd/fuse_common.h:392:
+^I * Minor version of the protocol (read-only)$

ERROR: code indent should never use tabs
#1684: FILE: contrib/virtiofsd/fuse_common.h:393:
+^I */$

ERROR: code indent should never use tabs
#1685: FILE: contrib/virtiofsd/fuse_common.h:394:
+^Iunsigned proto_minor;$

ERROR: code indent should never use tabs
#1687: FILE: contrib/virtiofsd/fuse_common.h:396:
+^I/**$

ERROR: code indent should never use tabs
#1688: FILE: contrib/virtiofsd/fuse_common.h:397:
+^I * Maximum size of the write buffer$

ERROR: code indent should never use tabs
#1689: FILE: contrib/virtiofsd/fuse_common.h:398:
+^I */$

ERROR: code indent should never use tabs
#1690: FILE: contrib/virtiofsd/fuse_common.h:399:
+^Iunsigned max_write;$

ERROR: code indent should never use tabs
#1692: FILE: contrib/virtiofsd/fuse_common.h:401:
+^I/**$

ERROR: code indent should never use tabs
#1693: FILE: contrib/virtiofsd/fuse_common.h:402:
+^I * Maximum size of read requests. A value of zero indicates no$

ERROR: code indent should never use tabs
#1694: FILE: contrib/virtiofsd/fuse_common.h:403:
+^I * limit. However, even if the filesystem does not specify a$

ERROR: code indent should never use tabs
#1695: FILE: contrib/virtiofsd/fuse_common.h:404:
+^I * limit, the maximum size of read requests will still be$

ERROR: code indent should never use tabs
#1696: FILE: contrib/virtiofsd/fuse_common.h:405:
+^I * limited by the kernel.$

ERROR: code indent should never use tabs
#1697: FILE: contrib/virtiofsd/fuse_common.h:406:
+^I *$

ERROR: code indent should never use tabs
#1698: FILE: contrib/virtiofsd/fuse_common.h:407:
+^I * NOTE: For the time being, the maximum size of read requests$

ERROR: code indent should never use tabs
#1699: FILE: contrib/virtiofsd/fuse_common.h:408:
+^I * must be set both here *and* passed to fuse_session_new()$

ERROR: code indent should never use tabs
#1700: FILE: contrib/virtiofsd/fuse_common.h:409:
+^I * using the ``-o max_read=<n>`` mount option. At some point$

ERROR: code indent should never use tabs
#1701: FILE: contrib/virtiofsd/fuse_common.h:410:
+^I * in the future, specifying the mount option will no longer$

ERROR: code indent should never use tabs
#1702: FILE: contrib/virtiofsd/fuse_common.h:411:
+^I * be necessary.$

ERROR: code indent should never use tabs
#1703: FILE: contrib/virtiofsd/fuse_common.h:412:
+^I */$

ERROR: code indent should never use tabs
#1704: FILE: contrib/virtiofsd/fuse_common.h:413:
+^Iunsigned max_read;$

ERROR: code indent should never use tabs
#1706: FILE: contrib/virtiofsd/fuse_common.h:415:
+^I/**$

ERROR: code indent should never use tabs
#1707: FILE: contrib/virtiofsd/fuse_common.h:416:
+^I * Maximum readahead$

ERROR: code indent should never use tabs
#1708: FILE: contrib/virtiofsd/fuse_common.h:417:
+^I */$

ERROR: code indent should never use tabs
#1709: FILE: contrib/virtiofsd/fuse_common.h:418:
+^Iunsigned max_readahead;$

ERROR: code indent should never use tabs
#1711: FILE: contrib/virtiofsd/fuse_common.h:420:
+^I/**$

ERROR: code indent should never use tabs
#1712: FILE: contrib/virtiofsd/fuse_common.h:421:
+^I * Capability flags that the kernel supports (read-only)$

ERROR: code indent should never use tabs
#1713: FILE: contrib/virtiofsd/fuse_common.h:422:
+^I */$

ERROR: code indent should never use tabs
#1714: FILE: contrib/virtiofsd/fuse_common.h:423:
+^Iunsigned capable;$

ERROR: code indent should never use tabs
#1716: FILE: contrib/virtiofsd/fuse_common.h:425:
+^I/**$

ERROR: code indent should never use tabs
#1717: FILE: contrib/virtiofsd/fuse_common.h:426:
+^I * Capability flags that the filesystem wants to enable.$

ERROR: code indent should never use tabs
#1718: FILE: contrib/virtiofsd/fuse_common.h:427:
+^I *$

ERROR: code indent should never use tabs
#1719: FILE: contrib/virtiofsd/fuse_common.h:428:
+^I * libfuse attempts to initialize this field with$

ERROR: code indent should never use tabs
#1720: FILE: contrib/virtiofsd/fuse_common.h:429:
+^I * reasonable default values before calling the init() handler.$

ERROR: code indent should never use tabs
#1721: FILE: contrib/virtiofsd/fuse_common.h:430:
+^I */$

ERROR: code indent should never use tabs
#1722: FILE: contrib/virtiofsd/fuse_common.h:431:
+^Iunsigned want;$

ERROR: code indent should never use tabs
#1724: FILE: contrib/virtiofsd/fuse_common.h:433:
+^I/**$

ERROR: code indent should never use tabs
#1725: FILE: contrib/virtiofsd/fuse_common.h:434:
+^I * Maximum number of pending "background" requests. A$

ERROR: code indent should never use tabs
#1726: FILE: contrib/virtiofsd/fuse_common.h:435:
+^I * background request is any type of request for which the$

ERROR: code indent should never use tabs
#1727: FILE: contrib/virtiofsd/fuse_common.h:436:
+^I * total number is not limited by other means. As of kernel$

ERROR: code indent should never use tabs
#1728: FILE: contrib/virtiofsd/fuse_common.h:437:
+^I * 4.8, only two types of requests fall into this category:$

ERROR: code indent should never use tabs
#1729: FILE: contrib/virtiofsd/fuse_common.h:438:
+^I *$

ERROR: code indent should never use tabs
#1730: FILE: contrib/virtiofsd/fuse_common.h:439:
+^I *   1. Read-ahead requests$

ERROR: code indent should never use tabs
#1731: FILE: contrib/virtiofsd/fuse_common.h:440:
+^I *   2. Asynchronous direct I/O requests$

ERROR: code indent should never use tabs
#1732: FILE: contrib/virtiofsd/fuse_common.h:441:
+^I *$

ERROR: code indent should never use tabs
#1733: FILE: contrib/virtiofsd/fuse_common.h:442:
+^I * Read-ahead requests are generated (if max_readahead is$

ERROR: code indent should never use tabs
#1734: FILE: contrib/virtiofsd/fuse_common.h:443:
+^I * non-zero) by the kernel to preemptively fill its caches$

ERROR: code indent should never use tabs
#1735: FILE: contrib/virtiofsd/fuse_common.h:444:
+^I * when it anticipates that userspace will soon read more$

ERROR: code indent should never use tabs
#1736: FILE: contrib/virtiofsd/fuse_common.h:445:
+^I * data.$

ERROR: code indent should never use tabs
#1737: FILE: contrib/virtiofsd/fuse_common.h:446:
+^I *$

ERROR: code indent should never use tabs
#1738: FILE: contrib/virtiofsd/fuse_common.h:447:
+^I * Asynchronous direct I/O requests are generated if$

ERROR: code indent should never use tabs
#1739: FILE: contrib/virtiofsd/fuse_common.h:448:
+^I * FUSE_CAP_ASYNC_DIO is enabled and userspace submits a large$

ERROR: code indent should never use tabs
#1740: FILE: contrib/virtiofsd/fuse_common.h:449:
+^I * direct I/O request. In this case the kernel will internally$

ERROR: code indent should never use tabs
#1741: FILE: contrib/virtiofsd/fuse_common.h:450:
+^I * split it up into multiple smaller requests and submit them$

ERROR: code indent should never use tabs
#1742: FILE: contrib/virtiofsd/fuse_common.h:451:
+^I * to the filesystem concurrently.$

ERROR: code indent should never use tabs
#1743: FILE: contrib/virtiofsd/fuse_common.h:452:
+^I *$

ERROR: code indent should never use tabs
#1744: FILE: contrib/virtiofsd/fuse_common.h:453:
+^I * Note that the following requests are *not* background$

ERROR: code indent should never use tabs
#1745: FILE: contrib/virtiofsd/fuse_common.h:454:
+^I * requests: writeback requests (limited by the kernel's$

ERROR: code indent should never use tabs
#1746: FILE: contrib/virtiofsd/fuse_common.h:455:
+^I * flusher algorithm), regular (i.e., synchronous and$

ERROR: code indent should never use tabs
#1747: FILE: contrib/virtiofsd/fuse_common.h:456:
+^I * buffered) userspace read/write requests (limited to one per$

ERROR: code indent should never use tabs
#1748: FILE: contrib/virtiofsd/fuse_common.h:457:
+^I * thread), asynchronous read requests (Linux's io_submit(2)$

ERROR: code indent should never use tabs
#1749: FILE: contrib/virtiofsd/fuse_common.h:458:
+^I * call actually blocks, so these are also limited to one per$

ERROR: code indent should never use tabs
#1750: FILE: contrib/virtiofsd/fuse_common.h:459:
+^I * thread).$

ERROR: code indent should never use tabs
#1751: FILE: contrib/virtiofsd/fuse_common.h:460:
+^I */$

ERROR: code indent should never use tabs
#1752: FILE: contrib/virtiofsd/fuse_common.h:461:
+^Iunsigned max_background;$

ERROR: code indent should never use tabs
#1754: FILE: contrib/virtiofsd/fuse_common.h:463:
+^I/**$

ERROR: code indent should never use tabs
#1755: FILE: contrib/virtiofsd/fuse_common.h:464:
+^I * Kernel congestion threshold parameter. If the number of pending$

ERROR: code indent should never use tabs
#1756: FILE: contrib/virtiofsd/fuse_common.h:465:
+^I * background requests exceeds this number, the FUSE kernel module will$

ERROR: code indent should never use tabs
#1757: FILE: contrib/virtiofsd/fuse_common.h:466:
+^I * mark the filesystem as "congested". This instructs the kernel to$

ERROR: code indent should never use tabs
#1758: FILE: contrib/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
#1759: FILE: contrib/virtiofsd/fuse_common.h:468:
+^I * adjust its algorithms accordingly (e.g. by putting a waiting thread$

ERROR: code indent should never use tabs
#1760: FILE: contrib/virtiofsd/fuse_common.h:469:
+^I * to sleep instead of using a busy-loop).$

ERROR: code indent should never use tabs
#1761: FILE: contrib/virtiofsd/fuse_common.h:470:
+^I */$

ERROR: code indent should never use tabs
#1762: FILE: contrib/virtiofsd/fuse_common.h:471:
+^Iunsigned congestion_threshold;$

ERROR: code indent should never use tabs
#1764: FILE: contrib/virtiofsd/fuse_common.h:473:
+^I/**$

ERROR: code indent should never use tabs
#1765: FILE: contrib/virtiofsd/fuse_common.h:474:
+^I * When FUSE_CAP_WRITEBACK_CACHE is enabled, the kernel is responsible$

ERROR: code indent should never use tabs
#1766: FILE: contrib/virtiofsd/fuse_common.h:475:
+^I * for updating mtime and ctime when write requests are received. The$

ERROR: code indent should never use tabs
#1767: FILE: contrib/virtiofsd/fuse_common.h:476:
+^I * updated values are passed to the filesystem with setattr() requests.$

ERROR: code indent should never use tabs
#1768: FILE: contrib/virtiofsd/fuse_common.h:477:
+^I * However, if the filesystem does not support the full resolution of$

ERROR: code indent should never use tabs
#1769: FILE: contrib/virtiofsd/fuse_common.h:478:
+^I * the kernel timestamps (nanoseconds), the mtime and ctime values used$

ERROR: code indent should never use tabs
#1770: FILE: contrib/virtiofsd/fuse_common.h:479:
+^I * by kernel and filesystem will differ (and result in an apparent$

ERROR: code indent should never use tabs
#1771: FILE: contrib/virtiofsd/fuse_common.h:480:
+^I * change of times after a cache flush).$

ERROR: code indent should never use tabs
#1772: FILE: contrib/virtiofsd/fuse_common.h:481:
+^I *$

ERROR: code indent should never use tabs
#1773: FILE: contrib/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
#1774: FILE: contrib/virtiofsd/fuse_common.h:483:
+^I * kernel about the timestamp granularity supported by the file-system.$

ERROR: code indent should never use tabs
#1775: FILE: contrib/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
#1776: FILE: contrib/virtiofsd/fuse_common.h:485:
+^I * nano-second resolution. Filesystems supporting only second resolution$

ERROR: code indent should never use tabs
#1777: FILE: contrib/virtiofsd/fuse_common.h:486:
+^I * should set this to 1000000000.$

ERROR: code indent should never use tabs
#1778: FILE: contrib/virtiofsd/fuse_common.h:487:
+^I */$

ERROR: code indent should never use tabs
#1779: FILE: contrib/virtiofsd/fuse_common.h:488:
+^Iunsigned time_gran;$

ERROR: code indent should never use tabs
#1781: FILE: contrib/virtiofsd/fuse_common.h:490:
+^I/**$

ERROR: code indent should never use tabs
#1782: FILE: contrib/virtiofsd/fuse_common.h:491:
+^I * For future use.$

ERROR: code indent should never use tabs
#1783: FILE: contrib/virtiofsd/fuse_common.h:492:
+^I */$

ERROR: code indent should never use tabs
#1784: FILE: contrib/virtiofsd/fuse_common.h:493:
+^Iunsigned reserved[22];$

WARNING: line over 80 characters
#1811: FILE: contrib/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"
#1833: FILE: contrib/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
#1843: FILE: contrib/virtiofsd/fuse_common.h:552:
+^I^I^I  struct fuse_conn_info *conn);$

WARNING: Block comments use a leading /* on a separate line
#1874: FILE: contrib/virtiofsd/fuse_common.h:583:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#1875: FILE: contrib/virtiofsd/fuse_common.h:584:
+ * Data buffer^I^I^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#1876: FILE: contrib/virtiofsd/fuse_common.h:585:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#1882: FILE: contrib/virtiofsd/fuse_common.h:591:
+^I/**$

ERROR: code indent should never use tabs
#1883: FILE: contrib/virtiofsd/fuse_common.h:592:
+^I * Buffer contains a file descriptor$

ERROR: code indent should never use tabs
#1884: FILE: contrib/virtiofsd/fuse_common.h:593:
+^I *$

ERROR: code indent should never use tabs
#1885: FILE: contrib/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
#1886: FILE: contrib/virtiofsd/fuse_common.h:595:
+^I * .mem fields is valid.$

ERROR: code indent should never use tabs
#1887: FILE: contrib/virtiofsd/fuse_common.h:596:
+^I */$

ERROR: code indent should never use tabs
#1888: FILE: contrib/virtiofsd/fuse_common.h:597:
+^IFUSE_BUF_IS_FD^I^I= (1 << 1),$

ERROR: code indent should never use tabs
#1890: FILE: contrib/virtiofsd/fuse_common.h:599:
+^I/**$

ERROR: code indent should never use tabs
#1891: FILE: contrib/virtiofsd/fuse_common.h:600:
+^I * Seek on the file descriptor$

ERROR: code indent should never use tabs
#1892: FILE: contrib/virtiofsd/fuse_common.h:601:
+^I *$

ERROR: code indent should never use tabs
#1893: FILE: contrib/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
#1894: FILE: contrib/virtiofsd/fuse_common.h:603:
+^I * used to seek to the given offset before performing$

ERROR: code indent should never use tabs
#1895: FILE: contrib/virtiofsd/fuse_common.h:604:
+^I * operation on file descriptor.$

ERROR: code indent should never use tabs
#1896: FILE: contrib/virtiofsd/fuse_common.h:605:
+^I */$

ERROR: code indent should never use tabs
#1897: FILE: contrib/virtiofsd/fuse_common.h:606:
+^IFUSE_BUF_FD_SEEK^I= (1 << 2),$

ERROR: code indent should never use tabs
#1899: FILE: contrib/virtiofsd/fuse_common.h:608:
+^I/**$

ERROR: code indent should never use tabs
#1900: FILE: contrib/virtiofsd/fuse_common.h:609:
+^I * Retry operation on file descriptor$

ERROR: code indent should never use tabs
#1901: FILE: contrib/virtiofsd/fuse_common.h:610:
+^I *$

ERROR: code indent should never use tabs
#1902: FILE: contrib/virtiofsd/fuse_common.h:611:
+^I * If this flag is set then retry operation on file descriptor$

ERROR: code indent should never use tabs
#1903: FILE: contrib/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
#1904: FILE: contrib/virtiofsd/fuse_common.h:613:
+^I * detected.$

ERROR: code indent should never use tabs
#1905: FILE: contrib/virtiofsd/fuse_common.h:614:
+^I */$

ERROR: code indent should never use tabs
#1906: FILE: contrib/virtiofsd/fuse_common.h:615:
+^IFUSE_BUF_FD_RETRY^I= (1 << 3),$

ERROR: code indent should never use tabs
#1913: FILE: contrib/virtiofsd/fuse_common.h:622:
+^I/**$

ERROR: code indent should never use tabs
#1914: FILE: contrib/virtiofsd/fuse_common.h:623:
+^I * Don't use splice(2)$

ERROR: code indent should never use tabs
#1915: FILE: contrib/virtiofsd/fuse_common.h:624:
+^I *$

ERROR: code indent should never use tabs
#1916: FILE: contrib/virtiofsd/fuse_common.h:625:
+^I * Always fall back to using read and write instead of$

ERROR: code indent should never use tabs
#1917: FILE: contrib/virtiofsd/fuse_common.h:626:
+^I * splice(2) to copy data from one file descriptor to another.$

ERROR: code indent should never use tabs
#1918: FILE: contrib/virtiofsd/fuse_common.h:627:
+^I *$

ERROR: code indent should never use tabs
#1919: FILE: contrib/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
#1920: FILE: contrib/virtiofsd/fuse_common.h:629:
+^I * unavailable.$

ERROR: code indent should never use tabs
#1921: FILE: contrib/virtiofsd/fuse_common.h:630:
+^I */$

ERROR: code indent should never use tabs
#1922: FILE: contrib/virtiofsd/fuse_common.h:631:
+^IFUSE_BUF_NO_SPLICE^I= (1 << 1),$

ERROR: code indent should never use tabs
#1924: FILE: contrib/virtiofsd/fuse_common.h:633:
+^I/**$

ERROR: code indent should never use tabs
#1925: FILE: contrib/virtiofsd/fuse_common.h:634:
+^I * Force splice$

ERROR: code indent should never use tabs
#1926: FILE: contrib/virtiofsd/fuse_common.h:635:
+^I *$

ERROR: code indent should never use tabs
#1927: FILE: contrib/virtiofsd/fuse_common.h:636:
+^I * Always use splice(2) to copy data from one file descriptor$

ERROR: code indent should never use tabs
#1928: FILE: contrib/virtiofsd/fuse_common.h:637:
+^I * to another.  If splice is not available, return -EINVAL.$

ERROR: code indent should never use tabs
#1929: FILE: contrib/virtiofsd/fuse_common.h:638:
+^I */$

ERROR: code indent should never use tabs
#1930: FILE: contrib/virtiofsd/fuse_common.h:639:
+^IFUSE_BUF_FORCE_SPLICE^I= (1 << 2),$

ERROR: code indent should never use tabs
#1932: FILE: contrib/virtiofsd/fuse_common.h:641:
+^I/**$

ERROR: code indent should never use tabs
#1933: FILE: contrib/virtiofsd/fuse_common.h:642:
+^I * Try to move data with splice.$

ERROR: code indent should never use tabs
#1934: FILE: contrib/virtiofsd/fuse_common.h:643:
+^I *$

ERROR: code indent should never use tabs
#1935: FILE: contrib/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
#1936: FILE: contrib/virtiofsd/fuse_common.h:645:
+^I * destination instead of copying.  See documentation of$

ERROR: code indent should never use tabs
#1937: FILE: contrib/virtiofsd/fuse_common.h:646:
+^I * SPLICE_F_MOVE in splice(2) man page.$

ERROR: code indent should never use tabs
#1938: FILE: contrib/virtiofsd/fuse_common.h:647:
+^I */$

ERROR: code indent should never use tabs
#1939: FILE: contrib/virtiofsd/fuse_common.h:648:
+^IFUSE_BUF_SPLICE_MOVE^I= (1 << 3),$

ERROR: code indent should never use tabs
#1941: FILE: contrib/virtiofsd/fuse_common.h:650:
+^I/**$

ERROR: code indent should never use tabs
#1942: FILE: contrib/virtiofsd/fuse_common.h:651:
+^I * Don't block on the pipe when copying data with splice$

ERROR: code indent should never use tabs
#1943: FILE: contrib/virtiofsd/fuse_common.h:652:
+^I *$

ERROR: code indent should never use tabs
#1944: FILE: contrib/virtiofsd/fuse_common.h:653:
+^I * Makes the operations on the pipe non-blocking (if the pipe$

ERROR: code indent should never use tabs
#1945: FILE: contrib/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
#1946: FILE: contrib/virtiofsd/fuse_common.h:655:
+^I * man page.$

ERROR: code indent should never use tabs
#1947: FILE: contrib/virtiofsd/fuse_common.h:656:
+^I */$

ERROR: code indent should never use tabs
#1948: FILE: contrib/virtiofsd/fuse_common.h:657:
+^IFUSE_BUF_SPLICE_NONBLOCK= (1 << 4),$

ERROR: spaces required around that '=' (ctx:VxW)
#1948: FILE: contrib/virtiofsd/fuse_common.h:657:
+       FUSE_BUF_SPLICE_NONBLOCK= (1 << 4),
                                ^

ERROR: code indent should never use tabs
#1958: FILE: contrib/virtiofsd/fuse_common.h:667:
+^I/**$

ERROR: code indent should never use tabs
#1959: FILE: contrib/virtiofsd/fuse_common.h:668:
+^I * Size of data in bytes$

ERROR: code indent should never use tabs
#1960: FILE: contrib/virtiofsd/fuse_common.h:669:
+^I */$

ERROR: code indent should never use tabs
#1961: FILE: contrib/virtiofsd/fuse_common.h:670:
+^Isize_t size;$

ERROR: code indent should never use tabs
#1963: FILE: contrib/virtiofsd/fuse_common.h:672:
+^I/**$

ERROR: code indent should never use tabs
#1964: FILE: contrib/virtiofsd/fuse_common.h:673:
+^I * Buffer flags$

ERROR: code indent should never use tabs
#1965: FILE: contrib/virtiofsd/fuse_common.h:674:
+^I */$

ERROR: code indent should never use tabs
#1966: FILE: contrib/virtiofsd/fuse_common.h:675:
+^Ienum fuse_buf_flags flags;$

ERROR: code indent should never use tabs
#1968: FILE: contrib/virtiofsd/fuse_common.h:677:
+^I/**$

ERROR: code indent should never use tabs
#1969: FILE: contrib/virtiofsd/fuse_common.h:678:
+^I * Memory pointer$

ERROR: code indent should never use tabs
#1970: FILE: contrib/virtiofsd/fuse_common.h:679:
+^I *$

ERROR: code indent should never use tabs
#1971: FILE: contrib/virtiofsd/fuse_common.h:680:
+^I * Used unless FUSE_BUF_IS_FD flag is set.$

ERROR: code indent should never use tabs
#1972: FILE: contrib/virtiofsd/fuse_common.h:681:
+^I */$

ERROR: code indent should never use tabs
#1973: FILE: contrib/virtiofsd/fuse_common.h:682:
+^Ivoid *mem;$

ERROR: code indent should never use tabs
#1975: FILE: contrib/virtiofsd/fuse_common.h:684:
+^I/**$

ERROR: code indent should never use tabs
#1976: FILE: contrib/virtiofsd/fuse_common.h:685:
+^I * File descriptor$

ERROR: code indent should never use tabs
#1977: FILE: contrib/virtiofsd/fuse_common.h:686:
+^I *$

ERROR: code indent should never use tabs
#1978: FILE: contrib/virtiofsd/fuse_common.h:687:
+^I * Used if FUSE_BUF_IS_FD flag is set.$

ERROR: code indent should never use tabs
#1979: FILE: contrib/virtiofsd/fuse_common.h:688:
+^I */$

ERROR: code indent should never use tabs
#1980: FILE: contrib/virtiofsd/fuse_common.h:689:
+^Iint fd;$

ERROR: code indent should never use tabs
#1982: FILE: contrib/virtiofsd/fuse_common.h:691:
+^I/**$

ERROR: code indent should never use tabs
#1983: FILE: contrib/virtiofsd/fuse_common.h:692:
+^I * File position$

ERROR: code indent should never use tabs
#1984: FILE: contrib/virtiofsd/fuse_common.h:693:
+^I *$

ERROR: code indent should never use tabs
#1985: FILE: contrib/virtiofsd/fuse_common.h:694:
+^I * Used if FUSE_BUF_FD_SEEK flag is set.$

ERROR: code indent should never use tabs
#1986: FILE: contrib/virtiofsd/fuse_common.h:695:
+^I */$

ERROR: code indent should never use tabs
#1987: FILE: contrib/virtiofsd/fuse_common.h:696:
+^Ioff_t pos;$

ERROR: code indent should never use tabs
#1999: FILE: contrib/virtiofsd/fuse_common.h:708:
+^I/**$

ERROR: code indent should never use tabs
#2000: FILE: contrib/virtiofsd/fuse_common.h:709:
+^I * Number of buffers in the array$

ERROR: code indent should never use tabs
#2001: FILE: contrib/virtiofsd/fuse_common.h:710:
+^I */$

ERROR: code indent should never use tabs
#2002: FILE: contrib/virtiofsd/fuse_common.h:711:
+^Isize_t count;$

ERROR: code indent should never use tabs
#2004: FILE: contrib/virtiofsd/fuse_common.h:713:
+^I/**$

ERROR: code indent should never use tabs
#2005: FILE: contrib/virtiofsd/fuse_common.h:714:
+^I * Index of current buffer within the array$

ERROR: code indent should never use tabs
#2006: FILE: contrib/virtiofsd/fuse_common.h:715:
+^I */$

ERROR: code indent should never use tabs
#2007: FILE: contrib/virtiofsd/fuse_common.h:716:
+^Isize_t idx;$

ERROR: code indent should never use tabs
#2009: FILE: contrib/virtiofsd/fuse_common.h:718:
+^I/**$

ERROR: code indent should never use tabs
#2010: FILE: contrib/virtiofsd/fuse_common.h:719:
+^I * Current offset within the current buffer$

ERROR: code indent should never use tabs
#2011: FILE: contrib/virtiofsd/fuse_common.h:720:
+^I */$

ERROR: code indent should never use tabs
#2012: FILE: contrib/virtiofsd/fuse_common.h:721:
+^Isize_t off;$

ERROR: code indent should never use tabs
#2014: FILE: contrib/virtiofsd/fuse_common.h:723:
+^I/**$

ERROR: code indent should never use tabs
#2015: FILE: contrib/virtiofsd/fuse_common.h:724:
+^I * Array of buffers$

ERROR: code indent should never use tabs
#2016: FILE: contrib/virtiofsd/fuse_common.h:725:
+^I */$

ERROR: code indent should never use tabs
#2017: FILE: contrib/virtiofsd/fuse_common.h:726:
+^Istruct fuse_buf buf[1];$

ERROR: code indent should never use tabs
#2021: FILE: contrib/virtiofsd/fuse_common.h:730:
+#define FUSE_BUFVEC_INIT(size__)^I^I^I^I\$

ERROR: code indent should never use tabs
#2022: FILE: contrib/virtiofsd/fuse_common.h:731:
+^I((struct fuse_bufvec) {^I^I^I^I^I\$

ERROR: code indent should never use tabs
#2023: FILE: contrib/virtiofsd/fuse_common.h:732:
+^I^I/* .count= */ 1,^I^I^I^I\$

WARNING: Block comments use a leading /* on a separate line
#2023: FILE: contrib/virtiofsd/fuse_common.h:732:
+               /* .count= */ 1,                                \

ERROR: code indent should never use tabs
#2024: FILE: contrib/virtiofsd/fuse_common.h:733:
+^I^I/* .idx =  */ 0,^I^I^I^I\$

WARNING: Block comments use a leading /* on a separate line
#2024: FILE: contrib/virtiofsd/fuse_common.h:733:
+               /* .idx =  */ 0,                                \

ERROR: code indent should never use tabs
#2025: FILE: contrib/virtiofsd/fuse_common.h:734:
+^I^I/* .off =  */ 0,^I^I^I^I\$

WARNING: Block comments use a leading /* on a separate line
#2025: FILE: contrib/virtiofsd/fuse_common.h:734:
+               /* .off =  */ 0,                                \

ERROR: code indent should never use tabs
#2026: FILE: contrib/virtiofsd/fuse_common.h:735:
+^I^I/* .buf =  */ { /* [0] = */ {^I^I^I\$

WARNING: Block comments use a leading /* on a separate line
#2026: FILE: contrib/virtiofsd/fuse_common.h:735:
+               /* .buf =  */ { /* [0] = */ {                   \

ERROR: code indent should never use tabs
#2027: FILE: contrib/virtiofsd/fuse_common.h:736:
+^I^I^I/* .size =  */ (size__),^I^I\$

WARNING: Block comments use a leading /* on a separate line
#2027: FILE: contrib/virtiofsd/fuse_common.h:736:
+                       /* .size =  */ (size__),                \

ERROR: code indent should never use tabs
#2028: FILE: contrib/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
#2028: FILE: contrib/virtiofsd/fuse_common.h:737:
+                       /* .flags = */ (enum fuse_buf_flags) 0, \

ERROR: code indent should never use tabs
#2029: FILE: contrib/virtiofsd/fuse_common.h:738:
+^I^I^I/* .mem =   */ NULL,^I^I^I\$

WARNING: Block comments use a leading /* on a separate line
#2029: FILE: contrib/virtiofsd/fuse_common.h:738:
+                       /* .mem =   */ NULL,                    \

ERROR: code indent should never use tabs
#2030: FILE: contrib/virtiofsd/fuse_common.h:739:
+^I^I^I/* .fd =    */ -1,^I^I^I\$

WARNING: Block comments use a leading /* on a separate line
#2030: FILE: contrib/virtiofsd/fuse_common.h:739:
+                       /* .fd =    */ -1,                      \

ERROR: code indent should never use tabs
#2031: FILE: contrib/virtiofsd/fuse_common.h:740:
+^I^I^I/* .pos =   */ 0,^I^I^I\$

WARNING: Block comments use a leading /* on a separate line
#2031: FILE: contrib/virtiofsd/fuse_common.h:740:
+                       /* .pos =   */ 0,                       \

ERROR: code indent should never use tabs
#2032: FILE: contrib/virtiofsd/fuse_common.h:741:
+^I^I} }^I^I^I^I^I^I\$

ERROR: code indent should never use tabs
#2033: FILE: contrib/virtiofsd/fuse_common.h:742:
+^I} )$

ERROR: space prohibited before that close parenthesis ')'
#2033: FILE: contrib/virtiofsd/fuse_common.h:742:
+       } )

ERROR: code indent should never use tabs
#2052: FILE: contrib/virtiofsd/fuse_common.h:761:
+^I^I      enum fuse_buf_copy_flags flags);$

WARNING: Block comments use a leading /* on a separate line
#2054: FILE: contrib/virtiofsd/fuse_common.h:763:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#2055: FILE: contrib/virtiofsd/fuse_common.h:764:
+ * Signal handling^I^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#2056: FILE: contrib/virtiofsd/fuse_common.h:765:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#2061: FILE: contrib/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
#2088: FILE: contrib/virtiofsd/fuse_common.h:797:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#2089: FILE: contrib/virtiofsd/fuse_common.h:798:
+ * Compatibility stuff^I^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#2090: FILE: contrib/virtiofsd/fuse_common.h:799:
+ * ----------------------------------------------------------- */

WARNING: architecture specific defines should be avoided
#2096: FILE: contrib/virtiofsd/fuse_common.h:805:
+#ifdef __cplusplus

ERROR: line over 90 characters
#2107: FILE: contrib/virtiofsd/fuse_common.h:816:
+#if defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 6) && !defined __cplusplus

WARNING: architecture specific defines should be avoided
#2107: FILE: contrib/virtiofsd/fuse_common.h:816:
+#if defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 6) && !defined __cplusplus

ERROR: code indent should never use tabs
#2111: FILE: contrib/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
#2122: FILE: contrib/virtiofsd/fuse_i.h:2:
+/*
+  FUSE: Filesystem in Userspace

ERROR: code indent should never use tabs
#2135: FILE: contrib/virtiofsd/fuse_i.h:15:
+^Istruct fuse_session *se;$

ERROR: code indent should never use tabs
#2136: FILE: contrib/virtiofsd/fuse_i.h:16:
+^Iuint64_t unique;$

ERROR: code indent should never use tabs
#2137: FILE: contrib/virtiofsd/fuse_i.h:17:
+^Iint ctr;$

ERROR: code indent should never use tabs
#2138: FILE: contrib/virtiofsd/fuse_i.h:18:
+^Ipthread_mutex_t lock;$

ERROR: code indent should never use tabs
#2139: FILE: contrib/virtiofsd/fuse_i.h:19:
+^Istruct fuse_ctx ctx;$

ERROR: code indent should never use tabs
#2140: FILE: contrib/virtiofsd/fuse_i.h:20:
+^Istruct fuse_chan *ch;$

ERROR: code indent should never use tabs
#2141: FILE: contrib/virtiofsd/fuse_i.h:21:
+^Iint interrupted;$

ERROR: code indent should never use tabs
#2142: FILE: contrib/virtiofsd/fuse_i.h:22:
+^Iunsigned int ioctl_64bit : 1;$

ERROR: spaces prohibited around that ':' (ctx:WxW)
#2142: FILE: contrib/virtiofsd/fuse_i.h:22:
+       unsigned int ioctl_64bit : 1;
                                 ^

ERROR: code indent should never use tabs
#2143: FILE: contrib/virtiofsd/fuse_i.h:23:
+^Iunion {$

ERROR: code indent should never use tabs
#2144: FILE: contrib/virtiofsd/fuse_i.h:24:
+^I^Istruct {$

ERROR: code indent should never use tabs
#2145: FILE: contrib/virtiofsd/fuse_i.h:25:
+^I^I^Iuint64_t unique;$

ERROR: code indent should never use tabs
#2146: FILE: contrib/virtiofsd/fuse_i.h:26:
+^I^I} i;$

ERROR: code indent should never use tabs
#2147: FILE: contrib/virtiofsd/fuse_i.h:27:
+^I^Istruct {$

ERROR: code indent should never use tabs
#2148: FILE: contrib/virtiofsd/fuse_i.h:28:
+^I^I^Ifuse_interrupt_func_t func;$

ERROR: code indent should never use tabs
#2149: FILE: contrib/virtiofsd/fuse_i.h:29:
+^I^I^Ivoid *data;$

ERROR: code indent should never use tabs
#2150: FILE: contrib/virtiofsd/fuse_i.h:30:
+^I^I} ni;$

ERROR: code indent should never use tabs
#2151: FILE: contrib/virtiofsd/fuse_i.h:31:
+^I} u;$

ERROR: code indent should never use tabs
#2152: FILE: contrib/virtiofsd/fuse_i.h:32:
+^Istruct fuse_req *next;$

ERROR: code indent should never use tabs
#2153: FILE: contrib/virtiofsd/fuse_i.h:33:
+^Istruct fuse_req *prev;$

ERROR: code indent should never use tabs
#2157: FILE: contrib/virtiofsd/fuse_i.h:37:
+^Iuint64_t unique;$

ERROR: code indent should never use tabs
#2158: FILE: contrib/virtiofsd/fuse_i.h:38:
+^Ivoid (*reply)(struct fuse_notify_req *, fuse_req_t, fuse_ino_t,$

ERROR: code indent should never use tabs
#2159: FILE: contrib/virtiofsd/fuse_i.h:39:
+^I^I      const void *, const struct fuse_buf *);$

ERROR: code indent should never use tabs
#2160: FILE: contrib/virtiofsd/fuse_i.h:40:
+^Istruct fuse_notify_req *next;$

ERROR: code indent should never use tabs
#2161: FILE: contrib/virtiofsd/fuse_i.h:41:
+^Istruct fuse_notify_req *prev;$

ERROR: code indent should never use tabs
#2165: FILE: contrib/virtiofsd/fuse_i.h:45:
+^Ichar *mountpoint;$

ERROR: code indent should never use tabs
#2166: FILE: contrib/virtiofsd/fuse_i.h:46:
+^Ivolatile int exited;$

ERROR: Use of volatile is usually wrong, please add a comment
#2166: FILE: contrib/virtiofsd/fuse_i.h:46:
+       volatile int exited;

ERROR: code indent should never use tabs
#2167: FILE: contrib/virtiofsd/fuse_i.h:47:
+^Iint fd;$

ERROR: code indent should never use tabs
#2168: FILE: contrib/virtiofsd/fuse_i.h:48:
+^Istruct mount_opts *mo;$

ERROR: code indent should never use tabs
#2169: FILE: contrib/virtiofsd/fuse_i.h:49:
+^Iint debug;$

ERROR: code indent should never use tabs
#2170: FILE: contrib/virtiofsd/fuse_i.h:50:
+^Iint deny_others;$

ERROR: code indent should never use tabs
#2171: FILE: contrib/virtiofsd/fuse_i.h:51:
+^Istruct fuse_lowlevel_ops op;$

ERROR: code indent should never use tabs
#2172: FILE: contrib/virtiofsd/fuse_i.h:52:
+^Iint got_init;$

ERROR: code indent should never use tabs
#2173: FILE: contrib/virtiofsd/fuse_i.h:53:
+^Istruct cuse_data *cuse_data;$

ERROR: code indent should never use tabs
#2174: FILE: contrib/virtiofsd/fuse_i.h:54:
+^Ivoid *userdata;$

ERROR: code indent should never use tabs
#2175: FILE: contrib/virtiofsd/fuse_i.h:55:
+^Iuid_t owner;$

ERROR: code indent should never use tabs
#2176: FILE: contrib/virtiofsd/fuse_i.h:56:
+^Istruct fuse_conn_info conn;$

ERROR: code indent should never use tabs
#2177: FILE: contrib/virtiofsd/fuse_i.h:57:
+^Istruct fuse_req list;$

ERROR: code indent should never use tabs
#2178: FILE: contrib/virtiofsd/fuse_i.h:58:
+^Istruct fuse_req interrupts;$

ERROR: code indent should never use tabs
#2179: FILE: contrib/virtiofsd/fuse_i.h:59:
+^Ipthread_mutex_t lock;$

ERROR: code indent should never use tabs
#2180: FILE: contrib/virtiofsd/fuse_i.h:60:
+^Iint got_destroy;$

ERROR: code indent should never use tabs
#2181: FILE: contrib/virtiofsd/fuse_i.h:61:
+^Ipthread_key_t pipe_key;$

ERROR: code indent should never use tabs
#2182: FILE: contrib/virtiofsd/fuse_i.h:62:
+^Iint broken_splice_nonblock;$

ERROR: code indent should never use tabs
#2183: FILE: contrib/virtiofsd/fuse_i.h:63:
+^Iuint64_t notify_ctr;$

ERROR: code indent should never use tabs
#2184: FILE: contrib/virtiofsd/fuse_i.h:64:
+^Istruct fuse_notify_req notify_list;$

ERROR: code indent should never use tabs
#2185: FILE: contrib/virtiofsd/fuse_i.h:65:
+^Isize_t bufsize;$

ERROR: code indent should never use tabs
#2186: FILE: contrib/virtiofsd/fuse_i.h:66:
+^Iint error;$

ERROR: code indent should never use tabs
#2190: FILE: contrib/virtiofsd/fuse_i.h:70:
+^Ipthread_mutex_t lock;$

ERROR: code indent should never use tabs
#2191: FILE: contrib/virtiofsd/fuse_i.h:71:
+^Iint ctr;$

ERROR: code indent should never use tabs
#2192: FILE: contrib/virtiofsd/fuse_i.h:72:
+^Iint fd;$

ERROR: code indent should never use tabs
#2203: FILE: contrib/virtiofsd/fuse_i.h:83:
+^Ichar *name;$

ERROR: code indent should never use tabs
#2204: FILE: contrib/virtiofsd/fuse_i.h:84:
+^Ifuse_module_factory_t factory;$

ERROR: code indent should never use tabs
#2205: FILE: contrib/virtiofsd/fuse_i.h:85:
+^Istruct fuse_module *next;$

ERROR: code indent should never use tabs
#2206: FILE: contrib/virtiofsd/fuse_i.h:86:
+^Istruct fusemod_so *so;$

ERROR: code indent should never use tabs
#2207: FILE: contrib/virtiofsd/fuse_i.h:87:
+^Iint ctr;$

WARNING: Block comments use a leading /* on a separate line
#2210: FILE: contrib/virtiofsd/fuse_i.h:90:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#2211: FILE: contrib/virtiofsd/fuse_i.h:91:
+ * Channel interface (when using -o clone_fd)^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#2212: FILE: contrib/virtiofsd/fuse_i.h:92:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#2237: FILE: contrib/virtiofsd/fuse_i.h:117:
+^I^I^I       int count);$

ERROR: code indent should never use tabs
#2245: FILE: contrib/virtiofsd/fuse_i.h:125:
+^I^I^I^I struct fuse_chan *ch);$

WARNING: line over 80 characters
#2247: FILE: contrib/virtiofsd/fuse_i.h:127:
+                                 const struct fuse_buf *buf, struct fuse_chan *ch);

ERROR: code indent should never use tabs
#2247: FILE: contrib/virtiofsd/fuse_i.h:127:
+^I^I^I^I  const struct fuse_buf *buf, struct fuse_chan *ch);$

WARNING: line over 80 characters
#2249: FILE: contrib/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
#2250: FILE: contrib/virtiofsd/fuse_i.h:130:
+^I^I      size_t op_size, void *private_data);$

WARNING: line over 80 characters
#2252: FILE: contrib/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
#2267: FILE: contrib/virtiofsd/fuse_log.h:2:
+/*
+  FUSE: Filesystem in Userspace

WARNING: Block comments use a leading /* on a separate line
#2277: FILE: contrib/virtiofsd/fuse_log.h:12:
+/** @file

WARNING: architecture specific defines should be avoided
#2284: FILE: contrib/virtiofsd/fuse_log.h:19:
+#ifdef __cplusplus

ERROR: code indent should never use tabs
#2294: FILE: contrib/virtiofsd/fuse_log.h:29:
+^IFUSE_LOG_EMERG,$

ERROR: code indent should never use tabs
#2295: FILE: contrib/virtiofsd/fuse_log.h:30:
+^IFUSE_LOG_ALERT,$

ERROR: code indent should never use tabs
#2296: FILE: contrib/virtiofsd/fuse_log.h:31:
+^IFUSE_LOG_CRIT,$

ERROR: code indent should never use tabs
#2297: FILE: contrib/virtiofsd/fuse_log.h:32:
+^IFUSE_LOG_ERR,$

ERROR: code indent should never use tabs
#2298: FILE: contrib/virtiofsd/fuse_log.h:33:
+^IFUSE_LOG_WARNING,$

ERROR: code indent should never use tabs
#2299: FILE: contrib/virtiofsd/fuse_log.h:34:
+^IFUSE_LOG_NOTICE,$

ERROR: code indent should never use tabs
#2300: FILE: contrib/virtiofsd/fuse_log.h:35:
+^IFUSE_LOG_INFO,$

ERROR: code indent should never use tabs
#2301: FILE: contrib/virtiofsd/fuse_log.h:36:
+^IFUSE_LOG_DEBUG$

ERROR: code indent should never use tabs
#2318: FILE: contrib/virtiofsd/fuse_log.h:53:
+^I^I^I^Iconst char *fmt, va_list ap);$

WARNING: architecture specific defines should be avoided
#2343: FILE: contrib/virtiofsd/fuse_log.h:78:
+#ifdef __cplusplus

WARNING: Block comments use * on subsequent lines
#2355: FILE: contrib/virtiofsd/fuse_lowlevel.h:2:
+/*
+  FUSE: Filesystem in Userspace

WARNING: Block comments use a leading /* on a separate line
#2365: FILE: contrib/virtiofsd/fuse_lowlevel.h:12:
+/** @file

WARNING: architecture specific defines should be avoided
#2387: FILE: contrib/virtiofsd/fuse_lowlevel.h:34:
+#ifdef __cplusplus

WARNING: Block comments use a leading /* on a separate line
#2391: FILE: contrib/virtiofsd/fuse_lowlevel.h:38:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#2392: FILE: contrib/virtiofsd/fuse_lowlevel.h:39:
+ * Miscellaneous definitions^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#2393: FILE: contrib/virtiofsd/fuse_lowlevel.h:40:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#2413: FILE: contrib/virtiofsd/fuse_lowlevel.h:60:
+^I/** Unique inode number$

WARNING: Block comments use a leading /* on a separate line
#2413: FILE: contrib/virtiofsd/fuse_lowlevel.h:60:
+       /** Unique inode number

ERROR: code indent should never use tabs
#2414: FILE: contrib/virtiofsd/fuse_lowlevel.h:61:
+^I *$

ERROR: code indent should never use tabs
#2415: FILE: contrib/virtiofsd/fuse_lowlevel.h:62:
+^I * In lookup, zero means negative entry (from version 2.5)$

ERROR: code indent should never use tabs
#2416: FILE: contrib/virtiofsd/fuse_lowlevel.h:63:
+^I * Returning ENOENT also means negative entry, but by setting zero$

ERROR: code indent should never use tabs
#2417: FILE: contrib/virtiofsd/fuse_lowlevel.h:64:
+^I * ino the kernel may cache negative entries for entry_timeout$

ERROR: code indent should never use tabs
#2418: FILE: contrib/virtiofsd/fuse_lowlevel.h:65:
+^I * seconds.$

ERROR: code indent should never use tabs
#2419: FILE: contrib/virtiofsd/fuse_lowlevel.h:66:
+^I */$

ERROR: code indent should never use tabs
#2420: FILE: contrib/virtiofsd/fuse_lowlevel.h:67:
+^Ifuse_ino_t ino;$

ERROR: code indent should never use tabs
#2422: FILE: contrib/virtiofsd/fuse_lowlevel.h:69:
+^I/** Generation number for this entry.$

WARNING: Block comments use a leading /* on a separate line
#2422: FILE: contrib/virtiofsd/fuse_lowlevel.h:69:
+       /** Generation number for this entry.

ERROR: code indent should never use tabs
#2423: FILE: contrib/virtiofsd/fuse_lowlevel.h:70:
+^I *$

ERROR: code indent should never use tabs
#2424: FILE: contrib/virtiofsd/fuse_lowlevel.h:71:
+^I * If the file system will be exported over NFS, the$

ERROR: code indent should never use tabs
#2425: FILE: contrib/virtiofsd/fuse_lowlevel.h:72:
+^I * ino/generation pairs need to be unique over the file$

ERROR: code indent should never use tabs
#2426: FILE: contrib/virtiofsd/fuse_lowlevel.h:73:
+^I * system's lifetime (rather than just the mount time). So if$

ERROR: code indent should never use tabs
#2427: FILE: contrib/virtiofsd/fuse_lowlevel.h:74:
+^I * the file system reuses an inode after it has been deleted,$

ERROR: code indent should never use tabs
#2428: FILE: contrib/virtiofsd/fuse_lowlevel.h:75:
+^I * it must assign a new, previously unused generation number$

ERROR: code indent should never use tabs
#2429: FILE: contrib/virtiofsd/fuse_lowlevel.h:76:
+^I * to the inode at the same time.$

ERROR: code indent should never use tabs
#2430: FILE: contrib/virtiofsd/fuse_lowlevel.h:77:
+^I *$

ERROR: code indent should never use tabs
#2431: FILE: contrib/virtiofsd/fuse_lowlevel.h:78:
+^I */$

ERROR: code indent should never use tabs
#2432: FILE: contrib/virtiofsd/fuse_lowlevel.h:79:
+^Iuint64_t generation;$

ERROR: code indent should never use tabs
#2434: FILE: contrib/virtiofsd/fuse_lowlevel.h:81:
+^I/** Inode attributes.$

WARNING: Block comments use a leading /* on a separate line
#2434: FILE: contrib/virtiofsd/fuse_lowlevel.h:81:
+       /** Inode attributes.

ERROR: code indent should never use tabs
#2435: FILE: contrib/virtiofsd/fuse_lowlevel.h:82:
+^I *$

ERROR: code indent should never use tabs
#2436: FILE: contrib/virtiofsd/fuse_lowlevel.h:83:
+^I * Even if attr_timeout == 0, attr must be correct. For example,$

ERROR: code indent should never use tabs
#2437: FILE: contrib/virtiofsd/fuse_lowlevel.h:84:
+^I * for open(), FUSE uses attr.st_size from lookup() to determine$

ERROR: code indent should never use tabs
#2438: FILE: contrib/virtiofsd/fuse_lowlevel.h:85:
+^I * how many bytes to request. If this value is not correct,$

ERROR: code indent should never use tabs
#2439: FILE: contrib/virtiofsd/fuse_lowlevel.h:86:
+^I * incorrect data will be returned.$

ERROR: code indent should never use tabs
#2440: FILE: contrib/virtiofsd/fuse_lowlevel.h:87:
+^I */$

ERROR: code indent should never use tabs
#2441: FILE: contrib/virtiofsd/fuse_lowlevel.h:88:
+^Istruct stat attr;$

ERROR: code indent should never use tabs
#2443: FILE: contrib/virtiofsd/fuse_lowlevel.h:90:
+^I/** Validity timeout (in seconds) for inode attributes. If$

WARNING: Block comments use a leading /* on a separate line
#2443: FILE: contrib/virtiofsd/fuse_lowlevel.h:90:
+       /** Validity timeout (in seconds) for inode attributes. If

ERROR: code indent should never use tabs
#2444: FILE: contrib/virtiofsd/fuse_lowlevel.h:91:
+^I    attributes only change as a result of requests that come$

WARNING: Block comments use * on subsequent lines
#2444: FILE: contrib/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
#2445: FILE: contrib/virtiofsd/fuse_lowlevel.h:92:
+^I    through the kernel, this should be set to a very large$

ERROR: code indent should never use tabs
#2446: FILE: contrib/virtiofsd/fuse_lowlevel.h:93:
+^I    value. */$

WARNING: Block comments use a trailing */ on a separate line
#2446: FILE: contrib/virtiofsd/fuse_lowlevel.h:93:
+           value. */

ERROR: code indent should never use tabs
#2447: FILE: contrib/virtiofsd/fuse_lowlevel.h:94:
+^Idouble attr_timeout;$

ERROR: code indent should never use tabs
#2449: FILE: contrib/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
#2449: FILE: contrib/virtiofsd/fuse_lowlevel.h:96:
+       /** Validity timeout (in seconds) for the name. If directory

ERROR: code indent should never use tabs
#2450: FILE: contrib/virtiofsd/fuse_lowlevel.h:97:
+^I    entries are changed/deleted only as a result of requests$

WARNING: Block comments use * on subsequent lines
#2450: FILE: contrib/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
#2451: FILE: contrib/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
#2452: FILE: contrib/virtiofsd/fuse_lowlevel.h:99:
+^I    large value. */$

WARNING: Block comments use a trailing */ on a separate line
#2452: FILE: contrib/virtiofsd/fuse_lowlevel.h:99:
+           large value. */

ERROR: code indent should never use tabs
#2453: FILE: contrib/virtiofsd/fuse_lowlevel.h:100:
+^Idouble entry_timeout;$

ERROR: code indent should never use tabs
#2465: FILE: contrib/virtiofsd/fuse_lowlevel.h:112:
+^I/** User ID of the calling process */$

ERROR: code indent should never use tabs
#2466: FILE: contrib/virtiofsd/fuse_lowlevel.h:113:
+^Iuid_t uid;$

ERROR: code indent should never use tabs
#2468: FILE: contrib/virtiofsd/fuse_lowlevel.h:115:
+^I/** Group ID of the calling process */$

ERROR: code indent should never use tabs
#2469: FILE: contrib/virtiofsd/fuse_lowlevel.h:116:
+^Igid_t gid;$

ERROR: code indent should never use tabs
#2471: FILE: contrib/virtiofsd/fuse_lowlevel.h:118:
+^I/** Thread ID of the calling process */$

ERROR: code indent should never use tabs
#2472: FILE: contrib/virtiofsd/fuse_lowlevel.h:119:
+^Ipid_t pid;$

ERROR: code indent should never use tabs
#2474: FILE: contrib/virtiofsd/fuse_lowlevel.h:121:
+^I/** Umask of the calling process */$

ERROR: code indent should never use tabs
#2475: FILE: contrib/virtiofsd/fuse_lowlevel.h:122:
+^Imode_t umask;$

ERROR: code indent should never use tabs
#2479: FILE: contrib/virtiofsd/fuse_lowlevel.h:126:
+^Ifuse_ino_t ino;$

ERROR: code indent should never use tabs
#2480: FILE: contrib/virtiofsd/fuse_lowlevel.h:127:
+^Iuint64_t nlookup;$

ERROR: code indent should never use tabs
#2484: FILE: contrib/virtiofsd/fuse_lowlevel.h:131:
+#define FUSE_SET_ATTR_MODE^I(1 << 0)$

ERROR: code indent should never use tabs
#2485: FILE: contrib/virtiofsd/fuse_lowlevel.h:132:
+#define FUSE_SET_ATTR_UID^I(1 << 1)$

ERROR: code indent should never use tabs
#2486: FILE: contrib/virtiofsd/fuse_lowlevel.h:133:
+#define FUSE_SET_ATTR_GID^I(1 << 2)$

ERROR: code indent should never use tabs
#2487: FILE: contrib/virtiofsd/fuse_lowlevel.h:134:
+#define FUSE_SET_ATTR_SIZE^I(1 << 3)$

ERROR: code indent should never use tabs
#2488: FILE: contrib/virtiofsd/fuse_lowlevel.h:135:
+#define FUSE_SET_ATTR_ATIME^I(1 << 4)$

ERROR: code indent should never use tabs
#2489: FILE: contrib/virtiofsd/fuse_lowlevel.h:136:
+#define FUSE_SET_ATTR_MTIME^I(1 << 5)$

ERROR: code indent should never use tabs
#2490: FILE: contrib/virtiofsd/fuse_lowlevel.h:137:
+#define FUSE_SET_ATTR_ATIME_NOW^I(1 << 7)$

ERROR: code indent should never use tabs
#2491: FILE: contrib/virtiofsd/fuse_lowlevel.h:138:
+#define FUSE_SET_ATTR_MTIME_NOW^I(1 << 8)$

ERROR: code indent should never use tabs
#2492: FILE: contrib/virtiofsd/fuse_lowlevel.h:139:
+#define FUSE_SET_ATTR_CTIME^I(1 << 10)$

WARNING: Block comments use a leading /* on a separate line
#2494: FILE: contrib/virtiofsd/fuse_lowlevel.h:141:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#2495: FILE: contrib/virtiofsd/fuse_lowlevel.h:142:
+ * Request methods and replies^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#2496: FILE: contrib/virtiofsd/fuse_lowlevel.h:143:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#2526: FILE: contrib/virtiofsd/fuse_lowlevel.h:173:
+^I/**$

ERROR: code indent should never use tabs
#2527: FILE: contrib/virtiofsd/fuse_lowlevel.h:174:
+^I * Initialize filesystem$

ERROR: code indent should never use tabs
#2528: FILE: contrib/virtiofsd/fuse_lowlevel.h:175:
+^I *$

ERROR: code indent should never use tabs
#2529: FILE: contrib/virtiofsd/fuse_lowlevel.h:176:
+^I * This function is called when libfuse establishes$

ERROR: code indent should never use tabs
#2530: FILE: contrib/virtiofsd/fuse_lowlevel.h:177:
+^I * communication with the FUSE kernel module. The file system$

ERROR: code indent should never use tabs
#2531: FILE: contrib/virtiofsd/fuse_lowlevel.h:178:
+^I * should use this module to inspect and/or modify the$

ERROR: code indent should never use tabs
#2532: FILE: contrib/virtiofsd/fuse_lowlevel.h:179:
+^I * connection parameters provided in the `conn` structure.$

ERROR: code indent should never use tabs
#2533: FILE: contrib/virtiofsd/fuse_lowlevel.h:180:
+^I *$

ERROR: code indent should never use tabs
#2534: FILE: contrib/virtiofsd/fuse_lowlevel.h:181:
+^I * Note that some parameters may be overwritten by options$

ERROR: code indent should never use tabs
#2535: FILE: contrib/virtiofsd/fuse_lowlevel.h:182:
+^I * passed to fuse_session_new() which take precedence over the$

ERROR: code indent should never use tabs
#2536: FILE: contrib/virtiofsd/fuse_lowlevel.h:183:
+^I * values set in this handler.$

ERROR: code indent should never use tabs
#2537: FILE: contrib/virtiofsd/fuse_lowlevel.h:184:
+^I *$

ERROR: code indent should never use tabs
#2538: FILE: contrib/virtiofsd/fuse_lowlevel.h:185:
+^I * There's no reply to this function$

ERROR: code indent should never use tabs
#2539: FILE: contrib/virtiofsd/fuse_lowlevel.h:186:
+^I *$

ERROR: code indent should never use tabs
#2540: FILE: contrib/virtiofsd/fuse_lowlevel.h:187:
+^I * @param userdata the user data passed to fuse_session_new()$

ERROR: code indent should never use tabs
#2541: FILE: contrib/virtiofsd/fuse_lowlevel.h:188:
+^I */$

ERROR: code indent should never use tabs
#2542: FILE: contrib/virtiofsd/fuse_lowlevel.h:189:
+^Ivoid (*init) (void *userdata, struct fuse_conn_info *conn);$

ERROR: code indent should never use tabs
#2544: FILE: contrib/virtiofsd/fuse_lowlevel.h:191:
+^I/**$

ERROR: code indent should never use tabs
#2545: FILE: contrib/virtiofsd/fuse_lowlevel.h:192:
+^I * Clean up filesystem.$

ERROR: code indent should never use tabs
#2546: FILE: contrib/virtiofsd/fuse_lowlevel.h:193:
+^I *$

ERROR: code indent should never use tabs
#2547: FILE: contrib/virtiofsd/fuse_lowlevel.h:194:
+^I * Called on filesystem exit. When this method is called, the$

ERROR: code indent should never use tabs
#2548: FILE: contrib/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
#2549: FILE: contrib/virtiofsd/fuse_lowlevel.h:196:
+^I * to fuse_lowlevel_notify_* will fail.$

ERROR: code indent should never use tabs
#2550: FILE: contrib/virtiofsd/fuse_lowlevel.h:197:
+^I *$

ERROR: code indent should never use tabs
#2551: FILE: contrib/virtiofsd/fuse_lowlevel.h:198:
+^I * There's no reply to this function$

ERROR: code indent should never use tabs
#2552: FILE: contrib/virtiofsd/fuse_lowlevel.h:199:
+^I *$

ERROR: code indent should never use tabs
#2553: FILE: contrib/virtiofsd/fuse_lowlevel.h:200:
+^I * @param userdata the user data passed to fuse_session_new()$

ERROR: code indent should never use tabs
#2554: FILE: contrib/virtiofsd/fuse_lowlevel.h:201:
+^I */$

ERROR: code indent should never use tabs
#2555: FILE: contrib/virtiofsd/fuse_lowlevel.h:202:
+^Ivoid (*destroy) (void *userdata);$

ERROR: code indent should never use tabs
#2557: FILE: contrib/virtiofsd/fuse_lowlevel.h:204:
+^I/**$

ERROR: code indent should never use tabs
#2558: FILE: contrib/virtiofsd/fuse_lowlevel.h:205:
+^I * Look up a directory entry by name and get its attributes.$

ERROR: code indent should never use tabs
#2559: FILE: contrib/virtiofsd/fuse_lowlevel.h:206:
+^I *$

ERROR: code indent should never use tabs
#2560: FILE: contrib/virtiofsd/fuse_lowlevel.h:207:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2561: FILE: contrib/virtiofsd/fuse_lowlevel.h:208:
+^I *   fuse_reply_entry$

ERROR: code indent should never use tabs
#2562: FILE: contrib/virtiofsd/fuse_lowlevel.h:209:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2563: FILE: contrib/virtiofsd/fuse_lowlevel.h:210:
+^I *$

ERROR: code indent should never use tabs
#2564: FILE: contrib/virtiofsd/fuse_lowlevel.h:211:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2565: FILE: contrib/virtiofsd/fuse_lowlevel.h:212:
+^I * @param parent inode number of the parent directory$

ERROR: code indent should never use tabs
#2566: FILE: contrib/virtiofsd/fuse_lowlevel.h:213:
+^I * @param name the name to look up$

ERROR: code indent should never use tabs
#2567: FILE: contrib/virtiofsd/fuse_lowlevel.h:214:
+^I */$

ERROR: code indent should never use tabs
#2568: FILE: contrib/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
#2570: FILE: contrib/virtiofsd/fuse_lowlevel.h:217:
+^I/**$

ERROR: code indent should never use tabs
#2571: FILE: contrib/virtiofsd/fuse_lowlevel.h:218:
+^I * Forget about an inode$

ERROR: code indent should never use tabs
#2572: FILE: contrib/virtiofsd/fuse_lowlevel.h:219:
+^I *$

ERROR: code indent should never use tabs
#2573: FILE: contrib/virtiofsd/fuse_lowlevel.h:220:
+^I * This function is called when the kernel removes an inode$

ERROR: code indent should never use tabs
#2574: FILE: contrib/virtiofsd/fuse_lowlevel.h:221:
+^I * from its internal caches.$

ERROR: code indent should never use tabs
#2575: FILE: contrib/virtiofsd/fuse_lowlevel.h:222:
+^I *$

ERROR: code indent should never use tabs
#2576: FILE: contrib/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
#2577: FILE: contrib/virtiofsd/fuse_lowlevel.h:224:
+^I * fuse_reply_entry and fuse_reply_create. The nlookup parameter$

ERROR: code indent should never use tabs
#2578: FILE: contrib/virtiofsd/fuse_lowlevel.h:225:
+^I * indicates by how much the lookup count should be decreased.$

ERROR: code indent should never use tabs
#2579: FILE: contrib/virtiofsd/fuse_lowlevel.h:226:
+^I *$

ERROR: code indent should never use tabs
#2580: FILE: contrib/virtiofsd/fuse_lowlevel.h:227:
+^I * Inodes with a non-zero lookup count may receive request from$

ERROR: code indent should never use tabs
#2581: FILE: contrib/virtiofsd/fuse_lowlevel.h:228:
+^I * the kernel even after calls to unlink, rmdir or (when$

ERROR: code indent should never use tabs
#2582: FILE: contrib/virtiofsd/fuse_lowlevel.h:229:
+^I * overwriting an existing file) rename. Filesystems must handle$

ERROR: code indent should never use tabs
#2583: FILE: contrib/virtiofsd/fuse_lowlevel.h:230:
+^I * such requests properly and it is recommended to defer removal$

ERROR: code indent should never use tabs
#2584: FILE: contrib/virtiofsd/fuse_lowlevel.h:231:
+^I * of the inode until the lookup count reaches zero. Calls to$

ERROR: code indent should never use tabs
#2585: FILE: contrib/virtiofsd/fuse_lowlevel.h:232:
+^I * unlink, rmdir or rename will be followed closely by forget$

ERROR: code indent should never use tabs
#2586: FILE: contrib/virtiofsd/fuse_lowlevel.h:233:
+^I * unless the file or directory is open, in which case the$

ERROR: code indent should never use tabs
#2587: FILE: contrib/virtiofsd/fuse_lowlevel.h:234:
+^I * kernel issues forget only after the release or releasedir$

ERROR: code indent should never use tabs
#2588: FILE: contrib/virtiofsd/fuse_lowlevel.h:235:
+^I * calls.$

ERROR: code indent should never use tabs
#2589: FILE: contrib/virtiofsd/fuse_lowlevel.h:236:
+^I *$

ERROR: code indent should never use tabs
#2590: FILE: contrib/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
#2591: FILE: contrib/virtiofsd/fuse_lowlevel.h:238:
+^I * inodes lifetime must extend even beyond forget. See the$

ERROR: code indent should never use tabs
#2592: FILE: contrib/virtiofsd/fuse_lowlevel.h:239:
+^I * generation field in struct fuse_entry_param above.$

ERROR: code indent should never use tabs
#2593: FILE: contrib/virtiofsd/fuse_lowlevel.h:240:
+^I *$

ERROR: code indent should never use tabs
#2594: FILE: contrib/virtiofsd/fuse_lowlevel.h:241:
+^I * On unmount the lookup count for all inodes implicitly drops$

ERROR: code indent should never use tabs
#2595: FILE: contrib/virtiofsd/fuse_lowlevel.h:242:
+^I * to zero. It is not guaranteed that the file system will$

ERROR: code indent should never use tabs
#2596: FILE: contrib/virtiofsd/fuse_lowlevel.h:243:
+^I * receive corresponding forget messages for the affected$

ERROR: code indent should never use tabs
#2597: FILE: contrib/virtiofsd/fuse_lowlevel.h:244:
+^I * inodes.$

ERROR: code indent should never use tabs
#2598: FILE: contrib/virtiofsd/fuse_lowlevel.h:245:
+^I *$

ERROR: code indent should never use tabs
#2599: FILE: contrib/virtiofsd/fuse_lowlevel.h:246:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2600: FILE: contrib/virtiofsd/fuse_lowlevel.h:247:
+^I *   fuse_reply_none$

ERROR: code indent should never use tabs
#2601: FILE: contrib/virtiofsd/fuse_lowlevel.h:248:
+^I *$

ERROR: code indent should never use tabs
#2602: FILE: contrib/virtiofsd/fuse_lowlevel.h:249:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2603: FILE: contrib/virtiofsd/fuse_lowlevel.h:250:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2604: FILE: contrib/virtiofsd/fuse_lowlevel.h:251:
+^I * @param nlookup the number of lookups to forget$

ERROR: code indent should never use tabs
#2605: FILE: contrib/virtiofsd/fuse_lowlevel.h:252:
+^I */$

ERROR: code indent should never use tabs
#2606: FILE: contrib/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
#2608: FILE: contrib/virtiofsd/fuse_lowlevel.h:255:
+^I/**$

ERROR: code indent should never use tabs
#2609: FILE: contrib/virtiofsd/fuse_lowlevel.h:256:
+^I * Get file attributes.$

ERROR: code indent should never use tabs
#2610: FILE: contrib/virtiofsd/fuse_lowlevel.h:257:
+^I *$

ERROR: code indent should never use tabs
#2611: FILE: contrib/virtiofsd/fuse_lowlevel.h:258:
+^I * If writeback caching is enabled, the kernel may have a$

ERROR: code indent should never use tabs
#2612: FILE: contrib/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
#2613: FILE: contrib/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
#2614: FILE: contrib/virtiofsd/fuse_lowlevel.h:261:
+^I * but that has not yet been passed to the filesystem.n$

ERROR: code indent should never use tabs
#2615: FILE: contrib/virtiofsd/fuse_lowlevel.h:262:
+^I *$

ERROR: code indent should never use tabs
#2616: FILE: contrib/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
#2617: FILE: contrib/virtiofsd/fuse_lowlevel.h:264:
+^I * will be ignored.$

ERROR: code indent should never use tabs
#2618: FILE: contrib/virtiofsd/fuse_lowlevel.h:265:
+^I *$

ERROR: code indent should never use tabs
#2619: FILE: contrib/virtiofsd/fuse_lowlevel.h:266:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2620: FILE: contrib/virtiofsd/fuse_lowlevel.h:267:
+^I *   fuse_reply_attr$

ERROR: code indent should never use tabs
#2621: FILE: contrib/virtiofsd/fuse_lowlevel.h:268:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2622: FILE: contrib/virtiofsd/fuse_lowlevel.h:269:
+^I *$

ERROR: code indent should never use tabs
#2623: FILE: contrib/virtiofsd/fuse_lowlevel.h:270:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2624: FILE: contrib/virtiofsd/fuse_lowlevel.h:271:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2625: FILE: contrib/virtiofsd/fuse_lowlevel.h:272:
+^I * @param fi for future use, currently always NULL$

ERROR: code indent should never use tabs
#2626: FILE: contrib/virtiofsd/fuse_lowlevel.h:273:
+^I */$

ERROR: code indent should never use tabs
#2627: FILE: contrib/virtiofsd/fuse_lowlevel.h:274:
+^Ivoid (*getattr) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#2628: FILE: contrib/virtiofsd/fuse_lowlevel.h:275:
+^I^I^I struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#2630: FILE: contrib/virtiofsd/fuse_lowlevel.h:277:
+^I/**$

ERROR: code indent should never use tabs
#2631: FILE: contrib/virtiofsd/fuse_lowlevel.h:278:
+^I * Set file attributes$

ERROR: code indent should never use tabs
#2632: FILE: contrib/virtiofsd/fuse_lowlevel.h:279:
+^I *$

ERROR: code indent should never use tabs
#2633: FILE: contrib/virtiofsd/fuse_lowlevel.h:280:
+^I * In the 'attr' argument only members indicated by the 'to_set'$

ERROR: code indent should never use tabs
#2634: FILE: contrib/virtiofsd/fuse_lowlevel.h:281:
+^I * bitmask contain valid values.  Other members contain undefined$

ERROR: code indent should never use tabs
#2635: FILE: contrib/virtiofsd/fuse_lowlevel.h:282:
+^I * values.$

ERROR: code indent should never use tabs
#2636: FILE: contrib/virtiofsd/fuse_lowlevel.h:283:
+^I *$

ERROR: code indent should never use tabs
#2637: FILE: contrib/virtiofsd/fuse_lowlevel.h:284:
+^I * Unless FUSE_CAP_HANDLE_KILLPRIV is disabled, this method is$

ERROR: code indent should never use tabs
#2638: FILE: contrib/virtiofsd/fuse_lowlevel.h:285:
+^I * expected to reset the setuid and setgid bits if the file$

ERROR: code indent should never use tabs
#2639: FILE: contrib/virtiofsd/fuse_lowlevel.h:286:
+^I * size or owner is being changed.$

ERROR: code indent should never use tabs
#2640: FILE: contrib/virtiofsd/fuse_lowlevel.h:287:
+^I *$

ERROR: code indent should never use tabs
#2641: FILE: contrib/virtiofsd/fuse_lowlevel.h:288:
+^I * If the setattr was invoked from the ftruncate() system call$

ERROR: code indent should never use tabs
#2642: FILE: contrib/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
#2643: FILE: contrib/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
#2644: FILE: contrib/virtiofsd/fuse_lowlevel.h:291:
+^I * if the open method didn't set any value.  Otherwise (not$

ERROR: code indent should never use tabs
#2645: FILE: contrib/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
#2646: FILE: contrib/virtiofsd/fuse_lowlevel.h:293:
+^I * parameter will be NULL.$

ERROR: code indent should never use tabs
#2647: FILE: contrib/virtiofsd/fuse_lowlevel.h:294:
+^I *$

ERROR: code indent should never use tabs
#2648: FILE: contrib/virtiofsd/fuse_lowlevel.h:295:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2649: FILE: contrib/virtiofsd/fuse_lowlevel.h:296:
+^I *   fuse_reply_attr$

ERROR: code indent should never use tabs
#2650: FILE: contrib/virtiofsd/fuse_lowlevel.h:297:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2651: FILE: contrib/virtiofsd/fuse_lowlevel.h:298:
+^I *$

ERROR: code indent should never use tabs
#2652: FILE: contrib/virtiofsd/fuse_lowlevel.h:299:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2653: FILE: contrib/virtiofsd/fuse_lowlevel.h:300:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2654: FILE: contrib/virtiofsd/fuse_lowlevel.h:301:
+^I * @param attr the attributes$

ERROR: code indent should never use tabs
#2655: FILE: contrib/virtiofsd/fuse_lowlevel.h:302:
+^I * @param to_set bit mask of attributes which should be set$

ERROR: code indent should never use tabs
#2656: FILE: contrib/virtiofsd/fuse_lowlevel.h:303:
+^I * @param fi file information, or NULL$

ERROR: code indent should never use tabs
#2657: FILE: contrib/virtiofsd/fuse_lowlevel.h:304:
+^I */$

ERROR: code indent should never use tabs
#2658: FILE: contrib/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
#2659: FILE: contrib/virtiofsd/fuse_lowlevel.h:306:
+^I^I^I int to_set, struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#2661: FILE: contrib/virtiofsd/fuse_lowlevel.h:308:
+^I/**$

ERROR: code indent should never use tabs
#2662: FILE: contrib/virtiofsd/fuse_lowlevel.h:309:
+^I * Read symbolic link$

ERROR: code indent should never use tabs
#2663: FILE: contrib/virtiofsd/fuse_lowlevel.h:310:
+^I *$

ERROR: code indent should never use tabs
#2664: FILE: contrib/virtiofsd/fuse_lowlevel.h:311:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2665: FILE: contrib/virtiofsd/fuse_lowlevel.h:312:
+^I *   fuse_reply_readlink$

ERROR: code indent should never use tabs
#2666: FILE: contrib/virtiofsd/fuse_lowlevel.h:313:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2667: FILE: contrib/virtiofsd/fuse_lowlevel.h:314:
+^I *$

ERROR: code indent should never use tabs
#2668: FILE: contrib/virtiofsd/fuse_lowlevel.h:315:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2669: FILE: contrib/virtiofsd/fuse_lowlevel.h:316:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2670: FILE: contrib/virtiofsd/fuse_lowlevel.h:317:
+^I */$

ERROR: code indent should never use tabs
#2671: FILE: contrib/virtiofsd/fuse_lowlevel.h:318:
+^Ivoid (*readlink) (fuse_req_t req, fuse_ino_t ino);$

ERROR: code indent should never use tabs
#2673: FILE: contrib/virtiofsd/fuse_lowlevel.h:320:
+^I/**$

ERROR: code indent should never use tabs
#2674: FILE: contrib/virtiofsd/fuse_lowlevel.h:321:
+^I * Create file node$

ERROR: code indent should never use tabs
#2675: FILE: contrib/virtiofsd/fuse_lowlevel.h:322:
+^I *$

ERROR: code indent should never use tabs
#2676: FILE: contrib/virtiofsd/fuse_lowlevel.h:323:
+^I * Create a regular file, character device, block device, fifo or$

ERROR: code indent should never use tabs
#2677: FILE: contrib/virtiofsd/fuse_lowlevel.h:324:
+^I * socket node.$

ERROR: code indent should never use tabs
#2678: FILE: contrib/virtiofsd/fuse_lowlevel.h:325:
+^I *$

ERROR: code indent should never use tabs
#2679: FILE: contrib/virtiofsd/fuse_lowlevel.h:326:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2680: FILE: contrib/virtiofsd/fuse_lowlevel.h:327:
+^I *   fuse_reply_entry$

ERROR: code indent should never use tabs
#2681: FILE: contrib/virtiofsd/fuse_lowlevel.h:328:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2682: FILE: contrib/virtiofsd/fuse_lowlevel.h:329:
+^I *$

ERROR: code indent should never use tabs
#2683: FILE: contrib/virtiofsd/fuse_lowlevel.h:330:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2684: FILE: contrib/virtiofsd/fuse_lowlevel.h:331:
+^I * @param parent inode number of the parent directory$

ERROR: code indent should never use tabs
#2685: FILE: contrib/virtiofsd/fuse_lowlevel.h:332:
+^I * @param name to create$

ERROR: code indent should never use tabs
#2686: FILE: contrib/virtiofsd/fuse_lowlevel.h:333:
+^I * @param mode file type and mode with which to create the new file$

WARNING: line over 80 characters
#2687: FILE: contrib/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
#2687: FILE: contrib/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
#2688: FILE: contrib/virtiofsd/fuse_lowlevel.h:335:
+^I */$

ERROR: code indent should never use tabs
#2689: FILE: contrib/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
#2690: FILE: contrib/virtiofsd/fuse_lowlevel.h:337:
+^I^I       mode_t mode, dev_t rdev);$

ERROR: code indent should never use tabs
#2692: FILE: contrib/virtiofsd/fuse_lowlevel.h:339:
+^I/**$

ERROR: code indent should never use tabs
#2693: FILE: contrib/virtiofsd/fuse_lowlevel.h:340:
+^I * Create a directory$

ERROR: code indent should never use tabs
#2694: FILE: contrib/virtiofsd/fuse_lowlevel.h:341:
+^I *$

ERROR: code indent should never use tabs
#2695: FILE: contrib/virtiofsd/fuse_lowlevel.h:342:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2696: FILE: contrib/virtiofsd/fuse_lowlevel.h:343:
+^I *   fuse_reply_entry$

ERROR: code indent should never use tabs
#2697: FILE: contrib/virtiofsd/fuse_lowlevel.h:344:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2698: FILE: contrib/virtiofsd/fuse_lowlevel.h:345:
+^I *$

ERROR: code indent should never use tabs
#2699: FILE: contrib/virtiofsd/fuse_lowlevel.h:346:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2700: FILE: contrib/virtiofsd/fuse_lowlevel.h:347:
+^I * @param parent inode number of the parent directory$

ERROR: code indent should never use tabs
#2701: FILE: contrib/virtiofsd/fuse_lowlevel.h:348:
+^I * @param name to create$

ERROR: code indent should never use tabs
#2702: FILE: contrib/virtiofsd/fuse_lowlevel.h:349:
+^I * @param mode with which to create the new file$

ERROR: code indent should never use tabs
#2703: FILE: contrib/virtiofsd/fuse_lowlevel.h:350:
+^I */$

ERROR: code indent should never use tabs
#2704: FILE: contrib/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
#2705: FILE: contrib/virtiofsd/fuse_lowlevel.h:352:
+^I^I       mode_t mode);$

ERROR: code indent should never use tabs
#2707: FILE: contrib/virtiofsd/fuse_lowlevel.h:354:
+^I/**$

ERROR: code indent should never use tabs
#2708: FILE: contrib/virtiofsd/fuse_lowlevel.h:355:
+^I * Remove a file$

ERROR: code indent should never use tabs
#2709: FILE: contrib/virtiofsd/fuse_lowlevel.h:356:
+^I *$

ERROR: code indent should never use tabs
#2710: FILE: contrib/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
#2711: FILE: contrib/virtiofsd/fuse_lowlevel.h:358:
+^I * system is expected to postpone any removal of the inode$

ERROR: code indent should never use tabs
#2712: FILE: contrib/virtiofsd/fuse_lowlevel.h:359:
+^I * until the lookup count reaches zero (see description of the$

ERROR: code indent should never use tabs
#2713: FILE: contrib/virtiofsd/fuse_lowlevel.h:360:
+^I * forget function).$

ERROR: code indent should never use tabs
#2714: FILE: contrib/virtiofsd/fuse_lowlevel.h:361:
+^I *$

ERROR: code indent should never use tabs
#2715: FILE: contrib/virtiofsd/fuse_lowlevel.h:362:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2716: FILE: contrib/virtiofsd/fuse_lowlevel.h:363:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2717: FILE: contrib/virtiofsd/fuse_lowlevel.h:364:
+^I *$

ERROR: code indent should never use tabs
#2718: FILE: contrib/virtiofsd/fuse_lowlevel.h:365:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2719: FILE: contrib/virtiofsd/fuse_lowlevel.h:366:
+^I * @param parent inode number of the parent directory$

ERROR: code indent should never use tabs
#2720: FILE: contrib/virtiofsd/fuse_lowlevel.h:367:
+^I * @param name to remove$

ERROR: code indent should never use tabs
#2721: FILE: contrib/virtiofsd/fuse_lowlevel.h:368:
+^I */$

ERROR: code indent should never use tabs
#2722: FILE: contrib/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
#2724: FILE: contrib/virtiofsd/fuse_lowlevel.h:371:
+^I/**$

ERROR: code indent should never use tabs
#2725: FILE: contrib/virtiofsd/fuse_lowlevel.h:372:
+^I * Remove a directory$

ERROR: code indent should never use tabs
#2726: FILE: contrib/virtiofsd/fuse_lowlevel.h:373:
+^I *$

ERROR: code indent should never use tabs
#2727: FILE: contrib/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
#2728: FILE: contrib/virtiofsd/fuse_lowlevel.h:375:
+^I * file system is expected to postpone any removal of the$

ERROR: code indent should never use tabs
#2729: FILE: contrib/virtiofsd/fuse_lowlevel.h:376:
+^I * inode until the lookup count reaches zero (see description$

ERROR: code indent should never use tabs
#2730: FILE: contrib/virtiofsd/fuse_lowlevel.h:377:
+^I * of the forget function).$

ERROR: code indent should never use tabs
#2731: FILE: contrib/virtiofsd/fuse_lowlevel.h:378:
+^I *$

ERROR: code indent should never use tabs
#2732: FILE: contrib/virtiofsd/fuse_lowlevel.h:379:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2733: FILE: contrib/virtiofsd/fuse_lowlevel.h:380:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2734: FILE: contrib/virtiofsd/fuse_lowlevel.h:381:
+^I *$

ERROR: code indent should never use tabs
#2735: FILE: contrib/virtiofsd/fuse_lowlevel.h:382:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2736: FILE: contrib/virtiofsd/fuse_lowlevel.h:383:
+^I * @param parent inode number of the parent directory$

ERROR: code indent should never use tabs
#2737: FILE: contrib/virtiofsd/fuse_lowlevel.h:384:
+^I * @param name to remove$

ERROR: code indent should never use tabs
#2738: FILE: contrib/virtiofsd/fuse_lowlevel.h:385:
+^I */$

ERROR: code indent should never use tabs
#2739: FILE: contrib/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
#2741: FILE: contrib/virtiofsd/fuse_lowlevel.h:388:
+^I/**$

ERROR: code indent should never use tabs
#2742: FILE: contrib/virtiofsd/fuse_lowlevel.h:389:
+^I * Create a symbolic link$

ERROR: code indent should never use tabs
#2743: FILE: contrib/virtiofsd/fuse_lowlevel.h:390:
+^I *$

ERROR: code indent should never use tabs
#2744: FILE: contrib/virtiofsd/fuse_lowlevel.h:391:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2745: FILE: contrib/virtiofsd/fuse_lowlevel.h:392:
+^I *   fuse_reply_entry$

ERROR: code indent should never use tabs
#2746: FILE: contrib/virtiofsd/fuse_lowlevel.h:393:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2747: FILE: contrib/virtiofsd/fuse_lowlevel.h:394:
+^I *$

ERROR: code indent should never use tabs
#2748: FILE: contrib/virtiofsd/fuse_lowlevel.h:395:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2749: FILE: contrib/virtiofsd/fuse_lowlevel.h:396:
+^I * @param link the contents of the symbolic link$

ERROR: code indent should never use tabs
#2750: FILE: contrib/virtiofsd/fuse_lowlevel.h:397:
+^I * @param parent inode number of the parent directory$

ERROR: code indent should never use tabs
#2751: FILE: contrib/virtiofsd/fuse_lowlevel.h:398:
+^I * @param name to create$

ERROR: code indent should never use tabs
#2752: FILE: contrib/virtiofsd/fuse_lowlevel.h:399:
+^I */$

ERROR: code indent should never use tabs
#2753: FILE: contrib/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
#2754: FILE: contrib/virtiofsd/fuse_lowlevel.h:401:
+^I^I^I const char *name);$

ERROR: code indent should never use tabs
#2756: FILE: contrib/virtiofsd/fuse_lowlevel.h:403:
+^I/** Rename a file$

WARNING: Block comments use a leading /* on a separate line
#2756: FILE: contrib/virtiofsd/fuse_lowlevel.h:403:
+       /** Rename a file

ERROR: code indent should never use tabs
#2757: FILE: contrib/virtiofsd/fuse_lowlevel.h:404:
+^I *$

ERROR: code indent should never use tabs
#2758: FILE: contrib/virtiofsd/fuse_lowlevel.h:405:
+^I * If the target exists it should be atomically replaced. If$

ERROR: code indent should never use tabs
#2759: FILE: contrib/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
#2760: FILE: contrib/virtiofsd/fuse_lowlevel.h:407:
+^I * system is expected to postpone any removal of the inode$

ERROR: code indent should never use tabs
#2761: FILE: contrib/virtiofsd/fuse_lowlevel.h:408:
+^I * until the lookup count reaches zero (see description of the$

ERROR: code indent should never use tabs
#2762: FILE: contrib/virtiofsd/fuse_lowlevel.h:409:
+^I * forget function).$

ERROR: code indent should never use tabs
#2763: FILE: contrib/virtiofsd/fuse_lowlevel.h:410:
+^I *$

ERROR: code indent should never use tabs
#2764: FILE: contrib/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
#2765: FILE: contrib/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
#2766: FILE: contrib/virtiofsd/fuse_lowlevel.h:413:
+^I * future bmap requests will fail with EINVAL without being$

ERROR: code indent should never use tabs
#2767: FILE: contrib/virtiofsd/fuse_lowlevel.h:414:
+^I * send to the filesystem process.$

ERROR: code indent should never use tabs
#2768: FILE: contrib/virtiofsd/fuse_lowlevel.h:415:
+^I *$

ERROR: code indent should never use tabs
#2769: FILE: contrib/virtiofsd/fuse_lowlevel.h:416:
+^I * *flags* may be `RENAME_EXCHANGE` or `RENAME_NOREPLACE`. If$

ERROR: code indent should never use tabs
#2770: FILE: contrib/virtiofsd/fuse_lowlevel.h:417:
+^I * RENAME_NOREPLACE is specified, the filesystem must not$

ERROR: code indent should never use tabs
#2771: FILE: contrib/virtiofsd/fuse_lowlevel.h:418:
+^I * overwrite *newname* if it exists and return an error$

ERROR: code indent should never use tabs
#2772: FILE: contrib/virtiofsd/fuse_lowlevel.h:419:
+^I * instead. If `RENAME_EXCHANGE` is specified, the filesystem$

ERROR: code indent should never use tabs
#2773: FILE: contrib/virtiofsd/fuse_lowlevel.h:420:
+^I * must atomically exchange the two files, i.e. both must$

ERROR: code indent should never use tabs
#2774: FILE: contrib/virtiofsd/fuse_lowlevel.h:421:
+^I * exist and neither may be deleted.$

ERROR: code indent should never use tabs
#2775: FILE: contrib/virtiofsd/fuse_lowlevel.h:422:
+^I *$

ERROR: code indent should never use tabs
#2776: FILE: contrib/virtiofsd/fuse_lowlevel.h:423:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2777: FILE: contrib/virtiofsd/fuse_lowlevel.h:424:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2778: FILE: contrib/virtiofsd/fuse_lowlevel.h:425:
+^I *$

ERROR: code indent should never use tabs
#2779: FILE: contrib/virtiofsd/fuse_lowlevel.h:426:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2780: FILE: contrib/virtiofsd/fuse_lowlevel.h:427:
+^I * @param parent inode number of the old parent directory$

ERROR: code indent should never use tabs
#2781: FILE: contrib/virtiofsd/fuse_lowlevel.h:428:
+^I * @param name old name$

ERROR: code indent should never use tabs
#2782: FILE: contrib/virtiofsd/fuse_lowlevel.h:429:
+^I * @param newparent inode number of the new parent directory$

ERROR: code indent should never use tabs
#2783: FILE: contrib/virtiofsd/fuse_lowlevel.h:430:
+^I * @param newname new name$

ERROR: code indent should never use tabs
#2784: FILE: contrib/virtiofsd/fuse_lowlevel.h:431:
+^I */$

ERROR: code indent should never use tabs
#2785: FILE: contrib/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
#2786: FILE: contrib/virtiofsd/fuse_lowlevel.h:433:
+^I^I^Ifuse_ino_t newparent, const char *newname,$

ERROR: code indent should never use tabs
#2787: FILE: contrib/virtiofsd/fuse_lowlevel.h:434:
+^I^I^Iunsigned int flags);$

ERROR: code indent should never use tabs
#2789: FILE: contrib/virtiofsd/fuse_lowlevel.h:436:
+^I/**$

ERROR: code indent should never use tabs
#2790: FILE: contrib/virtiofsd/fuse_lowlevel.h:437:
+^I * Create a hard link$

ERROR: code indent should never use tabs
#2791: FILE: contrib/virtiofsd/fuse_lowlevel.h:438:
+^I *$

ERROR: code indent should never use tabs
#2792: FILE: contrib/virtiofsd/fuse_lowlevel.h:439:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2793: FILE: contrib/virtiofsd/fuse_lowlevel.h:440:
+^I *   fuse_reply_entry$

ERROR: code indent should never use tabs
#2794: FILE: contrib/virtiofsd/fuse_lowlevel.h:441:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2795: FILE: contrib/virtiofsd/fuse_lowlevel.h:442:
+^I *$

ERROR: code indent should never use tabs
#2796: FILE: contrib/virtiofsd/fuse_lowlevel.h:443:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2797: FILE: contrib/virtiofsd/fuse_lowlevel.h:444:
+^I * @param ino the old inode number$

ERROR: code indent should never use tabs
#2798: FILE: contrib/virtiofsd/fuse_lowlevel.h:445:
+^I * @param newparent inode number of the new parent directory$

ERROR: code indent should never use tabs
#2799: FILE: contrib/virtiofsd/fuse_lowlevel.h:446:
+^I * @param newname new name to create$

ERROR: code indent should never use tabs
#2800: FILE: contrib/virtiofsd/fuse_lowlevel.h:447:
+^I */$

ERROR: code indent should never use tabs
#2801: FILE: contrib/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
#2802: FILE: contrib/virtiofsd/fuse_lowlevel.h:449:
+^I^I      const char *newname);$

ERROR: code indent should never use tabs
#2804: FILE: contrib/virtiofsd/fuse_lowlevel.h:451:
+^I/**$

ERROR: code indent should never use tabs
#2805: FILE: contrib/virtiofsd/fuse_lowlevel.h:452:
+^I * Open a file$

ERROR: code indent should never use tabs
#2806: FILE: contrib/virtiofsd/fuse_lowlevel.h:453:
+^I *$

ERROR: code indent should never use tabs
#2807: FILE: contrib/virtiofsd/fuse_lowlevel.h:454:
+^I * Open flags are available in fi->flags. The following rules$

ERROR: code indent should never use tabs
#2808: FILE: contrib/virtiofsd/fuse_lowlevel.h:455:
+^I * apply.$

ERROR: code indent should never use tabs
#2809: FILE: contrib/virtiofsd/fuse_lowlevel.h:456:
+^I *$

ERROR: code indent should never use tabs
#2810: FILE: contrib/virtiofsd/fuse_lowlevel.h:457:
+^I *  - Creation (O_CREAT, O_EXCL, O_NOCTTY) flags will be$

ERROR: code indent should never use tabs
#2811: FILE: contrib/virtiofsd/fuse_lowlevel.h:458:
+^I *    filtered out / handled by the kernel.$

ERROR: code indent should never use tabs
#2812: FILE: contrib/virtiofsd/fuse_lowlevel.h:459:
+^I *$

ERROR: code indent should never use tabs
#2813: FILE: contrib/virtiofsd/fuse_lowlevel.h:460:
+^I *  - Access modes (O_RDONLY, O_WRONLY, O_RDWR) should be used$

ERROR: code indent should never use tabs
#2814: FILE: contrib/virtiofsd/fuse_lowlevel.h:461:
+^I *    by the filesystem to check if the operation is$

ERROR: code indent should never use tabs
#2815: FILE: contrib/virtiofsd/fuse_lowlevel.h:462:
+^I *    permitted.  If the ``-o default_permissions`` mount$

ERROR: code indent should never use tabs
#2816: FILE: contrib/virtiofsd/fuse_lowlevel.h:463:
+^I *    option is given, this check is already done by the$

ERROR: code indent should never use tabs
#2817: FILE: contrib/virtiofsd/fuse_lowlevel.h:464:
+^I *    kernel before calling open() and may thus be omitted by$

ERROR: code indent should never use tabs
#2818: FILE: contrib/virtiofsd/fuse_lowlevel.h:465:
+^I *    the filesystem.$

ERROR: code indent should never use tabs
#2819: FILE: contrib/virtiofsd/fuse_lowlevel.h:466:
+^I *$

ERROR: code indent should never use tabs
#2820: FILE: contrib/virtiofsd/fuse_lowlevel.h:467:
+^I *  - When writeback caching is enabled, the kernel may send$

ERROR: code indent should never use tabs
#2821: FILE: contrib/virtiofsd/fuse_lowlevel.h:468:
+^I *    read requests even for files opened with O_WRONLY. The$

ERROR: code indent should never use tabs
#2822: FILE: contrib/virtiofsd/fuse_lowlevel.h:469:
+^I *    filesystem should be prepared to handle this.$

ERROR: code indent should never use tabs
#2823: FILE: contrib/virtiofsd/fuse_lowlevel.h:470:
+^I *$

ERROR: code indent should never use tabs
#2824: FILE: contrib/virtiofsd/fuse_lowlevel.h:471:
+^I *  - When writeback caching is disabled, the filesystem is$

ERROR: code indent should never use tabs
#2825: FILE: contrib/virtiofsd/fuse_lowlevel.h:472:
+^I *    expected to properly handle the O_APPEND flag and ensure$

ERROR: code indent should never use tabs
#2826: FILE: contrib/virtiofsd/fuse_lowlevel.h:473:
+^I *    that each write is appending to the end of the file.$

ERROR: trailing whitespace
#2827: FILE: contrib/virtiofsd/fuse_lowlevel.h:474:
+^I * $

ERROR: code indent should never use tabs
#2827: FILE: contrib/virtiofsd/fuse_lowlevel.h:474:
+^I * $

ERROR: code indent should never use tabs
#2829: FILE: contrib/virtiofsd/fuse_lowlevel.h:476:
+^I *    handle O_APPEND. However, unless all changes to the file$

ERROR: code indent should never use tabs
#2830: FILE: contrib/virtiofsd/fuse_lowlevel.h:477:
+^I *    come through the kernel this will not work reliably. The$

ERROR: code indent should never use tabs
#2831: FILE: contrib/virtiofsd/fuse_lowlevel.h:478:
+^I *    filesystem should thus either ignore the O_APPEND flag$

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

ERROR: code indent should never use tabs
#2833: FILE: contrib/virtiofsd/fuse_lowlevel.h:480:
+^I *    (indicating that reliably O_APPEND is not available).$

ERROR: code indent should never use tabs
#2834: FILE: contrib/virtiofsd/fuse_lowlevel.h:481:
+^I *$

ERROR: code indent should never use tabs
#2835: FILE: contrib/virtiofsd/fuse_lowlevel.h:482:
+^I * Filesystem may store an arbitrary file handle (pointer,$

ERROR: code indent should never use tabs
#2836: FILE: contrib/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
#2837: FILE: contrib/virtiofsd/fuse_lowlevel.h:484:
+^I * operations (read, write, flush, release, fsync).$

ERROR: code indent should never use tabs
#2838: FILE: contrib/virtiofsd/fuse_lowlevel.h:485:
+^I *$

ERROR: code indent should never use tabs
#2839: FILE: contrib/virtiofsd/fuse_lowlevel.h:486:
+^I * Filesystem may also implement stateless file I/O and not store$

ERROR: code indent should never use tabs
#2840: FILE: contrib/virtiofsd/fuse_lowlevel.h:487:
+^I * anything in fi->fh.$

ERROR: code indent should never use tabs
#2841: FILE: contrib/virtiofsd/fuse_lowlevel.h:488:
+^I *$

ERROR: code indent should never use tabs
#2842: FILE: contrib/virtiofsd/fuse_lowlevel.h:489:
+^I * There are also some flags (direct_io, keep_cache) which the$

ERROR: code indent should never use tabs
#2843: FILE: contrib/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
#2844: FILE: contrib/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
#2845: FILE: contrib/virtiofsd/fuse_lowlevel.h:492:
+^I *$

ERROR: code indent should never use tabs
#2846: FILE: contrib/virtiofsd/fuse_lowlevel.h:493:
+^I * If this request is answered with an error code of ENOSYS$

ERROR: code indent should never use tabs
#2847: FILE: contrib/virtiofsd/fuse_lowlevel.h:494:
+^I * and FUSE_CAP_NO_OPEN_SUPPORT is set in$

ERROR: code indent should never use tabs
#2848: FILE: contrib/virtiofsd/fuse_lowlevel.h:495:
+^I * `fuse_conn_info.capable`, this is treated as success and$

ERROR: code indent should never use tabs
#2849: FILE: contrib/virtiofsd/fuse_lowlevel.h:496:
+^I * future calls to open and release will also succeed without being$

ERROR: code indent should never use tabs
#2850: FILE: contrib/virtiofsd/fuse_lowlevel.h:497:
+^I * sent to the filesystem process.$

ERROR: code indent should never use tabs
#2851: FILE: contrib/virtiofsd/fuse_lowlevel.h:498:
+^I *$

ERROR: code indent should never use tabs
#2852: FILE: contrib/virtiofsd/fuse_lowlevel.h:499:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2853: FILE: contrib/virtiofsd/fuse_lowlevel.h:500:
+^I *   fuse_reply_open$

ERROR: code indent should never use tabs
#2854: FILE: contrib/virtiofsd/fuse_lowlevel.h:501:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2855: FILE: contrib/virtiofsd/fuse_lowlevel.h:502:
+^I *$

ERROR: code indent should never use tabs
#2856: FILE: contrib/virtiofsd/fuse_lowlevel.h:503:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2857: FILE: contrib/virtiofsd/fuse_lowlevel.h:504:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2858: FILE: contrib/virtiofsd/fuse_lowlevel.h:505:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#2859: FILE: contrib/virtiofsd/fuse_lowlevel.h:506:
+^I */$

ERROR: code indent should never use tabs
#2860: FILE: contrib/virtiofsd/fuse_lowlevel.h:507:
+^Ivoid (*open) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#2861: FILE: contrib/virtiofsd/fuse_lowlevel.h:508:
+^I^I      struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#2863: FILE: contrib/virtiofsd/fuse_lowlevel.h:510:
+^I/**$

ERROR: code indent should never use tabs
#2864: FILE: contrib/virtiofsd/fuse_lowlevel.h:511:
+^I * Read data$

ERROR: code indent should never use tabs
#2865: FILE: contrib/virtiofsd/fuse_lowlevel.h:512:
+^I *$

ERROR: code indent should never use tabs
#2866: FILE: contrib/virtiofsd/fuse_lowlevel.h:513:
+^I * Read should send exactly the number of bytes requested except$

ERROR: code indent should never use tabs
#2867: FILE: contrib/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
#2868: FILE: contrib/virtiofsd/fuse_lowlevel.h:515:
+^I * substituted with zeroes.  An exception to this is when the file$

ERROR: code indent should never use tabs
#2869: FILE: contrib/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
#2870: FILE: contrib/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
#2871: FILE: contrib/virtiofsd/fuse_lowlevel.h:518:
+^I * this operation.$

ERROR: code indent should never use tabs
#2872: FILE: contrib/virtiofsd/fuse_lowlevel.h:519:
+^I *$

ERROR: code indent should never use tabs
#2873: FILE: contrib/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
#2874: FILE: contrib/virtiofsd/fuse_lowlevel.h:521:
+^I * be undefined if the open method didn't set any value.$

ERROR: code indent should never use tabs
#2875: FILE: contrib/virtiofsd/fuse_lowlevel.h:522:
+^I *$

ERROR: code indent should never use tabs
#2876: FILE: contrib/virtiofsd/fuse_lowlevel.h:523:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2877: FILE: contrib/virtiofsd/fuse_lowlevel.h:524:
+^I *   fuse_reply_buf$

ERROR: code indent should never use tabs
#2878: FILE: contrib/virtiofsd/fuse_lowlevel.h:525:
+^I *   fuse_reply_iov$

ERROR: code indent should never use tabs
#2879: FILE: contrib/virtiofsd/fuse_lowlevel.h:526:
+^I *   fuse_reply_data$

ERROR: code indent should never use tabs
#2880: FILE: contrib/virtiofsd/fuse_lowlevel.h:527:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2881: FILE: contrib/virtiofsd/fuse_lowlevel.h:528:
+^I *$

ERROR: code indent should never use tabs
#2882: FILE: contrib/virtiofsd/fuse_lowlevel.h:529:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2883: FILE: contrib/virtiofsd/fuse_lowlevel.h:530:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2884: FILE: contrib/virtiofsd/fuse_lowlevel.h:531:
+^I * @param size number of bytes to read$

ERROR: code indent should never use tabs
#2885: FILE: contrib/virtiofsd/fuse_lowlevel.h:532:
+^I * @param off offset to read from$

ERROR: code indent should never use tabs
#2886: FILE: contrib/virtiofsd/fuse_lowlevel.h:533:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#2887: FILE: contrib/virtiofsd/fuse_lowlevel.h:534:
+^I */$

ERROR: code indent should never use tabs
#2888: FILE: contrib/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
#2889: FILE: contrib/virtiofsd/fuse_lowlevel.h:536:
+^I^I      struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#2891: FILE: contrib/virtiofsd/fuse_lowlevel.h:538:
+^I/**$

ERROR: code indent should never use tabs
#2892: FILE: contrib/virtiofsd/fuse_lowlevel.h:539:
+^I * Write data$

ERROR: code indent should never use tabs
#2893: FILE: contrib/virtiofsd/fuse_lowlevel.h:540:
+^I *$

ERROR: code indent should never use tabs
#2894: FILE: contrib/virtiofsd/fuse_lowlevel.h:541:
+^I * Write should return exactly the number of bytes requested$

ERROR: code indent should never use tabs
#2895: FILE: contrib/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
#2896: FILE: contrib/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
#2897: FILE: contrib/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
#2898: FILE: contrib/virtiofsd/fuse_lowlevel.h:545:
+^I * operation.$

ERROR: code indent should never use tabs
#2899: FILE: contrib/virtiofsd/fuse_lowlevel.h:546:
+^I *$

ERROR: code indent should never use tabs
#2900: FILE: contrib/virtiofsd/fuse_lowlevel.h:547:
+^I * Unless FUSE_CAP_HANDLE_KILLPRIV is disabled, this method is$

ERROR: code indent should never use tabs
#2901: FILE: contrib/virtiofsd/fuse_lowlevel.h:548:
+^I * expected to reset the setuid and setgid bits.$

ERROR: code indent should never use tabs
#2902: FILE: contrib/virtiofsd/fuse_lowlevel.h:549:
+^I *$

ERROR: code indent should never use tabs
#2903: FILE: contrib/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
#2904: FILE: contrib/virtiofsd/fuse_lowlevel.h:551:
+^I * be undefined if the open method didn't set any value.$

ERROR: code indent should never use tabs
#2905: FILE: contrib/virtiofsd/fuse_lowlevel.h:552:
+^I *$

ERROR: code indent should never use tabs
#2906: FILE: contrib/virtiofsd/fuse_lowlevel.h:553:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2907: FILE: contrib/virtiofsd/fuse_lowlevel.h:554:
+^I *   fuse_reply_write$

ERROR: code indent should never use tabs
#2908: FILE: contrib/virtiofsd/fuse_lowlevel.h:555:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2909: FILE: contrib/virtiofsd/fuse_lowlevel.h:556:
+^I *$

ERROR: code indent should never use tabs
#2910: FILE: contrib/virtiofsd/fuse_lowlevel.h:557:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2911: FILE: contrib/virtiofsd/fuse_lowlevel.h:558:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2912: FILE: contrib/virtiofsd/fuse_lowlevel.h:559:
+^I * @param buf data to write$

ERROR: code indent should never use tabs
#2913: FILE: contrib/virtiofsd/fuse_lowlevel.h:560:
+^I * @param size number of bytes to write$

ERROR: code indent should never use tabs
#2914: FILE: contrib/virtiofsd/fuse_lowlevel.h:561:
+^I * @param off offset to write to$

ERROR: code indent should never use tabs
#2915: FILE: contrib/virtiofsd/fuse_lowlevel.h:562:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#2916: FILE: contrib/virtiofsd/fuse_lowlevel.h:563:
+^I */$

ERROR: code indent should never use tabs
#2917: FILE: contrib/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
#2918: FILE: contrib/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
#2920: FILE: contrib/virtiofsd/fuse_lowlevel.h:567:
+^I/**$

ERROR: code indent should never use tabs
#2921: FILE: contrib/virtiofsd/fuse_lowlevel.h:568:
+^I * Flush method$

ERROR: code indent should never use tabs
#2922: FILE: contrib/virtiofsd/fuse_lowlevel.h:569:
+^I *$

ERROR: code indent should never use tabs
#2923: FILE: contrib/virtiofsd/fuse_lowlevel.h:570:
+^I * This is called on each close() of the opened file.$

ERROR: code indent should never use tabs
#2924: FILE: contrib/virtiofsd/fuse_lowlevel.h:571:
+^I *$

ERROR: code indent should never use tabs
#2925: FILE: contrib/virtiofsd/fuse_lowlevel.h:572:
+^I * Since file descriptors can be duplicated (dup, dup2, fork), for$

ERROR: code indent should never use tabs
#2926: FILE: contrib/virtiofsd/fuse_lowlevel.h:573:
+^I * one open call there may be many flush calls.$

ERROR: code indent should never use tabs
#2927: FILE: contrib/virtiofsd/fuse_lowlevel.h:574:
+^I *$

ERROR: code indent should never use tabs
#2928: FILE: contrib/virtiofsd/fuse_lowlevel.h:575:
+^I * Filesystems shouldn't assume that flush will always be called$

ERROR: code indent should never use tabs
#2929: FILE: contrib/virtiofsd/fuse_lowlevel.h:576:
+^I * after some writes, or that if will be called at all.$

ERROR: code indent should never use tabs
#2930: FILE: contrib/virtiofsd/fuse_lowlevel.h:577:
+^I *$

ERROR: code indent should never use tabs
#2931: FILE: contrib/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
#2932: FILE: contrib/virtiofsd/fuse_lowlevel.h:579:
+^I * be undefined if the open method didn't set any value.$

ERROR: code indent should never use tabs
#2933: FILE: contrib/virtiofsd/fuse_lowlevel.h:580:
+^I *$

ERROR: code indent should never use tabs
#2934: FILE: contrib/virtiofsd/fuse_lowlevel.h:581:
+^I * NOTE: the name of the method is misleading, since (unlike$

ERROR: code indent should never use tabs
#2935: FILE: contrib/virtiofsd/fuse_lowlevel.h:582:
+^I * fsync) the filesystem is not forced to flush pending writes.$

ERROR: code indent should never use tabs
#2936: FILE: contrib/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
#2937: FILE: contrib/virtiofsd/fuse_lowlevel.h:584:
+^I * write errors during close.  However, such use is non-portable$

ERROR: code indent should never use tabs
#2938: FILE: contrib/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
#2939: FILE: contrib/virtiofsd/fuse_lowlevel.h:586:
+^I * complete.$

ERROR: code indent should never use tabs
#2940: FILE: contrib/virtiofsd/fuse_lowlevel.h:587:
+^I *$

ERROR: code indent should never use tabs
#2941: FILE: contrib/virtiofsd/fuse_lowlevel.h:588:
+^I * If the filesystem supports file locking operations (setlk,$

ERROR: code indent should never use tabs
#2942: FILE: contrib/virtiofsd/fuse_lowlevel.h:589:
+^I * getlk) it should remove all locks belonging to 'fi->owner'.$

ERROR: code indent should never use tabs
#2943: FILE: contrib/virtiofsd/fuse_lowlevel.h:590:
+^I *$

ERROR: code indent should never use tabs
#2944: FILE: contrib/virtiofsd/fuse_lowlevel.h:591:
+^I * If this request is answered with an error code of ENOSYS,$

ERROR: code indent should never use tabs
#2945: FILE: contrib/virtiofsd/fuse_lowlevel.h:592:
+^I * this is treated as success and future calls to flush() will$

ERROR: code indent should never use tabs
#2946: FILE: contrib/virtiofsd/fuse_lowlevel.h:593:
+^I * succeed automatically without being send to the filesystem$

ERROR: code indent should never use tabs
#2947: FILE: contrib/virtiofsd/fuse_lowlevel.h:594:
+^I * process.$

ERROR: code indent should never use tabs
#2948: FILE: contrib/virtiofsd/fuse_lowlevel.h:595:
+^I *$

ERROR: code indent should never use tabs
#2949: FILE: contrib/virtiofsd/fuse_lowlevel.h:596:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2950: FILE: contrib/virtiofsd/fuse_lowlevel.h:597:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2951: FILE: contrib/virtiofsd/fuse_lowlevel.h:598:
+^I *$

ERROR: code indent should never use tabs
#2952: FILE: contrib/virtiofsd/fuse_lowlevel.h:599:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2953: FILE: contrib/virtiofsd/fuse_lowlevel.h:600:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2954: FILE: contrib/virtiofsd/fuse_lowlevel.h:601:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#2955: FILE: contrib/virtiofsd/fuse_lowlevel.h:602:
+^I *$

WARNING: line over 80 characters
#2956: FILE: contrib/virtiofsd/fuse_lowlevel.h:603:
+        * [close]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/close.html

ERROR: code indent should never use tabs
#2956: FILE: contrib/virtiofsd/fuse_lowlevel.h:603:
+^I * [close]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/close.html$

ERROR: code indent should never use tabs
#2957: FILE: contrib/virtiofsd/fuse_lowlevel.h:604:
+^I */$

ERROR: code indent should never use tabs
#2958: FILE: contrib/virtiofsd/fuse_lowlevel.h:605:
+^Ivoid (*flush) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#2959: FILE: contrib/virtiofsd/fuse_lowlevel.h:606:
+^I^I       struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#2961: FILE: contrib/virtiofsd/fuse_lowlevel.h:608:
+^I/**$

ERROR: code indent should never use tabs
#2962: FILE: contrib/virtiofsd/fuse_lowlevel.h:609:
+^I * Release an open file$

ERROR: code indent should never use tabs
#2963: FILE: contrib/virtiofsd/fuse_lowlevel.h:610:
+^I *$

ERROR: code indent should never use tabs
#2964: FILE: contrib/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
#2965: FILE: contrib/virtiofsd/fuse_lowlevel.h:612:
+^I * file: all file descriptors are closed and all memory mappings$

ERROR: code indent should never use tabs
#2966: FILE: contrib/virtiofsd/fuse_lowlevel.h:613:
+^I * are unmapped.$

ERROR: code indent should never use tabs
#2967: FILE: contrib/virtiofsd/fuse_lowlevel.h:614:
+^I *$

ERROR: code indent should never use tabs
#2968: FILE: contrib/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
#2969: FILE: contrib/virtiofsd/fuse_lowlevel.h:616:
+^I * the filesystem is force-unmounted).$

ERROR: code indent should never use tabs
#2970: FILE: contrib/virtiofsd/fuse_lowlevel.h:617:
+^I *$

ERROR: code indent should never use tabs
#2971: FILE: contrib/virtiofsd/fuse_lowlevel.h:618:
+^I * The filesystem may reply with an error, but error values are$

ERROR: code indent should never use tabs
#2972: FILE: contrib/virtiofsd/fuse_lowlevel.h:619:
+^I * not returned to close() or munmap() which triggered the$

ERROR: code indent should never use tabs
#2973: FILE: contrib/virtiofsd/fuse_lowlevel.h:620:
+^I * release.$

ERROR: code indent should never use tabs
#2974: FILE: contrib/virtiofsd/fuse_lowlevel.h:621:
+^I *$

ERROR: code indent should never use tabs
#2975: FILE: contrib/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
#2976: FILE: contrib/virtiofsd/fuse_lowlevel.h:623:
+^I * be undefined if the open method didn't set any value.$

ERROR: code indent should never use tabs
#2977: FILE: contrib/virtiofsd/fuse_lowlevel.h:624:
+^I * fi->flags will contain the same flags as for open.$

ERROR: code indent should never use tabs
#2978: FILE: contrib/virtiofsd/fuse_lowlevel.h:625:
+^I *$

ERROR: code indent should never use tabs
#2979: FILE: contrib/virtiofsd/fuse_lowlevel.h:626:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#2980: FILE: contrib/virtiofsd/fuse_lowlevel.h:627:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#2981: FILE: contrib/virtiofsd/fuse_lowlevel.h:628:
+^I *$

ERROR: code indent should never use tabs
#2982: FILE: contrib/virtiofsd/fuse_lowlevel.h:629:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#2983: FILE: contrib/virtiofsd/fuse_lowlevel.h:630:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#2984: FILE: contrib/virtiofsd/fuse_lowlevel.h:631:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#2985: FILE: contrib/virtiofsd/fuse_lowlevel.h:632:
+^I */$

ERROR: code indent should never use tabs
#2986: FILE: contrib/virtiofsd/fuse_lowlevel.h:633:
+^Ivoid (*release) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#2987: FILE: contrib/virtiofsd/fuse_lowlevel.h:634:
+^I^I^I struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#2989: FILE: contrib/virtiofsd/fuse_lowlevel.h:636:
+^I/**$

ERROR: code indent should never use tabs
#2990: FILE: contrib/virtiofsd/fuse_lowlevel.h:637:
+^I * Synchronize file contents$

ERROR: code indent should never use tabs
#2991: FILE: contrib/virtiofsd/fuse_lowlevel.h:638:
+^I *$

ERROR: code indent should never use tabs
#2992: FILE: contrib/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
#2993: FILE: contrib/virtiofsd/fuse_lowlevel.h:640:
+^I * should be flushed, not the meta data.$

ERROR: code indent should never use tabs
#2994: FILE: contrib/virtiofsd/fuse_lowlevel.h:641:
+^I *$

ERROR: code indent should never use tabs
#2995: FILE: contrib/virtiofsd/fuse_lowlevel.h:642:
+^I * If this request is answered with an error code of ENOSYS,$

ERROR: code indent should never use tabs
#2996: FILE: contrib/virtiofsd/fuse_lowlevel.h:643:
+^I * this is treated as success and future calls to fsync() will$

ERROR: code indent should never use tabs
#2997: FILE: contrib/virtiofsd/fuse_lowlevel.h:644:
+^I * succeed automatically without being send to the filesystem$

ERROR: code indent should never use tabs
#2998: FILE: contrib/virtiofsd/fuse_lowlevel.h:645:
+^I * process.$

ERROR: code indent should never use tabs
#2999: FILE: contrib/virtiofsd/fuse_lowlevel.h:646:
+^I *$

ERROR: code indent should never use tabs
#3000: FILE: contrib/virtiofsd/fuse_lowlevel.h:647:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3001: FILE: contrib/virtiofsd/fuse_lowlevel.h:648:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3002: FILE: contrib/virtiofsd/fuse_lowlevel.h:649:
+^I *$

ERROR: code indent should never use tabs
#3003: FILE: contrib/virtiofsd/fuse_lowlevel.h:650:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3004: FILE: contrib/virtiofsd/fuse_lowlevel.h:651:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3005: FILE: contrib/virtiofsd/fuse_lowlevel.h:652:
+^I * @param datasync flag indicating if only data should be flushed$

ERROR: code indent should never use tabs
#3006: FILE: contrib/virtiofsd/fuse_lowlevel.h:653:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3007: FILE: contrib/virtiofsd/fuse_lowlevel.h:654:
+^I */$

ERROR: code indent should never use tabs
#3008: FILE: contrib/virtiofsd/fuse_lowlevel.h:655:
+^Ivoid (*fsync) (fuse_req_t req, fuse_ino_t ino, int datasync,$

ERROR: code indent should never use tabs
#3009: FILE: contrib/virtiofsd/fuse_lowlevel.h:656:
+^I^I       struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3011: FILE: contrib/virtiofsd/fuse_lowlevel.h:658:
+^I/**$

ERROR: code indent should never use tabs
#3012: FILE: contrib/virtiofsd/fuse_lowlevel.h:659:
+^I * Open a directory$

ERROR: code indent should never use tabs
#3013: FILE: contrib/virtiofsd/fuse_lowlevel.h:660:
+^I *$

ERROR: code indent should never use tabs
#3014: FILE: contrib/virtiofsd/fuse_lowlevel.h:661:
+^I * Filesystem may store an arbitrary file handle (pointer, index,$

ERROR: code indent should never use tabs
#3015: FILE: contrib/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
#3016: FILE: contrib/virtiofsd/fuse_lowlevel.h:663:
+^I * stream operations (readdir, releasedir, fsyncdir).$

ERROR: code indent should never use tabs
#3017: FILE: contrib/virtiofsd/fuse_lowlevel.h:664:
+^I *$

ERROR: code indent should never use tabs
#3018: FILE: contrib/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
#3019: FILE: contrib/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
#3020: FILE: contrib/virtiofsd/fuse_lowlevel.h:667:
+^I * this is treated as success and future calls to opendir and$

ERROR: code indent should never use tabs
#3021: FILE: contrib/virtiofsd/fuse_lowlevel.h:668:
+^I * releasedir will also succeed without being sent to the filesystem$

ERROR: code indent should never use tabs
#3022: FILE: contrib/virtiofsd/fuse_lowlevel.h:669:
+^I * process. In addition, the kernel will cache readdir results$

ERROR: code indent should never use tabs
#3023: FILE: contrib/virtiofsd/fuse_lowlevel.h:670:
+^I * as if opendir returned FOPEN_KEEP_CACHE | FOPEN_CACHE_DIR.$

ERROR: code indent should never use tabs
#3024: FILE: contrib/virtiofsd/fuse_lowlevel.h:671:
+^I *$

ERROR: code indent should never use tabs
#3025: FILE: contrib/virtiofsd/fuse_lowlevel.h:672:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3026: FILE: contrib/virtiofsd/fuse_lowlevel.h:673:
+^I *   fuse_reply_open$

ERROR: code indent should never use tabs
#3027: FILE: contrib/virtiofsd/fuse_lowlevel.h:674:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3028: FILE: contrib/virtiofsd/fuse_lowlevel.h:675:
+^I *$

ERROR: code indent should never use tabs
#3029: FILE: contrib/virtiofsd/fuse_lowlevel.h:676:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3030: FILE: contrib/virtiofsd/fuse_lowlevel.h:677:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3031: FILE: contrib/virtiofsd/fuse_lowlevel.h:678:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3032: FILE: contrib/virtiofsd/fuse_lowlevel.h:679:
+^I */$

ERROR: code indent should never use tabs
#3033: FILE: contrib/virtiofsd/fuse_lowlevel.h:680:
+^Ivoid (*opendir) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#3034: FILE: contrib/virtiofsd/fuse_lowlevel.h:681:
+^I^I^I struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3036: FILE: contrib/virtiofsd/fuse_lowlevel.h:683:
+^I/**$

ERROR: code indent should never use tabs
#3037: FILE: contrib/virtiofsd/fuse_lowlevel.h:684:
+^I * Read directory$

ERROR: code indent should never use tabs
#3038: FILE: contrib/virtiofsd/fuse_lowlevel.h:685:
+^I *$

ERROR: code indent should never use tabs
#3039: FILE: contrib/virtiofsd/fuse_lowlevel.h:686:
+^I * Send a buffer filled using fuse_add_direntry(), with size not$

ERROR: code indent should never use tabs
#3040: FILE: contrib/virtiofsd/fuse_lowlevel.h:687:
+^I * exceeding the requested size.  Send an empty buffer on end of$

ERROR: code indent should never use tabs
#3041: FILE: contrib/virtiofsd/fuse_lowlevel.h:688:
+^I * stream.$

ERROR: code indent should never use tabs
#3042: FILE: contrib/virtiofsd/fuse_lowlevel.h:689:
+^I *$

ERROR: code indent should never use tabs
#3043: FILE: contrib/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
#3044: FILE: contrib/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
#3045: FILE: contrib/virtiofsd/fuse_lowlevel.h:692:
+^I *$

ERROR: code indent should never use tabs
#3046: FILE: contrib/virtiofsd/fuse_lowlevel.h:693:
+^I * Returning a directory entry from readdir() does not affect$

ERROR: code indent should never use tabs
#3047: FILE: contrib/virtiofsd/fuse_lowlevel.h:694:
+^I * its lookup count.$

ERROR: code indent should never use tabs
#3048: FILE: contrib/virtiofsd/fuse_lowlevel.h:695:
+^I *$

ERROR: code indent should never use tabs
#3050: FILE: contrib/virtiofsd/fuse_lowlevel.h:697:
+^I * values that was previously returned by readdir() for the same$

ERROR: code indent should never use tabs
#3051: FILE: contrib/virtiofsd/fuse_lowlevel.h:698:
+^I * directory handle. In this case, readdir() should skip over entries$

ERROR: code indent should never use tabs
#3052: FILE: contrib/virtiofsd/fuse_lowlevel.h:699:
+^I * coming before the position defined by the off_t value. If entries$

WARNING: line over 80 characters
#3053: FILE: contrib/virtiofsd/fuse_lowlevel.h:700:
+        * are added or removed while the directory handle is open, they filesystem

ERROR: code indent should never use tabs
#3053: FILE: contrib/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
#3054: FILE: contrib/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
#3055: FILE: contrib/virtiofsd/fuse_lowlevel.h:702:
+^I * report the entries that have been created. However, addition or$

ERROR: code indent should never use tabs
#3056: FILE: contrib/virtiofsd/fuse_lowlevel.h:703:
+^I * removal of entries must never cause readdir() to skip over unrelated$

ERROR: code indent should never use tabs
#3057: FILE: contrib/virtiofsd/fuse_lowlevel.h:704:
+^I * entries or to report them more than once. This means$

ERROR: code indent should never use tabs
#3058: FILE: contrib/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
#3059: FILE: contrib/virtiofsd/fuse_lowlevel.h:706:
+^I * that have been returned but must contain sufficient information to$

ERROR: code indent should never use tabs
#3060: FILE: contrib/virtiofsd/fuse_lowlevel.h:707:
+^I * uniquely determine the next directory entry to return even when the$

ERROR: code indent should never use tabs
#3061: FILE: contrib/virtiofsd/fuse_lowlevel.h:708:
+^I * set of entries is changing.$

ERROR: code indent should never use tabs
#3062: FILE: contrib/virtiofsd/fuse_lowlevel.h:709:
+^I *$

ERROR: code indent should never use tabs
#3063: FILE: contrib/virtiofsd/fuse_lowlevel.h:710:
+^I * The function does not have to report the '.' and '..'$

ERROR: code indent should never use tabs
#3064: FILE: contrib/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
#3065: FILE: contrib/virtiofsd/fuse_lowlevel.h:712:
+^I * not return '.' or '..', they will not be implicitly returned,$

ERROR: code indent should never use tabs
#3066: FILE: contrib/virtiofsd/fuse_lowlevel.h:713:
+^I * and this behavior is observable by the caller.$

ERROR: code indent should never use tabs
#3067: FILE: contrib/virtiofsd/fuse_lowlevel.h:714:
+^I *$

ERROR: code indent should never use tabs
#3068: FILE: contrib/virtiofsd/fuse_lowlevel.h:715:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3069: FILE: contrib/virtiofsd/fuse_lowlevel.h:716:
+^I *   fuse_reply_buf$

ERROR: code indent should never use tabs
#3070: FILE: contrib/virtiofsd/fuse_lowlevel.h:717:
+^I *   fuse_reply_data$

ERROR: code indent should never use tabs
#3071: FILE: contrib/virtiofsd/fuse_lowlevel.h:718:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3072: FILE: contrib/virtiofsd/fuse_lowlevel.h:719:
+^I *$

ERROR: code indent should never use tabs
#3073: FILE: contrib/virtiofsd/fuse_lowlevel.h:720:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3074: FILE: contrib/virtiofsd/fuse_lowlevel.h:721:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3075: FILE: contrib/virtiofsd/fuse_lowlevel.h:722:
+^I * @param size maximum number of bytes to send$

ERROR: code indent should never use tabs
#3076: FILE: contrib/virtiofsd/fuse_lowlevel.h:723:
+^I * @param off offset to continue reading the directory stream$

ERROR: code indent should never use tabs
#3077: FILE: contrib/virtiofsd/fuse_lowlevel.h:724:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3078: FILE: contrib/virtiofsd/fuse_lowlevel.h:725:
+^I */$

ERROR: code indent should never use tabs
#3079: FILE: contrib/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
#3080: FILE: contrib/virtiofsd/fuse_lowlevel.h:727:
+^I^I^I struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3082: FILE: contrib/virtiofsd/fuse_lowlevel.h:729:
+^I/**$

ERROR: code indent should never use tabs
#3083: FILE: contrib/virtiofsd/fuse_lowlevel.h:730:
+^I * Release an open directory$

ERROR: code indent should never use tabs
#3084: FILE: contrib/virtiofsd/fuse_lowlevel.h:731:
+^I *$

ERROR: code indent should never use tabs
#3085: FILE: contrib/virtiofsd/fuse_lowlevel.h:732:
+^I * For every opendir call there will be exactly one releasedir$

ERROR: code indent should never use tabs
#3086: FILE: contrib/virtiofsd/fuse_lowlevel.h:733:
+^I * call (unless the filesystem is force-unmounted).$

ERROR: code indent should never use tabs
#3087: FILE: contrib/virtiofsd/fuse_lowlevel.h:734:
+^I *$

ERROR: code indent should never use tabs
#3088: FILE: contrib/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
#3089: FILE: contrib/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
#3090: FILE: contrib/virtiofsd/fuse_lowlevel.h:737:
+^I *$

ERROR: code indent should never use tabs
#3091: FILE: contrib/virtiofsd/fuse_lowlevel.h:738:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3092: FILE: contrib/virtiofsd/fuse_lowlevel.h:739:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3093: FILE: contrib/virtiofsd/fuse_lowlevel.h:740:
+^I *$

ERROR: code indent should never use tabs
#3094: FILE: contrib/virtiofsd/fuse_lowlevel.h:741:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3095: FILE: contrib/virtiofsd/fuse_lowlevel.h:742:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3096: FILE: contrib/virtiofsd/fuse_lowlevel.h:743:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3097: FILE: contrib/virtiofsd/fuse_lowlevel.h:744:
+^I */$

ERROR: code indent should never use tabs
#3098: FILE: contrib/virtiofsd/fuse_lowlevel.h:745:
+^Ivoid (*releasedir) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#3099: FILE: contrib/virtiofsd/fuse_lowlevel.h:746:
+^I^I^I    struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3101: FILE: contrib/virtiofsd/fuse_lowlevel.h:748:
+^I/**$

ERROR: code indent should never use tabs
#3102: FILE: contrib/virtiofsd/fuse_lowlevel.h:749:
+^I * Synchronize directory contents$

ERROR: code indent should never use tabs
#3103: FILE: contrib/virtiofsd/fuse_lowlevel.h:750:
+^I *$

ERROR: code indent should never use tabs
#3104: FILE: contrib/virtiofsd/fuse_lowlevel.h:751:
+^I * If the datasync parameter is non-zero, then only the directory$

ERROR: code indent should never use tabs
#3105: FILE: contrib/virtiofsd/fuse_lowlevel.h:752:
+^I * contents should be flushed, not the meta data.$

ERROR: code indent should never use tabs
#3106: FILE: contrib/virtiofsd/fuse_lowlevel.h:753:
+^I *$

ERROR: code indent should never use tabs
#3107: FILE: contrib/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
#3108: FILE: contrib/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
#3109: FILE: contrib/virtiofsd/fuse_lowlevel.h:756:
+^I *$

ERROR: code indent should never use tabs
#3110: FILE: contrib/virtiofsd/fuse_lowlevel.h:757:
+^I * If this request is answered with an error code of ENOSYS,$

ERROR: code indent should never use tabs
#3111: FILE: contrib/virtiofsd/fuse_lowlevel.h:758:
+^I * this is treated as success and future calls to fsyncdir() will$

ERROR: code indent should never use tabs
#3112: FILE: contrib/virtiofsd/fuse_lowlevel.h:759:
+^I * succeed automatically without being send to the filesystem$

ERROR: code indent should never use tabs
#3113: FILE: contrib/virtiofsd/fuse_lowlevel.h:760:
+^I * process.$

ERROR: code indent should never use tabs
#3114: FILE: contrib/virtiofsd/fuse_lowlevel.h:761:
+^I *$

ERROR: code indent should never use tabs
#3115: FILE: contrib/virtiofsd/fuse_lowlevel.h:762:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3116: FILE: contrib/virtiofsd/fuse_lowlevel.h:763:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3117: FILE: contrib/virtiofsd/fuse_lowlevel.h:764:
+^I *$

ERROR: code indent should never use tabs
#3118: FILE: contrib/virtiofsd/fuse_lowlevel.h:765:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3119: FILE: contrib/virtiofsd/fuse_lowlevel.h:766:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3120: FILE: contrib/virtiofsd/fuse_lowlevel.h:767:
+^I * @param datasync flag indicating if only data should be flushed$

ERROR: code indent should never use tabs
#3121: FILE: contrib/virtiofsd/fuse_lowlevel.h:768:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3122: FILE: contrib/virtiofsd/fuse_lowlevel.h:769:
+^I */$

ERROR: code indent should never use tabs
#3123: FILE: contrib/virtiofsd/fuse_lowlevel.h:770:
+^Ivoid (*fsyncdir) (fuse_req_t req, fuse_ino_t ino, int datasync,$

ERROR: code indent should never use tabs
#3124: FILE: contrib/virtiofsd/fuse_lowlevel.h:771:
+^I^I^I  struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3126: FILE: contrib/virtiofsd/fuse_lowlevel.h:773:
+^I/**$

ERROR: code indent should never use tabs
#3127: FILE: contrib/virtiofsd/fuse_lowlevel.h:774:
+^I * Get file system statistics$

ERROR: code indent should never use tabs
#3128: FILE: contrib/virtiofsd/fuse_lowlevel.h:775:
+^I *$

ERROR: code indent should never use tabs
#3129: FILE: contrib/virtiofsd/fuse_lowlevel.h:776:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3130: FILE: contrib/virtiofsd/fuse_lowlevel.h:777:
+^I *   fuse_reply_statfs$

ERROR: code indent should never use tabs
#3131: FILE: contrib/virtiofsd/fuse_lowlevel.h:778:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3132: FILE: contrib/virtiofsd/fuse_lowlevel.h:779:
+^I *$

ERROR: code indent should never use tabs
#3133: FILE: contrib/virtiofsd/fuse_lowlevel.h:780:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3134: FILE: contrib/virtiofsd/fuse_lowlevel.h:781:
+^I * @param ino the inode number, zero means "undefined"$

ERROR: code indent should never use tabs
#3135: FILE: contrib/virtiofsd/fuse_lowlevel.h:782:
+^I */$

ERROR: code indent should never use tabs
#3136: FILE: contrib/virtiofsd/fuse_lowlevel.h:783:
+^Ivoid (*statfs) (fuse_req_t req, fuse_ino_t ino);$

ERROR: code indent should never use tabs
#3138: FILE: contrib/virtiofsd/fuse_lowlevel.h:785:
+^I/**$

ERROR: code indent should never use tabs
#3139: FILE: contrib/virtiofsd/fuse_lowlevel.h:786:
+^I * Set an extended attribute$

ERROR: code indent should never use tabs
#3140: FILE: contrib/virtiofsd/fuse_lowlevel.h:787:
+^I *$

ERROR: code indent should never use tabs
#3141: FILE: contrib/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
#3142: FILE: contrib/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
#3143: FILE: contrib/virtiofsd/fuse_lowlevel.h:790:
+^I * future setxattr() requests will fail with EOPNOTSUPP without being$

ERROR: code indent should never use tabs
#3144: FILE: contrib/virtiofsd/fuse_lowlevel.h:791:
+^I * send to the filesystem process.$

ERROR: code indent should never use tabs
#3145: FILE: contrib/virtiofsd/fuse_lowlevel.h:792:
+^I *$

ERROR: code indent should never use tabs
#3146: FILE: contrib/virtiofsd/fuse_lowlevel.h:793:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3147: FILE: contrib/virtiofsd/fuse_lowlevel.h:794:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3148: FILE: contrib/virtiofsd/fuse_lowlevel.h:795:
+^I */$

ERROR: code indent should never use tabs
#3149: FILE: contrib/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
#3150: FILE: contrib/virtiofsd/fuse_lowlevel.h:797:
+^I^I^I  const char *value, size_t size, int flags);$

ERROR: code indent should never use tabs
#3152: FILE: contrib/virtiofsd/fuse_lowlevel.h:799:
+^I/**$

ERROR: code indent should never use tabs
#3153: FILE: contrib/virtiofsd/fuse_lowlevel.h:800:
+^I * Get an extended attribute$

ERROR: code indent should never use tabs
#3154: FILE: contrib/virtiofsd/fuse_lowlevel.h:801:
+^I *$

ERROR: code indent should never use tabs
#3155: FILE: contrib/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
#3156: FILE: contrib/virtiofsd/fuse_lowlevel.h:803:
+^I * fuse_reply_xattr.$

ERROR: code indent should never use tabs
#3157: FILE: contrib/virtiofsd/fuse_lowlevel.h:804:
+^I *$

ERROR: code indent should never use tabs
#3158: FILE: contrib/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
#3159: FILE: contrib/virtiofsd/fuse_lowlevel.h:806:
+^I * value should be sent with fuse_reply_buf.$

ERROR: code indent should never use tabs
#3160: FILE: contrib/virtiofsd/fuse_lowlevel.h:807:
+^I *$

ERROR: code indent should never use tabs
#3161: FILE: contrib/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
#3162: FILE: contrib/virtiofsd/fuse_lowlevel.h:809:
+^I * be sent.$

ERROR: code indent should never use tabs
#3163: FILE: contrib/virtiofsd/fuse_lowlevel.h:810:
+^I *$

ERROR: code indent should never use tabs
#3164: FILE: contrib/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
#3165: FILE: contrib/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
#3166: FILE: contrib/virtiofsd/fuse_lowlevel.h:813:
+^I * future getxattr() requests will fail with EOPNOTSUPP without being$

ERROR: code indent should never use tabs
#3167: FILE: contrib/virtiofsd/fuse_lowlevel.h:814:
+^I * send to the filesystem process.$

ERROR: code indent should never use tabs
#3168: FILE: contrib/virtiofsd/fuse_lowlevel.h:815:
+^I *$

ERROR: code indent should never use tabs
#3169: FILE: contrib/virtiofsd/fuse_lowlevel.h:816:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3170: FILE: contrib/virtiofsd/fuse_lowlevel.h:817:
+^I *   fuse_reply_buf$

ERROR: code indent should never use tabs
#3171: FILE: contrib/virtiofsd/fuse_lowlevel.h:818:
+^I *   fuse_reply_data$

ERROR: code indent should never use tabs
#3172: FILE: contrib/virtiofsd/fuse_lowlevel.h:819:
+^I *   fuse_reply_xattr$

ERROR: code indent should never use tabs
#3173: FILE: contrib/virtiofsd/fuse_lowlevel.h:820:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3174: FILE: contrib/virtiofsd/fuse_lowlevel.h:821:
+^I *$

ERROR: code indent should never use tabs
#3175: FILE: contrib/virtiofsd/fuse_lowlevel.h:822:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3176: FILE: contrib/virtiofsd/fuse_lowlevel.h:823:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3177: FILE: contrib/virtiofsd/fuse_lowlevel.h:824:
+^I * @param name of the extended attribute$

ERROR: code indent should never use tabs
#3178: FILE: contrib/virtiofsd/fuse_lowlevel.h:825:
+^I * @param size maximum size of the value to send$

ERROR: code indent should never use tabs
#3179: FILE: contrib/virtiofsd/fuse_lowlevel.h:826:
+^I */$

ERROR: code indent should never use tabs
#3180: FILE: contrib/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
#3181: FILE: contrib/virtiofsd/fuse_lowlevel.h:828:
+^I^I^I  size_t size);$

ERROR: code indent should never use tabs
#3183: FILE: contrib/virtiofsd/fuse_lowlevel.h:830:
+^I/**$

ERROR: code indent should never use tabs
#3184: FILE: contrib/virtiofsd/fuse_lowlevel.h:831:
+^I * List extended attribute names$

ERROR: code indent should never use tabs
#3185: FILE: contrib/virtiofsd/fuse_lowlevel.h:832:
+^I *$

ERROR: code indent should never use tabs
#3186: FILE: contrib/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
#3187: FILE: contrib/virtiofsd/fuse_lowlevel.h:834:
+^I * sent with fuse_reply_xattr.$

ERROR: code indent should never use tabs
#3188: FILE: contrib/virtiofsd/fuse_lowlevel.h:835:
+^I *$

ERROR: code indent should never use tabs
#3189: FILE: contrib/virtiofsd/fuse_lowlevel.h:836:
+^I * If the size is non-zero, and the null character separated$

ERROR: code indent should never use tabs
#3190: FILE: contrib/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
#3191: FILE: contrib/virtiofsd/fuse_lowlevel.h:838:
+^I * fuse_reply_buf.$

ERROR: code indent should never use tabs
#3192: FILE: contrib/virtiofsd/fuse_lowlevel.h:839:
+^I *$

ERROR: code indent should never use tabs
#3193: FILE: contrib/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
#3194: FILE: contrib/virtiofsd/fuse_lowlevel.h:841:
+^I * be sent.$

ERROR: code indent should never use tabs
#3195: FILE: contrib/virtiofsd/fuse_lowlevel.h:842:
+^I *$

ERROR: code indent should never use tabs
#3196: FILE: contrib/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
#3197: FILE: contrib/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
#3198: FILE: contrib/virtiofsd/fuse_lowlevel.h:845:
+^I * future listxattr() requests will fail with EOPNOTSUPP without being$

ERROR: code indent should never use tabs
#3199: FILE: contrib/virtiofsd/fuse_lowlevel.h:846:
+^I * send to the filesystem process.$

ERROR: code indent should never use tabs
#3200: FILE: contrib/virtiofsd/fuse_lowlevel.h:847:
+^I *$

ERROR: code indent should never use tabs
#3201: FILE: contrib/virtiofsd/fuse_lowlevel.h:848:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3202: FILE: contrib/virtiofsd/fuse_lowlevel.h:849:
+^I *   fuse_reply_buf$

ERROR: code indent should never use tabs
#3203: FILE: contrib/virtiofsd/fuse_lowlevel.h:850:
+^I *   fuse_reply_data$

ERROR: code indent should never use tabs
#3204: FILE: contrib/virtiofsd/fuse_lowlevel.h:851:
+^I *   fuse_reply_xattr$

ERROR: code indent should never use tabs
#3205: FILE: contrib/virtiofsd/fuse_lowlevel.h:852:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3206: FILE: contrib/virtiofsd/fuse_lowlevel.h:853:
+^I *$

ERROR: code indent should never use tabs
#3207: FILE: contrib/virtiofsd/fuse_lowlevel.h:854:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3208: FILE: contrib/virtiofsd/fuse_lowlevel.h:855:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3209: FILE: contrib/virtiofsd/fuse_lowlevel.h:856:
+^I * @param size maximum size of the list to send$

ERROR: code indent should never use tabs
#3210: FILE: contrib/virtiofsd/fuse_lowlevel.h:857:
+^I */$

ERROR: code indent should never use tabs
#3211: FILE: contrib/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
#3213: FILE: contrib/virtiofsd/fuse_lowlevel.h:860:
+^I/**$

ERROR: code indent should never use tabs
#3214: FILE: contrib/virtiofsd/fuse_lowlevel.h:861:
+^I * Remove an extended attribute$

ERROR: code indent should never use tabs
#3215: FILE: contrib/virtiofsd/fuse_lowlevel.h:862:
+^I *$

ERROR: code indent should never use tabs
#3216: FILE: contrib/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
#3217: FILE: contrib/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
#3218: FILE: contrib/virtiofsd/fuse_lowlevel.h:865:
+^I * future removexattr() requests will fail with EOPNOTSUPP without being$

ERROR: code indent should never use tabs
#3219: FILE: contrib/virtiofsd/fuse_lowlevel.h:866:
+^I * send to the filesystem process.$

ERROR: code indent should never use tabs
#3220: FILE: contrib/virtiofsd/fuse_lowlevel.h:867:
+^I *$

ERROR: code indent should never use tabs
#3221: FILE: contrib/virtiofsd/fuse_lowlevel.h:868:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3222: FILE: contrib/virtiofsd/fuse_lowlevel.h:869:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3223: FILE: contrib/virtiofsd/fuse_lowlevel.h:870:
+^I *$

ERROR: code indent should never use tabs
#3224: FILE: contrib/virtiofsd/fuse_lowlevel.h:871:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3225: FILE: contrib/virtiofsd/fuse_lowlevel.h:872:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3226: FILE: contrib/virtiofsd/fuse_lowlevel.h:873:
+^I * @param name of the extended attribute$

ERROR: code indent should never use tabs
#3227: FILE: contrib/virtiofsd/fuse_lowlevel.h:874:
+^I */$

ERROR: code indent should never use tabs
#3228: FILE: contrib/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
#3230: FILE: contrib/virtiofsd/fuse_lowlevel.h:877:
+^I/**$

ERROR: code indent should never use tabs
#3231: FILE: contrib/virtiofsd/fuse_lowlevel.h:878:
+^I * Check file access permissions$

ERROR: code indent should never use tabs
#3232: FILE: contrib/virtiofsd/fuse_lowlevel.h:879:
+^I *$

ERROR: code indent should never use tabs
#3233: FILE: contrib/virtiofsd/fuse_lowlevel.h:880:
+^I * This will be called for the access() and chdir() system$

ERROR: code indent should never use tabs
#3234: FILE: contrib/virtiofsd/fuse_lowlevel.h:881:
+^I * calls.  If the 'default_permissions' mount option is given,$

ERROR: code indent should never use tabs
#3235: FILE: contrib/virtiofsd/fuse_lowlevel.h:882:
+^I * this method is not called.$

ERROR: code indent should never use tabs
#3236: FILE: contrib/virtiofsd/fuse_lowlevel.h:883:
+^I *$

ERROR: code indent should never use tabs
#3237: FILE: contrib/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
#3238: FILE: contrib/virtiofsd/fuse_lowlevel.h:885:
+^I *$

ERROR: code indent should never use tabs
#3239: FILE: contrib/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
#3240: FILE: contrib/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
#3241: FILE: contrib/virtiofsd/fuse_lowlevel.h:888:
+^I * requests will succeed without being send to the filesystem process.$

ERROR: code indent should never use tabs
#3242: FILE: contrib/virtiofsd/fuse_lowlevel.h:889:
+^I *$

ERROR: code indent should never use tabs
#3243: FILE: contrib/virtiofsd/fuse_lowlevel.h:890:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3244: FILE: contrib/virtiofsd/fuse_lowlevel.h:891:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3245: FILE: contrib/virtiofsd/fuse_lowlevel.h:892:
+^I *$

ERROR: code indent should never use tabs
#3246: FILE: contrib/virtiofsd/fuse_lowlevel.h:893:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3247: FILE: contrib/virtiofsd/fuse_lowlevel.h:894:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3248: FILE: contrib/virtiofsd/fuse_lowlevel.h:895:
+^I * @param mask requested access mode$

ERROR: code indent should never use tabs
#3249: FILE: contrib/virtiofsd/fuse_lowlevel.h:896:
+^I */$

ERROR: code indent should never use tabs
#3250: FILE: contrib/virtiofsd/fuse_lowlevel.h:897:
+^Ivoid (*access) (fuse_req_t req, fuse_ino_t ino, int mask);$

ERROR: code indent should never use tabs
#3252: FILE: contrib/virtiofsd/fuse_lowlevel.h:899:
+^I/**$

ERROR: code indent should never use tabs
#3253: FILE: contrib/virtiofsd/fuse_lowlevel.h:900:
+^I * Create and open a file$

ERROR: code indent should never use tabs
#3254: FILE: contrib/virtiofsd/fuse_lowlevel.h:901:
+^I *$

ERROR: code indent should never use tabs
#3255: FILE: contrib/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
#3256: FILE: contrib/virtiofsd/fuse_lowlevel.h:903:
+^I * mode, and then open it.$

ERROR: code indent should never use tabs
#3257: FILE: contrib/virtiofsd/fuse_lowlevel.h:904:
+^I *$

ERROR: code indent should never use tabs
#3258: FILE: contrib/virtiofsd/fuse_lowlevel.h:905:
+^I * See the description of the open handler for more$

ERROR: code indent should never use tabs
#3259: FILE: contrib/virtiofsd/fuse_lowlevel.h:906:
+^I * information.$

ERROR: code indent should never use tabs
#3260: FILE: contrib/virtiofsd/fuse_lowlevel.h:907:
+^I *$

ERROR: code indent should never use tabs
#3261: FILE: contrib/virtiofsd/fuse_lowlevel.h:908:
+^I * If this method is not implemented or under Linux kernel$

ERROR: code indent should never use tabs
#3262: FILE: contrib/virtiofsd/fuse_lowlevel.h:909:
+^I * versions earlier than 2.6.15, the mknod() and open() methods$

ERROR: code indent should never use tabs
#3263: FILE: contrib/virtiofsd/fuse_lowlevel.h:910:
+^I * will be called instead.$

ERROR: code indent should never use tabs
#3264: FILE: contrib/virtiofsd/fuse_lowlevel.h:911:
+^I *$

ERROR: code indent should never use tabs
#3265: FILE: contrib/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
#3266: FILE: contrib/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
#3267: FILE: contrib/virtiofsd/fuse_lowlevel.h:914:
+^I * mknod() and open() handlers will be called instead).$

ERROR: code indent should never use tabs
#3268: FILE: contrib/virtiofsd/fuse_lowlevel.h:915:
+^I *$

ERROR: code indent should never use tabs
#3269: FILE: contrib/virtiofsd/fuse_lowlevel.h:916:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3270: FILE: contrib/virtiofsd/fuse_lowlevel.h:917:
+^I *   fuse_reply_create$

ERROR: code indent should never use tabs
#3271: FILE: contrib/virtiofsd/fuse_lowlevel.h:918:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3272: FILE: contrib/virtiofsd/fuse_lowlevel.h:919:
+^I *$

ERROR: code indent should never use tabs
#3273: FILE: contrib/virtiofsd/fuse_lowlevel.h:920:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3274: FILE: contrib/virtiofsd/fuse_lowlevel.h:921:
+^I * @param parent inode number of the parent directory$

ERROR: code indent should never use tabs
#3275: FILE: contrib/virtiofsd/fuse_lowlevel.h:922:
+^I * @param name to create$

ERROR: code indent should never use tabs
#3276: FILE: contrib/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
#3277: FILE: contrib/virtiofsd/fuse_lowlevel.h:924:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3278: FILE: contrib/virtiofsd/fuse_lowlevel.h:925:
+^I */$

ERROR: code indent should never use tabs
#3279: FILE: contrib/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
#3280: FILE: contrib/virtiofsd/fuse_lowlevel.h:927:
+^I^I^Imode_t mode, struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3282: FILE: contrib/virtiofsd/fuse_lowlevel.h:929:
+^I/**$

ERROR: code indent should never use tabs
#3283: FILE: contrib/virtiofsd/fuse_lowlevel.h:930:
+^I * Test for a POSIX file lock$

ERROR: code indent should never use tabs
#3284: FILE: contrib/virtiofsd/fuse_lowlevel.h:931:
+^I *$

ERROR: code indent should never use tabs
#3285: FILE: contrib/virtiofsd/fuse_lowlevel.h:932:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3286: FILE: contrib/virtiofsd/fuse_lowlevel.h:933:
+^I *   fuse_reply_lock$

ERROR: code indent should never use tabs
#3287: FILE: contrib/virtiofsd/fuse_lowlevel.h:934:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3288: FILE: contrib/virtiofsd/fuse_lowlevel.h:935:
+^I *$

ERROR: code indent should never use tabs
#3289: FILE: contrib/virtiofsd/fuse_lowlevel.h:936:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3290: FILE: contrib/virtiofsd/fuse_lowlevel.h:937:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3291: FILE: contrib/virtiofsd/fuse_lowlevel.h:938:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3292: FILE: contrib/virtiofsd/fuse_lowlevel.h:939:
+^I * @param lock the region/type to test$

ERROR: code indent should never use tabs
#3293: FILE: contrib/virtiofsd/fuse_lowlevel.h:940:
+^I */$

ERROR: code indent should never use tabs
#3294: FILE: contrib/virtiofsd/fuse_lowlevel.h:941:
+^Ivoid (*getlk) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#3295: FILE: contrib/virtiofsd/fuse_lowlevel.h:942:
+^I^I       struct fuse_file_info *fi, struct flock *lock);$

ERROR: code indent should never use tabs
#3297: FILE: contrib/virtiofsd/fuse_lowlevel.h:944:
+^I/**$

ERROR: code indent should never use tabs
#3298: FILE: contrib/virtiofsd/fuse_lowlevel.h:945:
+^I * Acquire, modify or release a POSIX file lock$

ERROR: code indent should never use tabs
#3299: FILE: contrib/virtiofsd/fuse_lowlevel.h:946:
+^I *$

ERROR: code indent should never use tabs
#3300: FILE: contrib/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
#3301: FILE: contrib/virtiofsd/fuse_lowlevel.h:948:
+^I * owner, but otherwise this is not always the case.  For checking$

ERROR: code indent should never use tabs
#3302: FILE: contrib/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
#3303: FILE: contrib/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
#3304: FILE: contrib/virtiofsd/fuse_lowlevel.h:951:
+^I * getlk().$

ERROR: code indent should never use tabs
#3305: FILE: contrib/virtiofsd/fuse_lowlevel.h:952:
+^I *$

ERROR: code indent should never use tabs
#3306: FILE: contrib/virtiofsd/fuse_lowlevel.h:953:
+^I * Note: if the locking methods are not implemented, the kernel$

ERROR: code indent should never use tabs
#3307: FILE: contrib/virtiofsd/fuse_lowlevel.h:954:
+^I * will still allow file locking to work locally.  Hence these are$

ERROR: code indent should never use tabs
#3308: FILE: contrib/virtiofsd/fuse_lowlevel.h:955:
+^I * only interesting for network filesystems and similar.$

ERROR: code indent should never use tabs
#3309: FILE: contrib/virtiofsd/fuse_lowlevel.h:956:
+^I *$

ERROR: code indent should never use tabs
#3310: FILE: contrib/virtiofsd/fuse_lowlevel.h:957:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3311: FILE: contrib/virtiofsd/fuse_lowlevel.h:958:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3312: FILE: contrib/virtiofsd/fuse_lowlevel.h:959:
+^I *$

ERROR: code indent should never use tabs
#3313: FILE: contrib/virtiofsd/fuse_lowlevel.h:960:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3314: FILE: contrib/virtiofsd/fuse_lowlevel.h:961:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3315: FILE: contrib/virtiofsd/fuse_lowlevel.h:962:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3316: FILE: contrib/virtiofsd/fuse_lowlevel.h:963:
+^I * @param lock the region/type to set$

ERROR: code indent should never use tabs
#3317: FILE: contrib/virtiofsd/fuse_lowlevel.h:964:
+^I * @param sleep locking operation may sleep$

ERROR: code indent should never use tabs
#3318: FILE: contrib/virtiofsd/fuse_lowlevel.h:965:
+^I */$

ERROR: code indent should never use tabs
#3319: FILE: contrib/virtiofsd/fuse_lowlevel.h:966:
+^Ivoid (*setlk) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#3320: FILE: contrib/virtiofsd/fuse_lowlevel.h:967:
+^I^I       struct fuse_file_info *fi,$

ERROR: code indent should never use tabs
#3321: FILE: contrib/virtiofsd/fuse_lowlevel.h:968:
+^I^I       struct flock *lock, int sleep);$

ERROR: code indent should never use tabs
#3323: FILE: contrib/virtiofsd/fuse_lowlevel.h:970:
+^I/**$

ERROR: code indent should never use tabs
#3324: FILE: contrib/virtiofsd/fuse_lowlevel.h:971:
+^I * Map block index within file to block index within device$

ERROR: code indent should never use tabs
#3325: FILE: contrib/virtiofsd/fuse_lowlevel.h:972:
+^I *$

ERROR: code indent should never use tabs
#3326: FILE: contrib/virtiofsd/fuse_lowlevel.h:973:
+^I * Note: This makes sense only for block device backed filesystems$

ERROR: code indent should never use tabs
#3327: FILE: contrib/virtiofsd/fuse_lowlevel.h:974:
+^I * mounted with the 'blkdev' option$

ERROR: code indent should never use tabs
#3328: FILE: contrib/virtiofsd/fuse_lowlevel.h:975:
+^I *$

ERROR: code indent should never use tabs
#3329: FILE: contrib/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
#3330: FILE: contrib/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
#3331: FILE: contrib/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
#3332: FILE: contrib/virtiofsd/fuse_lowlevel.h:979:
+^I * process.$

ERROR: code indent should never use tabs
#3333: FILE: contrib/virtiofsd/fuse_lowlevel.h:980:
+^I *$

ERROR: code indent should never use tabs
#3334: FILE: contrib/virtiofsd/fuse_lowlevel.h:981:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3335: FILE: contrib/virtiofsd/fuse_lowlevel.h:982:
+^I *   fuse_reply_bmap$

ERROR: code indent should never use tabs
#3336: FILE: contrib/virtiofsd/fuse_lowlevel.h:983:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3337: FILE: contrib/virtiofsd/fuse_lowlevel.h:984:
+^I *$

ERROR: code indent should never use tabs
#3338: FILE: contrib/virtiofsd/fuse_lowlevel.h:985:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3339: FILE: contrib/virtiofsd/fuse_lowlevel.h:986:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3340: FILE: contrib/virtiofsd/fuse_lowlevel.h:987:
+^I * @param blocksize unit of block index$

ERROR: code indent should never use tabs
#3341: FILE: contrib/virtiofsd/fuse_lowlevel.h:988:
+^I * @param idx block index within file$

ERROR: code indent should never use tabs
#3342: FILE: contrib/virtiofsd/fuse_lowlevel.h:989:
+^I */$

ERROR: code indent should never use tabs
#3343: FILE: contrib/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
#3344: FILE: contrib/virtiofsd/fuse_lowlevel.h:991:
+^I^I      uint64_t idx);$

ERROR: code indent should never use tabs
#3346: FILE: contrib/virtiofsd/fuse_lowlevel.h:993:
+^I/**$

ERROR: code indent should never use tabs
#3347: FILE: contrib/virtiofsd/fuse_lowlevel.h:994:
+^I * Ioctl$

ERROR: code indent should never use tabs
#3348: FILE: contrib/virtiofsd/fuse_lowlevel.h:995:
+^I *$

ERROR: code indent should never use tabs
#3349: FILE: contrib/virtiofsd/fuse_lowlevel.h:996:
+^I * Note: For unrestricted ioctls (not allowed for FUSE$

ERROR: code indent should never use tabs
#3350: FILE: contrib/virtiofsd/fuse_lowlevel.h:997:
+^I * servers), data in and out areas can be discovered by giving$

ERROR: code indent should never use tabs
#3351: FILE: contrib/virtiofsd/fuse_lowlevel.h:998:
+^I * iovs and setting FUSE_IOCTL_RETRY in *flags*.  For$

ERROR: code indent should never use tabs
#3352: FILE: contrib/virtiofsd/fuse_lowlevel.h:999:
+^I * restricted ioctls, kernel prepares in/out data area$

ERROR: code indent should never use tabs
#3353: FILE: contrib/virtiofsd/fuse_lowlevel.h:1000:
+^I * according to the information encoded in cmd.$

ERROR: code indent should never use tabs
#3354: FILE: contrib/virtiofsd/fuse_lowlevel.h:1001:
+^I *$

ERROR: code indent should never use tabs
#3355: FILE: contrib/virtiofsd/fuse_lowlevel.h:1002:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3356: FILE: contrib/virtiofsd/fuse_lowlevel.h:1003:
+^I *   fuse_reply_ioctl_retry$

ERROR: code indent should never use tabs
#3357: FILE: contrib/virtiofsd/fuse_lowlevel.h:1004:
+^I *   fuse_reply_ioctl$

ERROR: code indent should never use tabs
#3358: FILE: contrib/virtiofsd/fuse_lowlevel.h:1005:
+^I *   fuse_reply_ioctl_iov$

ERROR: code indent should never use tabs
#3359: FILE: contrib/virtiofsd/fuse_lowlevel.h:1006:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3360: FILE: contrib/virtiofsd/fuse_lowlevel.h:1007:
+^I *$

ERROR: code indent should never use tabs
#3361: FILE: contrib/virtiofsd/fuse_lowlevel.h:1008:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3362: FILE: contrib/virtiofsd/fuse_lowlevel.h:1009:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3363: FILE: contrib/virtiofsd/fuse_lowlevel.h:1010:
+^I * @param cmd ioctl command$

ERROR: code indent should never use tabs
#3364: FILE: contrib/virtiofsd/fuse_lowlevel.h:1011:
+^I * @param arg ioctl argument$

ERROR: code indent should never use tabs
#3365: FILE: contrib/virtiofsd/fuse_lowlevel.h:1012:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3366: FILE: contrib/virtiofsd/fuse_lowlevel.h:1013:
+^I * @param flags for FUSE_IOCTL_* flags$

ERROR: code indent should never use tabs
#3367: FILE: contrib/virtiofsd/fuse_lowlevel.h:1014:
+^I * @param in_buf data fetched from the caller$

ERROR: code indent should never use tabs
#3368: FILE: contrib/virtiofsd/fuse_lowlevel.h:1015:
+^I * @param in_bufsz number of fetched bytes$

ERROR: code indent should never use tabs
#3369: FILE: contrib/virtiofsd/fuse_lowlevel.h:1016:
+^I * @param out_bufsz maximum size of output data$

ERROR: code indent should never use tabs
#3370: FILE: contrib/virtiofsd/fuse_lowlevel.h:1017:
+^I *$

ERROR: code indent should never use tabs
#3371: FILE: contrib/virtiofsd/fuse_lowlevel.h:1018:
+^I * Note : the unsigned long request submitted by the application$

ERROR: code indent should never use tabs
#3372: FILE: contrib/virtiofsd/fuse_lowlevel.h:1019:
+^I * is truncated to 32 bits.$

ERROR: code indent should never use tabs
#3373: FILE: contrib/virtiofsd/fuse_lowlevel.h:1020:
+^I */$

ERROR: code indent should never use tabs
#3374: FILE: contrib/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
#3375: FILE: contrib/virtiofsd/fuse_lowlevel.h:1022:
+^I^I       void *arg, struct fuse_file_info *fi, unsigned flags,$

ERROR: code indent should never use tabs
#3376: FILE: contrib/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
#3378: FILE: contrib/virtiofsd/fuse_lowlevel.h:1025:
+^I/**$

ERROR: code indent should never use tabs
#3379: FILE: contrib/virtiofsd/fuse_lowlevel.h:1026:
+^I * Poll for IO readiness$

ERROR: code indent should never use tabs
#3380: FILE: contrib/virtiofsd/fuse_lowlevel.h:1027:
+^I *$

ERROR: code indent should never use tabs
#3381: FILE: contrib/virtiofsd/fuse_lowlevel.h:1028:
+^I * Note: If ph is non-NULL, the client should notify$

ERROR: code indent should never use tabs
#3382: FILE: contrib/virtiofsd/fuse_lowlevel.h:1029:
+^I * when IO readiness events occur by calling$

ERROR: code indent should never use tabs
#3383: FILE: contrib/virtiofsd/fuse_lowlevel.h:1030:
+^I * fuse_lowlevel_notify_poll() with the specified ph.$

ERROR: code indent should never use tabs
#3384: FILE: contrib/virtiofsd/fuse_lowlevel.h:1031:
+^I *$

ERROR: code indent should never use tabs
#3385: FILE: contrib/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
#3386: FILE: contrib/virtiofsd/fuse_lowlevel.h:1033:
+^I * is received, single notification is enough to clear all.$

ERROR: code indent should never use tabs
#3387: FILE: contrib/virtiofsd/fuse_lowlevel.h:1034:
+^I * Notifying more times incurs overhead but doesn't harm$

ERROR: code indent should never use tabs
#3388: FILE: contrib/virtiofsd/fuse_lowlevel.h:1035:
+^I * correctness.$

ERROR: code indent should never use tabs
#3389: FILE: contrib/virtiofsd/fuse_lowlevel.h:1036:
+^I *$

ERROR: code indent should never use tabs
#3390: FILE: contrib/virtiofsd/fuse_lowlevel.h:1037:
+^I * The callee is responsible for destroying ph with$

ERROR: code indent should never use tabs
#3391: FILE: contrib/virtiofsd/fuse_lowlevel.h:1038:
+^I * fuse_pollhandle_destroy() when no longer in use.$

ERROR: code indent should never use tabs
#3392: FILE: contrib/virtiofsd/fuse_lowlevel.h:1039:
+^I *$

ERROR: code indent should never use tabs
#3393: FILE: contrib/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
#3394: FILE: contrib/virtiofsd/fuse_lowlevel.h:1041:
+^I * treated as success (with a kernel-defined default poll-mask) and$

ERROR: code indent should never use tabs
#3395: FILE: contrib/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
#3396: FILE: contrib/virtiofsd/fuse_lowlevel.h:1043:
+^I * to the filesystem process.$

ERROR: code indent should never use tabs
#3397: FILE: contrib/virtiofsd/fuse_lowlevel.h:1044:
+^I *$

ERROR: code indent should never use tabs
#3398: FILE: contrib/virtiofsd/fuse_lowlevel.h:1045:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3399: FILE: contrib/virtiofsd/fuse_lowlevel.h:1046:
+^I *   fuse_reply_poll$

ERROR: code indent should never use tabs
#3400: FILE: contrib/virtiofsd/fuse_lowlevel.h:1047:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3401: FILE: contrib/virtiofsd/fuse_lowlevel.h:1048:
+^I *$

ERROR: code indent should never use tabs
#3402: FILE: contrib/virtiofsd/fuse_lowlevel.h:1049:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3403: FILE: contrib/virtiofsd/fuse_lowlevel.h:1050:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3404: FILE: contrib/virtiofsd/fuse_lowlevel.h:1051:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3405: FILE: contrib/virtiofsd/fuse_lowlevel.h:1052:
+^I * @param ph poll handle to be used for notification$

ERROR: code indent should never use tabs
#3406: FILE: contrib/virtiofsd/fuse_lowlevel.h:1053:
+^I */$

ERROR: code indent should never use tabs
#3407: FILE: contrib/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
#3408: FILE: contrib/virtiofsd/fuse_lowlevel.h:1055:
+^I^I      struct fuse_pollhandle *ph);$

ERROR: code indent should never use tabs
#3410: FILE: contrib/virtiofsd/fuse_lowlevel.h:1057:
+^I/**$

ERROR: code indent should never use tabs
#3411: FILE: contrib/virtiofsd/fuse_lowlevel.h:1058:
+^I * Write data made available in a buffer$

ERROR: code indent should never use tabs
#3412: FILE: contrib/virtiofsd/fuse_lowlevel.h:1059:
+^I *$

ERROR: code indent should never use tabs
#3413: FILE: contrib/virtiofsd/fuse_lowlevel.h:1060:
+^I * This is a more generic version of the ->write() method.  If$

ERROR: code indent should never use tabs
#3414: FILE: contrib/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
#3415: FILE: contrib/virtiofsd/fuse_lowlevel.h:1062:
+^I * kernel supports splicing from the fuse device, then the$

ERROR: code indent should never use tabs
#3416: FILE: contrib/virtiofsd/fuse_lowlevel.h:1063:
+^I * data will be made available in pipe for supporting zero$

ERROR: code indent should never use tabs
#3417: FILE: contrib/virtiofsd/fuse_lowlevel.h:1064:
+^I * copy data transfer.$

ERROR: code indent should never use tabs
#3418: FILE: contrib/virtiofsd/fuse_lowlevel.h:1065:
+^I *$

ERROR: code indent should never use tabs
#3419: FILE: contrib/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
#3420: FILE: contrib/virtiofsd/fuse_lowlevel.h:1067:
+^I * always zero). The write_buf handler must ensure that$

ERROR: code indent should never use tabs
#3421: FILE: contrib/virtiofsd/fuse_lowlevel.h:1068:
+^I * bufv->off is correctly updated (reflecting the number of$

ERROR: code indent should never use tabs
#3422: FILE: contrib/virtiofsd/fuse_lowlevel.h:1069:
+^I * bytes read from bufv->buf[0]).$

ERROR: code indent should never use tabs
#3423: FILE: contrib/virtiofsd/fuse_lowlevel.h:1070:
+^I *$

ERROR: code indent should never use tabs
#3424: FILE: contrib/virtiofsd/fuse_lowlevel.h:1071:
+^I * Unless FUSE_CAP_HANDLE_KILLPRIV is disabled, this method is$

ERROR: code indent should never use tabs
#3425: FILE: contrib/virtiofsd/fuse_lowlevel.h:1072:
+^I * expected to reset the setuid and setgid bits.$

ERROR: code indent should never use tabs
#3426: FILE: contrib/virtiofsd/fuse_lowlevel.h:1073:
+^I *$

ERROR: code indent should never use tabs
#3427: FILE: contrib/virtiofsd/fuse_lowlevel.h:1074:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3428: FILE: contrib/virtiofsd/fuse_lowlevel.h:1075:
+^I *   fuse_reply_write$

ERROR: code indent should never use tabs
#3429: FILE: contrib/virtiofsd/fuse_lowlevel.h:1076:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3430: FILE: contrib/virtiofsd/fuse_lowlevel.h:1077:
+^I *$

ERROR: code indent should never use tabs
#3431: FILE: contrib/virtiofsd/fuse_lowlevel.h:1078:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3432: FILE: contrib/virtiofsd/fuse_lowlevel.h:1079:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3433: FILE: contrib/virtiofsd/fuse_lowlevel.h:1080:
+^I * @param bufv buffer containing the data$

ERROR: code indent should never use tabs
#3434: FILE: contrib/virtiofsd/fuse_lowlevel.h:1081:
+^I * @param off offset to write to$

ERROR: code indent should never use tabs
#3435: FILE: contrib/virtiofsd/fuse_lowlevel.h:1082:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3436: FILE: contrib/virtiofsd/fuse_lowlevel.h:1083:
+^I */$

ERROR: code indent should never use tabs
#3437: FILE: contrib/virtiofsd/fuse_lowlevel.h:1084:
+^Ivoid (*write_buf) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#3438: FILE: contrib/virtiofsd/fuse_lowlevel.h:1085:
+^I^I^I   struct fuse_bufvec *bufv, off_t off,$

ERROR: code indent should never use tabs
#3439: FILE: contrib/virtiofsd/fuse_lowlevel.h:1086:
+^I^I^I   struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3441: FILE: contrib/virtiofsd/fuse_lowlevel.h:1088:
+^I/**$

ERROR: code indent should never use tabs
#3442: FILE: contrib/virtiofsd/fuse_lowlevel.h:1089:
+^I * Callback function for the retrieve request$

ERROR: code indent should never use tabs
#3443: FILE: contrib/virtiofsd/fuse_lowlevel.h:1090:
+^I *$

ERROR: code indent should never use tabs
#3444: FILE: contrib/virtiofsd/fuse_lowlevel.h:1091:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3445: FILE: contrib/virtiofsd/fuse_lowlevel.h:1092:
+^I *^Ifuse_reply_none$

ERROR: code indent should never use tabs
#3446: FILE: contrib/virtiofsd/fuse_lowlevel.h:1093:
+^I *$

ERROR: code indent should never use tabs
#3447: FILE: contrib/virtiofsd/fuse_lowlevel.h:1094:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3448: FILE: contrib/virtiofsd/fuse_lowlevel.h:1095:
+^I * @param cookie user data supplied to fuse_lowlevel_notify_retrieve()$

WARNING: line over 80 characters
#3449: FILE: contrib/virtiofsd/fuse_lowlevel.h:1096:
+        * @param ino the inode number supplied to fuse_lowlevel_notify_retrieve()

ERROR: code indent should never use tabs
#3449: FILE: contrib/virtiofsd/fuse_lowlevel.h:1096:
+^I * @param ino the inode number supplied to fuse_lowlevel_notify_retrieve()$

ERROR: code indent should never use tabs
#3450: FILE: contrib/virtiofsd/fuse_lowlevel.h:1097:
+^I * @param offset the offset supplied to fuse_lowlevel_notify_retrieve()$

ERROR: code indent should never use tabs
#3451: FILE: contrib/virtiofsd/fuse_lowlevel.h:1098:
+^I * @param bufv the buffer containing the returned data$

ERROR: code indent should never use tabs
#3452: FILE: contrib/virtiofsd/fuse_lowlevel.h:1099:
+^I */$

ERROR: code indent should never use tabs
#3453: FILE: contrib/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
#3454: FILE: contrib/virtiofsd/fuse_lowlevel.h:1101:
+^I^I^I^Ioff_t offset, struct fuse_bufvec *bufv);$

ERROR: code indent should never use tabs
#3456: FILE: contrib/virtiofsd/fuse_lowlevel.h:1103:
+^I/**$

ERROR: code indent should never use tabs
#3457: FILE: contrib/virtiofsd/fuse_lowlevel.h:1104:
+^I * Forget about multiple inodes$

ERROR: code indent should never use tabs
#3458: FILE: contrib/virtiofsd/fuse_lowlevel.h:1105:
+^I *$

ERROR: code indent should never use tabs
#3459: FILE: contrib/virtiofsd/fuse_lowlevel.h:1106:
+^I * See description of the forget function for more$

ERROR: code indent should never use tabs
#3460: FILE: contrib/virtiofsd/fuse_lowlevel.h:1107:
+^I * information.$

ERROR: code indent should never use tabs
#3461: FILE: contrib/virtiofsd/fuse_lowlevel.h:1108:
+^I *$

ERROR: code indent should never use tabs
#3462: FILE: contrib/virtiofsd/fuse_lowlevel.h:1109:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3463: FILE: contrib/virtiofsd/fuse_lowlevel.h:1110:
+^I *   fuse_reply_none$

ERROR: code indent should never use tabs
#3464: FILE: contrib/virtiofsd/fuse_lowlevel.h:1111:
+^I *$

ERROR: code indent should never use tabs
#3465: FILE: contrib/virtiofsd/fuse_lowlevel.h:1112:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3466: FILE: contrib/virtiofsd/fuse_lowlevel.h:1113:
+^I */$

ERROR: code indent should never use tabs
#3467: FILE: contrib/virtiofsd/fuse_lowlevel.h:1114:
+^Ivoid (*forget_multi) (fuse_req_t req, size_t count,$

ERROR: code indent should never use tabs
#3468: FILE: contrib/virtiofsd/fuse_lowlevel.h:1115:
+^I^I^I      struct fuse_forget_data *forgets);$

ERROR: code indent should never use tabs
#3470: FILE: contrib/virtiofsd/fuse_lowlevel.h:1117:
+^I/**$

ERROR: code indent should never use tabs
#3471: FILE: contrib/virtiofsd/fuse_lowlevel.h:1118:
+^I * Acquire, modify or release a BSD file lock$

ERROR: code indent should never use tabs
#3472: FILE: contrib/virtiofsd/fuse_lowlevel.h:1119:
+^I *$

ERROR: code indent should never use tabs
#3473: FILE: contrib/virtiofsd/fuse_lowlevel.h:1120:
+^I * Note: if the locking methods are not implemented, the kernel$

ERROR: code indent should never use tabs
#3474: FILE: contrib/virtiofsd/fuse_lowlevel.h:1121:
+^I * will still allow file locking to work locally.  Hence these are$

ERROR: code indent should never use tabs
#3475: FILE: contrib/virtiofsd/fuse_lowlevel.h:1122:
+^I * only interesting for network filesystems and similar.$

ERROR: code indent should never use tabs
#3476: FILE: contrib/virtiofsd/fuse_lowlevel.h:1123:
+^I *$

ERROR: code indent should never use tabs
#3477: FILE: contrib/virtiofsd/fuse_lowlevel.h:1124:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3478: FILE: contrib/virtiofsd/fuse_lowlevel.h:1125:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3479: FILE: contrib/virtiofsd/fuse_lowlevel.h:1126:
+^I *$

ERROR: code indent should never use tabs
#3480: FILE: contrib/virtiofsd/fuse_lowlevel.h:1127:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3481: FILE: contrib/virtiofsd/fuse_lowlevel.h:1128:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3482: FILE: contrib/virtiofsd/fuse_lowlevel.h:1129:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3483: FILE: contrib/virtiofsd/fuse_lowlevel.h:1130:
+^I * @param op the locking operation, see flock(2)$

ERROR: code indent should never use tabs
#3484: FILE: contrib/virtiofsd/fuse_lowlevel.h:1131:
+^I */$

ERROR: code indent should never use tabs
#3485: FILE: contrib/virtiofsd/fuse_lowlevel.h:1132:
+^Ivoid (*flock) (fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#3486: FILE: contrib/virtiofsd/fuse_lowlevel.h:1133:
+^I^I       struct fuse_file_info *fi, int op);$

ERROR: code indent should never use tabs
#3488: FILE: contrib/virtiofsd/fuse_lowlevel.h:1135:
+^I/**$

ERROR: code indent should never use tabs
#3489: FILE: contrib/virtiofsd/fuse_lowlevel.h:1136:
+^I * Allocate requested space. If this function returns success then$

WARNING: line over 80 characters
#3490: FILE: contrib/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
#3490: FILE: contrib/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
#3491: FILE: contrib/virtiofsd/fuse_lowlevel.h:1138:
+^I * of free space on the file system storage media.$

ERROR: code indent should never use tabs
#3492: FILE: contrib/virtiofsd/fuse_lowlevel.h:1139:
+^I *$

ERROR: code indent should never use tabs
#3493: FILE: contrib/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
#3494: FILE: contrib/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
#3495: FILE: contrib/virtiofsd/fuse_lowlevel.h:1142:
+^I * future fallocate() requests will fail with EOPNOTSUPP without being$

ERROR: code indent should never use tabs
#3496: FILE: contrib/virtiofsd/fuse_lowlevel.h:1143:
+^I * send to the filesystem process.$

ERROR: code indent should never use tabs
#3497: FILE: contrib/virtiofsd/fuse_lowlevel.h:1144:
+^I *$

ERROR: code indent should never use tabs
#3498: FILE: contrib/virtiofsd/fuse_lowlevel.h:1145:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3499: FILE: contrib/virtiofsd/fuse_lowlevel.h:1146:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3500: FILE: contrib/virtiofsd/fuse_lowlevel.h:1147:
+^I *$

ERROR: code indent should never use tabs
#3501: FILE: contrib/virtiofsd/fuse_lowlevel.h:1148:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3502: FILE: contrib/virtiofsd/fuse_lowlevel.h:1149:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3503: FILE: contrib/virtiofsd/fuse_lowlevel.h:1150:
+^I * @param offset starting point for allocated region$

ERROR: code indent should never use tabs
#3504: FILE: contrib/virtiofsd/fuse_lowlevel.h:1151:
+^I * @param length size of allocated region$

WARNING: line over 80 characters
#3505: FILE: contrib/virtiofsd/fuse_lowlevel.h:1152:
+        * @param mode determines the operation to be performed on the given range,

ERROR: code indent should never use tabs
#3505: FILE: contrib/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
#3506: FILE: contrib/virtiofsd/fuse_lowlevel.h:1153:
+^I *             see fallocate(2)$

ERROR: code indent should never use tabs
#3507: FILE: contrib/virtiofsd/fuse_lowlevel.h:1154:
+^I */$

ERROR: code indent should never use tabs
#3508: FILE: contrib/virtiofsd/fuse_lowlevel.h:1155:
+^Ivoid (*fallocate) (fuse_req_t req, fuse_ino_t ino, int mode,$

ERROR: code indent should never use tabs
#3509: FILE: contrib/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
#3511: FILE: contrib/virtiofsd/fuse_lowlevel.h:1158:
+^I/**$

ERROR: code indent should never use tabs
#3512: FILE: contrib/virtiofsd/fuse_lowlevel.h:1159:
+^I * Read directory with attributes$

ERROR: code indent should never use tabs
#3513: FILE: contrib/virtiofsd/fuse_lowlevel.h:1160:
+^I *$

ERROR: code indent should never use tabs
#3514: FILE: contrib/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
#3515: FILE: contrib/virtiofsd/fuse_lowlevel.h:1162:
+^I * exceeding the requested size.  Send an empty buffer on end of$

ERROR: code indent should never use tabs
#3516: FILE: contrib/virtiofsd/fuse_lowlevel.h:1163:
+^I * stream.$

ERROR: code indent should never use tabs
#3517: FILE: contrib/virtiofsd/fuse_lowlevel.h:1164:
+^I *$

ERROR: code indent should never use tabs
#3518: FILE: contrib/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
#3519: FILE: contrib/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
#3520: FILE: contrib/virtiofsd/fuse_lowlevel.h:1167:
+^I *$

ERROR: code indent should never use tabs
#3521: FILE: contrib/virtiofsd/fuse_lowlevel.h:1168:
+^I * In contrast to readdir() (which does not affect the lookup counts),$

ERROR: code indent should never use tabs
#3522: FILE: contrib/virtiofsd/fuse_lowlevel.h:1169:
+^I * the lookup count of every entry returned by readdirplus(), except "."$

ERROR: code indent should never use tabs
#3523: FILE: contrib/virtiofsd/fuse_lowlevel.h:1170:
+^I * and "..", is incremented by one.$

ERROR: code indent should never use tabs
#3524: FILE: contrib/virtiofsd/fuse_lowlevel.h:1171:
+^I *$

ERROR: code indent should never use tabs
#3525: FILE: contrib/virtiofsd/fuse_lowlevel.h:1172:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3526: FILE: contrib/virtiofsd/fuse_lowlevel.h:1173:
+^I *   fuse_reply_buf$

ERROR: code indent should never use tabs
#3527: FILE: contrib/virtiofsd/fuse_lowlevel.h:1174:
+^I *   fuse_reply_data$

ERROR: code indent should never use tabs
#3528: FILE: contrib/virtiofsd/fuse_lowlevel.h:1175:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3529: FILE: contrib/virtiofsd/fuse_lowlevel.h:1176:
+^I *$

ERROR: code indent should never use tabs
#3530: FILE: contrib/virtiofsd/fuse_lowlevel.h:1177:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3531: FILE: contrib/virtiofsd/fuse_lowlevel.h:1178:
+^I * @param ino the inode number$

ERROR: code indent should never use tabs
#3532: FILE: contrib/virtiofsd/fuse_lowlevel.h:1179:
+^I * @param size maximum number of bytes to send$

ERROR: code indent should never use tabs
#3533: FILE: contrib/virtiofsd/fuse_lowlevel.h:1180:
+^I * @param off offset to continue reading the directory stream$

ERROR: code indent should never use tabs
#3534: FILE: contrib/virtiofsd/fuse_lowlevel.h:1181:
+^I * @param fi file information$

ERROR: code indent should never use tabs
#3535: FILE: contrib/virtiofsd/fuse_lowlevel.h:1182:
+^I */$

WARNING: line over 80 characters
#3536: FILE: contrib/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
#3536: FILE: contrib/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
#3537: FILE: contrib/virtiofsd/fuse_lowlevel.h:1184:
+^I^I^I struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3539: FILE: contrib/virtiofsd/fuse_lowlevel.h:1186:
+^I/**$

ERROR: code indent should never use tabs
#3540: FILE: contrib/virtiofsd/fuse_lowlevel.h:1187:
+^I * Copy a range of data from one file to another$

ERROR: code indent should never use tabs
#3541: FILE: contrib/virtiofsd/fuse_lowlevel.h:1188:
+^I *$

ERROR: code indent should never use tabs
#3542: FILE: contrib/virtiofsd/fuse_lowlevel.h:1189:
+^I * Performs an optimized copy between two file descriptors without the$

ERROR: code indent should never use tabs
#3543: FILE: contrib/virtiofsd/fuse_lowlevel.h:1190:
+^I * additional cost of transferring data through the FUSE kernel module$

ERROR: code indent should never use tabs
#3544: FILE: contrib/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
#3545: FILE: contrib/virtiofsd/fuse_lowlevel.h:1192:
+^I *$

ERROR: code indent should never use tabs
#3546: FILE: contrib/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
#3547: FILE: contrib/virtiofsd/fuse_lowlevel.h:1194:
+^I * data from the source and writing to the destination. Effectively$

ERROR: code indent should never use tabs
#3548: FILE: contrib/virtiofsd/fuse_lowlevel.h:1195:
+^I * doing an inefficient copy of the data.$

ERROR: code indent should never use tabs
#3549: FILE: contrib/virtiofsd/fuse_lowlevel.h:1196:
+^I *$

ERROR: code indent should never use tabs
#3550: FILE: contrib/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
#3551: FILE: contrib/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
#3552: FILE: contrib/virtiofsd/fuse_lowlevel.h:1199:
+^I * future copy_file_range() requests will fail with EOPNOTSUPP without$

ERROR: code indent should never use tabs
#3553: FILE: contrib/virtiofsd/fuse_lowlevel.h:1200:
+^I * being send to the filesystem process.$

ERROR: code indent should never use tabs
#3554: FILE: contrib/virtiofsd/fuse_lowlevel.h:1201:
+^I *$

ERROR: code indent should never use tabs
#3555: FILE: contrib/virtiofsd/fuse_lowlevel.h:1202:
+^I * Valid replies:$

ERROR: code indent should never use tabs
#3556: FILE: contrib/virtiofsd/fuse_lowlevel.h:1203:
+^I *   fuse_reply_write$

ERROR: code indent should never use tabs
#3557: FILE: contrib/virtiofsd/fuse_lowlevel.h:1204:
+^I *   fuse_reply_err$

ERROR: code indent should never use tabs
#3558: FILE: contrib/virtiofsd/fuse_lowlevel.h:1205:
+^I *$

ERROR: code indent should never use tabs
#3559: FILE: contrib/virtiofsd/fuse_lowlevel.h:1206:
+^I * @param req request handle$

ERROR: code indent should never use tabs
#3560: FILE: contrib/virtiofsd/fuse_lowlevel.h:1207:
+^I * @param ino_in the inode number or the source file$

ERROR: code indent should never use tabs
#3561: FILE: contrib/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
#3562: FILE: contrib/virtiofsd/fuse_lowlevel.h:1209:
+^I * @param fi_in file information of the source file$

ERROR: code indent should never use tabs
#3563: FILE: contrib/virtiofsd/fuse_lowlevel.h:1210:
+^I * @param ino_out the inode number or the destination file$

ERROR: code indent should never use tabs
#3564: FILE: contrib/virtiofsd/fuse_lowlevel.h:1211:
+^I * @param off_out starting point where the data should be written$

ERROR: code indent should never use tabs
#3565: FILE: contrib/virtiofsd/fuse_lowlevel.h:1212:
+^I * @param fi_out file information of the destination file$

ERROR: code indent should never use tabs
#3566: FILE: contrib/virtiofsd/fuse_lowlevel.h:1213:
+^I * @param len maximum size of the data to copy$

ERROR: code indent should never use tabs
#3567: FILE: contrib/virtiofsd/fuse_lowlevel.h:1214:
+^I * @param flags passed along with the copy_file_range() syscall$

ERROR: code indent should never use tabs
#3568: FILE: contrib/virtiofsd/fuse_lowlevel.h:1215:
+^I */$

ERROR: code indent should never use tabs
#3569: FILE: contrib/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
#3570: FILE: contrib/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
#3571: FILE: contrib/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
#3572: FILE: contrib/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
#3573: FILE: contrib/virtiofsd/fuse_lowlevel.h:1220:
+^I^I^I^I int flags);$

ERROR: code indent should never use tabs
#3644: FILE: contrib/virtiofsd/fuse_lowlevel.h:1291:
+^I^I      const struct fuse_file_info *fi);$

ERROR: code indent should never use tabs
#3654: FILE: contrib/virtiofsd/fuse_lowlevel.h:1301:
+ * @param attr_timeout^Ivalidity timeout (in seconds) for the attributes$

ERROR: code indent should never use tabs
#3658: FILE: contrib/virtiofsd/fuse_lowlevel.h:1305:
+^I^I    double attr_timeout);$

ERROR: code indent should never use tabs
#3756: FILE: contrib/virtiofsd/fuse_lowlevel.h:1403:
+^I^I    enum fuse_buf_copy_flags flags);$

WARNING: Block comments use a leading /* on a separate line
#3819: FILE: contrib/virtiofsd/fuse_lowlevel.h:1466:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#3820: FILE: contrib/virtiofsd/fuse_lowlevel.h:1467:
+ * Filling a buffer in readdir^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#3821: FILE: contrib/virtiofsd/fuse_lowlevel.h:1468:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#3851: FILE: contrib/virtiofsd/fuse_lowlevel.h:1498:
+^I^I^I const char *name, const struct stat *stbuf,$

ERROR: code indent should never use tabs
#3852: FILE: contrib/virtiofsd/fuse_lowlevel.h:1499:
+^I^I^I off_t off);$

ERROR: code indent should never use tabs
#3868: FILE: contrib/virtiofsd/fuse_lowlevel.h:1515:
+^I^I^I      const char *name,$

ERROR: code indent should never use tabs
#3869: FILE: contrib/virtiofsd/fuse_lowlevel.h:1516:
+^I^I^I      const struct fuse_entry_param *e, off_t off);$

ERROR: code indent should never use tabs
#3887: FILE: contrib/virtiofsd/fuse_lowlevel.h:1534:
+^I^I^I   const struct iovec *in_iov, size_t in_count,$

ERROR: code indent should never use tabs
#3888: FILE: contrib/virtiofsd/fuse_lowlevel.h:1535:
+^I^I^I   const struct iovec *out_iov, size_t out_count);$

ERROR: code indent should never use tabs
#3915: FILE: contrib/virtiofsd/fuse_lowlevel.h:1562:
+^I^I^I int count);$

WARNING: Block comments use a leading /* on a separate line
#3925: FILE: contrib/virtiofsd/fuse_lowlevel.h:1572:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#3926: FILE: contrib/virtiofsd/fuse_lowlevel.h:1573:
+ * Notification^I^I^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#3927: FILE: contrib/virtiofsd/fuse_lowlevel.h:1574:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#3962: FILE: contrib/virtiofsd/fuse_lowlevel.h:1609:
+^I^I^I^I     off_t off, off_t len);$

ERROR: code indent should never use tabs
#3990: FILE: contrib/virtiofsd/fuse_lowlevel.h:1637:
+^I^I^I^I     const char *name, size_t namelen);$

ERROR: code indent should never use tabs
#4021: FILE: contrib/virtiofsd/fuse_lowlevel.h:1668:
+^I^I^I^Ifuse_ino_t parent, fuse_ino_t child,$

ERROR: code indent should never use tabs
#4022: FILE: contrib/virtiofsd/fuse_lowlevel.h:1669:
+^I^I^I^Iconst char *name, size_t namelen);$

ERROR: code indent should never use tabs
#4050: FILE: contrib/virtiofsd/fuse_lowlevel.h:1697:
+^I^I^I       off_t offset, struct fuse_bufvec *bufv,$

ERROR: code indent should never use tabs
#4051: FILE: contrib/virtiofsd/fuse_lowlevel.h:1698:
+^I^I^I       enum fuse_buf_copy_flags flags);$

ERROR: code indent should never use tabs
#4082: FILE: contrib/virtiofsd/fuse_lowlevel.h:1729:
+^I^I^I^I  size_t size, off_t offset, void *cookie);$

WARNING: Block comments use a leading /* on a separate line
#4085: FILE: contrib/virtiofsd/fuse_lowlevel.h:1732:
+/* ----------------------------------------------------------- *

ERROR: code indent should never use tabs
#4086: FILE: contrib/virtiofsd/fuse_lowlevel.h:1733:
+ * Utility functions^I^I^I^I^I       *$

WARNING: Block comments use a trailing */ on a separate line
#4087: FILE: contrib/virtiofsd/fuse_lowlevel.h:1734:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#4149: FILE: contrib/virtiofsd/fuse_lowlevel.h:1796:
+^I^I^I     void *data);$

WARNING: Block comments use a leading /* on a separate line
#4160: FILE: contrib/virtiofsd/fuse_lowlevel.h:1807:
+/* ----------------------------------------------------------- *

WARNING: Block comments use a trailing */ on a separate line
#4162: FILE: contrib/virtiofsd/fuse_lowlevel.h:1809:
+ * ----------------------------------------------------------- */

WARNING: Block comments use a leading /* on a separate line
#4181: FILE: contrib/virtiofsd/fuse_lowlevel.h:1828:
+/* ----------------------------------------------------------- *

WARNING: Block comments use a trailing */ on a separate line
#4183: FILE: contrib/virtiofsd/fuse_lowlevel.h:1830:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#4186: FILE: contrib/virtiofsd/fuse_lowlevel.h:1833:
+^Iint singlethread;$

ERROR: code indent should never use tabs
#4187: FILE: contrib/virtiofsd/fuse_lowlevel.h:1834:
+^Iint foreground;$

ERROR: code indent should never use tabs
#4188: FILE: contrib/virtiofsd/fuse_lowlevel.h:1835:
+^Iint debug;$

ERROR: code indent should never use tabs
#4189: FILE: contrib/virtiofsd/fuse_lowlevel.h:1836:
+^Iint nodefault_subtype;$

ERROR: code indent should never use tabs
#4190: FILE: contrib/virtiofsd/fuse_lowlevel.h:1837:
+^Ichar *mountpoint;$

ERROR: code indent should never use tabs
#4191: FILE: contrib/virtiofsd/fuse_lowlevel.h:1838:
+^Iint show_version;$

ERROR: code indent should never use tabs
#4192: FILE: contrib/virtiofsd/fuse_lowlevel.h:1839:
+^Iint show_help;$

ERROR: code indent should never use tabs
#4193: FILE: contrib/virtiofsd/fuse_lowlevel.h:1840:
+^Iint clone_fd;$

ERROR: code indent should never use tabs
#4194: FILE: contrib/virtiofsd/fuse_lowlevel.h:1841:
+^Iunsigned int max_idle_threads;$

ERROR: code indent should never use tabs
#4216: FILE: contrib/virtiofsd/fuse_lowlevel.h:1863:
+^I^I       struct fuse_cmdline_opts *opts);$

ERROR: code indent should never use tabs
#4247: FILE: contrib/virtiofsd/fuse_lowlevel.h:1894:
+^I^I^I^I      const struct fuse_lowlevel_ops *op,$

ERROR: code indent should never use tabs
#4248: FILE: contrib/virtiofsd/fuse_lowlevel.h:1895:
+^I^I^I^I      size_t op_size, void *userdata);$

ERROR: trailing whitespace
#4292: FILE: contrib/virtiofsd/fuse_lowlevel.h:1939:
+ * @param config session loop configuration $

WARNING: line over 80 characters
#4299: FILE: contrib/virtiofsd/fuse_lowlevel.h:1946:
+int fuse_session_loop_mt(struct fuse_session *se, struct fuse_loop_config *config);

WARNING: Block comments use a leading /* on a separate line
#4361: FILE: contrib/virtiofsd/fuse_lowlevel.h:2008:
+/* ----------------------------------------------------------- *

WARNING: Block comments use a trailing */ on a separate line
#4363: FILE: contrib/virtiofsd/fuse_lowlevel.h:2010:
+ * ----------------------------------------------------------- */

ERROR: code indent should never use tabs
#4390: FILE: contrib/virtiofsd/fuse_lowlevel.h:2037:
+^I^I^I      const struct fuse_buf *buf);$

WARNING: architecture specific defines should be avoided
#4405: FILE: contrib/virtiofsd/fuse_lowlevel.h:2052:
+#ifdef __cplusplus

WARNING: Block comments use * on subsequent lines
#4417: FILE: contrib/virtiofsd/fuse_misc.h:2:
+/*
+  FUSE: Filesystem in Userspace

WARNING: Block comments use * on subsequent lines
#4427: FILE: contrib/virtiofsd/fuse_misc.h:12:
+/*
+  Versioned symbols cannot be used in some cases because it

WARNING: architecture specific defines should be avoided
#4431: FILE: contrib/virtiofsd/fuse_misc.h:16:
+#if (!defined(__UCLIBC__) && !defined(__APPLE__))

ERROR: code indent should never use tabs
#4443: FILE: contrib/virtiofsd/fuse_misc.h:28:
+^Ipthread_mutexattr_t attr;$

ERROR: code indent should never use tabs
#4444: FILE: contrib/virtiofsd/fuse_misc.h:29:
+^Ipthread_mutexattr_init(&attr);$

ERROR: code indent should never use tabs
#4445: FILE: contrib/virtiofsd/fuse_misc.h:30:
+^Ipthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ADAPTIVE_NP);$

ERROR: code indent should never use tabs
#4446: FILE: contrib/virtiofsd/fuse_misc.h:31:
+^Ipthread_mutex_init(mut, &attr);$

ERROR: code indent should never use tabs
#4447: FILE: contrib/virtiofsd/fuse_misc.h:32:
+^Ipthread_mutexattr_destroy(&attr);$

WARNING: Block comments use * on subsequent lines
#4482: FILE: contrib/virtiofsd/fuse_opt.h:2:
+/*
+  FUSE: Filesystem in Userspace

WARNING: Block comments use a leading /* on a separate line
#4492: FILE: contrib/virtiofsd/fuse_opt.h:12:
+/** @file

WARNING: architecture specific defines should be avoided
#4497: FILE: contrib/virtiofsd/fuse_opt.h:17:
+#ifdef __cplusplus

ERROR: code indent should never use tabs
#4524: FILE: contrib/virtiofsd/fuse_opt.h:44:
+ *  - -1^I^I^I      action ii)$

ERROR: code indent should never use tabs
#4535: FILE: contrib/virtiofsd/fuse_opt.h:55:
+ * 1) "-x", "-foo", "--foo", "--foo-bar", etc.^IThese match only$

ERROR: code indent should never use tabs
#4558: FILE: contrib/virtiofsd/fuse_opt.h:78:
+^I/** Matching template and optional parameter formatting */$

ERROR: code indent should never use tabs
#4559: FILE: contrib/virtiofsd/fuse_opt.h:79:
+^Iconst char *templ;$

ERROR: code indent should never use tabs
#4561: FILE: contrib/virtiofsd/fuse_opt.h:81:
+^I/**$

ERROR: code indent should never use tabs
#4562: FILE: contrib/virtiofsd/fuse_opt.h:82:
+^I * Offset of variable within 'data' parameter of fuse_opt_parse()$

ERROR: code indent should never use tabs
#4563: FILE: contrib/virtiofsd/fuse_opt.h:83:
+^I * or -1$

ERROR: code indent should never use tabs
#4564: FILE: contrib/virtiofsd/fuse_opt.h:84:
+^I */$

ERROR: code indent should never use tabs
#4565: FILE: contrib/virtiofsd/fuse_opt.h:85:
+^Iunsigned long offset;$

ERROR: code indent should never use tabs
#4567: FILE: contrib/virtiofsd/fuse_opt.h:87:
+^I/**$

ERROR: code indent should never use tabs
#4568: FILE: contrib/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
#4569: FILE: contrib/virtiofsd/fuse_opt.h:89:
+^I * processing function.^I Ignored if template has a format$

ERROR: code indent should never use tabs
#4570: FILE: contrib/virtiofsd/fuse_opt.h:90:
+^I */$

ERROR: code indent should never use tabs
#4571: FILE: contrib/virtiofsd/fuse_opt.h:91:
+^Iint value;$

ERROR: code indent should never use tabs
#4575: FILE: contrib/virtiofsd/fuse_opt.h:95:
+ * Key option.^IIn case of a match, the processing function will be$

ERROR: code indent should never use tabs
#4581: FILE: contrib/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
#4590: FILE: contrib/virtiofsd/fuse_opt.h:110:
+^I/** Argument count */$

ERROR: code indent should never use tabs
#4591: FILE: contrib/virtiofsd/fuse_opt.h:111:
+^Iint argc;$

ERROR: code indent should never use tabs
#4593: FILE: contrib/virtiofsd/fuse_opt.h:113:
+^I/** Argument vector.  NULL terminated */$

ERROR: code indent should never use tabs
#4594: FILE: contrib/virtiofsd/fuse_opt.h:114:
+^Ichar **argv;$

ERROR: code indent should never use tabs
#4596: FILE: contrib/virtiofsd/fuse_opt.h:116:
+^I/** Is 'argv' allocated? */$

ERROR: code indent should never use tabs
#4597: FILE: contrib/virtiofsd/fuse_opt.h:117:
+^Iint allocated;$

ERROR: code indent should never use tabs
#4661: FILE: contrib/virtiofsd/fuse_opt.h:181:
+^I^I^I       struct fuse_args *outargs);$

ERROR: code indent should never use tabs
#4684: FILE: contrib/virtiofsd/fuse_opt.h:204:
+^I^I   const struct fuse_opt opts[], fuse_opt_proc_t proc);$

WARNING: architecture specific defines should be avoided
#4747: FILE: contrib/virtiofsd/fuse_opt.h:267:
+#ifdef __cplusplus

ERROR: code indent should never use tabs
#4788: FILE: contrib/virtiofsd/passthrough_helpers.h:31:
+^Iint mode, dev_t rdev)$

ERROR: code indent should never use tabs
#4790: FILE: contrib/virtiofsd/passthrough_helpers.h:33:
+^Iint res;$

ERROR: code indent should never use tabs
#4792: FILE: contrib/virtiofsd/passthrough_helpers.h:35:
+^Iif (S_ISREG(mode)) {$

ERROR: code indent should never use tabs
#4793: FILE: contrib/virtiofsd/passthrough_helpers.h:36:
+^I^Ires = openat(dirfd, path, O_CREAT | O_EXCL | O_WRONLY, mode);$

ERROR: code indent should never use tabs
#4794: FILE: contrib/virtiofsd/passthrough_helpers.h:37:
+^I^Iif (res >= 0)$

ERROR: braces {} are necessary for all arms of this statement
#4794: FILE: contrib/virtiofsd/passthrough_helpers.h:37:
+               if (res >= 0)
[...]

ERROR: code indent should never use tabs
#4795: FILE: contrib/virtiofsd/passthrough_helpers.h:38:
+^I^I^Ires = close(res);$

ERROR: code indent should never use tabs
#4796: FILE: contrib/virtiofsd/passthrough_helpers.h:39:
+^I} else if (S_ISDIR(mode)) {$

ERROR: code indent should never use tabs
#4797: FILE: contrib/virtiofsd/passthrough_helpers.h:40:
+^I^Ires = mkdirat(dirfd, path, mode);$

ERROR: code indent should never use tabs
#4798: FILE: contrib/virtiofsd/passthrough_helpers.h:41:
+^I} else if (S_ISLNK(mode) && link != NULL) {$

ERROR: code indent should never use tabs
#4799: FILE: contrib/virtiofsd/passthrough_helpers.h:42:
+^I^Ires = symlinkat(link, dirfd, path);$

ERROR: code indent should never use tabs
#4800: FILE: contrib/virtiofsd/passthrough_helpers.h:43:
+^I} else if (S_ISFIFO(mode)) {$

ERROR: code indent should never use tabs
#4801: FILE: contrib/virtiofsd/passthrough_helpers.h:44:
+^I^Ires = mkfifoat(dirfd, path, mode);$

WARNING: architecture specific defines should be avoided
#4802: FILE: contrib/virtiofsd/passthrough_helpers.h:45:
+#ifdef __FreeBSD__

ERROR: code indent should never use tabs
#4803: FILE: contrib/virtiofsd/passthrough_helpers.h:46:
+^I} else if (S_ISSOCK(mode)) {$

ERROR: code indent should never use tabs
#4804: FILE: contrib/virtiofsd/passthrough_helpers.h:47:
+^I^Istruct sockaddr_un su;$

ERROR: code indent should never use tabs
#4805: FILE: contrib/virtiofsd/passthrough_helpers.h:48:
+^I^Iint fd;$

ERROR: code indent should never use tabs
#4807: FILE: contrib/virtiofsd/passthrough_helpers.h:50:
+^I^Iif (strlen(path) >= sizeof(su.sun_path)) {$

ERROR: code indent should never use tabs
#4808: FILE: contrib/virtiofsd/passthrough_helpers.h:51:
+^I^I^Ierrno = ENAMETOOLONG;$

ERROR: code indent should never use tabs
#4809: FILE: contrib/virtiofsd/passthrough_helpers.h:52:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#4810: FILE: contrib/virtiofsd/passthrough_helpers.h:53:
+^I^I}$

ERROR: code indent should never use tabs
#4811: FILE: contrib/virtiofsd/passthrough_helpers.h:54:
+^I^Ifd = socket(AF_UNIX, SOCK_STREAM, 0);$

ERROR: code indent should never use tabs
#4812: FILE: contrib/virtiofsd/passthrough_helpers.h:55:
+^I^Iif (fd >= 0) {$

ERROR: code indent should never use tabs
#4813: FILE: contrib/virtiofsd/passthrough_helpers.h:56:
+^I^I^I/*$

ERROR: code indent should never use tabs
#4814: FILE: contrib/virtiofsd/passthrough_helpers.h:57:
+^I^I^I * We must bind the socket to the underlying file$

ERROR: code indent should never use tabs
#4815: FILE: contrib/virtiofsd/passthrough_helpers.h:58:
+^I^I^I * system to create the socket file, even though$

ERROR: code indent should never use tabs
#4816: FILE: contrib/virtiofsd/passthrough_helpers.h:59:
+^I^I^I * we'll never listen on this socket.$

ERROR: code indent should never use tabs
#4817: FILE: contrib/virtiofsd/passthrough_helpers.h:60:
+^I^I^I */$

ERROR: code indent should never use tabs
#4818: FILE: contrib/virtiofsd/passthrough_helpers.h:61:
+^I^I^Isu.sun_family = AF_UNIX;$

ERROR: code indent should never use tabs
#4819: FILE: contrib/virtiofsd/passthrough_helpers.h:62:
+^I^I^Istrncpy(su.sun_path, path, sizeof(su.sun_path));$

ERROR: code indent should never use tabs
#4820: FILE: contrib/virtiofsd/passthrough_helpers.h:63:
+^I^I^Ires = bindat(dirfd, fd, (struct sockaddr*)&su,$

ERROR: "(foo*)" should be "(foo *)"
#4820: FILE: contrib/virtiofsd/passthrough_helpers.h:63:
+                       res = bindat(dirfd, fd, (struct sockaddr*)&su,

ERROR: code indent should never use tabs
#4821: FILE: contrib/virtiofsd/passthrough_helpers.h:64:
+^I^I^I^Isizeof(su));$

ERROR: code indent should never use tabs
#4822: FILE: contrib/virtiofsd/passthrough_helpers.h:65:
+^I^I^Iif (res == 0)$

ERROR: braces {} are necessary for all arms of this statement
#4822: FILE: contrib/virtiofsd/passthrough_helpers.h:65:
+                       if (res == 0)
[...]

ERROR: code indent should never use tabs
#4823: FILE: contrib/virtiofsd/passthrough_helpers.h:66:
+^I^I^I^Iclose(fd);$

ERROR: code indent should never use tabs
#4824: FILE: contrib/virtiofsd/passthrough_helpers.h:67:
+^I^I} else {$

ERROR: code indent should never use tabs
#4825: FILE: contrib/virtiofsd/passthrough_helpers.h:68:
+^I^I^Ires = -1;$

ERROR: code indent should never use tabs
#4826: FILE: contrib/virtiofsd/passthrough_helpers.h:69:
+^I^I}$

ERROR: code indent should never use tabs
#4828: FILE: contrib/virtiofsd/passthrough_helpers.h:71:
+^I} else {$

ERROR: code indent should never use tabs
#4829: FILE: contrib/virtiofsd/passthrough_helpers.h:72:
+^I^Ires = mknodat(dirfd, path, mode, rdev);$

ERROR: code indent should never use tabs
#4830: FILE: contrib/virtiofsd/passthrough_helpers.h:73:
+^I}$

ERROR: code indent should never use tabs
#4832: FILE: contrib/virtiofsd/passthrough_helpers.h:75:
+^Ireturn res;$

total: 2246 errors, 138 warnings, 4774 lines checked

Patch 1/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

2/30 Checking commit d3c6db5d675d (virtiofsd: Pull in kernel's fuse.h)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#13: 
new file mode 100644

WARNING: line over 80 characters
#18: FILE: contrib/virtiofsd/fuse_kernel.h:1:
+/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */

WARNING: Block comments use * on subsequent lines
#20: FILE: contrib/virtiofsd/fuse_kernel.h:3:
+/*
+    This file defines the kernel interface of FUSE

WARNING: architecture specific defines should be avoided
#160: FILE: contrib/virtiofsd/fuse_kernel.h:143:
+#ifdef __KERNEL__

WARNING: Block comments use a leading /* on a separate line
#195: FILE: contrib/virtiofsd/fuse_kernel.h:178:
+/* Make sure all structures are padded to 64bit boundary, so 32bit

WARNING: Block comments use * on subsequent lines
#196: FILE: contrib/virtiofsd/fuse_kernel.h:179:
+/* Make sure all structures are padded to 64bit boundary, so 32bit
+   userspace works under 64bit kernels */

WARNING: Block comments use a trailing */ on a separate line
#196: FILE: contrib/virtiofsd/fuse_kernel.h:179:
+   userspace works under 64bit kernels */

ERROR: code indent should never use tabs
#199: FILE: contrib/virtiofsd/fuse_kernel.h:182:
+^Iuint64_t^Iino;$

ERROR: code indent should never use tabs
#200: FILE: contrib/virtiofsd/fuse_kernel.h:183:
+^Iuint64_t^Isize;$

ERROR: code indent should never use tabs
#201: FILE: contrib/virtiofsd/fuse_kernel.h:184:
+^Iuint64_t^Iblocks;$

ERROR: code indent should never use tabs
#202: FILE: contrib/virtiofsd/fuse_kernel.h:185:
+^Iuint64_t^Iatime;$

ERROR: code indent should never use tabs
#203: FILE: contrib/virtiofsd/fuse_kernel.h:186:
+^Iuint64_t^Imtime;$

ERROR: code indent should never use tabs
#204: FILE: contrib/virtiofsd/fuse_kernel.h:187:
+^Iuint64_t^Ictime;$

ERROR: code indent should never use tabs
#205: FILE: contrib/virtiofsd/fuse_kernel.h:188:
+^Iuint32_t^Iatimensec;$

ERROR: code indent should never use tabs
#206: FILE: contrib/virtiofsd/fuse_kernel.h:189:
+^Iuint32_t^Imtimensec;$

ERROR: code indent should never use tabs
#207: FILE: contrib/virtiofsd/fuse_kernel.h:190:
+^Iuint32_t^Ictimensec;$

ERROR: code indent should never use tabs
#208: FILE: contrib/virtiofsd/fuse_kernel.h:191:
+^Iuint32_t^Imode;$

ERROR: code indent should never use tabs
#209: FILE: contrib/virtiofsd/fuse_kernel.h:192:
+^Iuint32_t^Inlink;$

ERROR: code indent should never use tabs
#210: FILE: contrib/virtiofsd/fuse_kernel.h:193:
+^Iuint32_t^Iuid;$

ERROR: code indent should never use tabs
#211: FILE: contrib/virtiofsd/fuse_kernel.h:194:
+^Iuint32_t^Igid;$

ERROR: code indent should never use tabs
#212: FILE: contrib/virtiofsd/fuse_kernel.h:195:
+^Iuint32_t^Irdev;$

ERROR: code indent should never use tabs
#213: FILE: contrib/virtiofsd/fuse_kernel.h:196:
+^Iuint32_t^Iblksize;$

ERROR: code indent should never use tabs
#214: FILE: contrib/virtiofsd/fuse_kernel.h:197:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#218: FILE: contrib/virtiofsd/fuse_kernel.h:201:
+^Iuint64_t^Iblocks;$

ERROR: code indent should never use tabs
#219: FILE: contrib/virtiofsd/fuse_kernel.h:202:
+^Iuint64_t^Ibfree;$

ERROR: code indent should never use tabs
#220: FILE: contrib/virtiofsd/fuse_kernel.h:203:
+^Iuint64_t^Ibavail;$

ERROR: code indent should never use tabs
#221: FILE: contrib/virtiofsd/fuse_kernel.h:204:
+^Iuint64_t^Ifiles;$

ERROR: code indent should never use tabs
#222: FILE: contrib/virtiofsd/fuse_kernel.h:205:
+^Iuint64_t^Iffree;$

ERROR: code indent should never use tabs
#223: FILE: contrib/virtiofsd/fuse_kernel.h:206:
+^Iuint32_t^Ibsize;$

ERROR: code indent should never use tabs
#224: FILE: contrib/virtiofsd/fuse_kernel.h:207:
+^Iuint32_t^Inamelen;$

ERROR: code indent should never use tabs
#225: FILE: contrib/virtiofsd/fuse_kernel.h:208:
+^Iuint32_t^Ifrsize;$

ERROR: code indent should never use tabs
#226: FILE: contrib/virtiofsd/fuse_kernel.h:209:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#227: FILE: contrib/virtiofsd/fuse_kernel.h:210:
+^Iuint32_t^Ispare[6];$

ERROR: code indent should never use tabs
#231: FILE: contrib/virtiofsd/fuse_kernel.h:214:
+^Iuint64_t^Istart;$

ERROR: code indent should never use tabs
#232: FILE: contrib/virtiofsd/fuse_kernel.h:215:
+^Iuint64_t^Iend;$

ERROR: code indent should never use tabs
#233: FILE: contrib/virtiofsd/fuse_kernel.h:216:
+^Iuint32_t^Itype;$

ERROR: code indent should never use tabs
#234: FILE: contrib/virtiofsd/fuse_kernel.h:217:
+^Iuint32_t^Ipid; /* tgid */$

ERROR: code indent should never use tabs
#240: FILE: contrib/virtiofsd/fuse_kernel.h:223:
+#define FATTR_MODE^I(1 << 0)$

ERROR: code indent should never use tabs
#241: FILE: contrib/virtiofsd/fuse_kernel.h:224:
+#define FATTR_UID^I(1 << 1)$

ERROR: code indent should never use tabs
#242: FILE: contrib/virtiofsd/fuse_kernel.h:225:
+#define FATTR_GID^I(1 << 2)$

ERROR: code indent should never use tabs
#243: FILE: contrib/virtiofsd/fuse_kernel.h:226:
+#define FATTR_SIZE^I(1 << 3)$

ERROR: code indent should never use tabs
#244: FILE: contrib/virtiofsd/fuse_kernel.h:227:
+#define FATTR_ATIME^I(1 << 4)$

ERROR: code indent should never use tabs
#245: FILE: contrib/virtiofsd/fuse_kernel.h:228:
+#define FATTR_MTIME^I(1 << 5)$

ERROR: code indent should never use tabs
#246: FILE: contrib/virtiofsd/fuse_kernel.h:229:
+#define FATTR_FH^I(1 << 6)$

ERROR: code indent should never use tabs
#247: FILE: contrib/virtiofsd/fuse_kernel.h:230:
+#define FATTR_ATIME_NOW^I(1 << 7)$

ERROR: code indent should never use tabs
#248: FILE: contrib/virtiofsd/fuse_kernel.h:231:
+#define FATTR_MTIME_NOW^I(1 << 8)$

ERROR: code indent should never use tabs
#249: FILE: contrib/virtiofsd/fuse_kernel.h:232:
+#define FATTR_LOCKOWNER^I(1 << 9)$

ERROR: code indent should never use tabs
#250: FILE: contrib/virtiofsd/fuse_kernel.h:233:
+#define FATTR_CTIME^I(1 << 10)$

ERROR: code indent should never use tabs
#261: FILE: contrib/virtiofsd/fuse_kernel.h:244:
+#define FOPEN_DIRECT_IO^I^I(1 << 0)$

ERROR: code indent should never use tabs
#262: FILE: contrib/virtiofsd/fuse_kernel.h:245:
+#define FOPEN_KEEP_CACHE^I(1 << 1)$

ERROR: code indent should never use tabs
#263: FILE: contrib/virtiofsd/fuse_kernel.h:246:
+#define FOPEN_NONSEEKABLE^I(1 << 2)$

ERROR: code indent should never use tabs
#264: FILE: contrib/virtiofsd/fuse_kernel.h:247:
+#define FOPEN_CACHE_DIR^I^I(1 << 3)$

ERROR: code indent should never use tabs
#265: FILE: contrib/virtiofsd/fuse_kernel.h:248:
+#define FOPEN_STREAM^I^I(1 << 4)$

ERROR: code indent should never use tabs
#298: FILE: contrib/virtiofsd/fuse_kernel.h:281:
+#define FUSE_ASYNC_READ^I^I(1 << 0)$

ERROR: code indent should never use tabs
#299: FILE: contrib/virtiofsd/fuse_kernel.h:282:
+#define FUSE_POSIX_LOCKS^I(1 << 1)$

ERROR: code indent should never use tabs
#300: FILE: contrib/virtiofsd/fuse_kernel.h:283:
+#define FUSE_FILE_OPS^I^I(1 << 2)$

ERROR: code indent should never use tabs
#301: FILE: contrib/virtiofsd/fuse_kernel.h:284:
+#define FUSE_ATOMIC_O_TRUNC^I(1 << 3)$

ERROR: code indent should never use tabs
#302: FILE: contrib/virtiofsd/fuse_kernel.h:285:
+#define FUSE_EXPORT_SUPPORT^I(1 << 4)$

ERROR: code indent should never use tabs
#303: FILE: contrib/virtiofsd/fuse_kernel.h:286:
+#define FUSE_BIG_WRITES^I^I(1 << 5)$

ERROR: code indent should never use tabs
#304: FILE: contrib/virtiofsd/fuse_kernel.h:287:
+#define FUSE_DONT_MASK^I^I(1 << 6)$

ERROR: code indent should never use tabs
#305: FILE: contrib/virtiofsd/fuse_kernel.h:288:
+#define FUSE_SPLICE_WRITE^I(1 << 7)$

ERROR: code indent should never use tabs
#306: FILE: contrib/virtiofsd/fuse_kernel.h:289:
+#define FUSE_SPLICE_MOVE^I(1 << 8)$

ERROR: code indent should never use tabs
#307: FILE: contrib/virtiofsd/fuse_kernel.h:290:
+#define FUSE_SPLICE_READ^I(1 << 9)$

ERROR: code indent should never use tabs
#308: FILE: contrib/virtiofsd/fuse_kernel.h:291:
+#define FUSE_FLOCK_LOCKS^I(1 << 10)$

ERROR: code indent should never use tabs
#309: FILE: contrib/virtiofsd/fuse_kernel.h:292:
+#define FUSE_HAS_IOCTL_DIR^I(1 << 11)$

ERROR: code indent should never use tabs
#310: FILE: contrib/virtiofsd/fuse_kernel.h:293:
+#define FUSE_AUTO_INVAL_DATA^I(1 << 12)$

ERROR: code indent should never use tabs
#311: FILE: contrib/virtiofsd/fuse_kernel.h:294:
+#define FUSE_DO_READDIRPLUS^I(1 << 13)$

ERROR: code indent should never use tabs
#312: FILE: contrib/virtiofsd/fuse_kernel.h:295:
+#define FUSE_READDIRPLUS_AUTO^I(1 << 14)$

ERROR: code indent should never use tabs
#313: FILE: contrib/virtiofsd/fuse_kernel.h:296:
+#define FUSE_ASYNC_DIO^I^I(1 << 15)$

ERROR: code indent should never use tabs
#314: FILE: contrib/virtiofsd/fuse_kernel.h:297:
+#define FUSE_WRITEBACK_CACHE^I(1 << 16)$

ERROR: code indent should never use tabs
#315: FILE: contrib/virtiofsd/fuse_kernel.h:298:
+#define FUSE_NO_OPEN_SUPPORT^I(1 << 17)$

ERROR: code indent should never use tabs
#317: FILE: contrib/virtiofsd/fuse_kernel.h:300:
+#define FUSE_HANDLE_KILLPRIV^I(1 << 19)$

ERROR: code indent should never use tabs
#318: FILE: contrib/virtiofsd/fuse_kernel.h:301:
+#define FUSE_POSIX_ACL^I^I(1 << 20)$

ERROR: code indent should never use tabs
#319: FILE: contrib/virtiofsd/fuse_kernel.h:302:
+#define FUSE_ABORT_ERROR^I(1 << 21)$

ERROR: code indent should never use tabs
#320: FILE: contrib/virtiofsd/fuse_kernel.h:303:
+#define FUSE_MAX_PAGES^I^I(1 << 22)$

ERROR: code indent should never use tabs
#321: FILE: contrib/virtiofsd/fuse_kernel.h:304:
+#define FUSE_CACHE_SYMLINKS^I(1 << 23)$

ERROR: code indent should never use tabs
#324: FILE: contrib/virtiofsd/fuse_kernel.h:307:
+#define FUSE_MAP_ALIGNMENT^I(1 << 26)$

ERROR: code indent should never use tabs
#331: FILE: contrib/virtiofsd/fuse_kernel.h:314:
+#define CUSE_UNRESTRICTED_IOCTL^I(1 << 0)$

ERROR: code indent should never use tabs
#336: FILE: contrib/virtiofsd/fuse_kernel.h:319:
+#define FUSE_RELEASE_FLUSH^I(1 << 0)$

ERROR: code indent should never use tabs
#337: FILE: contrib/virtiofsd/fuse_kernel.h:320:
+#define FUSE_RELEASE_FLOCK_UNLOCK^I(1 << 1)$

ERROR: code indent should never use tabs
#342: FILE: contrib/virtiofsd/fuse_kernel.h:325:
+#define FUSE_GETATTR_FH^I^I(1 << 0)$

ERROR: code indent should never use tabs
#347: FILE: contrib/virtiofsd/fuse_kernel.h:330:
+#define FUSE_LK_FLOCK^I^I(1 << 0)$

ERROR: code indent should never use tabs
#356: FILE: contrib/virtiofsd/fuse_kernel.h:339:
+#define FUSE_WRITE_CACHE^I(1 << 0)$

ERROR: code indent should never use tabs
#357: FILE: contrib/virtiofsd/fuse_kernel.h:340:
+#define FUSE_WRITE_LOCKOWNER^I(1 << 1)$

ERROR: code indent should never use tabs
#358: FILE: contrib/virtiofsd/fuse_kernel.h:341:
+#define FUSE_WRITE_KILL_PRIV^I(1 << 2)$

ERROR: code indent should never use tabs
#363: FILE: contrib/virtiofsd/fuse_kernel.h:346:
+#define FUSE_READ_LOCKOWNER^I(1 << 1)$

ERROR: code indent should never use tabs
#377: FILE: contrib/virtiofsd/fuse_kernel.h:360:
+#define FUSE_IOCTL_COMPAT^I(1 << 0)$

ERROR: code indent should never use tabs
#378: FILE: contrib/virtiofsd/fuse_kernel.h:361:
+#define FUSE_IOCTL_UNRESTRICTED^I(1 << 1)$

ERROR: code indent should never use tabs
#379: FILE: contrib/virtiofsd/fuse_kernel.h:362:
+#define FUSE_IOCTL_RETRY^I(1 << 2)$

ERROR: code indent should never use tabs
#380: FILE: contrib/virtiofsd/fuse_kernel.h:363:
+#define FUSE_IOCTL_32BIT^I(1 << 3)$

ERROR: code indent should never use tabs
#381: FILE: contrib/virtiofsd/fuse_kernel.h:364:
+#define FUSE_IOCTL_DIR^I^I(1 << 4)$

ERROR: code indent should never use tabs
#382: FILE: contrib/virtiofsd/fuse_kernel.h:365:
+#define FUSE_IOCTL_COMPAT_X32^I(1 << 5)$

ERROR: code indent should never use tabs
#384: FILE: contrib/virtiofsd/fuse_kernel.h:367:
+#define FUSE_IOCTL_MAX_IOV^I256$

ERROR: code indent should never use tabs
#398: FILE: contrib/virtiofsd/fuse_kernel.h:381:
+#define FUSE_FSYNC_FDATASYNC^I(1 << 0)$

ERROR: code indent should never use tabs
#401: FILE: contrib/virtiofsd/fuse_kernel.h:384:
+^IFUSE_LOOKUP^I^I= 1,$

ERROR: code indent should never use tabs
#402: FILE: contrib/virtiofsd/fuse_kernel.h:385:
+^IFUSE_FORGET^I^I= 2,  /* no reply */$

ERROR: code indent should never use tabs
#403: FILE: contrib/virtiofsd/fuse_kernel.h:386:
+^IFUSE_GETATTR^I^I= 3,$

ERROR: code indent should never use tabs
#404: FILE: contrib/virtiofsd/fuse_kernel.h:387:
+^IFUSE_SETATTR^I^I= 4,$

ERROR: code indent should never use tabs
#405: FILE: contrib/virtiofsd/fuse_kernel.h:388:
+^IFUSE_READLINK^I^I= 5,$

ERROR: code indent should never use tabs
#406: FILE: contrib/virtiofsd/fuse_kernel.h:389:
+^IFUSE_SYMLINK^I^I= 6,$

ERROR: code indent should never use tabs
#407: FILE: contrib/virtiofsd/fuse_kernel.h:390:
+^IFUSE_MKNOD^I^I= 8,$

ERROR: code indent should never use tabs
#408: FILE: contrib/virtiofsd/fuse_kernel.h:391:
+^IFUSE_MKDIR^I^I= 9,$

ERROR: code indent should never use tabs
#409: FILE: contrib/virtiofsd/fuse_kernel.h:392:
+^IFUSE_UNLINK^I^I= 10,$

ERROR: code indent should never use tabs
#410: FILE: contrib/virtiofsd/fuse_kernel.h:393:
+^IFUSE_RMDIR^I^I= 11,$

ERROR: code indent should never use tabs
#411: FILE: contrib/virtiofsd/fuse_kernel.h:394:
+^IFUSE_RENAME^I^I= 12,$

ERROR: code indent should never use tabs
#412: FILE: contrib/virtiofsd/fuse_kernel.h:395:
+^IFUSE_LINK^I^I= 13,$

ERROR: code indent should never use tabs
#413: FILE: contrib/virtiofsd/fuse_kernel.h:396:
+^IFUSE_OPEN^I^I= 14,$

ERROR: code indent should never use tabs
#414: FILE: contrib/virtiofsd/fuse_kernel.h:397:
+^IFUSE_READ^I^I= 15,$

ERROR: code indent should never use tabs
#415: FILE: contrib/virtiofsd/fuse_kernel.h:398:
+^IFUSE_WRITE^I^I= 16,$

ERROR: code indent should never use tabs
#416: FILE: contrib/virtiofsd/fuse_kernel.h:399:
+^IFUSE_STATFS^I^I= 17,$

ERROR: code indent should never use tabs
#417: FILE: contrib/virtiofsd/fuse_kernel.h:400:
+^IFUSE_RELEASE^I^I= 18,$

ERROR: code indent should never use tabs
#418: FILE: contrib/virtiofsd/fuse_kernel.h:401:
+^IFUSE_FSYNC^I^I= 20,$

ERROR: code indent should never use tabs
#419: FILE: contrib/virtiofsd/fuse_kernel.h:402:
+^IFUSE_SETXATTR^I^I= 21,$

ERROR: code indent should never use tabs
#420: FILE: contrib/virtiofsd/fuse_kernel.h:403:
+^IFUSE_GETXATTR^I^I= 22,$

ERROR: code indent should never use tabs
#421: FILE: contrib/virtiofsd/fuse_kernel.h:404:
+^IFUSE_LISTXATTR^I^I= 23,$

ERROR: code indent should never use tabs
#422: FILE: contrib/virtiofsd/fuse_kernel.h:405:
+^IFUSE_REMOVEXATTR^I= 24,$

ERROR: code indent should never use tabs
#423: FILE: contrib/virtiofsd/fuse_kernel.h:406:
+^IFUSE_FLUSH^I^I= 25,$

ERROR: code indent should never use tabs
#424: FILE: contrib/virtiofsd/fuse_kernel.h:407:
+^IFUSE_INIT^I^I= 26,$

ERROR: code indent should never use tabs
#425: FILE: contrib/virtiofsd/fuse_kernel.h:408:
+^IFUSE_OPENDIR^I^I= 27,$

ERROR: code indent should never use tabs
#426: FILE: contrib/virtiofsd/fuse_kernel.h:409:
+^IFUSE_READDIR^I^I= 28,$

ERROR: code indent should never use tabs
#427: FILE: contrib/virtiofsd/fuse_kernel.h:410:
+^IFUSE_RELEASEDIR^I^I= 29,$

ERROR: code indent should never use tabs
#428: FILE: contrib/virtiofsd/fuse_kernel.h:411:
+^IFUSE_FSYNCDIR^I^I= 30,$

ERROR: code indent should never use tabs
#429: FILE: contrib/virtiofsd/fuse_kernel.h:412:
+^IFUSE_GETLK^I^I= 31,$

ERROR: code indent should never use tabs
#430: FILE: contrib/virtiofsd/fuse_kernel.h:413:
+^IFUSE_SETLK^I^I= 32,$

ERROR: code indent should never use tabs
#431: FILE: contrib/virtiofsd/fuse_kernel.h:414:
+^IFUSE_SETLKW^I^I= 33,$

ERROR: code indent should never use tabs
#432: FILE: contrib/virtiofsd/fuse_kernel.h:415:
+^IFUSE_ACCESS^I^I= 34,$

ERROR: code indent should never use tabs
#433: FILE: contrib/virtiofsd/fuse_kernel.h:416:
+^IFUSE_CREATE^I^I= 35,$

ERROR: code indent should never use tabs
#434: FILE: contrib/virtiofsd/fuse_kernel.h:417:
+^IFUSE_INTERRUPT^I^I= 36,$

ERROR: code indent should never use tabs
#435: FILE: contrib/virtiofsd/fuse_kernel.h:418:
+^IFUSE_BMAP^I^I= 37,$

ERROR: code indent should never use tabs
#436: FILE: contrib/virtiofsd/fuse_kernel.h:419:
+^IFUSE_DESTROY^I^I= 38,$

ERROR: code indent should never use tabs
#437: FILE: contrib/virtiofsd/fuse_kernel.h:420:
+^IFUSE_IOCTL^I^I= 39,$

ERROR: code indent should never use tabs
#438: FILE: contrib/virtiofsd/fuse_kernel.h:421:
+^IFUSE_POLL^I^I= 40,$

ERROR: code indent should never use tabs
#439: FILE: contrib/virtiofsd/fuse_kernel.h:422:
+^IFUSE_NOTIFY_REPLY^I= 41,$

ERROR: code indent should never use tabs
#440: FILE: contrib/virtiofsd/fuse_kernel.h:423:
+^IFUSE_BATCH_FORGET^I= 42,$

ERROR: code indent should never use tabs
#441: FILE: contrib/virtiofsd/fuse_kernel.h:424:
+^IFUSE_FALLOCATE^I^I= 43,$

ERROR: code indent should never use tabs
#442: FILE: contrib/virtiofsd/fuse_kernel.h:425:
+^IFUSE_READDIRPLUS^I= 44,$

ERROR: code indent should never use tabs
#443: FILE: contrib/virtiofsd/fuse_kernel.h:426:
+^IFUSE_RENAME2^I^I= 45,$

ERROR: code indent should never use tabs
#444: FILE: contrib/virtiofsd/fuse_kernel.h:427:
+^IFUSE_LSEEK^I^I= 46,$

ERROR: code indent should never use tabs
#445: FILE: contrib/virtiofsd/fuse_kernel.h:428:
+^IFUSE_COPY_FILE_RANGE^I= 47,$

ERROR: code indent should never use tabs
#446: FILE: contrib/virtiofsd/fuse_kernel.h:429:
+^IFUSE_SETUPMAPPING^I= 48,$

ERROR: code indent should never use tabs
#447: FILE: contrib/virtiofsd/fuse_kernel.h:430:
+^IFUSE_REMOVEMAPPING^I= 49,$

ERROR: code indent should never use tabs
#449: FILE: contrib/virtiofsd/fuse_kernel.h:432:
+^I/* CUSE specific operations */$

ERROR: code indent should never use tabs
#450: FILE: contrib/virtiofsd/fuse_kernel.h:433:
+^ICUSE_INIT^I^I= 4096,$

ERROR: code indent should never use tabs
#452: FILE: contrib/virtiofsd/fuse_kernel.h:435:
+^I/* Reserved opcodes: helpful to detect structure endian-ness */$

ERROR: code indent should never use tabs
#453: FILE: contrib/virtiofsd/fuse_kernel.h:436:
+^ICUSE_INIT_BSWAP_RESERVED^I= 1048576,^I/* CUSE_INIT << 8 */$

ERROR: code indent should never use tabs
#454: FILE: contrib/virtiofsd/fuse_kernel.h:437:
+^IFUSE_INIT_BSWAP_RESERVED^I= 436207616,^I/* FUSE_INIT << 24 */$

ERROR: code indent should never use tabs
#458: FILE: contrib/virtiofsd/fuse_kernel.h:441:
+^IFUSE_NOTIFY_POLL   = 1,$

ERROR: code indent should never use tabs
#459: FILE: contrib/virtiofsd/fuse_kernel.h:442:
+^IFUSE_NOTIFY_INVAL_INODE = 2,$

ERROR: code indent should never use tabs
#460: FILE: contrib/virtiofsd/fuse_kernel.h:443:
+^IFUSE_NOTIFY_INVAL_ENTRY = 3,$

ERROR: code indent should never use tabs
#461: FILE: contrib/virtiofsd/fuse_kernel.h:444:
+^IFUSE_NOTIFY_STORE = 4,$

ERROR: code indent should never use tabs
#462: FILE: contrib/virtiofsd/fuse_kernel.h:445:
+^IFUSE_NOTIFY_RETRIEVE = 5,$

ERROR: code indent should never use tabs
#463: FILE: contrib/virtiofsd/fuse_kernel.h:446:
+^IFUSE_NOTIFY_DELETE = 6,$

ERROR: code indent should never use tabs
#464: FILE: contrib/virtiofsd/fuse_kernel.h:447:
+^IFUSE_NOTIFY_CODE_MAX,$

ERROR: code indent should never use tabs
#473: FILE: contrib/virtiofsd/fuse_kernel.h:456:
+^Iuint64_t^Inodeid;^I^I/* Inode ID */$

ERROR: code indent should never use tabs
#474: FILE: contrib/virtiofsd/fuse_kernel.h:457:
+^Iuint64_t^Igeneration;^I/* Inode generation: nodeid:gen must$

WARNING: Block comments use a leading /* on a separate line
#474: FILE: contrib/virtiofsd/fuse_kernel.h:457:
+       uint64_t        generation;     /* Inode generation: nodeid:gen must

ERROR: code indent should never use tabs
#475: FILE: contrib/virtiofsd/fuse_kernel.h:458:
+^I^I^I^I^I   be unique for the fs's lifetime */$

WARNING: Block comments use * on subsequent lines
#475: FILE: contrib/virtiofsd/fuse_kernel.h:458:
+       uint64_t        generation;     /* Inode generation: nodeid:gen must
+                                          be unique for the fs's lifetime */

WARNING: Block comments use a trailing */ on a separate line
#475: FILE: contrib/virtiofsd/fuse_kernel.h:458:
+                                          be unique for the fs's lifetime */

ERROR: code indent should never use tabs
#476: FILE: contrib/virtiofsd/fuse_kernel.h:459:
+^Iuint64_t^Ientry_valid;^I/* Cache timeout for the name */$

ERROR: code indent should never use tabs
#477: FILE: contrib/virtiofsd/fuse_kernel.h:460:
+^Iuint64_t^Iattr_valid;^I/* Cache timeout for the attributes */$

ERROR: code indent should never use tabs
#478: FILE: contrib/virtiofsd/fuse_kernel.h:461:
+^Iuint32_t^Ientry_valid_nsec;$

ERROR: code indent should never use tabs
#479: FILE: contrib/virtiofsd/fuse_kernel.h:462:
+^Iuint32_t^Iattr_valid_nsec;$

ERROR: code indent should never use tabs
#480: FILE: contrib/virtiofsd/fuse_kernel.h:463:
+^Istruct fuse_attr attr;$

ERROR: code indent should never use tabs
#484: FILE: contrib/virtiofsd/fuse_kernel.h:467:
+^Iuint64_t^Inlookup;$

ERROR: code indent should never use tabs
#488: FILE: contrib/virtiofsd/fuse_kernel.h:471:
+^Iuint64_t^Inodeid;$

ERROR: code indent should never use tabs
#489: FILE: contrib/virtiofsd/fuse_kernel.h:472:
+^Iuint64_t^Inlookup;$

ERROR: code indent should never use tabs
#493: FILE: contrib/virtiofsd/fuse_kernel.h:476:
+^Iuint32_t^Icount;$

ERROR: code indent should never use tabs
#494: FILE: contrib/virtiofsd/fuse_kernel.h:477:
+^Iuint32_t^Idummy;$

ERROR: code indent should never use tabs
#498: FILE: contrib/virtiofsd/fuse_kernel.h:481:
+^Iuint32_t^Igetattr_flags;$

ERROR: code indent should never use tabs
#499: FILE: contrib/virtiofsd/fuse_kernel.h:482:
+^Iuint32_t^Idummy;$

ERROR: code indent should never use tabs
#500: FILE: contrib/virtiofsd/fuse_kernel.h:483:
+^Iuint64_t^Ifh;$

ERROR: code indent should never use tabs
#506: FILE: contrib/virtiofsd/fuse_kernel.h:489:
+^Iuint64_t^Iattr_valid;^I/* Cache timeout for the attributes */$

ERROR: code indent should never use tabs
#507: FILE: contrib/virtiofsd/fuse_kernel.h:490:
+^Iuint32_t^Iattr_valid_nsec;$

ERROR: code indent should never use tabs
#508: FILE: contrib/virtiofsd/fuse_kernel.h:491:
+^Iuint32_t^Idummy;$

ERROR: code indent should never use tabs
#509: FILE: contrib/virtiofsd/fuse_kernel.h:492:
+^Istruct fuse_attr attr;$

ERROR: code indent should never use tabs
#515: FILE: contrib/virtiofsd/fuse_kernel.h:498:
+^Iuint32_t^Imode;$

ERROR: code indent should never use tabs
#516: FILE: contrib/virtiofsd/fuse_kernel.h:499:
+^Iuint32_t^Irdev;$

ERROR: code indent should never use tabs
#517: FILE: contrib/virtiofsd/fuse_kernel.h:500:
+^Iuint32_t^Iumask;$

ERROR: code indent should never use tabs
#518: FILE: contrib/virtiofsd/fuse_kernel.h:501:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#522: FILE: contrib/virtiofsd/fuse_kernel.h:505:
+^Iuint32_t^Imode;$

ERROR: code indent should never use tabs
#523: FILE: contrib/virtiofsd/fuse_kernel.h:506:
+^Iuint32_t^Iumask;$

ERROR: code indent should never use tabs
#527: FILE: contrib/virtiofsd/fuse_kernel.h:510:
+^Iuint64_t^Inewdir;$

ERROR: code indent should never use tabs
#531: FILE: contrib/virtiofsd/fuse_kernel.h:514:
+^Iuint64_t^Inewdir;$

ERROR: code indent should never use tabs
#532: FILE: contrib/virtiofsd/fuse_kernel.h:515:
+^Iuint32_t^Iflags;$

ERROR: code indent should never use tabs
#533: FILE: contrib/virtiofsd/fuse_kernel.h:516:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#537: FILE: contrib/virtiofsd/fuse_kernel.h:520:
+^Iuint64_t^Ioldnodeid;$

ERROR: code indent should never use tabs
#541: FILE: contrib/virtiofsd/fuse_kernel.h:524:
+^Iuint32_t^Ivalid;$

ERROR: code indent should never use tabs
#542: FILE: contrib/virtiofsd/fuse_kernel.h:525:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#543: FILE: contrib/virtiofsd/fuse_kernel.h:526:
+^Iuint64_t^Ifh;$

ERROR: code indent should never use tabs
#544: FILE: contrib/virtiofsd/fuse_kernel.h:527:
+^Iuint64_t^Isize;$

ERROR: code indent should never use tabs
#545: FILE: contrib/virtiofsd/fuse_kernel.h:528:
+^Iuint64_t^Ilock_owner;$

ERROR: code indent should never use tabs
#546: FILE: contrib/virtiofsd/fuse_kernel.h:529:
+^Iuint64_t^Iatime;$

ERROR: code indent should never use tabs
#547: FILE: contrib/virtiofsd/fuse_kernel.h:530:
+^Iuint64_t^Imtime;$

ERROR: code indent should never use tabs
#548: FILE: contrib/virtiofsd/fuse_kernel.h:531:
+^Iuint64_t^Ictime;$

ERROR: code indent should never use tabs
#549: FILE: contrib/virtiofsd/fuse_kernel.h:532:
+^Iuint32_t^Iatimensec;$

ERROR: code indent should never use tabs
#550: FILE: contrib/virtiofsd/fuse_kernel.h:533:
+^Iuint32_t^Imtimensec;$

ERROR: code indent should never use tabs
#551: FILE: contrib/virtiofsd/fuse_kernel.h:534:
+^Iuint32_t^Ictimensec;$

ERROR: code indent should never use tabs
#552: FILE: contrib/virtiofsd/fuse_kernel.h:535:
+^Iuint32_t^Imode;$

ERROR: code indent should never use tabs
#553: FILE: contrib/virtiofsd/fuse_kernel.h:536:
+^Iuint32_t^Iunused4;$

ERROR: code indent should never use tabs
#554: FILE: contrib/virtiofsd/fuse_kernel.h:537:
+^Iuint32_t^Iuid;$

ERROR: code indent should never use tabs
#555: FILE: contrib/virtiofsd/fuse_kernel.h:538:
+^Iuint32_t^Igid;$

ERROR: code indent should never use tabs
#556: FILE: contrib/virtiofsd/fuse_kernel.h:539:
+^Iuint32_t^Iunused5;$

ERROR: code indent should never use tabs
#560: FILE: contrib/virtiofsd/fuse_kernel.h:543:
+^Iuint32_t^Iflags;$

ERROR: code indent should never use tabs
#561: FILE: contrib/virtiofsd/fuse_kernel.h:544:
+^Iuint32_t^Iunused;$

ERROR: code indent should never use tabs
#565: FILE: contrib/virtiofsd/fuse_kernel.h:548:
+^Iuint32_t^Iflags;$

ERROR: code indent should never use tabs
#566: FILE: contrib/virtiofsd/fuse_kernel.h:549:
+^Iuint32_t^Imode;$

ERROR: code indent should never use tabs
#567: FILE: contrib/virtiofsd/fuse_kernel.h:550:
+^Iuint32_t^Iumask;$

ERROR: code indent should never use tabs
#568: FILE: contrib/virtiofsd/fuse_kernel.h:551:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#572: FILE: contrib/virtiofsd/fuse_kernel.h:555:
+^Iuint64_t^Ifh;$

ERROR: code indent should never use tabs
#573: FILE: contrib/virtiofsd/fuse_kernel.h:556:
+^Iuint32_t^Iopen_flags;$

ERROR: code indent should never use tabs
#574: FILE: contrib/virtiofsd/fuse_kernel.h:557:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#578: FILE: contrib/virtiofsd/fuse_kernel.h:561:
+^Iuint64_t^Ifh;$

ERROR: code indent should never use tabs
#579: FILE: contrib/virtiofsd/fuse_kernel.h:562:
+^Iuint32_t^Iflags;$

ERROR: code indent should never use tabs
#580: FILE: contrib/virtiofsd/fuse_kernel.h:563:
+^Iuint32_t^Irelease_flags;$

ERROR: code indent should never use tabs
#581: FILE: contrib/virtiofsd/fuse_kernel.h:564:
+^Iuint64_t^Ilock_owner;$

ERROR: code indent should never use tabs
#585: FILE: contrib/virtiofsd/fuse_kernel.h:568:
+^Iuint64_t^Ifh;$

ERROR: code indent should never use tabs
#586: FILE: contrib/virtiofsd/fuse_kernel.h:569:
+^Iuint32_t^Iunused;$

ERROR: code indent should never use tabs
#587: FILE: contrib/virtiofsd/fuse_kernel.h:570:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#588: FILE: contrib/virtiofsd/fuse_kernel.h:571:
+^Iuint64_t^Ilock_owner;$

ERROR: code indent should never use tabs
#592: FILE: contrib/virtiofsd/fuse_kernel.h:575:
+^Iuint64_t^Ifh;$

ERROR: code indent should never use tabs
#593: FILE: contrib/virtiofsd/fuse_kernel.h:576:
+^Iuint64_t^Ioffset;$

ERROR: code indent should never use tabs
#594: FILE: contrib/virtiofsd/fuse_kernel.h:577:
+^Iuint32_t^Isize;$

ERROR: code indent should never use tabs
#595: FILE: contrib/virtiofsd/fuse_kernel.h:578:
+^Iuint32_t^Iread_flags;$

ERROR: code indent should never use tabs
#596: FILE: contrib/virtiofsd/fuse_kernel.h:579:
+^Iuint64_t^Ilock_owner;$

ERROR: code indent should never use tabs
#597: FILE: contrib/virtiofsd/fuse_kernel.h:580:
+^Iuint32_t^Iflags;$

ERROR: code indent should never use tabs
#598: FILE: contrib/virtiofsd/fuse_kernel.h:581:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#604: FILE: contrib/virtiofsd/fuse_kernel.h:587:
+^Iuint64_t^Ifh;$

ERROR: code indent should never use tabs
#605: FILE: contrib/virtiofsd/fuse_kernel.h:588:
+^Iuint64_t^Ioffset;$

ERROR: code indent should never use tabs
#606: FILE: contrib/virtiofsd/fuse_kernel.h:589:
+^Iuint32_t^Isize;$

ERROR: code indent should never use tabs
#607: FILE: contrib/virtiofsd/fuse_kernel.h:590:
+^Iuint32_t^Iwrite_flags;$

ERROR: code indent should never use tabs
#608: FILE: contrib/virtiofsd/fuse_kernel.h:591:
+^Iuint64_t^Ilock_owner;$

ERROR: code indent should never use tabs
#609: FILE: contrib/virtiofsd/fuse_kernel.h:592:
+^Iuint32_t^Iflags;$

ERROR: code indent should never use tabs
#610: FILE: contrib/virtiofsd/fuse_kernel.h:593:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#614: FILE: contrib/virtiofsd/fuse_kernel.h:597:
+^Iuint32_t^Isize;$

ERROR: code indent should never use tabs
#615: FILE: contrib/virtiofsd/fuse_kernel.h:598:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#621: FILE: contrib/virtiofsd/fuse_kernel.h:604:
+^Istruct fuse_kstatfs st;$

ERROR: code indent should never use tabs
#625: FILE: contrib/virtiofsd/fuse_kernel.h:608:
+^Iuint64_t^Ifh;$

ERROR: code indent should never use tabs
#626: FILE: contrib/virtiofsd/fuse_kernel.h:609:
+^Iuint32_t^Ifsync_flags;$

ERROR: code indent should never use tabs
#627: FILE: contrib/virtiofsd/fuse_kernel.h:610:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#631: FILE: contrib/virtiofsd/fuse_kernel.h:614:
+^Iuint32_t^Isize;$

ERROR: code indent should never use tabs
#632: FILE: contrib/virtiofsd/fuse_kernel.h:615:
+^Iuint32_t^Iflags;$

ERROR: code indent should never use tabs
#636: FILE: contrib/virtiofsd/fuse_kernel.h:619:
+^Iuint32_t^Isize;$

ERROR: code indent should never use tabs
#637: FILE: contrib/virtiofsd/fuse_kernel.h:620:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#641: FILE: contrib/virtiofsd/fuse_kernel.h:624:
+^Iuint32_t^Isize;$

ERROR: code indent should never use tabs
#642: FILE: contrib/virtiofsd/fuse_kernel.h:625:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#646: FILE: contrib/virtiofsd/fuse_kernel.h:629:
+^Iuint64_t^Ifh;$

ERROR: code indent should never use tabs
#647: FILE: contrib/virtiofsd/fuse_kernel.h:630:
+^Iuint64_t^Iowner;$

ERROR: code indent should never use tabs
#648: FILE: contrib/virtiofsd/fuse_kernel.h:631:
+^Istruct fuse_file_lock lk;$

ERROR: code indent should never use tabs
#649: FILE: contrib/virtiofsd/fuse_kernel.h:632:
+^Iuint32_t^Ilk_flags;$

ERROR: code indent should never use tabs
#650: FILE: contrib/virtiofsd/fuse_kernel.h:633:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#654: FILE: contrib/virtiofsd/fuse_kernel.h:637:
+^Istruct fuse_file_lock lk;$

ERROR: code indent should never use tabs
#658: FILE: contrib/virtiofsd/fuse_kernel.h:641:
+^Iuint32_t^Imask;$

ERROR: code indent should never use tabs
#659: FILE: contrib/virtiofsd/fuse_kernel.h:642:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#663: FILE: contrib/virtiofsd/fuse_kernel.h:646:
+^Iuint32_t^Imajor;$

ERROR: code indent should never use tabs
#664: FILE: contrib/virtiofsd/fuse_kernel.h:647:
+^Iuint32_t^Iminor;$

ERROR: code indent should never use tabs
#665: FILE: contrib/virtiofsd/fuse_kernel.h:648:
+^Iuint32_t^Imax_readahead;$

ERROR: code indent should never use tabs
#666: FILE: contrib/virtiofsd/fuse_kernel.h:649:
+^Iuint32_t^Iflags;$

ERROR: code indent should never use tabs
#673: FILE: contrib/virtiofsd/fuse_kernel.h:656:
+^Iuint32_t^Imajor;$

ERROR: code indent should never use tabs
#674: FILE: contrib/virtiofsd/fuse_kernel.h:657:
+^Iuint32_t^Iminor;$

ERROR: code indent should never use tabs
#675: FILE: contrib/virtiofsd/fuse_kernel.h:658:
+^Iuint32_t^Imax_readahead;$

ERROR: code indent should never use tabs
#676: FILE: contrib/virtiofsd/fuse_kernel.h:659:
+^Iuint32_t^Iflags;$

ERROR: code indent should never use tabs
#677: FILE: contrib/virtiofsd/fuse_kernel.h:660:
+^Iuint16_t^Imax_background;$

ERROR: code indent should never use tabs
#678: FILE: contrib/virtiofsd/fuse_kernel.h:661:
+^Iuint16_t^Icongestion_threshold;$

ERROR: code indent should never use tabs
#679: FILE: contrib/virtiofsd/fuse_kernel.h:662:
+^Iuint32_t^Imax_write;$

ERROR: code indent should never use tabs
#680: FILE: contrib/virtiofsd/fuse_kernel.h:663:
+^Iuint32_t^Itime_gran;$

ERROR: code indent should never use tabs
#681: FILE: contrib/virtiofsd/fuse_kernel.h:664:
+^Iuint16_t^Imax_pages;$

ERROR: code indent should never use tabs
#682: FILE: contrib/virtiofsd/fuse_kernel.h:665:
+^Iuint16_t^Imap_alignment;$

ERROR: code indent should never use tabs
#683: FILE: contrib/virtiofsd/fuse_kernel.h:666:
+^Iuint32_t^Iunused[8];$

ERROR: code indent should never use tabs
#689: FILE: contrib/virtiofsd/fuse_kernel.h:672:
+^Iuint32_t^Imajor;$

ERROR: code indent should never use tabs
#690: FILE: contrib/virtiofsd/fuse_kernel.h:673:
+^Iuint32_t^Iminor;$

ERROR: code indent should never use tabs
#691: FILE: contrib/virtiofsd/fuse_kernel.h:674:
+^Iuint32_t^Iunused;$

ERROR: code indent should never use tabs
#692: FILE: contrib/virtiofsd/fuse_kernel.h:675:
+^Iuint32_t^Iflags;$

ERROR: code indent should never use tabs
#696: FILE: contrib/virtiofsd/fuse_kernel.h:679:
+^Iuint32_t^Imajor;$

ERROR: code indent should never use tabs
#697: FILE: contrib/virtiofsd/fuse_kernel.h:680:
+^Iuint32_t^Iminor;$

ERROR: code indent should never use tabs
#698: FILE: contrib/virtiofsd/fuse_kernel.h:681:
+^Iuint32_t^Iunused;$

ERROR: code indent should never use tabs
#699: FILE: contrib/virtiofsd/fuse_kernel.h:682:
+^Iuint32_t^Iflags;$

ERROR: code indent should never use tabs
#700: FILE: contrib/virtiofsd/fuse_kernel.h:683:
+^Iuint32_t^Imax_read;$

ERROR: code indent should never use tabs
#701: FILE: contrib/virtiofsd/fuse_kernel.h:684:
+^Iuint32_t^Imax_write;$

ERROR: code indent should never use tabs
#702: FILE: contrib/virtiofsd/fuse_kernel.h:685:
+^Iuint32_t^Idev_major;^I^I/* chardev major */$

ERROR: code indent should never use tabs
#703: FILE: contrib/virtiofsd/fuse_kernel.h:686:
+^Iuint32_t^Idev_minor;^I^I/* chardev minor */$

ERROR: code indent should never use tabs
#704: FILE: contrib/virtiofsd/fuse_kernel.h:687:
+^Iuint32_t^Ispare[10];$

ERROR: code indent should never use tabs
#708: FILE: contrib/virtiofsd/fuse_kernel.h:691:
+^Iuint64_t^Iunique;$

ERROR: code indent should never use tabs
#712: FILE: contrib/virtiofsd/fuse_kernel.h:695:
+^Iuint64_t^Iblock;$

ERROR: code indent should never use tabs
#713: FILE: contrib/virtiofsd/fuse_kernel.h:696:
+^Iuint32_t^Iblocksize;$

ERROR: code indent should never use tabs
#714: FILE: contrib/virtiofsd/fuse_kernel.h:697:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#718: FILE: contrib/virtiofsd/fuse_kernel.h:701:
+^Iuint64_t^Iblock;$

ERROR: code indent should never use tabs
#722: FILE: contrib/virtiofsd/fuse_kernel.h:705:
+^Iuint64_t^Ifh;$

ERROR: code indent should never use tabs
#723: FILE: contrib/virtiofsd/fuse_kernel.h:706:
+^Iuint32_t^Iflags;$

ERROR: code indent should never use tabs
#724: FILE: contrib/virtiofsd/fuse_kernel.h:707:
+^Iuint32_t^Icmd;$

ERROR: code indent should never use tabs
#725: FILE: contrib/virtiofsd/fuse_kernel.h:708:
+^Iuint64_t^Iarg;$

ERROR: code indent should never use tabs
#726: FILE: contrib/virtiofsd/fuse_kernel.h:709:
+^Iuint32_t^Iin_size;$

ERROR: code indent should never use tabs
#727: FILE: contrib/virtiofsd/fuse_kernel.h:710:
+^Iuint32_t^Iout_size;$

ERROR: code indent should never use tabs
#731: FILE: contrib/virtiofsd/fuse_kernel.h:714:
+^Iuint64_t^Ibase;$

ERROR: code indent should never use tabs
#732: FILE: contrib/virtiofsd/fuse_kernel.h:715:
+^Iuint64_t^Ilen;$

ERROR: code indent should never use tabs
#736: FILE: contrib/virtiofsd/fuse_kernel.h:719:
+^Iint32_t^I^Iresult;$

ERROR: code indent should never use tabs
#737: FILE: contrib/virtiofsd/fuse_kernel.h:720:
+^Iuint32_t^Iflags;$

ERROR: code indent should never use tabs
#738: FILE: contrib/virtiofsd/fuse_kernel.h:721:
+^Iuint32_t^Iin_iovs;$

ERROR: code indent should never use tabs
#739: FILE: contrib/virtiofsd/fuse_kernel.h:722:
+^Iuint32_t^Iout_iovs;$

ERROR: code indent should never use tabs
#743: FILE: contrib/virtiofsd/fuse_kernel.h:726:
+^Iuint64_t^Ifh;$

ERROR: code indent should never use tabs
#744: FILE: contrib/virtiofsd/fuse_kernel.h:727:
+^Iuint64_t^Ikh;$

ERROR: code indent should never use tabs
#745: FILE: contrib/virtiofsd/fuse_kernel.h:728:
+^Iuint32_t^Iflags;$

ERROR: code indent should never use tabs
#746: FILE: contrib/virtiofsd/fuse_kernel.h:729:
+^Iuint32_t^Ievents;$

ERROR: code indent should never use tabs
#750: FILE: contrib/virtiofsd/fuse_kernel.h:733:
+^Iuint32_t^Irevents;$

ERROR: code indent should never use tabs
#751: FILE: contrib/virtiofsd/fuse_kernel.h:734:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#755: FILE: contrib/virtiofsd/fuse_kernel.h:738:
+^Iuint64_t^Ikh;$

ERROR: code indent should never use tabs
#759: FILE: contrib/virtiofsd/fuse_kernel.h:742:
+^Iuint64_t^Ifh;$

ERROR: code indent should never use tabs
#760: FILE: contrib/virtiofsd/fuse_kernel.h:743:
+^Iuint64_t^Ioffset;$

ERROR: code indent should never use tabs
#761: FILE: contrib/virtiofsd/fuse_kernel.h:744:
+^Iuint64_t^Ilength;$

ERROR: code indent should never use tabs
#762: FILE: contrib/virtiofsd/fuse_kernel.h:745:
+^Iuint32_t^Imode;$

ERROR: code indent should never use tabs
#763: FILE: contrib/virtiofsd/fuse_kernel.h:746:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#767: FILE: contrib/virtiofsd/fuse_kernel.h:750:
+^Iuint32_t^Ilen;$

ERROR: code indent should never use tabs
#768: FILE: contrib/virtiofsd/fuse_kernel.h:751:
+^Iuint32_t^Iopcode;$

ERROR: code indent should never use tabs
#769: FILE: contrib/virtiofsd/fuse_kernel.h:752:
+^Iuint64_t^Iunique;$

ERROR: code indent should never use tabs
#770: FILE: contrib/virtiofsd/fuse_kernel.h:753:
+^Iuint64_t^Inodeid;$

ERROR: code indent should never use tabs
#771: FILE: contrib/virtiofsd/fuse_kernel.h:754:
+^Iuint32_t^Iuid;$

ERROR: code indent should never use tabs
#772: FILE: contrib/virtiofsd/fuse_kernel.h:755:
+^Iuint32_t^Igid;$

ERROR: code indent should never use tabs
#773: FILE: contrib/virtiofsd/fuse_kernel.h:756:
+^Iuint32_t^Ipid;$

ERROR: code indent should never use tabs
#774: FILE: contrib/virtiofsd/fuse_kernel.h:757:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#778: FILE: contrib/virtiofsd/fuse_kernel.h:761:
+^Iuint32_t^Ilen;$

ERROR: code indent should never use tabs
#779: FILE: contrib/virtiofsd/fuse_kernel.h:762:
+^Iint32_t^I^Ierror;$

ERROR: code indent should never use tabs
#780: FILE: contrib/virtiofsd/fuse_kernel.h:763:
+^Iuint64_t^Iunique;$

ERROR: code indent should never use tabs
#784: FILE: contrib/virtiofsd/fuse_kernel.h:767:
+^Iuint64_t^Iino;$

ERROR: code indent should never use tabs
#785: FILE: contrib/virtiofsd/fuse_kernel.h:768:
+^Iuint64_t^Ioff;$

ERROR: code indent should never use tabs
#786: FILE: contrib/virtiofsd/fuse_kernel.h:769:
+^Iuint32_t^Inamelen;$

ERROR: code indent should never use tabs
#787: FILE: contrib/virtiofsd/fuse_kernel.h:770:
+^Iuint32_t^Itype;$

ERROR: code indent should never use tabs
#788: FILE: contrib/virtiofsd/fuse_kernel.h:771:
+^Ichar name[];$

ERROR: code indent should never use tabs
#793: FILE: contrib/virtiofsd/fuse_kernel.h:776:
+^I(((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))$

ERROR: code indent should never use tabs
#795: FILE: contrib/virtiofsd/fuse_kernel.h:778:
+^IFUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)$

ERROR: code indent should never use tabs
#798: FILE: contrib/virtiofsd/fuse_kernel.h:781:
+^Istruct fuse_entry_out entry_out;$

ERROR: code indent should never use tabs
#799: FILE: contrib/virtiofsd/fuse_kernel.h:782:
+^Istruct fuse_dirent dirent;$

ERROR: code indent should never use tabs
#803: FILE: contrib/virtiofsd/fuse_kernel.h:786:
+^Ioffsetof(struct fuse_direntplus, dirent.name)$

ERROR: code indent should never use tabs
#805: FILE: contrib/virtiofsd/fuse_kernel.h:788:
+^IFUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen)$

ERROR: code indent should never use tabs
#808: FILE: contrib/virtiofsd/fuse_kernel.h:791:
+^Iuint64_t^Iino;$

ERROR: code indent should never use tabs
#809: FILE: contrib/virtiofsd/fuse_kernel.h:792:
+^Iint64_t^I^Ioff;$

ERROR: code indent should never use tabs
#810: FILE: contrib/virtiofsd/fuse_kernel.h:793:
+^Iint64_t^I^Ilen;$

ERROR: code indent should never use tabs
#814: FILE: contrib/virtiofsd/fuse_kernel.h:797:
+^Iuint64_t^Iparent;$

ERROR: code indent should never use tabs
#815: FILE: contrib/virtiofsd/fuse_kernel.h:798:
+^Iuint32_t^Inamelen;$

ERROR: code indent should never use tabs
#816: FILE: contrib/virtiofsd/fuse_kernel.h:799:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#820: FILE: contrib/virtiofsd/fuse_kernel.h:803:
+^Iuint64_t^Iparent;$

ERROR: code indent should never use tabs
#821: FILE: contrib/virtiofsd/fuse_kernel.h:804:
+^Iuint64_t^Ichild;$

ERROR: code indent should never use tabs
#822: FILE: contrib/virtiofsd/fuse_kernel.h:805:
+^Iuint32_t^Inamelen;$

ERROR: code indent should never use tabs
#823: FILE: contrib/virtiofsd/fuse_kernel.h:806:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#827: FILE: contrib/virtiofsd/fuse_kernel.h:810:
+^Iuint64_t^Inodeid;$

ERROR: code indent should never use tabs
#828: FILE: contrib/virtiofsd/fuse_kernel.h:811:
+^Iuint64_t^Ioffset;$

ERROR: code indent should never use tabs
#829: FILE: contrib/virtiofsd/fuse_kernel.h:812:
+^Iuint32_t^Isize;$

ERROR: code indent should never use tabs
#830: FILE: contrib/virtiofsd/fuse_kernel.h:813:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#834: FILE: contrib/virtiofsd/fuse_kernel.h:817:
+^Iuint64_t^Inotify_unique;$

ERROR: code indent should never use tabs
#835: FILE: contrib/virtiofsd/fuse_kernel.h:818:
+^Iuint64_t^Inodeid;$

ERROR: code indent should never use tabs
#836: FILE: contrib/virtiofsd/fuse_kernel.h:819:
+^Iuint64_t^Ioffset;$

ERROR: code indent should never use tabs
#837: FILE: contrib/virtiofsd/fuse_kernel.h:820:
+^Iuint32_t^Isize;$

ERROR: code indent should never use tabs
#838: FILE: contrib/virtiofsd/fuse_kernel.h:821:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#843: FILE: contrib/virtiofsd/fuse_kernel.h:826:
+^Iuint64_t^Idummy1;$

ERROR: code indent should never use tabs
#844: FILE: contrib/virtiofsd/fuse_kernel.h:827:
+^Iuint64_t^Ioffset;$

ERROR: code indent should never use tabs
#845: FILE: contrib/virtiofsd/fuse_kernel.h:828:
+^Iuint32_t^Isize;$

ERROR: code indent should never use tabs
#846: FILE: contrib/virtiofsd/fuse_kernel.h:829:
+^Iuint32_t^Idummy2;$

ERROR: code indent should never use tabs
#847: FILE: contrib/virtiofsd/fuse_kernel.h:830:
+^Iuint64_t^Idummy3;$

ERROR: code indent should never use tabs
#848: FILE: contrib/virtiofsd/fuse_kernel.h:831:
+^Iuint64_t^Idummy4;$

ERROR: code indent should never use tabs
#852: FILE: contrib/virtiofsd/fuse_kernel.h:835:
+#define FUSE_DEV_IOC_CLONE^I_IOR(229, 0, uint32_t)$

ERROR: code indent should never use tabs
#855: FILE: contrib/virtiofsd/fuse_kernel.h:838:
+^Iuint64_t^Ifh;$

ERROR: code indent should never use tabs
#856: FILE: contrib/virtiofsd/fuse_kernel.h:839:
+^Iuint64_t^Ioffset;$

ERROR: code indent should never use tabs
#857: FILE: contrib/virtiofsd/fuse_kernel.h:840:
+^Iuint32_t^Iwhence;$

ERROR: code indent should never use tabs
#858: FILE: contrib/virtiofsd/fuse_kernel.h:841:
+^Iuint32_t^Ipadding;$

ERROR: code indent should never use tabs
#862: FILE: contrib/virtiofsd/fuse_kernel.h:845:
+^Iuint64_t^Ioffset;$

ERROR: code indent should never use tabs
#866: FILE: contrib/virtiofsd/fuse_kernel.h:849:
+^Iuint64_t^Ifh_in;$

ERROR: code indent should never use tabs
#867: FILE: contrib/virtiofsd/fuse_kernel.h:850:
+^Iuint64_t^Ioff_in;$

ERROR: code indent should never use tabs
#868: FILE: contrib/virtiofsd/fuse_kernel.h:851:
+^Iuint64_t^Inodeid_out;$

ERROR: code indent should never use tabs
#869: FILE: contrib/virtiofsd/fuse_kernel.h:852:
+^Iuint64_t^Ifh_out;$

ERROR: code indent should never use tabs
#870: FILE: contrib/virtiofsd/fuse_kernel.h:853:
+^Iuint64_t^Ioff_out;$

ERROR: code indent should never use tabs
#871: FILE: contrib/virtiofsd/fuse_kernel.h:854:
+^Iuint64_t^Ilen;$

ERROR: code indent should never use tabs
#872: FILE: contrib/virtiofsd/fuse_kernel.h:855:
+^Iuint64_t^Iflags;$

total: 361 errors, 10 warnings, 858 lines checked

Patch 2/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

3/30 Checking commit dbce77b9e1cc (virtiofsd: Add auxiliary .c's)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#13: 
new file mode 100644

WARNING: Block comments use * on subsequent lines
#19: FILE: contrib/virtiofsd/buffer.c:2:
+/*
+  FUSE: Filesystem in Userspace

ERROR: code indent should never use tabs
#41: FILE: contrib/virtiofsd/buffer.c:24:
+^Isize_t i;$

ERROR: code indent should never use tabs
#42: FILE: contrib/virtiofsd/buffer.c:25:
+^Isize_t size = 0;$

ERROR: code indent should never use tabs
#44: FILE: contrib/virtiofsd/buffer.c:27:
+^Ifor (i = 0; i < bufv->count; i++) {$

ERROR: code indent should never use tabs
#45: FILE: contrib/virtiofsd/buffer.c:28:
+^I^Iif (bufv->buf[i].size == SIZE_MAX)$

ERROR: braces {} are necessary for all arms of this statement
#45: FILE: contrib/virtiofsd/buffer.c:28:
+               if (bufv->buf[i].size == SIZE_MAX)
[...]
+               else
[...]

ERROR: code indent should never use tabs
#46: FILE: contrib/virtiofsd/buffer.c:29:
+^I^I^Isize = SIZE_MAX;$

ERROR: code indent should never use tabs
#47: FILE: contrib/virtiofsd/buffer.c:30:
+^I^Ielse$

ERROR: code indent should never use tabs
#48: FILE: contrib/virtiofsd/buffer.c:31:
+^I^I^Isize += bufv->buf[i].size;$

ERROR: code indent should never use tabs
#49: FILE: contrib/virtiofsd/buffer.c:32:
+^I}$

ERROR: code indent should never use tabs
#51: FILE: contrib/virtiofsd/buffer.c:34:
+^Ireturn size;$

ERROR: code indent should never use tabs
#56: FILE: contrib/virtiofsd/buffer.c:39:
+^Ireturn s1 < s2 ? s1 : s2;$

ERROR: code indent should never use tabs
#60: FILE: contrib/virtiofsd/buffer.c:43:
+^I^I^I      const struct fuse_buf *src, size_t src_off,$

ERROR: code indent should never use tabs
#61: FILE: contrib/virtiofsd/buffer.c:44:
+^I^I^I      size_t len)$

ERROR: code indent should never use tabs
#63: FILE: contrib/virtiofsd/buffer.c:46:
+^Issize_t res = 0;$

ERROR: code indent should never use tabs
#64: FILE: contrib/virtiofsd/buffer.c:47:
+^Isize_t copied = 0;$

ERROR: code indent should never use tabs
#66: FILE: contrib/virtiofsd/buffer.c:49:
+^Iwhile (len) {$

ERROR: code indent should never use tabs
#67: FILE: contrib/virtiofsd/buffer.c:50:
+^I^Iif (dst->flags & FUSE_BUF_FD_SEEK) {$

ERROR: code indent should never use tabs
#68: FILE: contrib/virtiofsd/buffer.c:51:
+^I^I^Ires = pwrite(dst->fd, (char *)src->mem + src_off, len,$

ERROR: code indent should never use tabs
#69: FILE: contrib/virtiofsd/buffer.c:52:
+^I^I^I^I     dst->pos + dst_off);$

ERROR: code indent should never use tabs
#70: FILE: contrib/virtiofsd/buffer.c:53:
+^I^I} else {$

ERROR: code indent should never use tabs
#71: FILE: contrib/virtiofsd/buffer.c:54:
+^I^I^Ires = write(dst->fd, (char *)src->mem + src_off, len);$

ERROR: code indent should never use tabs
#72: FILE: contrib/virtiofsd/buffer.c:55:
+^I^I}$

ERROR: code indent should never use tabs
#73: FILE: contrib/virtiofsd/buffer.c:56:
+^I^Iif (res == -1) {$

ERROR: code indent should never use tabs
#74: FILE: contrib/virtiofsd/buffer.c:57:
+^I^I^Iif (!copied)$

ERROR: braces {} are necessary for all arms of this statement
#74: FILE: contrib/virtiofsd/buffer.c:57:
+                       if (!copied)
[...]

ERROR: code indent should never use tabs
#75: FILE: contrib/virtiofsd/buffer.c:58:
+^I^I^I^Ireturn -errno;$

ERROR: code indent should never use tabs
#76: FILE: contrib/virtiofsd/buffer.c:59:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#77: FILE: contrib/virtiofsd/buffer.c:60:
+^I^I}$

ERROR: code indent should never use tabs
#78: FILE: contrib/virtiofsd/buffer.c:61:
+^I^Iif (res == 0)$

ERROR: braces {} are necessary for all arms of this statement
#78: FILE: contrib/virtiofsd/buffer.c:61:
+               if (res == 0)
[...]

ERROR: code indent should never use tabs
#79: FILE: contrib/virtiofsd/buffer.c:62:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#81: FILE: contrib/virtiofsd/buffer.c:64:
+^I^Icopied += res;$

ERROR: code indent should never use tabs
#82: FILE: contrib/virtiofsd/buffer.c:65:
+^I^Iif (!(dst->flags & FUSE_BUF_FD_RETRY))$

ERROR: braces {} are necessary for all arms of this statement
#82: FILE: contrib/virtiofsd/buffer.c:65:
+               if (!(dst->flags & FUSE_BUF_FD_RETRY))
[...]

ERROR: code indent should never use tabs
#83: FILE: contrib/virtiofsd/buffer.c:66:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#85: FILE: contrib/virtiofsd/buffer.c:68:
+^I^Isrc_off += res;$

ERROR: code indent should never use tabs
#86: FILE: contrib/virtiofsd/buffer.c:69:
+^I^Idst_off += res;$

ERROR: code indent should never use tabs
#87: FILE: contrib/virtiofsd/buffer.c:70:
+^I^Ilen -= res;$

ERROR: code indent should never use tabs
#88: FILE: contrib/virtiofsd/buffer.c:71:
+^I}$

ERROR: code indent should never use tabs
#90: FILE: contrib/virtiofsd/buffer.c:73:
+^Ireturn copied;$

ERROR: code indent should never use tabs
#94: FILE: contrib/virtiofsd/buffer.c:77:
+^I^I^I     const struct fuse_buf *src, size_t src_off,$

ERROR: code indent should never use tabs
#95: FILE: contrib/virtiofsd/buffer.c:78:
+^I^I^I     size_t len)$

ERROR: code indent should never use tabs
#97: FILE: contrib/virtiofsd/buffer.c:80:
+^Issize_t res = 0;$

ERROR: code indent should never use tabs
#98: FILE: contrib/virtiofsd/buffer.c:81:
+^Isize_t copied = 0;$

ERROR: code indent should never use tabs
#100: FILE: contrib/virtiofsd/buffer.c:83:
+^Iwhile (len) {$

ERROR: code indent should never use tabs
#101: FILE: contrib/virtiofsd/buffer.c:84:
+^I^Iif (src->flags & FUSE_BUF_FD_SEEK) {$

ERROR: code indent should never use tabs
#102: FILE: contrib/virtiofsd/buffer.c:85:
+^I^I^Ires = pread(src->fd, (char *)dst->mem + dst_off, len,$

ERROR: code indent should never use tabs
#103: FILE: contrib/virtiofsd/buffer.c:86:
+^I^I^I^I     src->pos + src_off);$

ERROR: code indent should never use tabs
#104: FILE: contrib/virtiofsd/buffer.c:87:
+^I^I} else {$

ERROR: code indent should never use tabs
#105: FILE: contrib/virtiofsd/buffer.c:88:
+^I^I^Ires = read(src->fd, (char *)dst->mem + dst_off, len);$

ERROR: code indent should never use tabs
#106: FILE: contrib/virtiofsd/buffer.c:89:
+^I^I}$

ERROR: code indent should never use tabs
#107: FILE: contrib/virtiofsd/buffer.c:90:
+^I^Iif (res == -1) {$

ERROR: code indent should never use tabs
#108: FILE: contrib/virtiofsd/buffer.c:91:
+^I^I^Iif (!copied)$

ERROR: braces {} are necessary for all arms of this statement
#108: FILE: contrib/virtiofsd/buffer.c:91:
+                       if (!copied)
[...]

ERROR: code indent should never use tabs
#109: FILE: contrib/virtiofsd/buffer.c:92:
+^I^I^I^Ireturn -errno;$

ERROR: code indent should never use tabs
#110: FILE: contrib/virtiofsd/buffer.c:93:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#111: FILE: contrib/virtiofsd/buffer.c:94:
+^I^I}$

ERROR: code indent should never use tabs
#112: FILE: contrib/virtiofsd/buffer.c:95:
+^I^Iif (res == 0)$

ERROR: braces {} are necessary for all arms of this statement
#112: FILE: contrib/virtiofsd/buffer.c:95:
+               if (res == 0)
[...]

ERROR: code indent should never use tabs
#113: FILE: contrib/virtiofsd/buffer.c:96:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#115: FILE: contrib/virtiofsd/buffer.c:98:
+^I^Icopied += res;$

ERROR: code indent should never use tabs
#116: FILE: contrib/virtiofsd/buffer.c:99:
+^I^Iif (!(src->flags & FUSE_BUF_FD_RETRY))$

ERROR: braces {} are necessary for all arms of this statement
#116: FILE: contrib/virtiofsd/buffer.c:99:
+               if (!(src->flags & FUSE_BUF_FD_RETRY))
[...]

ERROR: code indent should never use tabs
#117: FILE: contrib/virtiofsd/buffer.c:100:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#119: FILE: contrib/virtiofsd/buffer.c:102:
+^I^Idst_off += res;$

ERROR: code indent should never use tabs
#120: FILE: contrib/virtiofsd/buffer.c:103:
+^I^Isrc_off += res;$

ERROR: code indent should never use tabs
#121: FILE: contrib/virtiofsd/buffer.c:104:
+^I^Ilen -= res;$

ERROR: code indent should never use tabs
#122: FILE: contrib/virtiofsd/buffer.c:105:
+^I}$

ERROR: code indent should never use tabs
#124: FILE: contrib/virtiofsd/buffer.c:107:
+^Ireturn copied;$

ERROR: code indent should never use tabs
#128: FILE: contrib/virtiofsd/buffer.c:111:
+^I^I^I^I const struct fuse_buf *src, size_t src_off,$

ERROR: code indent should never use tabs
#129: FILE: contrib/virtiofsd/buffer.c:112:
+^I^I^I^I size_t len)$

ERROR: code indent should never use tabs
#131: FILE: contrib/virtiofsd/buffer.c:114:
+^Ichar buf[4096];$

ERROR: code indent should never use tabs
#132: FILE: contrib/virtiofsd/buffer.c:115:
+^Istruct fuse_buf tmp = {$

ERROR: code indent should never use tabs
#133: FILE: contrib/virtiofsd/buffer.c:116:
+^I^I.size = sizeof(buf),$

ERROR: code indent should never use tabs
#134: FILE: contrib/virtiofsd/buffer.c:117:
+^I^I.flags = 0,$

ERROR: code indent should never use tabs
#135: FILE: contrib/virtiofsd/buffer.c:118:
+^I};$

ERROR: code indent should never use tabs
#136: FILE: contrib/virtiofsd/buffer.c:119:
+^Issize_t res;$

ERROR: code indent should never use tabs
#137: FILE: contrib/virtiofsd/buffer.c:120:
+^Isize_t copied = 0;$

ERROR: code indent should never use tabs
#139: FILE: contrib/virtiofsd/buffer.c:122:
+^Itmp.mem = buf;$

ERROR: code indent should never use tabs
#141: FILE: contrib/virtiofsd/buffer.c:124:
+^Iwhile (len) {$

ERROR: code indent should never use tabs
#142: FILE: contrib/virtiofsd/buffer.c:125:
+^I^Isize_t this_len = min_size(tmp.size, len);$

ERROR: code indent should never use tabs
#143: FILE: contrib/virtiofsd/buffer.c:126:
+^I^Isize_t read_len;$

ERROR: code indent should never use tabs
#145: FILE: contrib/virtiofsd/buffer.c:128:
+^I^Ires = fuse_buf_read(&tmp, 0, src, src_off, this_len);$

ERROR: code indent should never use tabs
#146: FILE: contrib/virtiofsd/buffer.c:129:
+^I^Iif (res < 0) {$

ERROR: code indent should never use tabs
#147: FILE: contrib/virtiofsd/buffer.c:130:
+^I^I^Iif (!copied)$

ERROR: braces {} are necessary for all arms of this statement
#147: FILE: contrib/virtiofsd/buffer.c:130:
+                       if (!copied)
[...]

ERROR: code indent should never use tabs
#148: FILE: contrib/virtiofsd/buffer.c:131:
+^I^I^I^Ireturn res;$

ERROR: code indent should never use tabs
#149: FILE: contrib/virtiofsd/buffer.c:132:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#150: FILE: contrib/virtiofsd/buffer.c:133:
+^I^I}$

ERROR: code indent should never use tabs
#151: FILE: contrib/virtiofsd/buffer.c:134:
+^I^Iif (res == 0)$

ERROR: braces {} are necessary for all arms of this statement
#151: FILE: contrib/virtiofsd/buffer.c:134:
+               if (res == 0)
[...]

ERROR: code indent should never use tabs
#152: FILE: contrib/virtiofsd/buffer.c:135:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#154: FILE: contrib/virtiofsd/buffer.c:137:
+^I^Iread_len = res;$

ERROR: code indent should never use tabs
#155: FILE: contrib/virtiofsd/buffer.c:138:
+^I^Ires = fuse_buf_write(dst, dst_off, &tmp, 0, read_len);$

ERROR: code indent should never use tabs
#156: FILE: contrib/virtiofsd/buffer.c:139:
+^I^Iif (res < 0) {$

ERROR: code indent should never use tabs
#157: FILE: contrib/virtiofsd/buffer.c:140:
+^I^I^Iif (!copied)$

ERROR: braces {} are necessary for all arms of this statement
#157: FILE: contrib/virtiofsd/buffer.c:140:
+                       if (!copied)
[...]

ERROR: code indent should never use tabs
#158: FILE: contrib/virtiofsd/buffer.c:141:
+^I^I^I^Ireturn res;$

ERROR: code indent should never use tabs
#159: FILE: contrib/virtiofsd/buffer.c:142:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#160: FILE: contrib/virtiofsd/buffer.c:143:
+^I^I}$

ERROR: code indent should never use tabs
#161: FILE: contrib/virtiofsd/buffer.c:144:
+^I^Iif (res == 0)$

ERROR: braces {} are necessary for all arms of this statement
#161: FILE: contrib/virtiofsd/buffer.c:144:
+               if (res == 0)
[...]

ERROR: code indent should never use tabs
#162: FILE: contrib/virtiofsd/buffer.c:145:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#164: FILE: contrib/virtiofsd/buffer.c:147:
+^I^Icopied += res;$

ERROR: code indent should never use tabs
#166: FILE: contrib/virtiofsd/buffer.c:149:
+^I^Iif (res < this_len)$

ERROR: braces {} are necessary for all arms of this statement
#166: FILE: contrib/virtiofsd/buffer.c:149:
+               if (res < this_len)
[...]

ERROR: code indent should never use tabs
#167: FILE: contrib/virtiofsd/buffer.c:150:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#169: FILE: contrib/virtiofsd/buffer.c:152:
+^I^Idst_off += res;$

ERROR: code indent should never use tabs
#170: FILE: contrib/virtiofsd/buffer.c:153:
+^I^Isrc_off += res;$

ERROR: code indent should never use tabs
#171: FILE: contrib/virtiofsd/buffer.c:154:
+^I^Ilen -= res;$

ERROR: code indent should never use tabs
#172: FILE: contrib/virtiofsd/buffer.c:155:
+^I}$

ERROR: code indent should never use tabs
#174: FILE: contrib/virtiofsd/buffer.c:157:
+^Ireturn copied;$

ERROR: code indent should never use tabs
#179: FILE: contrib/virtiofsd/buffer.c:162:
+^I^I^I       const struct fuse_buf *src, size_t src_off,$

ERROR: code indent should never use tabs
#180: FILE: contrib/virtiofsd/buffer.c:163:
+^I^I^I       size_t len, enum fuse_buf_copy_flags flags)$

ERROR: code indent should never use tabs
#182: FILE: contrib/virtiofsd/buffer.c:165:
+^Iint splice_flags = 0;$

ERROR: code indent should never use tabs
#183: FILE: contrib/virtiofsd/buffer.c:166:
+^Ioff_t *srcpos = NULL;$

ERROR: code indent should never use tabs
#184: FILE: contrib/virtiofsd/buffer.c:167:
+^Ioff_t *dstpos = NULL;$

ERROR: code indent should never use tabs
#185: FILE: contrib/virtiofsd/buffer.c:168:
+^Ioff_t srcpos_val;$

ERROR: code indent should never use tabs
#186: FILE: contrib/virtiofsd/buffer.c:169:
+^Ioff_t dstpos_val;$

ERROR: code indent should never use tabs
#187: FILE: contrib/virtiofsd/buffer.c:170:
+^Issize_t res;$

ERROR: code indent should never use tabs
#188: FILE: contrib/virtiofsd/buffer.c:171:
+^Isize_t copied = 0;$

ERROR: code indent should never use tabs
#190: FILE: contrib/virtiofsd/buffer.c:173:
+^Iif (flags & FUSE_BUF_SPLICE_MOVE)$

ERROR: braces {} are necessary for all arms of this statement
#190: FILE: contrib/virtiofsd/buffer.c:173:
+       if (flags & FUSE_BUF_SPLICE_MOVE)
[...]

ERROR: code indent should never use tabs
#191: FILE: contrib/virtiofsd/buffer.c:174:
+^I^Isplice_flags |= SPLICE_F_MOVE;$

ERROR: code indent should never use tabs
#192: FILE: contrib/virtiofsd/buffer.c:175:
+^Iif (flags & FUSE_BUF_SPLICE_NONBLOCK)$

ERROR: braces {} are necessary for all arms of this statement
#192: FILE: contrib/virtiofsd/buffer.c:175:
+       if (flags & FUSE_BUF_SPLICE_NONBLOCK)
[...]

ERROR: code indent should never use tabs
#193: FILE: contrib/virtiofsd/buffer.c:176:
+^I^Isplice_flags |= SPLICE_F_NONBLOCK;$

ERROR: code indent should never use tabs
#195: FILE: contrib/virtiofsd/buffer.c:178:
+^Iif (src->flags & FUSE_BUF_FD_SEEK) {$

ERROR: code indent should never use tabs
#196: FILE: contrib/virtiofsd/buffer.c:179:
+^I^Isrcpos_val = src->pos + src_off;$

ERROR: code indent should never use tabs
#197: FILE: contrib/virtiofsd/buffer.c:180:
+^I^Isrcpos = &srcpos_val;$

ERROR: code indent should never use tabs
#198: FILE: contrib/virtiofsd/buffer.c:181:
+^I}$

ERROR: code indent should never use tabs
#199: FILE: contrib/virtiofsd/buffer.c:182:
+^Iif (dst->flags & FUSE_BUF_FD_SEEK) {$

ERROR: code indent should never use tabs
#200: FILE: contrib/virtiofsd/buffer.c:183:
+^I^Idstpos_val = dst->pos + dst_off;$

ERROR: code indent should never use tabs
#201: FILE: contrib/virtiofsd/buffer.c:184:
+^I^Idstpos = &dstpos_val;$

ERROR: code indent should never use tabs
#202: FILE: contrib/virtiofsd/buffer.c:185:
+^I}$

ERROR: code indent should never use tabs
#204: FILE: contrib/virtiofsd/buffer.c:187:
+^Iwhile (len) {$

ERROR: code indent should never use tabs
#205: FILE: contrib/virtiofsd/buffer.c:188:
+^I^Ires = splice(src->fd, srcpos, dst->fd, dstpos, len,$

ERROR: code indent should never use tabs
#206: FILE: contrib/virtiofsd/buffer.c:189:
+^I^I^I     splice_flags);$

ERROR: code indent should never use tabs
#207: FILE: contrib/virtiofsd/buffer.c:190:
+^I^Iif (res == -1) {$

ERROR: code indent should never use tabs
#208: FILE: contrib/virtiofsd/buffer.c:191:
+^I^I^Iif (copied)$

ERROR: braces {} are necessary for all arms of this statement
#208: FILE: contrib/virtiofsd/buffer.c:191:
+                       if (copied)
[...]

ERROR: code indent should never use tabs
#209: FILE: contrib/virtiofsd/buffer.c:192:
+^I^I^I^Ibreak;$

ERROR: code indent should never use tabs
#211: FILE: contrib/virtiofsd/buffer.c:194:
+^I^I^Iif (errno != EINVAL || (flags & FUSE_BUF_FORCE_SPLICE))$

ERROR: braces {} are necessary for all arms of this statement
#211: FILE: contrib/virtiofsd/buffer.c:194:
+                       if (errno != EINVAL || (flags & FUSE_BUF_FORCE_SPLICE))
[...]

ERROR: code indent should never use tabs
#212: FILE: contrib/virtiofsd/buffer.c:195:
+^I^I^I^Ireturn -errno;$

ERROR: code indent should never use tabs
#214: FILE: contrib/virtiofsd/buffer.c:197:
+^I^I^I/* Maybe splice is not supported for this combination */$

ERROR: code indent should never use tabs
#215: FILE: contrib/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
#216: FILE: contrib/virtiofsd/buffer.c:199:
+^I^I^I^I^I^I len);$

ERROR: code indent should never use tabs
#217: FILE: contrib/virtiofsd/buffer.c:200:
+^I^I}$

ERROR: code indent should never use tabs
#218: FILE: contrib/virtiofsd/buffer.c:201:
+^I^Iif (res == 0)$

ERROR: braces {} are necessary for all arms of this statement
#218: FILE: contrib/virtiofsd/buffer.c:201:
+               if (res == 0)
[...]

ERROR: code indent should never use tabs
#219: FILE: contrib/virtiofsd/buffer.c:202:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#221: FILE: contrib/virtiofsd/buffer.c:204:
+^I^Icopied += res;$

ERROR: code indent should never use tabs
#222: FILE: contrib/virtiofsd/buffer.c:205:
+^I^Iif (!(src->flags & FUSE_BUF_FD_RETRY) &&$

ERROR: code indent should never use tabs
#223: FILE: contrib/virtiofsd/buffer.c:206:
+^I^I    !(dst->flags & FUSE_BUF_FD_RETRY)) {$

ERROR: code indent should never use tabs
#224: FILE: contrib/virtiofsd/buffer.c:207:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#225: FILE: contrib/virtiofsd/buffer.c:208:
+^I^I}$

ERROR: code indent should never use tabs
#227: FILE: contrib/virtiofsd/buffer.c:210:
+^I^Ilen -= res;$

ERROR: code indent should never use tabs
#228: FILE: contrib/virtiofsd/buffer.c:211:
+^I}$

ERROR: code indent should never use tabs
#230: FILE: contrib/virtiofsd/buffer.c:213:
+^Ireturn copied;$

ERROR: code indent should never use tabs
#234: FILE: contrib/virtiofsd/buffer.c:217:
+^I^I^I       const struct fuse_buf *src, size_t src_off,$

ERROR: code indent should never use tabs
#235: FILE: contrib/virtiofsd/buffer.c:218:
+^I^I^I       size_t len, enum fuse_buf_copy_flags flags)$

ERROR: code indent should never use tabs
#237: FILE: contrib/virtiofsd/buffer.c:220:
+^I(void) flags;$

ERROR: code indent should never use tabs
#239: FILE: contrib/virtiofsd/buffer.c:222:
+^Ireturn fuse_buf_fd_to_fd(dst, dst_off, src, src_off, len);$

ERROR: code indent should never use tabs
#245: FILE: contrib/virtiofsd/buffer.c:228:
+^I^I^I^I const struct fuse_buf *src, size_t src_off,$

ERROR: code indent should never use tabs
#246: FILE: contrib/virtiofsd/buffer.c:229:
+^I^I^I^I size_t len, enum fuse_buf_copy_flags flags)$

ERROR: code indent should never use tabs
#248: FILE: contrib/virtiofsd/buffer.c:231:
+^Iint src_is_fd = src->flags & FUSE_BUF_IS_FD;$

ERROR: code indent should never use tabs
#249: FILE: contrib/virtiofsd/buffer.c:232:
+^Iint dst_is_fd = dst->flags & FUSE_BUF_IS_FD;$

ERROR: code indent should never use tabs
#251: FILE: contrib/virtiofsd/buffer.c:234:
+^Iif (!src_is_fd && !dst_is_fd) {$

ERROR: code indent should never use tabs
#252: FILE: contrib/virtiofsd/buffer.c:235:
+^I^Ichar *dstmem = (char *)dst->mem + dst_off;$

ERROR: code indent should never use tabs
#253: FILE: contrib/virtiofsd/buffer.c:236:
+^I^Ichar *srcmem = (char *)src->mem + src_off;$

ERROR: code indent should never use tabs
#255: FILE: contrib/virtiofsd/buffer.c:238:
+^I^Iif (dstmem != srcmem) {$

ERROR: code indent should never use tabs
#256: FILE: contrib/virtiofsd/buffer.c:239:
+^I^I^Iif (dstmem + len <= srcmem || srcmem + len <= dstmem)$

ERROR: braces {} are necessary for all arms of this statement
#256: FILE: contrib/virtiofsd/buffer.c:239:
+                       if (dstmem + len <= srcmem || srcmem + len <= dstmem)
[...]
+                       else
[...]

ERROR: code indent should never use tabs
#257: FILE: contrib/virtiofsd/buffer.c:240:
+^I^I^I^Imemcpy(dstmem, srcmem, len);$

ERROR: code indent should never use tabs
#258: FILE: contrib/virtiofsd/buffer.c:241:
+^I^I^Ielse$

ERROR: code indent should never use tabs
#259: FILE: contrib/virtiofsd/buffer.c:242:
+^I^I^I^Imemmove(dstmem, srcmem, len);$

ERROR: code indent should never use tabs
#260: FILE: contrib/virtiofsd/buffer.c:243:
+^I^I}$

ERROR: code indent should never use tabs
#262: FILE: contrib/virtiofsd/buffer.c:245:
+^I^Ireturn len;$

ERROR: code indent should never use tabs
#263: FILE: contrib/virtiofsd/buffer.c:246:
+^I} else if (!src_is_fd) {$

ERROR: code indent should never use tabs
#264: FILE: contrib/virtiofsd/buffer.c:247:
+^I^Ireturn fuse_buf_write(dst, dst_off, src, src_off, len);$

ERROR: code indent should never use tabs
#265: FILE: contrib/virtiofsd/buffer.c:248:
+^I} else if (!dst_is_fd) {$

ERROR: code indent should never use tabs
#266: FILE: contrib/virtiofsd/buffer.c:249:
+^I^Ireturn fuse_buf_read(dst, dst_off, src, src_off, len);$

ERROR: code indent should never use tabs
#267: FILE: contrib/virtiofsd/buffer.c:250:
+^I} else if (flags & FUSE_BUF_NO_SPLICE) {$

ERROR: code indent should never use tabs
#268: FILE: contrib/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
#269: FILE: contrib/virtiofsd/buffer.c:252:
+^I} else {$

ERROR: code indent should never use tabs
#270: FILE: contrib/virtiofsd/buffer.c:253:
+^I^Ireturn fuse_buf_splice(dst, dst_off, src, src_off, len, flags);$

ERROR: code indent should never use tabs
#271: FILE: contrib/virtiofsd/buffer.c:254:
+^I}$

ERROR: code indent should never use tabs
#276: FILE: contrib/virtiofsd/buffer.c:259:
+^Iif (bufv->idx < bufv->count)$

ERROR: braces {} are necessary for all arms of this statement
#276: FILE: contrib/virtiofsd/buffer.c:259:
+       if (bufv->idx < bufv->count)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#277: FILE: contrib/virtiofsd/buffer.c:260:
+^I^Ireturn &bufv->buf[bufv->idx];$

ERROR: code indent should never use tabs
#278: FILE: contrib/virtiofsd/buffer.c:261:
+^Ielse$

ERROR: code indent should never use tabs
#279: FILE: contrib/virtiofsd/buffer.c:262:
+^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#284: FILE: contrib/virtiofsd/buffer.c:267:
+^Iconst struct fuse_buf *buf = fuse_bufvec_current(bufv);$

ERROR: code indent should never use tabs
#286: FILE: contrib/virtiofsd/buffer.c:269:
+^Ibufv->off += len;$

ERROR: code indent should never use tabs
#287: FILE: contrib/virtiofsd/buffer.c:270:
+^Iassert(bufv->off <= buf->size);$

ERROR: code indent should never use tabs
#288: FILE: contrib/virtiofsd/buffer.c:271:
+^Iif (bufv->off == buf->size) {$

ERROR: code indent should never use tabs
#289: FILE: contrib/virtiofsd/buffer.c:272:
+^I^Iassert(bufv->idx < bufv->count);$

ERROR: code indent should never use tabs
#290: FILE: contrib/virtiofsd/buffer.c:273:
+^I^Ibufv->idx++;$

ERROR: code indent should never use tabs
#291: FILE: contrib/virtiofsd/buffer.c:274:
+^I^Iif (bufv->idx == bufv->count)$

ERROR: braces {} are necessary for all arms of this statement
#291: FILE: contrib/virtiofsd/buffer.c:274:
+               if (bufv->idx == bufv->count)
[...]

ERROR: code indent should never use tabs
#292: FILE: contrib/virtiofsd/buffer.c:275:
+^I^I^Ireturn 0;$

ERROR: code indent should never use tabs
#293: FILE: contrib/virtiofsd/buffer.c:276:
+^I^Ibufv->off = 0;$

ERROR: code indent should never use tabs
#294: FILE: contrib/virtiofsd/buffer.c:277:
+^I}$

ERROR: code indent should never use tabs
#295: FILE: contrib/virtiofsd/buffer.c:278:
+^Ireturn 1;$

ERROR: code indent should never use tabs
#299: FILE: contrib/virtiofsd/buffer.c:282:
+^I^I      enum fuse_buf_copy_flags flags)$

ERROR: code indent should never use tabs
#301: FILE: contrib/virtiofsd/buffer.c:284:
+^Isize_t copied = 0;$

ERROR: code indent should never use tabs
#303: FILE: contrib/virtiofsd/buffer.c:286:
+^Iif (dstv == srcv)$

ERROR: braces {} are necessary for all arms of this statement
#303: FILE: contrib/virtiofsd/buffer.c:286:
+       if (dstv == srcv)
[...]

ERROR: code indent should never use tabs
#304: FILE: contrib/virtiofsd/buffer.c:287:
+^I^Ireturn fuse_buf_size(dstv);$

ERROR: code indent should never use tabs
#306: FILE: contrib/virtiofsd/buffer.c:289:
+^Ifor (;;) {$

ERROR: code indent should never use tabs
#307: FILE: contrib/virtiofsd/buffer.c:290:
+^I^Iconst struct fuse_buf *src = fuse_bufvec_current(srcv);$

ERROR: code indent should never use tabs
#308: FILE: contrib/virtiofsd/buffer.c:291:
+^I^Iconst struct fuse_buf *dst = fuse_bufvec_current(dstv);$

ERROR: code indent should never use tabs
#309: FILE: contrib/virtiofsd/buffer.c:292:
+^I^Isize_t src_len;$

ERROR: code indent should never use tabs
#310: FILE: contrib/virtiofsd/buffer.c:293:
+^I^Isize_t dst_len;$

ERROR: code indent should never use tabs
#311: FILE: contrib/virtiofsd/buffer.c:294:
+^I^Isize_t len;$

ERROR: code indent should never use tabs
#312: FILE: contrib/virtiofsd/buffer.c:295:
+^I^Issize_t res;$

ERROR: code indent should never use tabs
#314: FILE: contrib/virtiofsd/buffer.c:297:
+^I^Iif (src == NULL || dst == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#314: FILE: contrib/virtiofsd/buffer.c:297:
+               if (src == NULL || dst == NULL)
[...]

ERROR: code indent should never use tabs
#315: FILE: contrib/virtiofsd/buffer.c:298:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#317: FILE: contrib/virtiofsd/buffer.c:300:
+^I^Isrc_len = src->size - srcv->off;$

ERROR: code indent should never use tabs
#318: FILE: contrib/virtiofsd/buffer.c:301:
+^I^Idst_len = dst->size - dstv->off;$

ERROR: code indent should never use tabs
#319: FILE: contrib/virtiofsd/buffer.c:302:
+^I^Ilen = min_size(src_len, dst_len);$

WARNING: line over 80 characters
#321: FILE: contrib/virtiofsd/buffer.c:304:
+               res = fuse_buf_copy_one(dst, dstv->off, src, srcv->off, len, flags);

ERROR: code indent should never use tabs
#321: FILE: contrib/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
#322: FILE: contrib/virtiofsd/buffer.c:305:
+^I^Iif (res < 0) {$

ERROR: code indent should never use tabs
#323: FILE: contrib/virtiofsd/buffer.c:306:
+^I^I^Iif (!copied)$

ERROR: braces {} are necessary for all arms of this statement
#323: FILE: contrib/virtiofsd/buffer.c:306:
+                       if (!copied)
[...]

ERROR: code indent should never use tabs
#324: FILE: contrib/virtiofsd/buffer.c:307:
+^I^I^I^Ireturn res;$

ERROR: code indent should never use tabs
#325: FILE: contrib/virtiofsd/buffer.c:308:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#326: FILE: contrib/virtiofsd/buffer.c:309:
+^I^I}$

ERROR: code indent should never use tabs
#327: FILE: contrib/virtiofsd/buffer.c:310:
+^I^Icopied += res;$

ERROR: code indent should never use tabs
#329: FILE: contrib/virtiofsd/buffer.c:312:
+^I^Iif (!fuse_bufvec_advance(srcv, res) ||$

ERROR: code indent should never use tabs
#330: FILE: contrib/virtiofsd/buffer.c:313:
+^I^I    !fuse_bufvec_advance(dstv, res))$

ERROR: code indent should never use tabs
#331: FILE: contrib/virtiofsd/buffer.c:314:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#333: FILE: contrib/virtiofsd/buffer.c:316:
+^I^Iif (res < len)$

ERROR: braces {} are necessary for all arms of this statement
#333: FILE: contrib/virtiofsd/buffer.c:316:
+               if (res < len)
[...]

ERROR: code indent should never use tabs
#334: FILE: contrib/virtiofsd/buffer.c:317:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#335: FILE: contrib/virtiofsd/buffer.c:318:
+^I}$

ERROR: code indent should never use tabs
#337: FILE: contrib/virtiofsd/buffer.c:320:
+^Ireturn copied;$

WARNING: Block comments use * on subsequent lines
#346: FILE: contrib/virtiofsd/fuse_log.c:2:
+/*
+  FUSE: Filesystem in Userspace

ERROR: code indent should never use tabs
#361: FILE: contrib/virtiofsd/fuse_log.c:17:
+^I^I__attribute__(( unused )) enum fuse_log_level level,$

ERROR: space prohibited after that open parenthesis '('
#361: FILE: contrib/virtiofsd/fuse_log.c:17:
+               __attribute__(( unused )) enum fuse_log_level level,

ERROR: space prohibited before that close parenthesis ')'
#361: FILE: contrib/virtiofsd/fuse_log.c:17:
+               __attribute__(( unused )) enum fuse_log_level level,

ERROR: code indent should never use tabs
#362: FILE: contrib/virtiofsd/fuse_log.c:18:
+^I^Iconst char *fmt, va_list ap)$

ERROR: code indent should never use tabs
#364: FILE: contrib/virtiofsd/fuse_log.c:20:
+^Ivfprintf(stderr, fmt, ap);$

ERROR: code indent should never use tabs
#371: FILE: contrib/virtiofsd/fuse_log.c:27:
+^Iif (!func)$

ERROR: braces {} are necessary for all arms of this statement
#371: FILE: contrib/virtiofsd/fuse_log.c:27:
+       if (!func)
[...]

ERROR: code indent should never use tabs
#372: FILE: contrib/virtiofsd/fuse_log.c:28:
+^I^Ifunc = default_log_func;$

ERROR: code indent should never use tabs
#374: FILE: contrib/virtiofsd/fuse_log.c:30:
+^Ilog_func = func;$

ERROR: code indent should never use tabs
#379: FILE: contrib/virtiofsd/fuse_log.c:35:
+^Iva_list ap;$

ERROR: code indent should never use tabs
#381: FILE: contrib/virtiofsd/fuse_log.c:37:
+^Iva_start(ap, fmt);$

ERROR: code indent should never use tabs
#382: FILE: contrib/virtiofsd/fuse_log.c:38:
+^Ilog_func(level, fmt, ap);$

ERROR: code indent should never use tabs
#383: FILE: contrib/virtiofsd/fuse_log.c:39:
+^Iva_end(ap);$

WARNING: Block comments use * on subsequent lines
#392: FILE: contrib/virtiofsd/fuse_loop_mt.c:2:
+/*
+  FUSE: Filesystem in Userspace

ERROR: code indent should never use tabs
#422: FILE: contrib/virtiofsd/fuse_loop_mt.c:32:
+^Istruct fuse_worker *prev;$

ERROR: code indent should never use tabs
#423: FILE: contrib/virtiofsd/fuse_loop_mt.c:33:
+^Istruct fuse_worker *next;$

ERROR: code indent should never use tabs
#424: FILE: contrib/virtiofsd/fuse_loop_mt.c:34:
+^Ipthread_t thread_id;$

ERROR: code indent should never use tabs
#425: FILE: contrib/virtiofsd/fuse_loop_mt.c:35:
+^Isize_t bufsize;$

ERROR: code indent should never use tabs
#427: FILE: contrib/virtiofsd/fuse_loop_mt.c:37:
+^I// We need to include fuse_buf so that we can properly free$

ERROR: do not use C99 // comments
#427: FILE: contrib/virtiofsd/fuse_loop_mt.c:37:
+       // We need to include fuse_buf so that we can properly free

ERROR: code indent should never use tabs
#428: FILE: contrib/virtiofsd/fuse_loop_mt.c:38:
+^I// it when a thread is terminated by pthread_cancel().$

ERROR: do not use C99 // comments
#428: FILE: contrib/virtiofsd/fuse_loop_mt.c:38:
+       // it when a thread is terminated by pthread_cancel().

ERROR: code indent should never use tabs
#429: FILE: contrib/virtiofsd/fuse_loop_mt.c:39:
+^Istruct fuse_buf fbuf;$

ERROR: code indent should never use tabs
#430: FILE: contrib/virtiofsd/fuse_loop_mt.c:40:
+^Istruct fuse_chan *ch;$

ERROR: code indent should never use tabs
#431: FILE: contrib/virtiofsd/fuse_loop_mt.c:41:
+^Istruct fuse_mt *mt;$

ERROR: code indent should never use tabs
#435: FILE: contrib/virtiofsd/fuse_loop_mt.c:45:
+^Ipthread_mutex_t lock;$

ERROR: code indent should never use tabs
#436: FILE: contrib/virtiofsd/fuse_loop_mt.c:46:
+^Iint numworker;$

ERROR: code indent should never use tabs
#437: FILE: contrib/virtiofsd/fuse_loop_mt.c:47:
+^Iint numavail;$

ERROR: code indent should never use tabs
#438: FILE: contrib/virtiofsd/fuse_loop_mt.c:48:
+^Istruct fuse_session *se;$

ERROR: code indent should never use tabs
#439: FILE: contrib/virtiofsd/fuse_loop_mt.c:49:
+^Istruct fuse_worker main;$

ERROR: code indent should never use tabs
#440: FILE: contrib/virtiofsd/fuse_loop_mt.c:50:
+^Isem_t finish;$

ERROR: code indent should never use tabs
#441: FILE: contrib/virtiofsd/fuse_loop_mt.c:51:
+^Iint exit;$

ERROR: code indent should never use tabs
#442: FILE: contrib/virtiofsd/fuse_loop_mt.c:52:
+^Iint error;$

ERROR: code indent should never use tabs
#443: FILE: contrib/virtiofsd/fuse_loop_mt.c:53:
+^Iint clone_fd;$

ERROR: code indent should never use tabs
#444: FILE: contrib/virtiofsd/fuse_loop_mt.c:54:
+^Iint max_idle;$

ERROR: code indent should never use tabs
#449: FILE: contrib/virtiofsd/fuse_loop_mt.c:59:
+^Istruct fuse_chan *ch = (struct fuse_chan *) malloc(sizeof(*ch));$

ERROR: code indent should never use tabs
#450: FILE: contrib/virtiofsd/fuse_loop_mt.c:60:
+^Iif (ch == NULL) {$

ERROR: code indent should never use tabs
#451: FILE: contrib/virtiofsd/fuse_loop_mt.c:61:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: failed to allocate channel\n");$

ERROR: code indent should never use tabs
#452: FILE: contrib/virtiofsd/fuse_loop_mt.c:62:
+^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#453: FILE: contrib/virtiofsd/fuse_loop_mt.c:63:
+^I}$

ERROR: code indent should never use tabs
#455: FILE: contrib/virtiofsd/fuse_loop_mt.c:65:
+^Imemset(ch, 0, sizeof(*ch));$

ERROR: code indent should never use tabs
#456: FILE: contrib/virtiofsd/fuse_loop_mt.c:66:
+^Ich->fd = fd;$

ERROR: code indent should never use tabs
#457: FILE: contrib/virtiofsd/fuse_loop_mt.c:67:
+^Ich->ctr = 1;$

ERROR: code indent should never use tabs
#458: FILE: contrib/virtiofsd/fuse_loop_mt.c:68:
+^Ifuse_mutex_init(&ch->lock);$

ERROR: code indent should never use tabs
#460: FILE: contrib/virtiofsd/fuse_loop_mt.c:70:
+^Ireturn ch;$

ERROR: code indent should never use tabs
#465: FILE: contrib/virtiofsd/fuse_loop_mt.c:75:
+^Iassert(ch->ctr > 0);$

ERROR: code indent should never use tabs
#466: FILE: contrib/virtiofsd/fuse_loop_mt.c:76:
+^Ipthread_mutex_lock(&ch->lock);$

ERROR: code indent should never use tabs
#467: FILE: contrib/virtiofsd/fuse_loop_mt.c:77:
+^Ich->ctr++;$

ERROR: code indent should never use tabs
#468: FILE: contrib/virtiofsd/fuse_loop_mt.c:78:
+^Ipthread_mutex_unlock(&ch->lock);$

ERROR: code indent should never use tabs
#470: FILE: contrib/virtiofsd/fuse_loop_mt.c:80:
+^Ireturn ch;$

ERROR: code indent should never use tabs
#475: FILE: contrib/virtiofsd/fuse_loop_mt.c:85:
+^Iif (ch == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#475: FILE: contrib/virtiofsd/fuse_loop_mt.c:85:
+       if (ch == NULL)
[...]

ERROR: code indent should never use tabs
#476: FILE: contrib/virtiofsd/fuse_loop_mt.c:86:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#477: FILE: contrib/virtiofsd/fuse_loop_mt.c:87:
+^Ipthread_mutex_lock(&ch->lock);$

ERROR: code indent should never use tabs
#478: FILE: contrib/virtiofsd/fuse_loop_mt.c:88:
+^Ich->ctr--;$

ERROR: code indent should never use tabs
#479: FILE: contrib/virtiofsd/fuse_loop_mt.c:89:
+^Iif (!ch->ctr) {$

ERROR: code indent should never use tabs
#480: FILE: contrib/virtiofsd/fuse_loop_mt.c:90:
+^I^Ipthread_mutex_unlock(&ch->lock);$

ERROR: code indent should never use tabs
#481: FILE: contrib/virtiofsd/fuse_loop_mt.c:91:
+^I^Iclose(ch->fd);$

ERROR: code indent should never use tabs
#482: FILE: contrib/virtiofsd/fuse_loop_mt.c:92:
+^I^Ipthread_mutex_destroy(&ch->lock);$

ERROR: code indent should never use tabs
#483: FILE: contrib/virtiofsd/fuse_loop_mt.c:93:
+^I^Ifree(ch);$

ERROR: code indent should never use tabs
#484: FILE: contrib/virtiofsd/fuse_loop_mt.c:94:
+^I} else$

ERROR: code indent should never use tabs
#485: FILE: contrib/virtiofsd/fuse_loop_mt.c:95:
+^I^Ipthread_mutex_unlock(&ch->lock);$

ERROR: code indent should never use tabs
#490: FILE: contrib/virtiofsd/fuse_loop_mt.c:100:
+^Istruct fuse_worker *prev = next->prev;$

ERROR: code indent should never use tabs
#491: FILE: contrib/virtiofsd/fuse_loop_mt.c:101:
+^Iw->next = next;$

ERROR: code indent should never use tabs
#492: FILE: contrib/virtiofsd/fuse_loop_mt.c:102:
+^Iw->prev = prev;$

ERROR: code indent should never use tabs
#493: FILE: contrib/virtiofsd/fuse_loop_mt.c:103:
+^Iprev->next = w;$

ERROR: code indent should never use tabs
#494: FILE: contrib/virtiofsd/fuse_loop_mt.c:104:
+^Inext->prev = w;$

ERROR: code indent should never use tabs
#499: FILE: contrib/virtiofsd/fuse_loop_mt.c:109:
+^Istruct fuse_worker *prev = w->prev;$

ERROR: code indent should never use tabs
#500: FILE: contrib/virtiofsd/fuse_loop_mt.c:110:
+^Istruct fuse_worker *next = w->next;$

ERROR: code indent should never use tabs
#501: FILE: contrib/virtiofsd/fuse_loop_mt.c:111:
+^Iprev->next = next;$

ERROR: code indent should never use tabs
#502: FILE: contrib/virtiofsd/fuse_loop_mt.c:112:
+^Inext->prev = prev;$

ERROR: code indent should never use tabs
#509: FILE: contrib/virtiofsd/fuse_loop_mt.c:119:
+^Istruct fuse_worker *w = (struct fuse_worker *) data;$

ERROR: code indent should never use tabs
#510: FILE: contrib/virtiofsd/fuse_loop_mt.c:120:
+^Istruct fuse_mt *mt = w->mt;$

ERROR: code indent should never use tabs
#512: FILE: contrib/virtiofsd/fuse_loop_mt.c:122:
+^Iwhile (!fuse_session_exited(mt->se)) {$

ERROR: code indent should never use tabs
#513: FILE: contrib/virtiofsd/fuse_loop_mt.c:123:
+^I^Iint isforget = 0;$

ERROR: code indent should never use tabs
#514: FILE: contrib/virtiofsd/fuse_loop_mt.c:124:
+^I^Iint res;$

ERROR: code indent should never use tabs
#516: FILE: contrib/virtiofsd/fuse_loop_mt.c:126:
+^I^Ipthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);$

ERROR: code indent should never use tabs
#517: FILE: contrib/virtiofsd/fuse_loop_mt.c:127:
+^I^Ires = fuse_session_receive_buf_int(mt->se, &w->fbuf, w->ch);$

ERROR: code indent should never use tabs
#518: FILE: contrib/virtiofsd/fuse_loop_mt.c:128:
+^I^Ipthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);$

ERROR: code indent should never use tabs
#519: FILE: contrib/virtiofsd/fuse_loop_mt.c:129:
+^I^Iif (res == -EINTR)$

ERROR: braces {} are necessary for all arms of this statement
#519: FILE: contrib/virtiofsd/fuse_loop_mt.c:129:
+               if (res == -EINTR)
[...]

ERROR: code indent should never use tabs
#520: FILE: contrib/virtiofsd/fuse_loop_mt.c:130:
+^I^I^Icontinue;$

ERROR: code indent should never use tabs
#521: FILE: contrib/virtiofsd/fuse_loop_mt.c:131:
+^I^Iif (res <= 0) {$

ERROR: code indent should never use tabs
#522: FILE: contrib/virtiofsd/fuse_loop_mt.c:132:
+^I^I^Iif (res < 0) {$

ERROR: code indent should never use tabs
#523: FILE: contrib/virtiofsd/fuse_loop_mt.c:133:
+^I^I^I^Ifuse_session_exit(mt->se);$

ERROR: code indent should never use tabs
#524: FILE: contrib/virtiofsd/fuse_loop_mt.c:134:
+^I^I^I^Imt->error = res;$

ERROR: code indent should never use tabs
#525: FILE: contrib/virtiofsd/fuse_loop_mt.c:135:
+^I^I^I}$

ERROR: code indent should never use tabs
#526: FILE: contrib/virtiofsd/fuse_loop_mt.c:136:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#527: FILE: contrib/virtiofsd/fuse_loop_mt.c:137:
+^I^I}$

ERROR: code indent should never use tabs
#529: FILE: contrib/virtiofsd/fuse_loop_mt.c:139:
+^I^Ipthread_mutex_lock(&mt->lock);$

ERROR: code indent should never use tabs
#530: FILE: contrib/virtiofsd/fuse_loop_mt.c:140:
+^I^Iif (mt->exit) {$

ERROR: code indent should never use tabs
#531: FILE: contrib/virtiofsd/fuse_loop_mt.c:141:
+^I^I^Ipthread_mutex_unlock(&mt->lock);$

ERROR: code indent should never use tabs
#532: FILE: contrib/virtiofsd/fuse_loop_mt.c:142:
+^I^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#533: FILE: contrib/virtiofsd/fuse_loop_mt.c:143:
+^I^I}$

ERROR: code indent should never use tabs
#535: FILE: contrib/virtiofsd/fuse_loop_mt.c:145:
+^I^I/*$

ERROR: code indent should never use tabs
#536: FILE: contrib/virtiofsd/fuse_loop_mt.c:146:
+^I^I * This disgusting hack is needed so that zillions of threads$

ERROR: code indent should never use tabs
#537: FILE: contrib/virtiofsd/fuse_loop_mt.c:147:
+^I^I * are not created on a burst of FORGET messages$

ERROR: code indent should never use tabs
#538: FILE: contrib/virtiofsd/fuse_loop_mt.c:148:
+^I^I */$

ERROR: code indent should never use tabs
#539: FILE: contrib/virtiofsd/fuse_loop_mt.c:149:
+^I^Iif (!(w->fbuf.flags & FUSE_BUF_IS_FD)) {$

ERROR: code indent should never use tabs
#540: FILE: contrib/virtiofsd/fuse_loop_mt.c:150:
+^I^I^Istruct fuse_in_header *in = w->fbuf.mem;$

ERROR: code indent should never use tabs
#542: FILE: contrib/virtiofsd/fuse_loop_mt.c:152:
+^I^I^Iif (in->opcode == FUSE_FORGET ||$

ERROR: code indent should never use tabs
#543: FILE: contrib/virtiofsd/fuse_loop_mt.c:153:
+^I^I^I    in->opcode == FUSE_BATCH_FORGET)$

ERROR: code indent should never use tabs
#544: FILE: contrib/virtiofsd/fuse_loop_mt.c:154:
+^I^I^I^Iisforget = 1;$

ERROR: code indent should never use tabs
#545: FILE: contrib/virtiofsd/fuse_loop_mt.c:155:
+^I^I}$

ERROR: code indent should never use tabs
#547: FILE: contrib/virtiofsd/fuse_loop_mt.c:157:
+^I^Iif (!isforget)$

ERROR: braces {} are necessary for all arms of this statement
#547: FILE: contrib/virtiofsd/fuse_loop_mt.c:157:
+               if (!isforget)
[...]

ERROR: code indent should never use tabs
#548: FILE: contrib/virtiofsd/fuse_loop_mt.c:158:
+^I^I^Imt->numavail--;$

ERROR: code indent should never use tabs
#549: FILE: contrib/virtiofsd/fuse_loop_mt.c:159:
+^I^Iif (mt->numavail == 0)$

ERROR: braces {} are necessary for all arms of this statement
#549: FILE: contrib/virtiofsd/fuse_loop_mt.c:159:
+               if (mt->numavail == 0)
[...]

ERROR: code indent should never use tabs
#550: FILE: contrib/virtiofsd/fuse_loop_mt.c:160:
+^I^I^Ifuse_loop_start_thread(mt);$

ERROR: code indent should never use tabs
#551: FILE: contrib/virtiofsd/fuse_loop_mt.c:161:
+^I^Ipthread_mutex_unlock(&mt->lock);$

ERROR: code indent should never use tabs
#553: FILE: contrib/virtiofsd/fuse_loop_mt.c:163:
+^I^Ifuse_session_process_buf_int(mt->se, &w->fbuf, w->ch);$

ERROR: code indent should never use tabs
#555: FILE: contrib/virtiofsd/fuse_loop_mt.c:165:
+^I^Ipthread_mutex_lock(&mt->lock);$

ERROR: code indent should never use tabs
#556: FILE: contrib/virtiofsd/fuse_loop_mt.c:166:
+^I^Iif (!isforget)$

ERROR: braces {} are necessary for all arms of this statement
#556: FILE: contrib/virtiofsd/fuse_loop_mt.c:166:
+               if (!isforget)
[...]

ERROR: code indent should never use tabs
#557: FILE: contrib/virtiofsd/fuse_loop_mt.c:167:
+^I^I^Imt->numavail++;$

ERROR: code indent should never use tabs
#558: FILE: contrib/virtiofsd/fuse_loop_mt.c:168:
+^I^Iif (mt->numavail > mt->max_idle) {$

ERROR: code indent should never use tabs
#559: FILE: contrib/virtiofsd/fuse_loop_mt.c:169:
+^I^I^Iif (mt->exit) {$

ERROR: code indent should never use tabs
#560: FILE: contrib/virtiofsd/fuse_loop_mt.c:170:
+^I^I^I^Ipthread_mutex_unlock(&mt->lock);$

ERROR: code indent should never use tabs
#561: FILE: contrib/virtiofsd/fuse_loop_mt.c:171:
+^I^I^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#562: FILE: contrib/virtiofsd/fuse_loop_mt.c:172:
+^I^I^I}$

ERROR: code indent should never use tabs
#563: FILE: contrib/virtiofsd/fuse_loop_mt.c:173:
+^I^I^Ilist_del_worker(w);$

ERROR: code indent should never use tabs
#564: FILE: contrib/virtiofsd/fuse_loop_mt.c:174:
+^I^I^Imt->numavail--;$

ERROR: code indent should never use tabs
#565: FILE: contrib/virtiofsd/fuse_loop_mt.c:175:
+^I^I^Imt->numworker--;$

ERROR: code indent should never use tabs
#566: FILE: contrib/virtiofsd/fuse_loop_mt.c:176:
+^I^I^Ipthread_mutex_unlock(&mt->lock);$

ERROR: code indent should never use tabs
#568: FILE: contrib/virtiofsd/fuse_loop_mt.c:178:
+^I^I^Ipthread_detach(w->thread_id);$

ERROR: code indent should never use tabs
#569: FILE: contrib/virtiofsd/fuse_loop_mt.c:179:
+^I^I^Ifree(w->fbuf.mem);$

ERROR: code indent should never use tabs
#570: FILE: contrib/virtiofsd/fuse_loop_mt.c:180:
+^I^I^Ifuse_chan_put(w->ch);$

ERROR: code indent should never use tabs
#571: FILE: contrib/virtiofsd/fuse_loop_mt.c:181:
+^I^I^Ifree(w);$

ERROR: code indent should never use tabs
#572: FILE: contrib/virtiofsd/fuse_loop_mt.c:182:
+^I^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#573: FILE: contrib/virtiofsd/fuse_loop_mt.c:183:
+^I^I}$

ERROR: code indent should never use tabs
#574: FILE: contrib/virtiofsd/fuse_loop_mt.c:184:
+^I^Ipthread_mutex_unlock(&mt->lock);$

ERROR: code indent should never use tabs
#575: FILE: contrib/virtiofsd/fuse_loop_mt.c:185:
+^I}$

ERROR: code indent should never use tabs
#577: FILE: contrib/virtiofsd/fuse_loop_mt.c:187:
+^Isem_post(&mt->finish);$

ERROR: code indent should never use tabs
#579: FILE: contrib/virtiofsd/fuse_loop_mt.c:189:
+^Ireturn NULL;$

ERROR: code indent should never use tabs
#584: FILE: contrib/virtiofsd/fuse_loop_mt.c:194:
+^Isigset_t oldset;$

ERROR: code indent should never use tabs
#585: FILE: contrib/virtiofsd/fuse_loop_mt.c:195:
+^Isigset_t newset;$

ERROR: code indent should never use tabs
#586: FILE: contrib/virtiofsd/fuse_loop_mt.c:196:
+^Iint res;$

ERROR: code indent should never use tabs
#587: FILE: contrib/virtiofsd/fuse_loop_mt.c:197:
+^Ipthread_attr_t attr;$

ERROR: code indent should never use tabs
#588: FILE: contrib/virtiofsd/fuse_loop_mt.c:198:
+^Ichar *stack_size;$

ERROR: code indent should never use tabs
#590: FILE: contrib/virtiofsd/fuse_loop_mt.c:200:
+^I/* Override default stack size */$

ERROR: code indent should never use tabs
#591: FILE: contrib/virtiofsd/fuse_loop_mt.c:201:
+^Ipthread_attr_init(&attr);$

ERROR: code indent should never use tabs
#592: FILE: contrib/virtiofsd/fuse_loop_mt.c:202:
+^Istack_size = getenv(ENVNAME_THREAD_STACK);$

ERROR: code indent should never use tabs
#593: FILE: contrib/virtiofsd/fuse_loop_mt.c:203:
+^Iif (stack_size && pthread_attr_setstacksize(&attr, atoi(stack_size)))$

ERROR: braces {} are necessary for all arms of this statement
#593: FILE: contrib/virtiofsd/fuse_loop_mt.c:203:
+       if (stack_size && pthread_attr_setstacksize(&attr, atoi(stack_size)))
[...]

WARNING: line over 80 characters
#594: FILE: contrib/virtiofsd/fuse_loop_mt.c:204:
+               fuse_log(FUSE_LOG_ERR, "fuse: invalid stack size: %s\n", stack_size);

ERROR: code indent should never use tabs
#594: FILE: contrib/virtiofsd/fuse_loop_mt.c:204:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: invalid stack size: %s\n", stack_size);$

ERROR: code indent should never use tabs
#596: FILE: contrib/virtiofsd/fuse_loop_mt.c:206:
+^I/* Disallow signal reception in worker threads */$

ERROR: code indent should never use tabs
#597: FILE: contrib/virtiofsd/fuse_loop_mt.c:207:
+^Isigemptyset(&newset);$

ERROR: code indent should never use tabs
#598: FILE: contrib/virtiofsd/fuse_loop_mt.c:208:
+^Isigaddset(&newset, SIGTERM);$

ERROR: code indent should never use tabs
#599: FILE: contrib/virtiofsd/fuse_loop_mt.c:209:
+^Isigaddset(&newset, SIGINT);$

ERROR: code indent should never use tabs
#600: FILE: contrib/virtiofsd/fuse_loop_mt.c:210:
+^Isigaddset(&newset, SIGHUP);$

ERROR: code indent should never use tabs
#601: FILE: contrib/virtiofsd/fuse_loop_mt.c:211:
+^Isigaddset(&newset, SIGQUIT);$

ERROR: code indent should never use tabs
#602: FILE: contrib/virtiofsd/fuse_loop_mt.c:212:
+^Ipthread_sigmask(SIG_BLOCK, &newset, &oldset);$

ERROR: code indent should never use tabs
#603: FILE: contrib/virtiofsd/fuse_loop_mt.c:213:
+^Ires = pthread_create(thread_id, &attr, func, arg);$

ERROR: code indent should never use tabs
#604: FILE: contrib/virtiofsd/fuse_loop_mt.c:214:
+^Ipthread_sigmask(SIG_SETMASK, &oldset, NULL);$

ERROR: code indent should never use tabs
#605: FILE: contrib/virtiofsd/fuse_loop_mt.c:215:
+^Ipthread_attr_destroy(&attr);$

ERROR: code indent should never use tabs
#606: FILE: contrib/virtiofsd/fuse_loop_mt.c:216:
+^Iif (res != 0) {$

ERROR: code indent should never use tabs
#607: FILE: contrib/virtiofsd/fuse_loop_mt.c:217:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: error creating thread: %s\n",$

ERROR: code indent should never use tabs
#608: FILE: contrib/virtiofsd/fuse_loop_mt.c:218:
+^I^I^Istrerror(res));$

ERROR: code indent should never use tabs
#609: FILE: contrib/virtiofsd/fuse_loop_mt.c:219:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#610: FILE: contrib/virtiofsd/fuse_loop_mt.c:220:
+^I}$

ERROR: code indent should never use tabs
#612: FILE: contrib/virtiofsd/fuse_loop_mt.c:222:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#617: FILE: contrib/virtiofsd/fuse_loop_mt.c:227:
+^Iint res;$

ERROR: code indent should never use tabs
#618: FILE: contrib/virtiofsd/fuse_loop_mt.c:228:
+^Iint clonefd;$

ERROR: code indent should never use tabs
#619: FILE: contrib/virtiofsd/fuse_loop_mt.c:229:
+^Iuint32_t masterfd;$

ERROR: code indent should never use tabs
#620: FILE: contrib/virtiofsd/fuse_loop_mt.c:230:
+^Istruct fuse_chan *newch;$

ERROR: code indent should never use tabs
#621: FILE: contrib/virtiofsd/fuse_loop_mt.c:231:
+^Iconst char *devname = "/dev/fuse";$

ERROR: code indent should never use tabs
#626: FILE: contrib/virtiofsd/fuse_loop_mt.c:236:
+^Iclonefd = open(devname, O_RDWR | O_CLOEXEC);$

ERROR: code indent should never use tabs
#627: FILE: contrib/virtiofsd/fuse_loop_mt.c:237:
+^Iif (clonefd == -1) {$

ERROR: code indent should never use tabs
#628: FILE: contrib/virtiofsd/fuse_loop_mt.c:238:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: failed to open %s: %s\n", devname,$

ERROR: code indent should never use tabs
#629: FILE: contrib/virtiofsd/fuse_loop_mt.c:239:
+^I^I^Istrerror(errno));$

ERROR: code indent should never use tabs
#630: FILE: contrib/virtiofsd/fuse_loop_mt.c:240:
+^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#631: FILE: contrib/virtiofsd/fuse_loop_mt.c:241:
+^I}$

ERROR: code indent should never use tabs
#632: FILE: contrib/virtiofsd/fuse_loop_mt.c:242:
+^Ifcntl(clonefd, F_SETFD, FD_CLOEXEC);$

ERROR: code indent should never use tabs
#634: FILE: contrib/virtiofsd/fuse_loop_mt.c:244:
+^Imasterfd = mt->se->fd;$

ERROR: code indent should never use tabs
#635: FILE: contrib/virtiofsd/fuse_loop_mt.c:245:
+^Ires = ioctl(clonefd, FUSE_DEV_IOC_CLONE, &masterfd);$

ERROR: code indent should never use tabs
#636: FILE: contrib/virtiofsd/fuse_loop_mt.c:246:
+^Iif (res == -1) {$

ERROR: code indent should never use tabs
#637: FILE: contrib/virtiofsd/fuse_loop_mt.c:247:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: failed to clone device fd: %s\n",$

ERROR: code indent should never use tabs
#638: FILE: contrib/virtiofsd/fuse_loop_mt.c:248:
+^I^I^Istrerror(errno));$

ERROR: code indent should never use tabs
#639: FILE: contrib/virtiofsd/fuse_loop_mt.c:249:
+^I^Iclose(clonefd);$

ERROR: code indent should never use tabs
#640: FILE: contrib/virtiofsd/fuse_loop_mt.c:250:
+^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#641: FILE: contrib/virtiofsd/fuse_loop_mt.c:251:
+^I}$

ERROR: code indent should never use tabs
#642: FILE: contrib/virtiofsd/fuse_loop_mt.c:252:
+^Inewch = fuse_chan_new(clonefd);$

ERROR: code indent should never use tabs
#643: FILE: contrib/virtiofsd/fuse_loop_mt.c:253:
+^Iif (newch == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#643: FILE: contrib/virtiofsd/fuse_loop_mt.c:253:
+       if (newch == NULL)
[...]

ERROR: code indent should never use tabs
#644: FILE: contrib/virtiofsd/fuse_loop_mt.c:254:
+^I^Iclose(clonefd);$

ERROR: code indent should never use tabs
#646: FILE: contrib/virtiofsd/fuse_loop_mt.c:256:
+^Ireturn newch;$

ERROR: code indent should never use tabs
#651: FILE: contrib/virtiofsd/fuse_loop_mt.c:261:
+^Iint res;$

ERROR: code indent should never use tabs
#653: FILE: contrib/virtiofsd/fuse_loop_mt.c:263:
+^Istruct fuse_worker *w = malloc(sizeof(struct fuse_worker));$

ERROR: code indent should never use tabs
#654: FILE: contrib/virtiofsd/fuse_loop_mt.c:264:
+^Iif (!w) {$

WARNING: line over 80 characters
#655: FILE: contrib/virtiofsd/fuse_loop_mt.c:265:
+               fuse_log(FUSE_LOG_ERR, "fuse: failed to allocate worker structure\n");

ERROR: code indent should never use tabs
#655: FILE: contrib/virtiofsd/fuse_loop_mt.c:265:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: failed to allocate worker structure\n");$

ERROR: code indent should never use tabs
#656: FILE: contrib/virtiofsd/fuse_loop_mt.c:266:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#657: FILE: contrib/virtiofsd/fuse_loop_mt.c:267:
+^I}$

ERROR: code indent should never use tabs
#658: FILE: contrib/virtiofsd/fuse_loop_mt.c:268:
+^Imemset(w, 0, sizeof(struct fuse_worker));$

ERROR: code indent should never use tabs
#659: FILE: contrib/virtiofsd/fuse_loop_mt.c:269:
+^Iw->fbuf.mem = NULL;$

ERROR: code indent should never use tabs
#660: FILE: contrib/virtiofsd/fuse_loop_mt.c:270:
+^Iw->mt = mt;$

ERROR: code indent should never use tabs
#662: FILE: contrib/virtiofsd/fuse_loop_mt.c:272:
+^Iw->ch = NULL;$

ERROR: code indent should never use tabs
#663: FILE: contrib/virtiofsd/fuse_loop_mt.c:273:
+^Iif (mt->clone_fd) {$

ERROR: code indent should never use tabs
#664: FILE: contrib/virtiofsd/fuse_loop_mt.c:274:
+^I^Iw->ch = fuse_clone_chan(mt);$

ERROR: code indent should never use tabs
#665: FILE: contrib/virtiofsd/fuse_loop_mt.c:275:
+^I^Iif(!w->ch) {$

ERROR: space required before the open parenthesis '('
#665: FILE: contrib/virtiofsd/fuse_loop_mt.c:275:
+               if(!w->ch) {

ERROR: code indent should never use tabs
#666: FILE: contrib/virtiofsd/fuse_loop_mt.c:276:
+^I^I^I/* Don't attempt this again */$

ERROR: code indent should never use tabs
#667: FILE: contrib/virtiofsd/fuse_loop_mt.c:277:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "fuse: trying to continue "$

ERROR: code indent should never use tabs
#668: FILE: contrib/virtiofsd/fuse_loop_mt.c:278:
+^I^I^I^I"without -o clone_fd.\n");$

ERROR: code indent should never use tabs
#669: FILE: contrib/virtiofsd/fuse_loop_mt.c:279:
+^I^I^Imt->clone_fd = 0;$

ERROR: code indent should never use tabs
#670: FILE: contrib/virtiofsd/fuse_loop_mt.c:280:
+^I^I}$

ERROR: code indent should never use tabs
#671: FILE: contrib/virtiofsd/fuse_loop_mt.c:281:
+^I}$

ERROR: code indent should never use tabs
#673: FILE: contrib/virtiofsd/fuse_loop_mt.c:283:
+^Ires = fuse_start_thread(&w->thread_id, fuse_do_work, w);$

ERROR: code indent should never use tabs
#674: FILE: contrib/virtiofsd/fuse_loop_mt.c:284:
+^Iif (res == -1) {$

ERROR: code indent should never use tabs
#675: FILE: contrib/virtiofsd/fuse_loop_mt.c:285:
+^I^Ifuse_chan_put(w->ch);$

ERROR: code indent should never use tabs
#676: FILE: contrib/virtiofsd/fuse_loop_mt.c:286:
+^I^Ifree(w);$

ERROR: code indent should never use tabs
#677: FILE: contrib/virtiofsd/fuse_loop_mt.c:287:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#678: FILE: contrib/virtiofsd/fuse_loop_mt.c:288:
+^I}$

ERROR: code indent should never use tabs
#679: FILE: contrib/virtiofsd/fuse_loop_mt.c:289:
+^Ilist_add_worker(w, &mt->main);$

ERROR: code indent should never use tabs
#680: FILE: contrib/virtiofsd/fuse_loop_mt.c:290:
+^Imt->numavail ++;$

ERROR: space prohibited before that '++' (ctx:WxO)
#680: FILE: contrib/virtiofsd/fuse_loop_mt.c:290:
+       mt->numavail ++;
                     ^

ERROR: code indent should never use tabs
#681: FILE: contrib/virtiofsd/fuse_loop_mt.c:291:
+^Imt->numworker ++;$

ERROR: space prohibited before that '++' (ctx:WxO)
#681: FILE: contrib/virtiofsd/fuse_loop_mt.c:291:
+       mt->numworker ++;
                      ^

ERROR: code indent should never use tabs
#683: FILE: contrib/virtiofsd/fuse_loop_mt.c:293:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#688: FILE: contrib/virtiofsd/fuse_loop_mt.c:298:
+^Ipthread_join(w->thread_id, NULL);$

ERROR: code indent should never use tabs
#689: FILE: contrib/virtiofsd/fuse_loop_mt.c:299:
+^Ipthread_mutex_lock(&mt->lock);$

ERROR: code indent should never use tabs
#690: FILE: contrib/virtiofsd/fuse_loop_mt.c:300:
+^Ilist_del_worker(w);$

ERROR: code indent should never use tabs
#691: FILE: contrib/virtiofsd/fuse_loop_mt.c:301:
+^Ipthread_mutex_unlock(&mt->lock);$

ERROR: code indent should never use tabs
#692: FILE: contrib/virtiofsd/fuse_loop_mt.c:302:
+^Ifree(w->fbuf.mem);$

ERROR: code indent should never use tabs
#693: FILE: contrib/virtiofsd/fuse_loop_mt.c:303:
+^Ifuse_chan_put(w->ch);$

ERROR: code indent should never use tabs
#694: FILE: contrib/virtiofsd/fuse_loop_mt.c:304:
+^Ifree(w);$

WARNING: line over 80 characters
#698: FILE: contrib/virtiofsd/fuse_loop_mt.c:308:
+int fuse_session_loop_mt_32(struct fuse_session *se, struct fuse_loop_config *config)

ERROR: code indent should never use tabs
#700: FILE: contrib/virtiofsd/fuse_loop_mt.c:310:
+^Iint err;$

ERROR: code indent should never use tabs
#701: FILE: contrib/virtiofsd/fuse_loop_mt.c:311:
+^Istruct fuse_mt mt;$

ERROR: code indent should never use tabs
#702: FILE: contrib/virtiofsd/fuse_loop_mt.c:312:
+^Istruct fuse_worker *w;$

ERROR: code indent should never use tabs
#704: FILE: contrib/virtiofsd/fuse_loop_mt.c:314:
+^Imemset(&mt, 0, sizeof(struct fuse_mt));$

ERROR: code indent should never use tabs
#705: FILE: contrib/virtiofsd/fuse_loop_mt.c:315:
+^Imt.se = se;$

ERROR: code indent should never use tabs
#706: FILE: contrib/virtiofsd/fuse_loop_mt.c:316:
+^Imt.clone_fd = config->clone_fd;$

ERROR: code indent should never use tabs
#707: FILE: contrib/virtiofsd/fuse_loop_mt.c:317:
+^Imt.error = 0;$

ERROR: code indent should never use tabs
#708: FILE: contrib/virtiofsd/fuse_loop_mt.c:318:
+^Imt.numworker = 0;$

ERROR: code indent should never use tabs
#709: FILE: contrib/virtiofsd/fuse_loop_mt.c:319:
+^Imt.numavail = 0;$

ERROR: code indent should never use tabs
#710: FILE: contrib/virtiofsd/fuse_loop_mt.c:320:
+^Imt.max_idle = config->max_idle_threads;$

ERROR: code indent should never use tabs
#711: FILE: contrib/virtiofsd/fuse_loop_mt.c:321:
+^Imt.main.thread_id = pthread_self();$

ERROR: code indent should never use tabs
#712: FILE: contrib/virtiofsd/fuse_loop_mt.c:322:
+^Imt.main.prev = mt.main.next = &mt.main;$

ERROR: code indent should never use tabs
#713: FILE: contrib/virtiofsd/fuse_loop_mt.c:323:
+^Isem_init(&mt.finish, 0, 0);$

ERROR: code indent should never use tabs
#714: FILE: contrib/virtiofsd/fuse_loop_mt.c:324:
+^Ifuse_mutex_init(&mt.lock);$

ERROR: code indent should never use tabs
#716: FILE: contrib/virtiofsd/fuse_loop_mt.c:326:
+^Ipthread_mutex_lock(&mt.lock);$

ERROR: code indent should never use tabs
#717: FILE: contrib/virtiofsd/fuse_loop_mt.c:327:
+^Ierr = fuse_loop_start_thread(&mt);$

ERROR: code indent should never use tabs
#718: FILE: contrib/virtiofsd/fuse_loop_mt.c:328:
+^Ipthread_mutex_unlock(&mt.lock);$

ERROR: code indent should never use tabs
#719: FILE: contrib/virtiofsd/fuse_loop_mt.c:329:
+^Iif (!err) {$

ERROR: code indent should never use tabs
#720: FILE: contrib/virtiofsd/fuse_loop_mt.c:330:
+^I^I/* sem_wait() is interruptible */$

ERROR: code indent should never use tabs
#721: FILE: contrib/virtiofsd/fuse_loop_mt.c:331:
+^I^Iwhile (!fuse_session_exited(se))$

ERROR: braces {} are necessary for all arms of this statement
#721: FILE: contrib/virtiofsd/fuse_loop_mt.c:331:
+               while (!fuse_session_exited(se))
[...]

ERROR: code indent should never use tabs
#722: FILE: contrib/virtiofsd/fuse_loop_mt.c:332:
+^I^I^Isem_wait(&mt.finish);$

ERROR: code indent should never use tabs
#724: FILE: contrib/virtiofsd/fuse_loop_mt.c:334:
+^I^Ipthread_mutex_lock(&mt.lock);$

ERROR: code indent should never use tabs
#725: FILE: contrib/virtiofsd/fuse_loop_mt.c:335:
+^I^Ifor (w = mt.main.next; w != &mt.main; w = w->next)$

ERROR: braces {} are necessary for all arms of this statement
#725: FILE: contrib/virtiofsd/fuse_loop_mt.c:335:
+               for (w = mt.main.next; w != &mt.main; w = w->next)
[...]

ERROR: code indent should never use tabs
#726: FILE: contrib/virtiofsd/fuse_loop_mt.c:336:
+^I^I^Ipthread_cancel(w->thread_id);$

ERROR: code indent should never use tabs
#727: FILE: contrib/virtiofsd/fuse_loop_mt.c:337:
+^I^Imt.exit = 1;$

ERROR: code indent should never use tabs
#728: FILE: contrib/virtiofsd/fuse_loop_mt.c:338:
+^I^Ipthread_mutex_unlock(&mt.lock);$

ERROR: code indent should never use tabs
#730: FILE: contrib/virtiofsd/fuse_loop_mt.c:340:
+^I^Iwhile (mt.main.next != &mt.main)$

ERROR: braces {} are necessary for all arms of this statement
#730: FILE: contrib/virtiofsd/fuse_loop_mt.c:340:
+               while (mt.main.next != &mt.main)
[...]

ERROR: code indent should never use tabs
#731: FILE: contrib/virtiofsd/fuse_loop_mt.c:341:
+^I^I^Ifuse_join_worker(&mt, mt.main.next);$

ERROR: code indent should never use tabs
#733: FILE: contrib/virtiofsd/fuse_loop_mt.c:343:
+^I^Ierr = mt.error;$

ERROR: code indent should never use tabs
#734: FILE: contrib/virtiofsd/fuse_loop_mt.c:344:
+^I}$

ERROR: code indent should never use tabs
#736: FILE: contrib/virtiofsd/fuse_loop_mt.c:346:
+^Ipthread_mutex_destroy(&mt.lock);$

ERROR: code indent should never use tabs
#737: FILE: contrib/virtiofsd/fuse_loop_mt.c:347:
+^Isem_destroy(&mt.finish);$

ERROR: code indent should never use tabs
#738: FILE: contrib/virtiofsd/fuse_loop_mt.c:348:
+^Iif(se->error != 0)$

ERROR: space required before the open parenthesis '('
#738: FILE: contrib/virtiofsd/fuse_loop_mt.c:348:
+       if(se->error != 0)

ERROR: braces {} are necessary for all arms of this statement
#738: FILE: contrib/virtiofsd/fuse_loop_mt.c:348:
+       if(se->error != 0)
[...]

ERROR: code indent should never use tabs
#739: FILE: contrib/virtiofsd/fuse_loop_mt.c:349:
+^I^Ierr = se->error;$

ERROR: code indent should never use tabs
#740: FILE: contrib/virtiofsd/fuse_loop_mt.c:350:
+^Ifuse_session_reset(se);$

ERROR: code indent should never use tabs
#741: FILE: contrib/virtiofsd/fuse_loop_mt.c:351:
+^Ireturn err;$

ERROR: externs should be avoided in .c files
#744: FILE: contrib/virtiofsd/fuse_loop_mt.c:354:
+int fuse_session_loop_mt_31(struct fuse_session *se, int clone_fd);

ERROR: code indent should never use tabs
#748: FILE: contrib/virtiofsd/fuse_loop_mt.c:358:
+^Istruct fuse_loop_config config;$

ERROR: code indent should never use tabs
#749: FILE: contrib/virtiofsd/fuse_loop_mt.c:359:
+^Iconfig.clone_fd = clone_fd;$

ERROR: code indent should never use tabs
#750: FILE: contrib/virtiofsd/fuse_loop_mt.c:360:
+^Iconfig.max_idle_threads = 10;$

ERROR: code indent should never use tabs
#751: FILE: contrib/virtiofsd/fuse_loop_mt.c:361:
+^Ireturn fuse_session_loop_mt_32(se, &config);$

WARNING: Block comments use * on subsequent lines
#760: FILE: contrib/virtiofsd/fuse_opt.c:2:
+/*
+  FUSE: Filesystem in Userspace

ERROR: code indent should never use tabs
#781: FILE: contrib/virtiofsd/fuse_opt.c:23:
+^Ivoid *data;$

ERROR: code indent should never use tabs
#782: FILE: contrib/virtiofsd/fuse_opt.c:24:
+^Iconst struct fuse_opt *opt;$

ERROR: code indent should never use tabs
#783: FILE: contrib/virtiofsd/fuse_opt.c:25:
+^Ifuse_opt_proc_t proc;$

ERROR: code indent should never use tabs
#784: FILE: contrib/virtiofsd/fuse_opt.c:26:
+^Iint argctr;$

ERROR: code indent should never use tabs
#785: FILE: contrib/virtiofsd/fuse_opt.c:27:
+^Iint argc;$

ERROR: code indent should never use tabs
#786: FILE: contrib/virtiofsd/fuse_opt.c:28:
+^Ichar **argv;$

ERROR: code indent should never use tabs
#787: FILE: contrib/virtiofsd/fuse_opt.c:29:
+^Istruct fuse_args outargs;$

ERROR: code indent should never use tabs
#788: FILE: contrib/virtiofsd/fuse_opt.c:30:
+^Ichar *opts;$

ERROR: code indent should never use tabs
#789: FILE: contrib/virtiofsd/fuse_opt.c:31:
+^Iint nonopt;$

ERROR: code indent should never use tabs
#794: FILE: contrib/virtiofsd/fuse_opt.c:36:
+^Iif (args) {$

ERROR: code indent should never use tabs
#795: FILE: contrib/virtiofsd/fuse_opt.c:37:
+^I^Iif (args->argv && args->allocated) {$

ERROR: code indent should never use tabs
#796: FILE: contrib/virtiofsd/fuse_opt.c:38:
+^I^I^Iint i;$

ERROR: code indent should never use tabs
#797: FILE: contrib/virtiofsd/fuse_opt.c:39:
+^I^I^Ifor (i = 0; i < args->argc; i++)$

ERROR: braces {} are necessary for all arms of this statement
#797: FILE: contrib/virtiofsd/fuse_opt.c:39:
+                       for (i = 0; i < args->argc; i++)
[...]

ERROR: code indent should never use tabs
#798: FILE: contrib/virtiofsd/fuse_opt.c:40:
+^I^I^I^Ifree(args->argv[i]);$

ERROR: code indent should never use tabs
#799: FILE: contrib/virtiofsd/fuse_opt.c:41:
+^I^I^Ifree(args->argv);$

ERROR: code indent should never use tabs
#800: FILE: contrib/virtiofsd/fuse_opt.c:42:
+^I^I}$

ERROR: code indent should never use tabs
#801: FILE: contrib/virtiofsd/fuse_opt.c:43:
+^I^Iargs->argc = 0;$

ERROR: code indent should never use tabs
#802: FILE: contrib/virtiofsd/fuse_opt.c:44:
+^I^Iargs->argv = NULL;$

ERROR: code indent should never use tabs
#803: FILE: contrib/virtiofsd/fuse_opt.c:45:
+^I^Iargs->allocated = 0;$

ERROR: code indent should never use tabs
#804: FILE: contrib/virtiofsd/fuse_opt.c:46:
+^I}$

ERROR: code indent should never use tabs
#809: FILE: contrib/virtiofsd/fuse_opt.c:51:
+^Ifuse_log(FUSE_LOG_ERR, "fuse: memory allocation failed\n");$

ERROR: code indent should never use tabs
#810: FILE: contrib/virtiofsd/fuse_opt.c:52:
+^Ireturn -1;$

ERROR: code indent should never use tabs
#815: FILE: contrib/virtiofsd/fuse_opt.c:57:
+^Ichar **newargv;$

ERROR: code indent should never use tabs
#816: FILE: contrib/virtiofsd/fuse_opt.c:58:
+^Ichar *newarg;$

ERROR: code indent should never use tabs
#818: FILE: contrib/virtiofsd/fuse_opt.c:60:
+^Iassert(!args->argv || args->allocated);$

ERROR: code indent should never use tabs
#820: FILE: contrib/virtiofsd/fuse_opt.c:62:
+^Inewarg = strdup(arg);$

ERROR: code indent should never use tabs
#821: FILE: contrib/virtiofsd/fuse_opt.c:63:
+^Iif (!newarg)$

ERROR: braces {} are necessary for all arms of this statement
#821: FILE: contrib/virtiofsd/fuse_opt.c:63:
+       if (!newarg)
[...]

ERROR: code indent should never use tabs
#822: FILE: contrib/virtiofsd/fuse_opt.c:64:
+^I^Ireturn alloc_failed();$

ERROR: code indent should never use tabs
#824: FILE: contrib/virtiofsd/fuse_opt.c:66:
+^Inewargv = realloc(args->argv, (args->argc + 2) * sizeof(char *));$

ERROR: code indent should never use tabs
#825: FILE: contrib/virtiofsd/fuse_opt.c:67:
+^Iif (!newargv) {$

ERROR: code indent should never use tabs
#826: FILE: contrib/virtiofsd/fuse_opt.c:68:
+^I^Ifree(newarg);$

ERROR: code indent should never use tabs
#827: FILE: contrib/virtiofsd/fuse_opt.c:69:
+^I^Ireturn alloc_failed();$

ERROR: code indent should never use tabs
#828: FILE: contrib/virtiofsd/fuse_opt.c:70:
+^I}$

ERROR: code indent should never use tabs
#830: FILE: contrib/virtiofsd/fuse_opt.c:72:
+^Iargs->argv = newargv;$

ERROR: code indent should never use tabs
#831: FILE: contrib/virtiofsd/fuse_opt.c:73:
+^Iargs->allocated = 1;$

ERROR: code indent should never use tabs
#832: FILE: contrib/virtiofsd/fuse_opt.c:74:
+^Iargs->argv[args->argc++] = newarg;$

ERROR: code indent should never use tabs
#833: FILE: contrib/virtiofsd/fuse_opt.c:75:
+^Iargs->argv[args->argc] = NULL;$

ERROR: code indent should never use tabs
#834: FILE: contrib/virtiofsd/fuse_opt.c:76:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#838: FILE: contrib/virtiofsd/fuse_opt.c:80:
+^I^I^I^I      const char *arg)$

ERROR: code indent should never use tabs
#840: FILE: contrib/virtiofsd/fuse_opt.c:82:
+^Iassert(pos <= args->argc);$

ERROR: code indent should never use tabs
#841: FILE: contrib/virtiofsd/fuse_opt.c:83:
+^Iif (fuse_opt_add_arg(args, arg) == -1)$

ERROR: braces {} are necessary for all arms of this statement
#841: FILE: contrib/virtiofsd/fuse_opt.c:83:
+       if (fuse_opt_add_arg(args, arg) == -1)
[...]

ERROR: code indent should never use tabs
#842: FILE: contrib/virtiofsd/fuse_opt.c:84:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#844: FILE: contrib/virtiofsd/fuse_opt.c:86:
+^Iif (pos != args->argc - 1) {$

ERROR: code indent should never use tabs
#845: FILE: contrib/virtiofsd/fuse_opt.c:87:
+^I^Ichar *newarg = args->argv[args->argc - 1];$

ERROR: code indent should never use tabs
#846: FILE: contrib/virtiofsd/fuse_opt.c:88:
+^I^Imemmove(&args->argv[pos + 1], &args->argv[pos],$

ERROR: code indent should never use tabs
#847: FILE: contrib/virtiofsd/fuse_opt.c:89:
+^I^I^Isizeof(char *) * (args->argc - pos - 1));$

ERROR: code indent should never use tabs
#848: FILE: contrib/virtiofsd/fuse_opt.c:90:
+^I^Iargs->argv[pos] = newarg;$

ERROR: code indent should never use tabs
#849: FILE: contrib/virtiofsd/fuse_opt.c:91:
+^I}$

ERROR: code indent should never use tabs
#850: FILE: contrib/virtiofsd/fuse_opt.c:92:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#855: FILE: contrib/virtiofsd/fuse_opt.c:97:
+^Ireturn fuse_opt_insert_arg_common(args, pos, arg);$

ERROR: code indent should never use tabs
#860: FILE: contrib/virtiofsd/fuse_opt.c:102:
+^Iif (ctx->argctr + 1 >= ctx->argc) {$

WARNING: line over 80 characters
#861: FILE: contrib/virtiofsd/fuse_opt.c:103:
+               fuse_log(FUSE_LOG_ERR, "fuse: missing argument after `%s'\n", opt);

ERROR: code indent should never use tabs
#861: FILE: contrib/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
#862: FILE: contrib/virtiofsd/fuse_opt.c:104:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#863: FILE: contrib/virtiofsd/fuse_opt.c:105:
+^I}$

ERROR: code indent should never use tabs
#864: FILE: contrib/virtiofsd/fuse_opt.c:106:
+^Ictx->argctr++;$

ERROR: code indent should never use tabs
#865: FILE: contrib/virtiofsd/fuse_opt.c:107:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#870: FILE: contrib/virtiofsd/fuse_opt.c:112:
+^Ireturn fuse_opt_add_arg(&ctx->outargs, arg);$

ERROR: code indent should never use tabs
#875: FILE: contrib/virtiofsd/fuse_opt.c:117:
+^Iunsigned oldlen = *opts ? strlen(*opts) : 0;$

ERROR: code indent should never use tabs
#876: FILE: contrib/virtiofsd/fuse_opt.c:118:
+^Ichar *d = realloc(*opts, oldlen + 1 + strlen(opt) * 2 + 1);$

ERROR: code indent should never use tabs
#878: FILE: contrib/virtiofsd/fuse_opt.c:120:
+^Iif (!d)$

ERROR: braces {} are necessary for all arms of this statement
#878: FILE: contrib/virtiofsd/fuse_opt.c:120:
+       if (!d)
[...]

ERROR: code indent should never use tabs
#879: FILE: contrib/virtiofsd/fuse_opt.c:121:
+^I^Ireturn alloc_failed();$

ERROR: code indent should never use tabs
#881: FILE: contrib/virtiofsd/fuse_opt.c:123:
+^I*opts = d;$

ERROR: code indent should never use tabs
#882: FILE: contrib/virtiofsd/fuse_opt.c:124:
+^Iif (oldlen) {$

ERROR: code indent should never use tabs
#883: FILE: contrib/virtiofsd/fuse_opt.c:125:
+^I^Id += oldlen;$

ERROR: code indent should never use tabs
#884: FILE: contrib/virtiofsd/fuse_opt.c:126:
+^I^I*d++ = ',';$

ERROR: code indent should never use tabs
#885: FILE: contrib/virtiofsd/fuse_opt.c:127:
+^I}$

ERROR: code indent should never use tabs
#887: FILE: contrib/virtiofsd/fuse_opt.c:129:
+^Ifor (; *opt; opt++) {$

ERROR: code indent should never use tabs
#888: FILE: contrib/virtiofsd/fuse_opt.c:130:
+^I^Iif (esc && (*opt == ',' || *opt == '\\'))$

ERROR: braces {} are necessary for all arms of this statement
#888: FILE: contrib/virtiofsd/fuse_opt.c:130:
+               if (esc && (*opt == ',' || *opt == '\\'))
[...]

ERROR: code indent should never use tabs
#889: FILE: contrib/virtiofsd/fuse_opt.c:131:
+^I^I^I*d++ = '\\';$

ERROR: code indent should never use tabs
#890: FILE: contrib/virtiofsd/fuse_opt.c:132:
+^I^I*d++ = *opt;$

ERROR: code indent should never use tabs
#891: FILE: contrib/virtiofsd/fuse_opt.c:133:
+^I}$

ERROR: code indent should never use tabs
#892: FILE: contrib/virtiofsd/fuse_opt.c:134:
+^I*d = '\0';$

ERROR: code indent should never use tabs
#894: FILE: contrib/virtiofsd/fuse_opt.c:136:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#899: FILE: contrib/virtiofsd/fuse_opt.c:141:
+^Ireturn add_opt_common(opts, opt, 0);$

ERROR: code indent should never use tabs
#904: FILE: contrib/virtiofsd/fuse_opt.c:146:
+^Ireturn add_opt_common(opts, opt, 1);$

ERROR: code indent should never use tabs
#909: FILE: contrib/virtiofsd/fuse_opt.c:151:
+^Ireturn add_opt_common(&ctx->opts, opt, 1);$

ERROR: code indent should never use tabs
#913: FILE: contrib/virtiofsd/fuse_opt.c:155:
+^I^I     int iso)$

ERROR: code indent should never use tabs
#915: FILE: contrib/virtiofsd/fuse_opt.c:157:
+^Iif (key == FUSE_OPT_KEY_DISCARD)$

ERROR: braces {} are necessary for all arms of this statement
#915: FILE: contrib/virtiofsd/fuse_opt.c:157:
+       if (key == FUSE_OPT_KEY_DISCARD)
[...]

ERROR: code indent should never use tabs
#916: FILE: contrib/virtiofsd/fuse_opt.c:158:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#918: FILE: contrib/virtiofsd/fuse_opt.c:160:
+^Iif (key != FUSE_OPT_KEY_KEEP && ctx->proc) {$

ERROR: code indent should never use tabs
#919: FILE: contrib/virtiofsd/fuse_opt.c:161:
+^I^Iint res = ctx->proc(ctx->data, arg, key, &ctx->outargs);$

ERROR: code indent should never use tabs
#920: FILE: contrib/virtiofsd/fuse_opt.c:162:
+^I^Iif (res == -1 || !res)$

ERROR: braces {} are necessary for all arms of this statement
#920: FILE: contrib/virtiofsd/fuse_opt.c:162:
+               if (res == -1 || !res)
[...]

ERROR: code indent should never use tabs
#921: FILE: contrib/virtiofsd/fuse_opt.c:163:
+^I^I^Ireturn res;$

ERROR: code indent should never use tabs
#922: FILE: contrib/virtiofsd/fuse_opt.c:164:
+^I}$

ERROR: code indent should never use tabs
#923: FILE: contrib/virtiofsd/fuse_opt.c:165:
+^Iif (iso)$

ERROR: braces {} are necessary for all arms of this statement
#923: FILE: contrib/virtiofsd/fuse_opt.c:165:
+       if (iso)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#924: FILE: contrib/virtiofsd/fuse_opt.c:166:
+^I^Ireturn add_opt(ctx, arg);$

ERROR: code indent should never use tabs
#925: FILE: contrib/virtiofsd/fuse_opt.c:167:
+^Ielse$

ERROR: code indent should never use tabs
#926: FILE: contrib/virtiofsd/fuse_opt.c:168:
+^I^Ireturn add_arg(ctx, arg);$

ERROR: code indent should never use tabs
#931: FILE: contrib/virtiofsd/fuse_opt.c:173:
+^Iint arglen = strlen(arg);$

ERROR: code indent should never use tabs
#932: FILE: contrib/virtiofsd/fuse_opt.c:174:
+^Iconst char *sep = strchr(t, '=');$

ERROR: code indent should never use tabs
#933: FILE: contrib/virtiofsd/fuse_opt.c:175:
+^Isep = sep ? sep : strchr(t, ' ');$

ERROR: code indent should never use tabs
#934: FILE: contrib/virtiofsd/fuse_opt.c:176:
+^Iif (sep && (!sep[1] || sep[1] == '%')) {$

ERROR: code indent should never use tabs
#935: FILE: contrib/virtiofsd/fuse_opt.c:177:
+^I^Iint tlen = sep - t;$

ERROR: code indent should never use tabs
#936: FILE: contrib/virtiofsd/fuse_opt.c:178:
+^I^Iif (sep[0] == '=')$

ERROR: braces {} are necessary for all arms of this statement
#936: FILE: contrib/virtiofsd/fuse_opt.c:178:
+               if (sep[0] == '=')
[...]

ERROR: code indent should never use tabs
#937: FILE: contrib/virtiofsd/fuse_opt.c:179:
+^I^I^Itlen ++;$

ERROR: space prohibited before that '++' (ctx:WxO)
#937: FILE: contrib/virtiofsd/fuse_opt.c:179:
+                       tlen ++;
                             ^

ERROR: code indent should never use tabs
#938: FILE: contrib/virtiofsd/fuse_opt.c:180:
+^I^Iif (arglen >= tlen && strncmp(arg, t, tlen) == 0) {$

ERROR: code indent should never use tabs
#939: FILE: contrib/virtiofsd/fuse_opt.c:181:
+^I^I^I*sepp = sep - t;$

ERROR: code indent should never use tabs
#940: FILE: contrib/virtiofsd/fuse_opt.c:182:
+^I^I^Ireturn 1;$

ERROR: code indent should never use tabs
#941: FILE: contrib/virtiofsd/fuse_opt.c:183:
+^I^I}$

ERROR: code indent should never use tabs
#942: FILE: contrib/virtiofsd/fuse_opt.c:184:
+^I}$

ERROR: code indent should never use tabs
#943: FILE: contrib/virtiofsd/fuse_opt.c:185:
+^Iif (strcmp(t, arg) == 0) {$

ERROR: code indent should never use tabs
#944: FILE: contrib/virtiofsd/fuse_opt.c:186:
+^I^I*sepp = 0;$

ERROR: code indent should never use tabs
#945: FILE: contrib/virtiofsd/fuse_opt.c:187:
+^I^Ireturn 1;$

ERROR: code indent should never use tabs
#946: FILE: contrib/virtiofsd/fuse_opt.c:188:
+^I}$

ERROR: code indent should never use tabs
#947: FILE: contrib/virtiofsd/fuse_opt.c:189:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#951: FILE: contrib/virtiofsd/fuse_opt.c:193:
+^I^I^I^I       const char *arg, unsigned *sepp)$

ERROR: code indent should never use tabs
#953: FILE: contrib/virtiofsd/fuse_opt.c:195:
+^Ifor (; opt && opt->templ; opt++)$

ERROR: code indent should never use tabs
#954: FILE: contrib/virtiofsd/fuse_opt.c:196:
+^I^Iif (match_template(opt->templ, arg, sepp))$

ERROR: braces {} are necessary for all arms of this statement
#954: FILE: contrib/virtiofsd/fuse_opt.c:196:
+               if (match_template(opt->templ, arg, sepp))
[...]

ERROR: code indent should never use tabs
#955: FILE: contrib/virtiofsd/fuse_opt.c:197:
+^I^I^Ireturn opt;$

ERROR: code indent should never use tabs
#956: FILE: contrib/virtiofsd/fuse_opt.c:198:
+^Ireturn NULL;$

ERROR: code indent should never use tabs
#961: FILE: contrib/virtiofsd/fuse_opt.c:203:
+^Iunsigned dummy;$

ERROR: code indent should never use tabs
#962: FILE: contrib/virtiofsd/fuse_opt.c:204:
+^Ireturn find_opt(opts, opt, &dummy) ? 1 : 0;$

ERROR: code indent should never use tabs
#966: FILE: contrib/virtiofsd/fuse_opt.c:208:
+^I^I^I     const char *arg)$

ERROR: code indent should never use tabs
#968: FILE: contrib/virtiofsd/fuse_opt.c:210:
+^Iassert(format[0] == '%');$

ERROR: code indent should never use tabs
#969: FILE: contrib/virtiofsd/fuse_opt.c:211:
+^Iif (format[1] == 's') {$

ERROR: code indent should never use tabs
#970: FILE: contrib/virtiofsd/fuse_opt.c:212:
+^I^Ichar **s = var;$

ERROR: code indent should never use tabs
#971: FILE: contrib/virtiofsd/fuse_opt.c:213:
+^I^Ichar *copy = strdup(param);$

ERROR: code indent should never use tabs
#972: FILE: contrib/virtiofsd/fuse_opt.c:214:
+^I^Iif (!copy)$

ERROR: braces {} are necessary for all arms of this statement
#972: FILE: contrib/virtiofsd/fuse_opt.c:214:
+               if (!copy)
[...]

ERROR: code indent should never use tabs
#973: FILE: contrib/virtiofsd/fuse_opt.c:215:
+^I^I^Ireturn alloc_failed();$

ERROR: code indent should never use tabs
#975: FILE: contrib/virtiofsd/fuse_opt.c:217:
+^I^Ifree(*s);$

ERROR: code indent should never use tabs
#976: FILE: contrib/virtiofsd/fuse_opt.c:218:
+^I^I*s = copy;$

ERROR: code indent should never use tabs
#977: FILE: contrib/virtiofsd/fuse_opt.c:219:
+^I} else {$

ERROR: code indent should never use tabs
#978: FILE: contrib/virtiofsd/fuse_opt.c:220:
+^I^Iif (sscanf(param, format, var) != 1) {$

ERROR: line over 90 characters
#979: FILE: contrib/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
#979: FILE: contrib/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
#980: FILE: contrib/virtiofsd/fuse_opt.c:222:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#981: FILE: contrib/virtiofsd/fuse_opt.c:223:
+^I^I}$

ERROR: code indent should never use tabs
#982: FILE: contrib/virtiofsd/fuse_opt.c:224:
+^I}$

ERROR: code indent should never use tabs
#983: FILE: contrib/virtiofsd/fuse_opt.c:225:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#987: FILE: contrib/virtiofsd/fuse_opt.c:229:
+^I^I       const struct fuse_opt *opt, unsigned sep,$

ERROR: code indent should never use tabs
#988: FILE: contrib/virtiofsd/fuse_opt.c:230:
+^I^I       const char *arg, int iso)$

ERROR: code indent should never use tabs
#990: FILE: contrib/virtiofsd/fuse_opt.c:232:
+^Iif (opt->offset == -1U) {$

ERROR: code indent should never use tabs
#991: FILE: contrib/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
#991: FILE: contrib/virtiofsd/fuse_opt.c:233:
+               if (call_proc(ctx, arg, opt->value, iso) == -1)
[...]

ERROR: code indent should never use tabs
#992: FILE: contrib/virtiofsd/fuse_opt.c:234:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#993: FILE: contrib/virtiofsd/fuse_opt.c:235:
+^I} else {$

ERROR: code indent should never use tabs
#994: FILE: contrib/virtiofsd/fuse_opt.c:236:
+^I^Ivoid *var = (char *)ctx->data + opt->offset;$

ERROR: code indent should never use tabs
#995: FILE: contrib/virtiofsd/fuse_opt.c:237:
+^I^Iif (sep && opt->templ[sep + 1]) {$

ERROR: code indent should never use tabs
#996: FILE: contrib/virtiofsd/fuse_opt.c:238:
+^I^I^Iconst char *param = arg + sep;$

ERROR: code indent should never use tabs
#997: FILE: contrib/virtiofsd/fuse_opt.c:239:
+^I^I^Iif (opt->templ[sep] == '=')$

ERROR: braces {} are necessary for all arms of this statement
#997: FILE: contrib/virtiofsd/fuse_opt.c:239:
+                       if (opt->templ[sep] == '=')
[...]

ERROR: code indent should never use tabs
#998: FILE: contrib/virtiofsd/fuse_opt.c:240:
+^I^I^I^Iparam ++;$

ERROR: space prohibited before that '++' (ctx:WxO)
#998: FILE: contrib/virtiofsd/fuse_opt.c:240:
+                               param ++;
                                      ^

ERROR: code indent should never use tabs
#999: FILE: contrib/virtiofsd/fuse_opt.c:241:
+^I^I^Iif (process_opt_param(var, opt->templ + sep + 1,$

ERROR: code indent should never use tabs
#1000: FILE: contrib/virtiofsd/fuse_opt.c:242:
+^I^I^I^I^I      param, arg) == -1)$

ERROR: code indent should never use tabs
#1001: FILE: contrib/virtiofsd/fuse_opt.c:243:
+^I^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1002: FILE: contrib/virtiofsd/fuse_opt.c:244:
+^I^I} else$

ERROR: code indent should never use tabs
#1003: FILE: contrib/virtiofsd/fuse_opt.c:245:
+^I^I^I*(int *)var = opt->value;$

ERROR: code indent should never use tabs
#1004: FILE: contrib/virtiofsd/fuse_opt.c:246:
+^I}$

ERROR: code indent should never use tabs
#1005: FILE: contrib/virtiofsd/fuse_opt.c:247:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#1009: FILE: contrib/virtiofsd/fuse_opt.c:251:
+^I^I^I       const struct fuse_opt *opt, unsigned sep,$

ERROR: code indent should never use tabs
#1010: FILE: contrib/virtiofsd/fuse_opt.c:252:
+^I^I^I       const char *arg, int iso)$

ERROR: code indent should never use tabs
#1012: FILE: contrib/virtiofsd/fuse_opt.c:254:
+^Iint res;$

ERROR: code indent should never use tabs
#1013: FILE: contrib/virtiofsd/fuse_opt.c:255:
+^Ichar *newarg;$

ERROR: code indent should never use tabs
#1014: FILE: contrib/virtiofsd/fuse_opt.c:256:
+^Ichar *param;$

ERROR: code indent should never use tabs
#1016: FILE: contrib/virtiofsd/fuse_opt.c:258:
+^Iif (next_arg(ctx, arg) == -1)$

ERROR: braces {} are necessary for all arms of this statement
#1016: FILE: contrib/virtiofsd/fuse_opt.c:258:
+       if (next_arg(ctx, arg) == -1)
[...]

ERROR: code indent should never use tabs
#1017: FILE: contrib/virtiofsd/fuse_opt.c:259:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1019: FILE: contrib/virtiofsd/fuse_opt.c:261:
+^Iparam = ctx->argv[ctx->argctr];$

ERROR: code indent should never use tabs
#1020: FILE: contrib/virtiofsd/fuse_opt.c:262:
+^Inewarg = malloc(sep + strlen(param) + 1);$

ERROR: code indent should never use tabs
#1021: FILE: contrib/virtiofsd/fuse_opt.c:263:
+^Iif (!newarg)$

ERROR: braces {} are necessary for all arms of this statement
#1021: FILE: contrib/virtiofsd/fuse_opt.c:263:
+       if (!newarg)
[...]

ERROR: code indent should never use tabs
#1022: FILE: contrib/virtiofsd/fuse_opt.c:264:
+^I^Ireturn alloc_failed();$

ERROR: code indent should never use tabs
#1024: FILE: contrib/virtiofsd/fuse_opt.c:266:
+^Imemcpy(newarg, arg, sep);$

ERROR: code indent should never use tabs
#1025: FILE: contrib/virtiofsd/fuse_opt.c:267:
+^Istrcpy(newarg + sep, param);$

ERROR: code indent should never use tabs
#1026: FILE: contrib/virtiofsd/fuse_opt.c:268:
+^Ires = process_opt(ctx, opt, sep, newarg, iso);$

ERROR: code indent should never use tabs
#1027: FILE: contrib/virtiofsd/fuse_opt.c:269:
+^Ifree(newarg);$

ERROR: code indent should never use tabs
#1029: FILE: contrib/virtiofsd/fuse_opt.c:271:
+^Ireturn res;$

ERROR: code indent should never use tabs
#1034: FILE: contrib/virtiofsd/fuse_opt.c:276:
+^Iunsigned sep;$

ERROR: code indent should never use tabs
#1035: FILE: contrib/virtiofsd/fuse_opt.c:277:
+^Iconst struct fuse_opt *opt = find_opt(ctx->opt, arg, &sep);$

ERROR: code indent should never use tabs
#1036: FILE: contrib/virtiofsd/fuse_opt.c:278:
+^Iif (opt) {$

ERROR: code indent should never use tabs
#1037: FILE: contrib/virtiofsd/fuse_opt.c:279:
+^I^Ifor (; opt; opt = find_opt(opt + 1, arg, &sep)) {$

ERROR: code indent should never use tabs
#1038: FILE: contrib/virtiofsd/fuse_opt.c:280:
+^I^I^Iint res;$

ERROR: code indent should never use tabs
#1039: FILE: contrib/virtiofsd/fuse_opt.c:281:
+^I^I^Iif (sep && opt->templ[sep] == ' ' && !arg[sep])$

ERROR: code indent should never use tabs
#1040: FILE: contrib/virtiofsd/fuse_opt.c:282:
+^I^I^I^Ires = process_opt_sep_arg(ctx, opt, sep, arg,$

ERROR: code indent should never use tabs
#1041: FILE: contrib/virtiofsd/fuse_opt.c:283:
+^I^I^I^I^I^I^I  iso);$

ERROR: code indent should never use tabs
#1042: FILE: contrib/virtiofsd/fuse_opt.c:284:
+^I^I^Ielse$

ERROR: code indent should never use tabs
#1043: FILE: contrib/virtiofsd/fuse_opt.c:285:
+^I^I^I^Ires = process_opt(ctx, opt, sep, arg, iso);$

ERROR: code indent should never use tabs
#1044: FILE: contrib/virtiofsd/fuse_opt.c:286:
+^I^I^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#1044: FILE: contrib/virtiofsd/fuse_opt.c:286:
+                       if (res == -1)
[...]

ERROR: code indent should never use tabs
#1045: FILE: contrib/virtiofsd/fuse_opt.c:287:
+^I^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1046: FILE: contrib/virtiofsd/fuse_opt.c:288:
+^I^I}$

ERROR: code indent should never use tabs
#1047: FILE: contrib/virtiofsd/fuse_opt.c:289:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#1048: FILE: contrib/virtiofsd/fuse_opt.c:290:
+^I} else$

ERROR: code indent should never use tabs
#1049: FILE: contrib/virtiofsd/fuse_opt.c:291:
+^I^Ireturn call_proc(ctx, arg, FUSE_OPT_KEY_OPT, iso);$

ERROR: code indent should never use tabs
#1054: FILE: contrib/virtiofsd/fuse_opt.c:296:
+^Ichar *s = opts;$

ERROR: code indent should never use tabs
#1055: FILE: contrib/virtiofsd/fuse_opt.c:297:
+^Ichar *d = s;$

ERROR: code indent should never use tabs
#1056: FILE: contrib/virtiofsd/fuse_opt.c:298:
+^Iint end = 0;$

ERROR: code indent should never use tabs
#1058: FILE: contrib/virtiofsd/fuse_opt.c:300:
+^Iwhile (!end) {$

ERROR: code indent should never use tabs
#1059: FILE: contrib/virtiofsd/fuse_opt.c:301:
+^I^Iif (*s == '\0')$

ERROR: braces {} are necessary for all arms of this statement
#1059: FILE: contrib/virtiofsd/fuse_opt.c:301:
+               if (*s == '\0')
[...]

ERROR: code indent should never use tabs
#1060: FILE: contrib/virtiofsd/fuse_opt.c:302:
+^I^I^Iend = 1;$

ERROR: code indent should never use tabs
#1061: FILE: contrib/virtiofsd/fuse_opt.c:303:
+^I^Iif (*s == ',' || end) {$

ERROR: code indent should never use tabs
#1062: FILE: contrib/virtiofsd/fuse_opt.c:304:
+^I^I^Iint res;$

ERROR: code indent should never use tabs
#1064: FILE: contrib/virtiofsd/fuse_opt.c:306:
+^I^I^I*d = '\0';$

ERROR: code indent should never use tabs
#1065: FILE: contrib/virtiofsd/fuse_opt.c:307:
+^I^I^Ires = process_gopt(ctx, opts, 1);$

ERROR: code indent should never use tabs
#1066: FILE: contrib/virtiofsd/fuse_opt.c:308:
+^I^I^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#1066: FILE: contrib/virtiofsd/fuse_opt.c:308:
+                       if (res == -1)
[...]

ERROR: code indent should never use tabs
#1067: FILE: contrib/virtiofsd/fuse_opt.c:309:
+^I^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1068: FILE: contrib/virtiofsd/fuse_opt.c:310:
+^I^I^Id = opts;$

ERROR: code indent should never use tabs
#1069: FILE: contrib/virtiofsd/fuse_opt.c:311:
+^I^I} else {$

ERROR: code indent should never use tabs
#1070: FILE: contrib/virtiofsd/fuse_opt.c:312:
+^I^I^Iif (s[0] == '\\' && s[1] != '\0') {$

ERROR: code indent should never use tabs
#1071: FILE: contrib/virtiofsd/fuse_opt.c:313:
+^I^I^I^Is++;$

ERROR: code indent should never use tabs
#1072: FILE: contrib/virtiofsd/fuse_opt.c:314:
+^I^I^I^Iif (s[0] >= '0' && s[0] <= '3' &&$

ERROR: code indent should never use tabs
#1073: FILE: contrib/virtiofsd/fuse_opt.c:315:
+^I^I^I^I    s[1] >= '0' && s[1] <= '7' &&$

ERROR: code indent should never use tabs
#1074: FILE: contrib/virtiofsd/fuse_opt.c:316:
+^I^I^I^I    s[2] >= '0' && s[2] <= '7') {$

ERROR: code indent should never use tabs
#1075: FILE: contrib/virtiofsd/fuse_opt.c:317:
+^I^I^I^I^I*d++ = (s[0] - '0') * 0100 +$

ERROR: code indent should never use tabs
#1076: FILE: contrib/virtiofsd/fuse_opt.c:318:
+^I^I^I^I^I^I(s[1] - '0') * 0010 +$

ERROR: code indent should never use tabs
#1077: FILE: contrib/virtiofsd/fuse_opt.c:319:
+^I^I^I^I^I^I(s[2] - '0');$

ERROR: code indent should never use tabs
#1078: FILE: contrib/virtiofsd/fuse_opt.c:320:
+^I^I^I^I^Is += 2;$

ERROR: code indent should never use tabs
#1079: FILE: contrib/virtiofsd/fuse_opt.c:321:
+^I^I^I^I} else {$

ERROR: code indent should never use tabs
#1080: FILE: contrib/virtiofsd/fuse_opt.c:322:
+^I^I^I^I^I*d++ = *s;$

ERROR: code indent should never use tabs
#1081: FILE: contrib/virtiofsd/fuse_opt.c:323:
+^I^I^I^I}$

ERROR: code indent should never use tabs
#1082: FILE: contrib/virtiofsd/fuse_opt.c:324:
+^I^I^I} else {$

ERROR: code indent should never use tabs
#1083: FILE: contrib/virtiofsd/fuse_opt.c:325:
+^I^I^I^I*d++ = *s;$

ERROR: code indent should never use tabs
#1084: FILE: contrib/virtiofsd/fuse_opt.c:326:
+^I^I^I}$

ERROR: code indent should never use tabs
#1085: FILE: contrib/virtiofsd/fuse_opt.c:327:
+^I^I}$

ERROR: code indent should never use tabs
#1086: FILE: contrib/virtiofsd/fuse_opt.c:328:
+^I^Is++;$

ERROR: code indent should never use tabs
#1087: FILE: contrib/virtiofsd/fuse_opt.c:329:
+^I}$

ERROR: code indent should never use tabs
#1089: FILE: contrib/virtiofsd/fuse_opt.c:331:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#1094: FILE: contrib/virtiofsd/fuse_opt.c:336:
+^Iint res;$

ERROR: code indent should never use tabs
#1095: FILE: contrib/virtiofsd/fuse_opt.c:337:
+^Ichar *copy = strdup(opts);$

ERROR: code indent should never use tabs
#1097: FILE: contrib/virtiofsd/fuse_opt.c:339:
+^Iif (!copy) {$

ERROR: code indent should never use tabs
#1098: FILE: contrib/virtiofsd/fuse_opt.c:340:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: memory allocation failed\n");$

ERROR: code indent should never use tabs
#1099: FILE: contrib/virtiofsd/fuse_opt.c:341:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1100: FILE: contrib/virtiofsd/fuse_opt.c:342:
+^I}$

ERROR: code indent should never use tabs
#1101: FILE: contrib/virtiofsd/fuse_opt.c:343:
+^Ires = process_real_option_group(ctx, copy);$

ERROR: code indent should never use tabs
#1102: FILE: contrib/virtiofsd/fuse_opt.c:344:
+^Ifree(copy);$

ERROR: code indent should never use tabs
#1103: FILE: contrib/virtiofsd/fuse_opt.c:345:
+^Ireturn res;$

ERROR: code indent should never use tabs
#1108: FILE: contrib/virtiofsd/fuse_opt.c:350:
+^Iif (ctx->nonopt || arg[0] != '-')$

ERROR: code indent should never use tabs
#1109: FILE: contrib/virtiofsd/fuse_opt.c:351:
+^I^Ireturn call_proc(ctx, arg, FUSE_OPT_KEY_NONOPT, 0);$

ERROR: code indent should never use tabs
#1110: FILE: contrib/virtiofsd/fuse_opt.c:352:
+^Ielse if (arg[1] == 'o') {$

ERROR: code indent should never use tabs
#1111: FILE: contrib/virtiofsd/fuse_opt.c:353:
+^I^Iif (arg[2])$

ERROR: code indent should never use tabs
#1112: FILE: contrib/virtiofsd/fuse_opt.c:354:
+^I^I^Ireturn process_option_group(ctx, arg + 2);$

ERROR: code indent should never use tabs
#1113: FILE: contrib/virtiofsd/fuse_opt.c:355:
+^I^Ielse {$

ERROR: code indent should never use tabs
#1114: FILE: contrib/virtiofsd/fuse_opt.c:356:
+^I^I^Iif (next_arg(ctx, arg) == -1)$

ERROR: braces {} are necessary for all arms of this statement
#1114: FILE: contrib/virtiofsd/fuse_opt.c:356:
+                       if (next_arg(ctx, arg) == -1)
[...]

ERROR: code indent should never use tabs
#1115: FILE: contrib/virtiofsd/fuse_opt.c:357:
+^I^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1117: FILE: contrib/virtiofsd/fuse_opt.c:359:
+^I^I^Ireturn process_option_group(ctx,$

ERROR: code indent should never use tabs
#1118: FILE: contrib/virtiofsd/fuse_opt.c:360:
+^I^I^I^I^I^I    ctx->argv[ctx->argctr]);$

ERROR: code indent should never use tabs
#1119: FILE: contrib/virtiofsd/fuse_opt.c:361:
+^I^I}$

ERROR: code indent should never use tabs
#1120: FILE: contrib/virtiofsd/fuse_opt.c:362:
+^I} else if (arg[1] == '-' && !arg[2]) {$

ERROR: code indent should never use tabs
#1121: FILE: contrib/virtiofsd/fuse_opt.c:363:
+^I^Iif (add_arg(ctx, arg) == -1)$

ERROR: braces {} are necessary for all arms of this statement
#1121: FILE: contrib/virtiofsd/fuse_opt.c:363:
+               if (add_arg(ctx, arg) == -1)
[...]

ERROR: code indent should never use tabs
#1122: FILE: contrib/virtiofsd/fuse_opt.c:364:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1123: FILE: contrib/virtiofsd/fuse_opt.c:365:
+^I^Ictx->nonopt = ctx->outargs.argc;$

ERROR: code indent should never use tabs
#1124: FILE: contrib/virtiofsd/fuse_opt.c:366:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#1125: FILE: contrib/virtiofsd/fuse_opt.c:367:
+^I} else$

ERROR: code indent should never use tabs
#1126: FILE: contrib/virtiofsd/fuse_opt.c:368:
+^I^Ireturn process_gopt(ctx, arg, 0);$

ERROR: code indent should never use tabs
#1131: FILE: contrib/virtiofsd/fuse_opt.c:373:
+^Iif (ctx->argc) {$

ERROR: code indent should never use tabs
#1132: FILE: contrib/virtiofsd/fuse_opt.c:374:
+^I^Iif (add_arg(ctx, ctx->argv[0]) == -1)$

ERROR: braces {} are necessary for all arms of this statement
#1132: FILE: contrib/virtiofsd/fuse_opt.c:374:
+               if (add_arg(ctx, ctx->argv[0]) == -1)
[...]

ERROR: code indent should never use tabs
#1133: FILE: contrib/virtiofsd/fuse_opt.c:375:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1134: FILE: contrib/virtiofsd/fuse_opt.c:376:
+^I}$

ERROR: code indent should never use tabs
#1136: FILE: contrib/virtiofsd/fuse_opt.c:378:
+^Ifor (ctx->argctr = 1; ctx->argctr < ctx->argc; ctx->argctr++)$

ERROR: code indent should never use tabs
#1137: FILE: contrib/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
#1137: FILE: contrib/virtiofsd/fuse_opt.c:379:
+               if (process_one(ctx, ctx->argv[ctx->argctr]) == -1)
[...]

ERROR: code indent should never use tabs
#1138: FILE: contrib/virtiofsd/fuse_opt.c:380:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1140: FILE: contrib/virtiofsd/fuse_opt.c:382:
+^Iif (ctx->opts) {$

ERROR: code indent should never use tabs
#1141: FILE: contrib/virtiofsd/fuse_opt.c:383:
+^I^Iif (fuse_opt_insert_arg(&ctx->outargs, 1, "-o") == -1 ||$

ERROR: code indent should never use tabs
#1142: FILE: contrib/virtiofsd/fuse_opt.c:384:
+^I^I    fuse_opt_insert_arg(&ctx->outargs, 2, ctx->opts) == -1)$

ERROR: code indent should never use tabs
#1143: FILE: contrib/virtiofsd/fuse_opt.c:385:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1144: FILE: contrib/virtiofsd/fuse_opt.c:386:
+^I}$

ERROR: code indent should never use tabs
#1146: FILE: contrib/virtiofsd/fuse_opt.c:388:
+^I/* If option separator ("--") is the last argument, remove it */$

ERROR: code indent should never use tabs
#1147: FILE: contrib/virtiofsd/fuse_opt.c:389:
+^Iif (ctx->nonopt && ctx->nonopt == ctx->outargs.argc &&$

ERROR: code indent should never use tabs
#1148: FILE: contrib/virtiofsd/fuse_opt.c:390:
+^I    strcmp(ctx->outargs.argv[ctx->outargs.argc - 1], "--") == 0) {$

ERROR: code indent should never use tabs
#1149: FILE: contrib/virtiofsd/fuse_opt.c:391:
+^I^Ifree(ctx->outargs.argv[ctx->outargs.argc - 1]);$

ERROR: code indent should never use tabs
#1150: FILE: contrib/virtiofsd/fuse_opt.c:392:
+^I^Ictx->outargs.argv[--ctx->outargs.argc] = NULL;$

ERROR: code indent should never use tabs
#1151: FILE: contrib/virtiofsd/fuse_opt.c:393:
+^I}$

ERROR: code indent should never use tabs
#1153: FILE: contrib/virtiofsd/fuse_opt.c:395:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#1157: FILE: contrib/virtiofsd/fuse_opt.c:399:
+^I^I   const struct fuse_opt opts[], fuse_opt_proc_t proc)$

ERROR: code indent should never use tabs
#1159: FILE: contrib/virtiofsd/fuse_opt.c:401:
+^Iint res;$

ERROR: code indent should never use tabs
#1160: FILE: contrib/virtiofsd/fuse_opt.c:402:
+^Istruct fuse_opt_context ctx = {$

ERROR: code indent should never use tabs
#1161: FILE: contrib/virtiofsd/fuse_opt.c:403:
+^I^I.data = data,$

ERROR: code indent should never use tabs
#1162: FILE: contrib/virtiofsd/fuse_opt.c:404:
+^I^I.opt = opts,$

ERROR: code indent should never use tabs
#1163: FILE: contrib/virtiofsd/fuse_opt.c:405:
+^I^I.proc = proc,$

ERROR: code indent should never use tabs
#1164: FILE: contrib/virtiofsd/fuse_opt.c:406:
+^I};$

ERROR: code indent should never use tabs
#1166: FILE: contrib/virtiofsd/fuse_opt.c:408:
+^Iif (!args || !args->argv || !args->argc)$

ERROR: braces {} are necessary for all arms of this statement
#1166: FILE: contrib/virtiofsd/fuse_opt.c:408:
+       if (!args || !args->argv || !args->argc)
[...]

ERROR: code indent should never use tabs
#1167: FILE: contrib/virtiofsd/fuse_opt.c:409:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#1169: FILE: contrib/virtiofsd/fuse_opt.c:411:
+^Ictx.argc = args->argc;$

ERROR: code indent should never use tabs
#1170: FILE: contrib/virtiofsd/fuse_opt.c:412:
+^Ictx.argv = args->argv;$

ERROR: code indent should never use tabs
#1172: FILE: contrib/virtiofsd/fuse_opt.c:414:
+^Ires = opt_parse(&ctx);$

ERROR: code indent should never use tabs
#1173: FILE: contrib/virtiofsd/fuse_opt.c:415:
+^Iif (res != -1) {$

ERROR: code indent should never use tabs
#1174: FILE: contrib/virtiofsd/fuse_opt.c:416:
+^I^Istruct fuse_args tmp = *args;$

ERROR: code indent should never use tabs
#1175: FILE: contrib/virtiofsd/fuse_opt.c:417:
+^I^I*args = ctx.outargs;$

ERROR: code indent should never use tabs
#1176: FILE: contrib/virtiofsd/fuse_opt.c:418:
+^I^Ictx.outargs = tmp;$

ERROR: code indent should never use tabs
#1177: FILE: contrib/virtiofsd/fuse_opt.c:419:
+^I}$

ERROR: code indent should never use tabs
#1178: FILE: contrib/virtiofsd/fuse_opt.c:420:
+^Ifree(ctx.opts);$

ERROR: code indent should never use tabs
#1179: FILE: contrib/virtiofsd/fuse_opt.c:421:
+^Ifuse_opt_free_args(&ctx.outargs);$

ERROR: code indent should never use tabs
#1180: FILE: contrib/virtiofsd/fuse_opt.c:422:
+^Ireturn res;$

WARNING: Block comments use * on subsequent lines
#1189: FILE: contrib/virtiofsd/fuse_signals.c:2:
+/*
+  FUSE: Filesystem in Userspace

ERROR: code indent should never use tabs
#1211: FILE: contrib/virtiofsd/fuse_signals.c:24:
+^Iif (fuse_instance) {$

ERROR: code indent should never use tabs
#1212: FILE: contrib/virtiofsd/fuse_signals.c:25:
+^I^Ifuse_session_exit(fuse_instance);$

ERROR: code indent should never use tabs
#1213: FILE: contrib/virtiofsd/fuse_signals.c:26:
+^I^Iif(sig <= 0) {$

ERROR: space required before the open parenthesis '('
#1213: FILE: contrib/virtiofsd/fuse_signals.c:26:
+               if(sig <= 0) {

WARNING: line over 80 characters
#1214: FILE: contrib/virtiofsd/fuse_signals.c:27:
+                       fuse_log(FUSE_LOG_ERR, "assertion error: signal value <= 0\n");

ERROR: code indent should never use tabs
#1214: FILE: contrib/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
#1215: FILE: contrib/virtiofsd/fuse_signals.c:28:
+^I^I^Iabort();$

ERROR: code indent should never use tabs
#1216: FILE: contrib/virtiofsd/fuse_signals.c:29:
+^I^I}$

ERROR: code indent should never use tabs
#1217: FILE: contrib/virtiofsd/fuse_signals.c:30:
+^I^Ifuse_instance->error = sig;$

ERROR: code indent should never use tabs
#1218: FILE: contrib/virtiofsd/fuse_signals.c:31:
+^I}$

ERROR: code indent should never use tabs
#1223: FILE: contrib/virtiofsd/fuse_signals.c:36:
+^I(void) sig;$

ERROR: code indent should never use tabs
#1228: FILE: contrib/virtiofsd/fuse_signals.c:41:
+^Istruct sigaction sa;$

ERROR: code indent should never use tabs
#1229: FILE: contrib/virtiofsd/fuse_signals.c:42:
+^Istruct sigaction old_sa;$

ERROR: code indent should never use tabs
#1231: FILE: contrib/virtiofsd/fuse_signals.c:44:
+^Imemset(&sa, 0, sizeof(struct sigaction));$

ERROR: code indent should never use tabs
#1232: FILE: contrib/virtiofsd/fuse_signals.c:45:
+^Isa.sa_handler = remove ? SIG_DFL : handler;$

ERROR: code indent should never use tabs
#1233: FILE: contrib/virtiofsd/fuse_signals.c:46:
+^Isigemptyset(&(sa.sa_mask));$

ERROR: code indent should never use tabs
#1234: FILE: contrib/virtiofsd/fuse_signals.c:47:
+^Isa.sa_flags = 0;$

ERROR: code indent should never use tabs
#1236: FILE: contrib/virtiofsd/fuse_signals.c:49:
+^Iif (sigaction(sig, NULL, &old_sa) == -1) {$

ERROR: code indent should never use tabs
#1237: FILE: contrib/virtiofsd/fuse_signals.c:50:
+^I^Iperror("fuse: cannot get old signal handler");$

ERROR: code indent should never use tabs
#1238: FILE: contrib/virtiofsd/fuse_signals.c:51:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1239: FILE: contrib/virtiofsd/fuse_signals.c:52:
+^I}$

ERROR: code indent should never use tabs
#1241: FILE: contrib/virtiofsd/fuse_signals.c:54:
+^Iif (old_sa.sa_handler == (remove ? handler : SIG_DFL) &&$

ERROR: code indent should never use tabs
#1242: FILE: contrib/virtiofsd/fuse_signals.c:55:
+^I    sigaction(sig, &sa, NULL) == -1) {$

ERROR: code indent should never use tabs
#1243: FILE: contrib/virtiofsd/fuse_signals.c:56:
+^I^Iperror("fuse: cannot set signal handler");$

ERROR: code indent should never use tabs
#1244: FILE: contrib/virtiofsd/fuse_signals.c:57:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1245: FILE: contrib/virtiofsd/fuse_signals.c:58:
+^I}$

ERROR: code indent should never use tabs
#1246: FILE: contrib/virtiofsd/fuse_signals.c:59:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#1251: FILE: contrib/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
#1251: FILE: contrib/virtiofsd/fuse_signals.c:64:
+       /* If we used SIG_IGN instead of the do_nothing function,

ERROR: code indent should never use tabs
#1252: FILE: contrib/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
#1252: FILE: contrib/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
#1253: FILE: contrib/virtiofsd/fuse_signals.c:66:
+^I   thus should reset to SIG_DFL in fuse_remove_signal_handlers)$

ERROR: code indent should never use tabs
#1254: FILE: contrib/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
#1255: FILE: contrib/virtiofsd/fuse_signals.c:68:
+^I   untouched. */$

WARNING: Block comments use a trailing */ on a separate line
#1255: FILE: contrib/virtiofsd/fuse_signals.c:68:
+          untouched. */

ERROR: code indent should never use tabs
#1256: FILE: contrib/virtiofsd/fuse_signals.c:69:
+^Iif (set_one_signal_handler(SIGHUP, exit_handler, 0) == -1 ||$

ERROR: code indent should never use tabs
#1257: FILE: contrib/virtiofsd/fuse_signals.c:70:
+^I    set_one_signal_handler(SIGINT, exit_handler, 0) == -1 ||$

ERROR: code indent should never use tabs
#1258: FILE: contrib/virtiofsd/fuse_signals.c:71:
+^I    set_one_signal_handler(SIGTERM, exit_handler, 0) == -1 ||$

ERROR: code indent should never use tabs
#1259: FILE: contrib/virtiofsd/fuse_signals.c:72:
+^I    set_one_signal_handler(SIGPIPE, do_nothing, 0) == -1)$

ERROR: code indent should never use tabs
#1260: FILE: contrib/virtiofsd/fuse_signals.c:73:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1262: FILE: contrib/virtiofsd/fuse_signals.c:75:
+^Ifuse_instance = se;$

ERROR: code indent should never use tabs
#1263: FILE: contrib/virtiofsd/fuse_signals.c:76:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#1268: FILE: contrib/virtiofsd/fuse_signals.c:81:
+^Iif (fuse_instance != se)$

ERROR: code indent should never use tabs
#1269: FILE: contrib/virtiofsd/fuse_signals.c:82:
+^I^Ifuse_log(FUSE_LOG_ERR,$

ERROR: code indent should never use tabs
#1270: FILE: contrib/virtiofsd/fuse_signals.c:83:
+^I^I^I"fuse: fuse_remove_signal_handlers: unknown session\n");$

ERROR: code indent should never use tabs
#1271: FILE: contrib/virtiofsd/fuse_signals.c:84:
+^Ielse$

ERROR: code indent should never use tabs
#1272: FILE: contrib/virtiofsd/fuse_signals.c:85:
+^I^Ifuse_instance = NULL;$

ERROR: code indent should never use tabs
#1274: FILE: contrib/virtiofsd/fuse_signals.c:87:
+^Iset_one_signal_handler(SIGHUP, exit_handler, 1);$

ERROR: code indent should never use tabs
#1275: FILE: contrib/virtiofsd/fuse_signals.c:88:
+^Iset_one_signal_handler(SIGINT, exit_handler, 1);$

ERROR: code indent should never use tabs
#1276: FILE: contrib/virtiofsd/fuse_signals.c:89:
+^Iset_one_signal_handler(SIGTERM, exit_handler, 1);$

ERROR: code indent should never use tabs
#1277: FILE: contrib/virtiofsd/fuse_signals.c:90:
+^Iset_one_signal_handler(SIGPIPE, do_nothing, 1);$

WARNING: Block comments use * on subsequent lines
#1286: FILE: contrib/virtiofsd/helper.c:2:
+/*
+  FUSE: Filesystem in Userspace

ERROR: code indent should never use tabs
#1314: FILE: contrib/virtiofsd/helper.c:30:
+^I{ t, offsetof(struct fuse_cmdline_opts, p), 1 }$

ERROR: code indent should never use tabs
#1317: FILE: contrib/virtiofsd/helper.c:33:
+^IFUSE_HELPER_OPT("-h",^I^Ishow_help),$

ERROR: code indent should never use tabs
#1318: FILE: contrib/virtiofsd/helper.c:34:
+^IFUSE_HELPER_OPT("--help",^Ishow_help),$

ERROR: code indent should never use tabs
#1319: FILE: contrib/virtiofsd/helper.c:35:
+^IFUSE_HELPER_OPT("-V",^I^Ishow_version),$

ERROR: code indent should never use tabs
#1320: FILE: contrib/virtiofsd/helper.c:36:
+^IFUSE_HELPER_OPT("--version",^Ishow_version),$

ERROR: code indent should never use tabs
#1321: FILE: contrib/virtiofsd/helper.c:37:
+^IFUSE_HELPER_OPT("-d",^I^Idebug),$

ERROR: code indent should never use tabs
#1322: FILE: contrib/virtiofsd/helper.c:38:
+^IFUSE_HELPER_OPT("debug",^Idebug),$

ERROR: code indent should never use tabs
#1323: FILE: contrib/virtiofsd/helper.c:39:
+^IFUSE_HELPER_OPT("-d",^I^Iforeground),$

ERROR: code indent should never use tabs
#1324: FILE: contrib/virtiofsd/helper.c:40:
+^IFUSE_HELPER_OPT("debug",^Iforeground),$

ERROR: code indent should never use tabs
#1325: FILE: contrib/virtiofsd/helper.c:41:
+^IFUSE_OPT_KEY("-d",^I^IFUSE_OPT_KEY_KEEP),$

ERROR: code indent should never use tabs
#1326: FILE: contrib/virtiofsd/helper.c:42:
+^IFUSE_OPT_KEY("debug",^I^IFUSE_OPT_KEY_KEEP),$

ERROR: code indent should never use tabs
#1327: FILE: contrib/virtiofsd/helper.c:43:
+^IFUSE_HELPER_OPT("-f",^I^Iforeground),$

ERROR: code indent should never use tabs
#1328: FILE: contrib/virtiofsd/helper.c:44:
+^IFUSE_HELPER_OPT("-s",^I^Isinglethread),$

ERROR: code indent should never use tabs
#1329: FILE: contrib/virtiofsd/helper.c:45:
+^IFUSE_HELPER_OPT("fsname=",^Inodefault_subtype),$

ERROR: code indent should never use tabs
#1330: FILE: contrib/virtiofsd/helper.c:46:
+^IFUSE_OPT_KEY("fsname=",^I^IFUSE_OPT_KEY_KEEP),$

WARNING: architecture specific defines should be avoided
#1331: FILE: contrib/virtiofsd/helper.c:47:
+#ifndef __FreeBSD__

ERROR: code indent should never use tabs
#1332: FILE: contrib/virtiofsd/helper.c:48:
+^IFUSE_HELPER_OPT("subtype=",^Inodefault_subtype),$

ERROR: code indent should never use tabs
#1333: FILE: contrib/virtiofsd/helper.c:49:
+^IFUSE_OPT_KEY("subtype=",^IFUSE_OPT_KEY_KEEP),$

ERROR: code indent should never use tabs
#1335: FILE: contrib/virtiofsd/helper.c:51:
+^IFUSE_HELPER_OPT("clone_fd",^Iclone_fd),$

ERROR: code indent should never use tabs
#1336: FILE: contrib/virtiofsd/helper.c:52:
+^IFUSE_HELPER_OPT("max_idle_threads=%u", max_idle_threads),$

ERROR: code indent should never use tabs
#1337: FILE: contrib/virtiofsd/helper.c:53:
+^IFUSE_OPT_END$

ERROR: code indent should never use tabs
#1341: FILE: contrib/virtiofsd/helper.c:57:
+^Iint atomic_o_trunc;$

ERROR: code indent should never use tabs
#1342: FILE: contrib/virtiofsd/helper.c:58:
+^Iint no_remote_posix_lock;$

ERROR: code indent should never use tabs
#1343: FILE: contrib/virtiofsd/helper.c:59:
+^Iint no_remote_flock;$

ERROR: code indent should never use tabs
#1344: FILE: contrib/virtiofsd/helper.c:60:
+^Iint splice_write;$

ERROR: code indent should never use tabs
#1345: FILE: contrib/virtiofsd/helper.c:61:
+^Iint splice_move;$

ERROR: code indent should never use tabs
#1346: FILE: contrib/virtiofsd/helper.c:62:
+^Iint splice_read;$

ERROR: code indent should never use tabs
#1347: FILE: contrib/virtiofsd/helper.c:63:
+^Iint no_splice_write;$

ERROR: code indent should never use tabs
#1348: FILE: contrib/virtiofsd/helper.c:64:
+^Iint no_splice_move;$

ERROR: code indent should never use tabs
#1349: FILE: contrib/virtiofsd/helper.c:65:
+^Iint no_splice_read;$

ERROR: code indent should never use tabs
#1350: FILE: contrib/virtiofsd/helper.c:66:
+^Iint auto_inval_data;$

ERROR: code indent should never use tabs
#1351: FILE: contrib/virtiofsd/helper.c:67:
+^Iint no_auto_inval_data;$

ERROR: code indent should never use tabs
#1352: FILE: contrib/virtiofsd/helper.c:68:
+^Iint no_readdirplus;$

ERROR: code indent should never use tabs
#1353: FILE: contrib/virtiofsd/helper.c:69:
+^Iint no_readdirplus_auto;$

ERROR: code indent should never use tabs
#1354: FILE: contrib/virtiofsd/helper.c:70:
+^Iint async_dio;$

ERROR: code indent should never use tabs
#1355: FILE: contrib/virtiofsd/helper.c:71:
+^Iint no_async_dio;$

ERROR: code indent should never use tabs
#1356: FILE: contrib/virtiofsd/helper.c:72:
+^Iint writeback_cache;$

ERROR: code indent should never use tabs
#1357: FILE: contrib/virtiofsd/helper.c:73:
+^Iint no_writeback_cache;$

ERROR: code indent should never use tabs
#1358: FILE: contrib/virtiofsd/helper.c:74:
+^Iint async_read;$

ERROR: code indent should never use tabs
#1359: FILE: contrib/virtiofsd/helper.c:75:
+^Iint sync_read;$

ERROR: code indent should never use tabs
#1360: FILE: contrib/virtiofsd/helper.c:76:
+^Iunsigned max_write;$

ERROR: code indent should never use tabs
#1361: FILE: contrib/virtiofsd/helper.c:77:
+^Iunsigned max_readahead;$

ERROR: code indent should never use tabs
#1362: FILE: contrib/virtiofsd/helper.c:78:
+^Iunsigned max_background;$

ERROR: code indent should never use tabs
#1363: FILE: contrib/virtiofsd/helper.c:79:
+^Iunsigned congestion_threshold;$

ERROR: code indent should never use tabs
#1364: FILE: contrib/virtiofsd/helper.c:80:
+^Iunsigned time_gran;$

ERROR: code indent should never use tabs
#1365: FILE: contrib/virtiofsd/helper.c:81:
+^Iint set_max_write;$

ERROR: code indent should never use tabs
#1366: FILE: contrib/virtiofsd/helper.c:82:
+^Iint set_max_readahead;$

ERROR: code indent should never use tabs
#1367: FILE: contrib/virtiofsd/helper.c:83:
+^Iint set_max_background;$

ERROR: code indent should never use tabs
#1368: FILE: contrib/virtiofsd/helper.c:84:
+^Iint set_congestion_threshold;$

ERROR: code indent should never use tabs
#1369: FILE: contrib/virtiofsd/helper.c:85:
+^Iint set_time_gran;$

ERROR: code indent should never use tabs
#1372: FILE: contrib/virtiofsd/helper.c:88:
+#define CONN_OPTION(t, p, v)^I^I^I^I^I\$

ERROR: code indent should never use tabs
#1373: FILE: contrib/virtiofsd/helper.c:89:
+^I{ t, offsetof(struct fuse_conn_info_opts, p), v }$

ERROR: code indent should never use tabs
#1375: FILE: contrib/virtiofsd/helper.c:91:
+^ICONN_OPTION("max_write=%u", max_write, 0),$

ERROR: code indent should never use tabs
#1376: FILE: contrib/virtiofsd/helper.c:92:
+^ICONN_OPTION("max_write=", set_max_write, 1),$

ERROR: code indent should never use tabs
#1377: FILE: contrib/virtiofsd/helper.c:93:
+^ICONN_OPTION("max_readahead=%u", max_readahead, 0),$

ERROR: code indent should never use tabs
#1378: FILE: contrib/virtiofsd/helper.c:94:
+^ICONN_OPTION("max_readahead=", set_max_readahead, 1),$

ERROR: code indent should never use tabs
#1379: FILE: contrib/virtiofsd/helper.c:95:
+^ICONN_OPTION("max_background=%u", max_background, 0),$

ERROR: code indent should never use tabs
#1380: FILE: contrib/virtiofsd/helper.c:96:
+^ICONN_OPTION("max_background=", set_max_background, 1),$

ERROR: code indent should never use tabs
#1381: FILE: contrib/virtiofsd/helper.c:97:
+^ICONN_OPTION("congestion_threshold=%u", congestion_threshold, 0),$

ERROR: code indent should never use tabs
#1382: FILE: contrib/virtiofsd/helper.c:98:
+^ICONN_OPTION("congestion_threshold=", set_congestion_threshold, 1),$

ERROR: code indent should never use tabs
#1383: FILE: contrib/virtiofsd/helper.c:99:
+^ICONN_OPTION("sync_read", sync_read, 1),$

ERROR: code indent should never use tabs
#1384: FILE: contrib/virtiofsd/helper.c:100:
+^ICONN_OPTION("async_read", async_read, 1),$

ERROR: code indent should never use tabs
#1385: FILE: contrib/virtiofsd/helper.c:101:
+^ICONN_OPTION("atomic_o_trunc", atomic_o_trunc, 1),$

ERROR: code indent should never use tabs
#1386: FILE: contrib/virtiofsd/helper.c:102:
+^ICONN_OPTION("no_remote_lock", no_remote_posix_lock, 1),$

ERROR: code indent should never use tabs
#1387: FILE: contrib/virtiofsd/helper.c:103:
+^ICONN_OPTION("no_remote_lock", no_remote_flock, 1),$

ERROR: code indent should never use tabs
#1388: FILE: contrib/virtiofsd/helper.c:104:
+^ICONN_OPTION("no_remote_flock", no_remote_flock, 1),$

ERROR: code indent should never use tabs
#1389: FILE: contrib/virtiofsd/helper.c:105:
+^ICONN_OPTION("no_remote_posix_lock", no_remote_posix_lock, 1),$

ERROR: code indent should never use tabs
#1390: FILE: contrib/virtiofsd/helper.c:106:
+^ICONN_OPTION("splice_write", splice_write, 1),$

ERROR: code indent should never use tabs
#1391: FILE: contrib/virtiofsd/helper.c:107:
+^ICONN_OPTION("no_splice_write", no_splice_write, 1),$

ERROR: code indent should never use tabs
#1392: FILE: contrib/virtiofsd/helper.c:108:
+^ICONN_OPTION("splice_move", splice_move, 1),$

ERROR: code indent should never use tabs
#1393: FILE: contrib/virtiofsd/helper.c:109:
+^ICONN_OPTION("no_splice_move", no_splice_move, 1),$

ERROR: code indent should never use tabs
#1394: FILE: contrib/virtiofsd/helper.c:110:
+^ICONN_OPTION("splice_read", splice_read, 1),$

ERROR: code indent should never use tabs
#1395: FILE: contrib/virtiofsd/helper.c:111:
+^ICONN_OPTION("no_splice_read", no_splice_read, 1),$

ERROR: code indent should never use tabs
#1396: FILE: contrib/virtiofsd/helper.c:112:
+^ICONN_OPTION("auto_inval_data", auto_inval_data, 1),$

ERROR: code indent should never use tabs
#1397: FILE: contrib/virtiofsd/helper.c:113:
+^ICONN_OPTION("no_auto_inval_data", no_auto_inval_data, 1),$

ERROR: code indent should never use tabs
#1398: FILE: contrib/virtiofsd/helper.c:114:
+^ICONN_OPTION("readdirplus=no", no_readdirplus, 1),$

ERROR: code indent should never use tabs
#1399: FILE: contrib/virtiofsd/helper.c:115:
+^ICONN_OPTION("readdirplus=yes", no_readdirplus, 0),$

ERROR: code indent should never use tabs
#1400: FILE: contrib/virtiofsd/helper.c:116:
+^ICONN_OPTION("readdirplus=yes", no_readdirplus_auto, 1),$

ERROR: code indent should never use tabs
#1401: FILE: contrib/virtiofsd/helper.c:117:
+^ICONN_OPTION("readdirplus=auto", no_readdirplus, 0),$

ERROR: code indent should never use tabs
#1402: FILE: contrib/virtiofsd/helper.c:118:
+^ICONN_OPTION("readdirplus=auto", no_readdirplus_auto, 0),$

ERROR: code indent should never use tabs
#1403: FILE: contrib/virtiofsd/helper.c:119:
+^ICONN_OPTION("async_dio", async_dio, 1),$

ERROR: code indent should never use tabs
#1404: FILE: contrib/virtiofsd/helper.c:120:
+^ICONN_OPTION("no_async_dio", no_async_dio, 1),$

ERROR: code indent should never use tabs
#1405: FILE: contrib/virtiofsd/helper.c:121:
+^ICONN_OPTION("writeback_cache", writeback_cache, 1),$

ERROR: code indent should never use tabs
#1406: FILE: contrib/virtiofsd/helper.c:122:
+^ICONN_OPTION("no_writeback_cache", no_writeback_cache, 1),$

ERROR: code indent should never use tabs
#1407: FILE: contrib/virtiofsd/helper.c:123:
+^ICONN_OPTION("time_gran=%u", time_gran, 0),$

ERROR: code indent should never use tabs
#1408: FILE: contrib/virtiofsd/helper.c:124:
+^ICONN_OPTION("time_gran=", set_time_gran, 1),$

ERROR: code indent should never use tabs
#1409: FILE: contrib/virtiofsd/helper.c:125:
+^IFUSE_OPT_END$

ERROR: code indent should never use tabs
#1415: FILE: contrib/virtiofsd/helper.c:131:
+^Iprintf("    -h   --help            print help\n"$

ERROR: code indent should never use tabs
#1416: FILE: contrib/virtiofsd/helper.c:132:
+^I       "    -V   --version         print version\n"$

ERROR: code indent should never use tabs
#1417: FILE: contrib/virtiofsd/helper.c:133:
+^I       "    -d   -o debug          enable debug output (implies -f)\n"$

ERROR: code indent should never use tabs
#1418: FILE: contrib/virtiofsd/helper.c:134:
+^I       "    -f                     foreground operation\n"$

ERROR: code indent should never use tabs
#1419: FILE: contrib/virtiofsd/helper.c:135:
+^I       "    -s                     disable multi-threaded operation\n"$

ERROR: code indent should never use tabs
#1420: FILE: contrib/virtiofsd/helper.c:136:
+^I       "    -o clone_fd            use separate fuse device fd for each thread\n"$

ERROR: code indent should never use tabs
#1421: FILE: contrib/virtiofsd/helper.c:137:
+^I       "                           (may improve performance)\n"$

ERROR: code indent should never use tabs
#1422: FILE: contrib/virtiofsd/helper.c:138:
+^I       "    -o max_idle_threads    the maximum number of idle worker threads\n"$

ERROR: code indent should never use tabs
#1423: FILE: contrib/virtiofsd/helper.c:139:
+^I       "                           allowed (default: 10)\n");$

ERROR: code indent should never use tabs
#1427: FILE: contrib/virtiofsd/helper.c:143:
+^I^I^I^Istruct fuse_args *outargs)$

ERROR: code indent should never use tabs
#1429: FILE: contrib/virtiofsd/helper.c:145:
+^I(void) outargs;$

ERROR: code indent should never use tabs
#1430: FILE: contrib/virtiofsd/helper.c:146:
+^Istruct fuse_cmdline_opts *opts = data;$

ERROR: code indent should never use tabs
#1432: FILE: contrib/virtiofsd/helper.c:148:
+^Iswitch (key) {$

ERROR: code indent should never use tabs
#1433: FILE: contrib/virtiofsd/helper.c:149:
+^Icase FUSE_OPT_KEY_NONOPT:$

ERROR: code indent should never use tabs
#1434: FILE: contrib/virtiofsd/helper.c:150:
+^I^Iif (!opts->mountpoint) {$

ERROR: code indent should never use tabs
#1435: FILE: contrib/virtiofsd/helper.c:151:
+^I^I^Iif (fuse_mnt_parse_fuse_fd(arg) != -1) {$

ERROR: code indent should never use tabs
#1436: FILE: contrib/virtiofsd/helper.c:152:
+^I^I^I^Ireturn fuse_opt_add_opt(&opts->mountpoint, arg);$

ERROR: code indent should never use tabs
#1437: FILE: contrib/virtiofsd/helper.c:153:
+^I^I^I}$

ERROR: code indent should never use tabs
#1439: FILE: contrib/virtiofsd/helper.c:155:
+^I^I^Ichar mountpoint[PATH_MAX] = "";$

ERROR: code indent should never use tabs
#1440: FILE: contrib/virtiofsd/helper.c:156:
+^I^I^Iif (realpath(arg, mountpoint) == NULL) {$

ERROR: code indent should never use tabs
#1441: FILE: contrib/virtiofsd/helper.c:157:
+^I^I^I^Ifuse_log(FUSE_LOG_ERR,$

ERROR: code indent should never use tabs
#1442: FILE: contrib/virtiofsd/helper.c:158:
+^I^I^I^I^I"fuse: bad mount point `%s': %s\n",$

ERROR: code indent should never use tabs
#1443: FILE: contrib/virtiofsd/helper.c:159:
+^I^I^I^I^Iarg, strerror(errno));$

ERROR: code indent should never use tabs
#1444: FILE: contrib/virtiofsd/helper.c:160:
+^I^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1445: FILE: contrib/virtiofsd/helper.c:161:
+^I^I^I}$

ERROR: code indent should never use tabs
#1446: FILE: contrib/virtiofsd/helper.c:162:
+^I^I^Ireturn fuse_opt_add_opt(&opts->mountpoint, mountpoint);$

ERROR: code indent should never use tabs
#1447: FILE: contrib/virtiofsd/helper.c:163:
+^I^I} else {$

WARNING: line over 80 characters
#1448: FILE: contrib/virtiofsd/helper.c:164:
+                       fuse_log(FUSE_LOG_ERR, "fuse: invalid argument `%s'\n", arg);

ERROR: code indent should never use tabs
#1448: FILE: contrib/virtiofsd/helper.c:164:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "fuse: invalid argument `%s'\n", arg);$

ERROR: code indent should never use tabs
#1449: FILE: contrib/virtiofsd/helper.c:165:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1450: FILE: contrib/virtiofsd/helper.c:166:
+^I^I}$

ERROR: code indent should never use tabs
#1452: FILE: contrib/virtiofsd/helper.c:168:
+^Idefault:$

ERROR: code indent should never use tabs
#1453: FILE: contrib/virtiofsd/helper.c:169:
+^I^I/* Pass through unknown options */$

ERROR: code indent should never use tabs
#1454: FILE: contrib/virtiofsd/helper.c:170:
+^I^Ireturn 1;$

ERROR: code indent should never use tabs
#1455: FILE: contrib/virtiofsd/helper.c:171:
+^I}$

WARNING: Block comments use a leading /* on a separate line
#1458: FILE: contrib/virtiofsd/helper.c:174:
+/* Under FreeBSD, there is no subtype option so this

WARNING: Block comments use * on subsequent lines
#1459: FILE: contrib/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
#1459: FILE: contrib/virtiofsd/helper.c:175:
+   function actually sets the fsname */

ERROR: code indent should never use tabs
#1462: FILE: contrib/virtiofsd/helper.c:178:
+^Iint res;$

ERROR: code indent should never use tabs
#1463: FILE: contrib/virtiofsd/helper.c:179:
+^Ichar *subtype_opt;$

ERROR: code indent should never use tabs
#1465: FILE: contrib/virtiofsd/helper.c:181:
+^Iconst char *basename = strrchr(progname, '/');$

ERROR: code indent should never use tabs
#1466: FILE: contrib/virtiofsd/helper.c:182:
+^Iif (basename == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#1466: FILE: contrib/virtiofsd/helper.c:182:
+       if (basename == NULL)
[...]
+       else if (basename[1] != '\0')
[...]

ERROR: code indent should never use tabs
#1467: FILE: contrib/virtiofsd/helper.c:183:
+^I^Ibasename = progname;$

ERROR: code indent should never use tabs
#1468: FILE: contrib/virtiofsd/helper.c:184:
+^Ielse if (basename[1] != '\0')$

ERROR: braces {} are necessary for all arms of this statement
#1468: FILE: contrib/virtiofsd/helper.c:184:
+       else if (basename[1] != '\0')
[...]

ERROR: code indent should never use tabs
#1469: FILE: contrib/virtiofsd/helper.c:185:
+^I^Ibasename++;$

ERROR: code indent should never use tabs
#1471: FILE: contrib/virtiofsd/helper.c:187:
+^Isubtype_opt = (char *) malloc(strlen(basename) + 64);$

ERROR: code indent should never use tabs
#1472: FILE: contrib/virtiofsd/helper.c:188:
+^Iif (subtype_opt == NULL) {$

ERROR: code indent should never use tabs
#1473: FILE: contrib/virtiofsd/helper.c:189:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: memory allocation failed\n");$

ERROR: code indent should never use tabs
#1474: FILE: contrib/virtiofsd/helper.c:190:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1475: FILE: contrib/virtiofsd/helper.c:191:
+^I}$

WARNING: architecture specific defines should be avoided
#1476: FILE: contrib/virtiofsd/helper.c:192:
+#ifdef __FreeBSD__

ERROR: code indent should never use tabs
#1477: FILE: contrib/virtiofsd/helper.c:193:
+^Isprintf(subtype_opt, "-ofsname=%s", basename);$

ERROR: code indent should never use tabs
#1479: FILE: contrib/virtiofsd/helper.c:195:
+^Isprintf(subtype_opt, "-osubtype=%s", basename);$

ERROR: code indent should never use tabs
#1481: FILE: contrib/virtiofsd/helper.c:197:
+^Ires = fuse_opt_add_arg(args, subtype_opt);$

ERROR: code indent should never use tabs
#1482: FILE: contrib/virtiofsd/helper.c:198:
+^Ifree(subtype_opt);$

ERROR: code indent should never use tabs
#1483: FILE: contrib/virtiofsd/helper.c:199:
+^Ireturn res;$

ERROR: code indent should never use tabs
#1487: FILE: contrib/virtiofsd/helper.c:203:
+^I^I       struct fuse_cmdline_opts *opts)$

ERROR: code indent should never use tabs
#1489: FILE: contrib/virtiofsd/helper.c:205:
+^Imemset(opts, 0, sizeof(struct fuse_cmdline_opts));$

ERROR: code indent should never use tabs
#1491: FILE: contrib/virtiofsd/helper.c:207:
+^Iopts->max_idle_threads = 10;$

ERROR: code indent should never use tabs
#1493: FILE: contrib/virtiofsd/helper.c:209:
+^Iif (fuse_opt_parse(args, opts, fuse_helper_opts,$

ERROR: code indent should never use tabs
#1494: FILE: contrib/virtiofsd/helper.c:210:
+^I^I^I   fuse_helper_opt_proc) == -1)$

ERROR: code indent should never use tabs
#1495: FILE: contrib/virtiofsd/helper.c:211:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1497: FILE: contrib/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
#1497: FILE: contrib/virtiofsd/helper.c:213:
+       /* *Linux*: if neither -o subtype nor -o fsname are specified,

ERROR: code indent should never use tabs
#1498: FILE: contrib/virtiofsd/helper.c:214:
+^I   set subtype to program's basename.$

WARNING: Block comments use * on subsequent lines
#1498: FILE: contrib/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
#1499: FILE: contrib/virtiofsd/helper.c:215:
+^I   *FreeBSD*: if fsname is not specified, set to program's$

ERROR: code indent should never use tabs
#1500: FILE: contrib/virtiofsd/helper.c:216:
+^I   basename. */$

WARNING: Block comments use a trailing */ on a separate line
#1500: FILE: contrib/virtiofsd/helper.c:216:
+          basename. */

ERROR: code indent should never use tabs
#1501: FILE: contrib/virtiofsd/helper.c:217:
+^Iif (!opts->nodefault_subtype)$

ERROR: code indent should never use tabs
#1502: FILE: contrib/virtiofsd/helper.c:218:
+^I^Iif (add_default_subtype(args->argv[0], args) == -1)$

ERROR: braces {} are necessary for all arms of this statement
#1502: FILE: contrib/virtiofsd/helper.c:218:
+               if (add_default_subtype(args->argv[0], args) == -1)
[...]

ERROR: code indent should never use tabs
#1503: FILE: contrib/virtiofsd/helper.c:219:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1505: FILE: contrib/virtiofsd/helper.c:221:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#1511: FILE: contrib/virtiofsd/helper.c:227:
+^Iif (!foreground) {$

ERROR: code indent should never use tabs
#1512: FILE: contrib/virtiofsd/helper.c:228:
+^I^Iint nullfd;$

ERROR: code indent should never use tabs
#1513: FILE: contrib/virtiofsd/helper.c:229:
+^I^Iint waiter[2];$

ERROR: code indent should never use tabs
#1514: FILE: contrib/virtiofsd/helper.c:230:
+^I^Ichar completed;$

ERROR: code indent should never use tabs
#1516: FILE: contrib/virtiofsd/helper.c:232:
+^I^Iif (pipe(waiter)) {$

ERROR: code indent should never use tabs
#1517: FILE: contrib/virtiofsd/helper.c:233:
+^I^I^Iperror("fuse_daemonize: pipe");$

ERROR: code indent should never use tabs
#1518: FILE: contrib/virtiofsd/helper.c:234:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1519: FILE: contrib/virtiofsd/helper.c:235:
+^I^I}$

ERROR: code indent should never use tabs
#1521: FILE: contrib/virtiofsd/helper.c:237:
+^I^I/*$

ERROR: code indent should never use tabs
#1522: FILE: contrib/virtiofsd/helper.c:238:
+^I^I * demonize current process by forking it and killing the$

ERROR: code indent should never use tabs
#1523: FILE: contrib/virtiofsd/helper.c:239:
+^I^I * parent.  This makes current process as a child of 'init'.$

ERROR: code indent should never use tabs
#1524: FILE: contrib/virtiofsd/helper.c:240:
+^I^I */$

ERROR: code indent should never use tabs
#1525: FILE: contrib/virtiofsd/helper.c:241:
+^I^Iswitch(fork()) {$

ERROR: space required before the open parenthesis '('
#1525: FILE: contrib/virtiofsd/helper.c:241:
+               switch(fork()) {

ERROR: code indent should never use tabs
#1526: FILE: contrib/virtiofsd/helper.c:242:
+^I^Icase -1:$

ERROR: code indent should never use tabs
#1527: FILE: contrib/virtiofsd/helper.c:243:
+^I^I^Iperror("fuse_daemonize: fork");$

ERROR: code indent should never use tabs
#1528: FILE: contrib/virtiofsd/helper.c:244:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1529: FILE: contrib/virtiofsd/helper.c:245:
+^I^Icase 0:$

ERROR: code indent should never use tabs
#1530: FILE: contrib/virtiofsd/helper.c:246:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#1531: FILE: contrib/virtiofsd/helper.c:247:
+^I^Idefault:$

ERROR: code indent should never use tabs
#1532: FILE: contrib/virtiofsd/helper.c:248:
+^I^I^I(void) read(waiter[0], &completed, sizeof(completed));$

ERROR: code indent should never use tabs
#1533: FILE: contrib/virtiofsd/helper.c:249:
+^I^I^I_exit(0);$

ERROR: code indent should never use tabs
#1534: FILE: contrib/virtiofsd/helper.c:250:
+^I^I}$

ERROR: code indent should never use tabs
#1536: FILE: contrib/virtiofsd/helper.c:252:
+^I^Iif (setsid() == -1) {$

ERROR: code indent should never use tabs
#1537: FILE: contrib/virtiofsd/helper.c:253:
+^I^I^Iperror("fuse_daemonize: setsid");$

ERROR: code indent should never use tabs
#1538: FILE: contrib/virtiofsd/helper.c:254:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1539: FILE: contrib/virtiofsd/helper.c:255:
+^I^I}$

ERROR: code indent should never use tabs
#1541: FILE: contrib/virtiofsd/helper.c:257:
+^I^I(void) chdir("/");$

ERROR: code indent should never use tabs
#1543: FILE: contrib/virtiofsd/helper.c:259:
+^I^Inullfd = open("/dev/null", O_RDWR, 0);$

ERROR: code indent should never use tabs
#1544: FILE: contrib/virtiofsd/helper.c:260:
+^I^Iif (nullfd != -1) {$

ERROR: code indent should never use tabs
#1545: FILE: contrib/virtiofsd/helper.c:261:
+^I^I^I(void) dup2(nullfd, 0);$

ERROR: code indent should never use tabs
#1546: FILE: contrib/virtiofsd/helper.c:262:
+^I^I^I(void) dup2(nullfd, 1);$

ERROR: code indent should never use tabs
#1547: FILE: contrib/virtiofsd/helper.c:263:
+^I^I^I(void) dup2(nullfd, 2);$

ERROR: code indent should never use tabs
#1548: FILE: contrib/virtiofsd/helper.c:264:
+^I^I^Iif (nullfd > 2)$

ERROR: braces {} are necessary for all arms of this statement
#1548: FILE: contrib/virtiofsd/helper.c:264:
+                       if (nullfd > 2)
[...]

ERROR: code indent should never use tabs
#1549: FILE: contrib/virtiofsd/helper.c:265:
+^I^I^I^Iclose(nullfd);$

ERROR: code indent should never use tabs
#1550: FILE: contrib/virtiofsd/helper.c:266:
+^I^I}$

ERROR: code indent should never use tabs
#1552: FILE: contrib/virtiofsd/helper.c:268:
+^I^I/* Propagate completion of daemon initialization */$

ERROR: code indent should never use tabs
#1553: FILE: contrib/virtiofsd/helper.c:269:
+^I^Icompleted = 1;$

ERROR: code indent should never use tabs
#1554: FILE: contrib/virtiofsd/helper.c:270:
+^I^I(void) write(waiter[1], &completed, sizeof(completed));$

ERROR: code indent should never use tabs
#1555: FILE: contrib/virtiofsd/helper.c:271:
+^I^Iclose(waiter[0]);$

ERROR: code indent should never use tabs
#1556: FILE: contrib/virtiofsd/helper.c:272:
+^I^Iclose(waiter[1]);$

ERROR: code indent should never use tabs
#1557: FILE: contrib/virtiofsd/helper.c:273:
+^I} else {$

ERROR: code indent should never use tabs
#1558: FILE: contrib/virtiofsd/helper.c:274:
+^I^I(void) chdir("/");$

ERROR: code indent should never use tabs
#1559: FILE: contrib/virtiofsd/helper.c:275:
+^I}$

ERROR: code indent should never use tabs
#1560: FILE: contrib/virtiofsd/helper.c:276:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#1564: FILE: contrib/virtiofsd/helper.c:280:
+^I^I   size_t op_size, void *user_data)$

ERROR: code indent should never use tabs
#1566: FILE: contrib/virtiofsd/helper.c:282:
+^Istruct fuse_args args = FUSE_ARGS_INIT(argc, argv);$

ERROR: code indent should never use tabs
#1567: FILE: contrib/virtiofsd/helper.c:283:
+^Istruct fuse *fuse;$

ERROR: code indent should never use tabs
#1568: FILE: contrib/virtiofsd/helper.c:284:
+^Istruct fuse_cmdline_opts opts;$

ERROR: code indent should never use tabs
#1569: FILE: contrib/virtiofsd/helper.c:285:
+^Iint res;$

ERROR: code indent should never use tabs
#1571: FILE: contrib/virtiofsd/helper.c:287:
+^Iif (fuse_parse_cmdline(&args, &opts) != 0)$

ERROR: braces {} are necessary for all arms of this statement
#1571: FILE: contrib/virtiofsd/helper.c:287:
+       if (fuse_parse_cmdline(&args, &opts) != 0)
[...]

ERROR: code indent should never use tabs
#1572: FILE: contrib/virtiofsd/helper.c:288:
+^I^Ireturn 1;$

ERROR: code indent should never use tabs
#1574: FILE: contrib/virtiofsd/helper.c:290:
+^Iif (opts.show_version) {$

ERROR: code indent should never use tabs
#1575: FILE: contrib/virtiofsd/helper.c:291:
+^I^Iprintf("FUSE library version %s\n", PACKAGE_VERSION);$

ERROR: code indent should never use tabs
#1576: FILE: contrib/virtiofsd/helper.c:292:
+^I^Ifuse_lowlevel_version();$

ERROR: code indent should never use tabs
#1577: FILE: contrib/virtiofsd/helper.c:293:
+^I^Ires = 0;$

ERROR: code indent should never use tabs
#1578: FILE: contrib/virtiofsd/helper.c:294:
+^I^Igoto out1;$

ERROR: code indent should never use tabs
#1579: FILE: contrib/virtiofsd/helper.c:295:
+^I}$

ERROR: code indent should never use tabs
#1581: FILE: contrib/virtiofsd/helper.c:297:
+^Iif (opts.show_help) {$

ERROR: code indent should never use tabs
#1582: FILE: contrib/virtiofsd/helper.c:298:
+^I^Iif(args.argv[0][0] != '\0')$

ERROR: space required before the open parenthesis '('
#1582: FILE: contrib/virtiofsd/helper.c:298:
+               if(args.argv[0][0] != '\0')

ERROR: code indent should never use tabs
#1583: FILE: contrib/virtiofsd/helper.c:299:
+^I^I^Iprintf("usage: %s [options] <mountpoint>\n\n",$

ERROR: code indent should never use tabs
#1584: FILE: contrib/virtiofsd/helper.c:300:
+^I^I^I       args.argv[0]);$

ERROR: code indent should never use tabs
#1585: FILE: contrib/virtiofsd/helper.c:301:
+^I^Iprintf("FUSE options:\n");$

ERROR: code indent should never use tabs
#1586: FILE: contrib/virtiofsd/helper.c:302:
+^I^Ifuse_cmdline_help();$

ERROR: code indent should never use tabs
#1587: FILE: contrib/virtiofsd/helper.c:303:
+^I^Ifuse_lib_help(&args);$

ERROR: code indent should never use tabs
#1588: FILE: contrib/virtiofsd/helper.c:304:
+^I^Ires = 0;$

ERROR: code indent should never use tabs
#1589: FILE: contrib/virtiofsd/helper.c:305:
+^I^Igoto out1;$

ERROR: code indent should never use tabs
#1590: FILE: contrib/virtiofsd/helper.c:306:
+^I}$

ERROR: code indent should never use tabs
#1592: FILE: contrib/virtiofsd/helper.c:308:
+^Iif (!opts.show_help &&$

ERROR: code indent should never use tabs
#1593: FILE: contrib/virtiofsd/helper.c:309:
+^I    !opts.mountpoint) {$

ERROR: code indent should never use tabs
#1594: FILE: contrib/virtiofsd/helper.c:310:
+^I^Ifuse_log(FUSE_LOG_ERR, "error: no mountpoint specified\n");$

ERROR: code indent should never use tabs
#1595: FILE: contrib/virtiofsd/helper.c:311:
+^I^Ires = 2;$

ERROR: code indent should never use tabs
#1596: FILE: contrib/virtiofsd/helper.c:312:
+^I^Igoto out1;$

ERROR: code indent should never use tabs
#1597: FILE: contrib/virtiofsd/helper.c:313:
+^I}$

ERROR: code indent should never use tabs
#1600: FILE: contrib/virtiofsd/helper.c:316:
+^Ifuse = fuse_new_31(&args, op, op_size, user_data);$

ERROR: code indent should never use tabs
#1601: FILE: contrib/virtiofsd/helper.c:317:
+^Iif (fuse == NULL) {$

ERROR: code indent should never use tabs
#1602: FILE: contrib/virtiofsd/helper.c:318:
+^I^Ires = 3;$

ERROR: code indent should never use tabs
#1603: FILE: contrib/virtiofsd/helper.c:319:
+^I^Igoto out1;$

ERROR: code indent should never use tabs
#1604: FILE: contrib/virtiofsd/helper.c:320:
+^I}$

ERROR: code indent should never use tabs
#1606: FILE: contrib/virtiofsd/helper.c:322:
+^Iif (fuse_mount(fuse,opts.mountpoint) != 0) {$

ERROR: space required after that ',' (ctx:VxV)
#1606: FILE: contrib/virtiofsd/helper.c:322:
+       if (fuse_mount(fuse,opts.mountpoint) != 0) {
                           ^

ERROR: code indent should never use tabs
#1607: FILE: contrib/virtiofsd/helper.c:323:
+^I^Ires = 4;$

ERROR: code indent should never use tabs
#1608: FILE: contrib/virtiofsd/helper.c:324:
+^I^Igoto out2;$

ERROR: code indent should never use tabs
#1609: FILE: contrib/virtiofsd/helper.c:325:
+^I}$

ERROR: code indent should never use tabs
#1611: FILE: contrib/virtiofsd/helper.c:327:
+^Iif (fuse_daemonize(opts.foreground) != 0) {$

ERROR: code indent should never use tabs
#1612: FILE: contrib/virtiofsd/helper.c:328:
+^I^Ires = 5;$

ERROR: code indent should never use tabs
#1613: FILE: contrib/virtiofsd/helper.c:329:
+^I^Igoto out3;$

ERROR: code indent should never use tabs
#1614: FILE: contrib/virtiofsd/helper.c:330:
+^I}$

ERROR: code indent should never use tabs
#1616: FILE: contrib/virtiofsd/helper.c:332:
+^Istruct fuse_session *se = fuse_get_session(fuse);$

ERROR: code indent should never use tabs
#1617: FILE: contrib/virtiofsd/helper.c:333:
+^Iif (fuse_set_signal_handlers(se) != 0) {$

ERROR: code indent should never use tabs
#1618: FILE: contrib/virtiofsd/helper.c:334:
+^I^Ires = 6;$

ERROR: code indent should never use tabs
#1619: FILE: contrib/virtiofsd/helper.c:335:
+^I^Igoto out3;$

ERROR: code indent should never use tabs
#1620: FILE: contrib/virtiofsd/helper.c:336:
+^I}$

ERROR: code indent should never use tabs
#1622: FILE: contrib/virtiofsd/helper.c:338:
+^Iif (opts.singlethread)$

ERROR: code indent should never use tabs
#1623: FILE: contrib/virtiofsd/helper.c:339:
+^I^Ires = fuse_loop(fuse);$

ERROR: code indent should never use tabs
#1624: FILE: contrib/virtiofsd/helper.c:340:
+^Ielse {$

ERROR: code indent should never use tabs
#1625: FILE: contrib/virtiofsd/helper.c:341:
+^I^Istruct fuse_loop_config loop_config;$

ERROR: code indent should never use tabs
#1626: FILE: contrib/virtiofsd/helper.c:342:
+^I^Iloop_config.clone_fd = opts.clone_fd;$

ERROR: code indent should never use tabs
#1627: FILE: contrib/virtiofsd/helper.c:343:
+^I^Iloop_config.max_idle_threads = opts.max_idle_threads;$

ERROR: code indent should never use tabs
#1628: FILE: contrib/virtiofsd/helper.c:344:
+^I^Ires = fuse_loop_mt_32(fuse, &loop_config);$

ERROR: code indent should never use tabs
#1629: FILE: contrib/virtiofsd/helper.c:345:
+^I}$

ERROR: code indent should never use tabs
#1630: FILE: contrib/virtiofsd/helper.c:346:
+^Iif (res)$

ERROR: braces {} are necessary for all arms of this statement
#1630: FILE: contrib/virtiofsd/helper.c:346:
+       if (res)
[...]

ERROR: code indent should never use tabs
#1631: FILE: contrib/virtiofsd/helper.c:347:
+^I^Ires = 7;$

ERROR: code indent should never use tabs
#1633: FILE: contrib/virtiofsd/helper.c:349:
+^Ifuse_remove_signal_handlers(se);$

ERROR: code indent should never use tabs
#1635: FILE: contrib/virtiofsd/helper.c:351:
+^Ifuse_unmount(fuse);$

ERROR: code indent should never use tabs
#1637: FILE: contrib/virtiofsd/helper.c:353:
+^Ifuse_destroy(fuse);$

ERROR: code indent should never use tabs
#1639: FILE: contrib/virtiofsd/helper.c:355:
+^Ifree(opts.mountpoint);$

ERROR: code indent should never use tabs
#1640: FILE: contrib/virtiofsd/helper.c:356:
+^Ifuse_opt_free_args(&args);$

ERROR: code indent should never use tabs
#1641: FILE: contrib/virtiofsd/helper.c:357:
+^Ireturn res;$

ERROR: code indent should never use tabs
#1646: FILE: contrib/virtiofsd/helper.c:362:
+^I^I^I       struct fuse_conn_info *conn)$

ERROR: code indent should never use tabs
#1648: FILE: contrib/virtiofsd/helper.c:364:
+^Iif(opts->set_max_write)$

ERROR: space required before the open parenthesis '('
#1648: FILE: contrib/virtiofsd/helper.c:364:
+       if(opts->set_max_write)

ERROR: braces {} are necessary for all arms of this statement
#1648: FILE: contrib/virtiofsd/helper.c:364:
+       if(opts->set_max_write)
[...]

ERROR: code indent should never use tabs
#1649: FILE: contrib/virtiofsd/helper.c:365:
+^I^Iconn->max_write = opts->max_write;$

ERROR: code indent should never use tabs
#1650: FILE: contrib/virtiofsd/helper.c:366:
+^Iif(opts->set_max_background)$

ERROR: space required before the open parenthesis '('
#1650: FILE: contrib/virtiofsd/helper.c:366:
+       if(opts->set_max_background)

ERROR: braces {} are necessary for all arms of this statement
#1650: FILE: contrib/virtiofsd/helper.c:366:
+       if(opts->set_max_background)
[...]

ERROR: code indent should never use tabs
#1651: FILE: contrib/virtiofsd/helper.c:367:
+^I^Iconn->max_background = opts->max_background;$

ERROR: code indent should never use tabs
#1652: FILE: contrib/virtiofsd/helper.c:368:
+^Iif(opts->set_congestion_threshold)$

ERROR: space required before the open parenthesis '('
#1652: FILE: contrib/virtiofsd/helper.c:368:
+       if(opts->set_congestion_threshold)

ERROR: braces {} are necessary for all arms of this statement
#1652: FILE: contrib/virtiofsd/helper.c:368:
+       if(opts->set_congestion_threshold)
[...]

ERROR: code indent should never use tabs
#1653: FILE: contrib/virtiofsd/helper.c:369:
+^I^Iconn->congestion_threshold = opts->congestion_threshold;$

ERROR: code indent should never use tabs
#1654: FILE: contrib/virtiofsd/helper.c:370:
+^Iif(opts->set_time_gran)$

ERROR: space required before the open parenthesis '('
#1654: FILE: contrib/virtiofsd/helper.c:370:
+       if(opts->set_time_gran)

ERROR: braces {} are necessary for all arms of this statement
#1654: FILE: contrib/virtiofsd/helper.c:370:
+       if(opts->set_time_gran)
[...]

ERROR: code indent should never use tabs
#1655: FILE: contrib/virtiofsd/helper.c:371:
+^I^Iconn->time_gran = opts->time_gran;$

ERROR: code indent should never use tabs
#1656: FILE: contrib/virtiofsd/helper.c:372:
+^Iif(opts->set_max_readahead)$

ERROR: space required before the open parenthesis '('
#1656: FILE: contrib/virtiofsd/helper.c:372:
+       if(opts->set_max_readahead)

ERROR: braces {} are necessary for all arms of this statement
#1656: FILE: contrib/virtiofsd/helper.c:372:
+       if(opts->set_max_readahead)
[...]

ERROR: code indent should never use tabs
#1657: FILE: contrib/virtiofsd/helper.c:373:
+^I^Iconn->max_readahead = opts->max_readahead;$

ERROR: space required after that ',' (ctx:VxV)
#1659: FILE: contrib/virtiofsd/helper.c:375:
+#define LL_ENABLE(cond,cap) \
                       ^

ERROR: Macros with complex values should be enclosed in parenthesis
#1659: FILE: contrib/virtiofsd/helper.c:375:
+#define LL_ENABLE(cond,cap) \
+       if (cond) conn->want |= (cap)

ERROR: code indent should never use tabs
#1660: FILE: contrib/virtiofsd/helper.c:376:
+^Iif (cond) conn->want |= (cap)$

ERROR: trailing statements should be on next line
#1660: FILE: contrib/virtiofsd/helper.c:376:
+       if (cond) conn->want |= (cap)

ERROR: space required after that ',' (ctx:VxV)
#1661: FILE: contrib/virtiofsd/helper.c:377:
+#define LL_DISABLE(cond,cap) \
                        ^

ERROR: Macros with complex values should be enclosed in parenthesis
#1661: FILE: contrib/virtiofsd/helper.c:377:
+#define LL_DISABLE(cond,cap) \
+       if (cond) conn->want &= ~(cap)

ERROR: code indent should never use tabs
#1662: FILE: contrib/virtiofsd/helper.c:378:
+^Iif (cond) conn->want &= ~(cap)$

ERROR: trailing statements should be on next line
#1662: FILE: contrib/virtiofsd/helper.c:378:
+       if (cond) conn->want &= ~(cap)

ERROR: code indent should never use tabs
#1664: FILE: contrib/virtiofsd/helper.c:380:
+^ILL_ENABLE(opts->splice_read, FUSE_CAP_SPLICE_READ);$

ERROR: code indent should never use tabs
#1665: FILE: contrib/virtiofsd/helper.c:381:
+^ILL_DISABLE(opts->no_splice_read, FUSE_CAP_SPLICE_READ);$

ERROR: code indent should never use tabs
#1667: FILE: contrib/virtiofsd/helper.c:383:
+^ILL_ENABLE(opts->splice_write, FUSE_CAP_SPLICE_WRITE);$

ERROR: code indent should never use tabs
#1668: FILE: contrib/virtiofsd/helper.c:384:
+^ILL_DISABLE(opts->no_splice_write, FUSE_CAP_SPLICE_WRITE);$

ERROR: code indent should never use tabs
#1670: FILE: contrib/virtiofsd/helper.c:386:
+^ILL_ENABLE(opts->splice_move, FUSE_CAP_SPLICE_MOVE);$

ERROR: code indent should never use tabs
#1671: FILE: contrib/virtiofsd/helper.c:387:
+^ILL_DISABLE(opts->no_splice_move, FUSE_CAP_SPLICE_MOVE);$

ERROR: code indent should never use tabs
#1673: FILE: contrib/virtiofsd/helper.c:389:
+^ILL_ENABLE(opts->auto_inval_data, FUSE_CAP_AUTO_INVAL_DATA);$

ERROR: code indent should never use tabs
#1674: FILE: contrib/virtiofsd/helper.c:390:
+^ILL_DISABLE(opts->no_auto_inval_data, FUSE_CAP_AUTO_INVAL_DATA);$

ERROR: code indent should never use tabs
#1676: FILE: contrib/virtiofsd/helper.c:392:
+^ILL_DISABLE(opts->no_readdirplus, FUSE_CAP_READDIRPLUS);$

ERROR: code indent should never use tabs
#1677: FILE: contrib/virtiofsd/helper.c:393:
+^ILL_DISABLE(opts->no_readdirplus_auto, FUSE_CAP_READDIRPLUS_AUTO);$

ERROR: code indent should never use tabs
#1679: FILE: contrib/virtiofsd/helper.c:395:
+^ILL_ENABLE(opts->async_dio, FUSE_CAP_ASYNC_DIO);$

ERROR: code indent should never use tabs
#1680: FILE: contrib/virtiofsd/helper.c:396:
+^ILL_DISABLE(opts->no_async_dio, FUSE_CAP_ASYNC_DIO);$

ERROR: code indent should never use tabs
#1682: FILE: contrib/virtiofsd/helper.c:398:
+^ILL_ENABLE(opts->writeback_cache, FUSE_CAP_WRITEBACK_CACHE);$

ERROR: code indent should never use tabs
#1683: FILE: contrib/virtiofsd/helper.c:399:
+^ILL_DISABLE(opts->no_writeback_cache, FUSE_CAP_WRITEBACK_CACHE);$

ERROR: code indent should never use tabs
#1685: FILE: contrib/virtiofsd/helper.c:401:
+^ILL_ENABLE(opts->async_read, FUSE_CAP_ASYNC_READ);$

ERROR: code indent should never use tabs
#1686: FILE: contrib/virtiofsd/helper.c:402:
+^ILL_DISABLE(opts->sync_read, FUSE_CAP_ASYNC_READ);$

ERROR: code indent should never use tabs
#1688: FILE: contrib/virtiofsd/helper.c:404:
+^ILL_DISABLE(opts->no_remote_posix_lock, FUSE_CAP_POSIX_LOCKS);$

ERROR: code indent should never use tabs
#1689: FILE: contrib/virtiofsd/helper.c:405:
+^ILL_DISABLE(opts->no_remote_flock, FUSE_CAP_FLOCK_LOCKS);$

ERROR: "foo* bar" should be "foo *bar"
#1692: FILE: contrib/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
#1694: FILE: contrib/virtiofsd/helper.c:410:
+^Istruct fuse_conn_info_opts *opts;$

ERROR: code indent should never use tabs
#1696: FILE: contrib/virtiofsd/helper.c:412:
+^Iopts = calloc(1, sizeof(struct fuse_conn_info_opts));$

ERROR: code indent should never use tabs
#1697: FILE: contrib/virtiofsd/helper.c:413:
+^Iif(opts == NULL) {$

ERROR: space required before the open parenthesis '('
#1697: FILE: contrib/virtiofsd/helper.c:413:
+       if(opts == NULL) {

ERROR: code indent should never use tabs
#1698: FILE: contrib/virtiofsd/helper.c:414:
+^I^Ifuse_log(FUSE_LOG_ERR, "calloc failed\n");$

ERROR: code indent should never use tabs
#1699: FILE: contrib/virtiofsd/helper.c:415:
+^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#1700: FILE: contrib/virtiofsd/helper.c:416:
+^I}$

ERROR: code indent should never use tabs
#1701: FILE: contrib/virtiofsd/helper.c:417:
+^Iif(fuse_opt_parse(args, opts, conn_info_opt_spec, NULL) == -1) {$

ERROR: space required before the open parenthesis '('
#1701: FILE: contrib/virtiofsd/helper.c:417:
+       if(fuse_opt_parse(args, opts, conn_info_opt_spec, NULL) == -1) {

ERROR: code indent should never use tabs
#1702: FILE: contrib/virtiofsd/helper.c:418:
+^I^Ifree(opts);$

ERROR: code indent should never use tabs
#1703: FILE: contrib/virtiofsd/helper.c:419:
+^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#1704: FILE: contrib/virtiofsd/helper.c:420:
+^I}$

ERROR: code indent should never use tabs
#1705: FILE: contrib/virtiofsd/helper.c:421:
+^Ireturn opts;$

ERROR: code indent should never use tabs
#1710: FILE: contrib/virtiofsd/helper.c:426:
+^Istruct mount_opts *opts = NULL;$

ERROR: code indent should never use tabs
#1711: FILE: contrib/virtiofsd/helper.c:427:
+^Iint fd = -1;$

ERROR: code indent should never use tabs
#1712: FILE: contrib/virtiofsd/helper.c:428:
+^Iconst char *argv[] = { "", "-o", options };$

ERROR: code indent should never use tabs
#1713: FILE: contrib/virtiofsd/helper.c:429:
+^Iint argc = sizeof(argv) / sizeof(argv[0]);$

ERROR: code indent should never use tabs
#1714: FILE: contrib/virtiofsd/helper.c:430:
+^Istruct fuse_args args = FUSE_ARGS_INIT(argc, (char**) argv);$

ERROR: "(foo**)" should be "(foo **)"
#1714: FILE: contrib/virtiofsd/helper.c:430:
+       struct fuse_args args = FUSE_ARGS_INIT(argc, (char**) argv);

ERROR: code indent should never use tabs
#1716: FILE: contrib/virtiofsd/helper.c:432:
+^Iopts = parse_mount_opts(&args);$

ERROR: code indent should never use tabs
#1717: FILE: contrib/virtiofsd/helper.c:433:
+^Iif (opts == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#1717: FILE: contrib/virtiofsd/helper.c:433:
+       if (opts == NULL)
[...]

ERROR: code indent should never use tabs
#1718: FILE: contrib/virtiofsd/helper.c:434:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#1720: FILE: contrib/virtiofsd/helper.c:436:
+^Ifd = fuse_kern_mount(mountpoint, opts);$

ERROR: code indent should never use tabs
#1721: FILE: contrib/virtiofsd/helper.c:437:
+^Idestroy_mount_opts(opts);$

ERROR: code indent should never use tabs
#1723: FILE: contrib/virtiofsd/helper.c:439:
+^Ireturn fd;$

total: 1201 errors, 25 warnings, 1677 lines checked

Patch 3/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

4/30 Checking commit 0b0bed535c36 (virtiofsd: Add fuse_lowlevel.c)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#16: 
new file mode 100644

WARNING: Block comments use * on subsequent lines
#22: FILE: contrib/virtiofsd/fuse_lowlevel.c:2:
+/*
+  FUSE: Filesystem in Userspace

ERROR: code indent should never use tabs
#55: FILE: contrib/virtiofsd/fuse_lowlevel.c:35:
+#define F_SETPIPE_SZ^I(F_LINUX_SPECIFIC_BASE + 7)$

ERROR: code indent should never use tabs
#62: FILE: contrib/virtiofsd/fuse_lowlevel.c:42:
+#define container_of(ptr, type, member) ({^I^I^I^I\$

ERROR: code indent should never use tabs
#63: FILE: contrib/virtiofsd/fuse_lowlevel.c:43:
+^I^I^Iconst typeof( ((type *)0)->member ) *__mptr = (ptr); \$

ERROR: spaces required around that '*' (ctx:WxV)
#63: FILE: contrib/virtiofsd/fuse_lowlevel.c:43:
+                       const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                            ^

ERROR: space prohibited after that open parenthesis '('
#63: FILE: contrib/virtiofsd/fuse_lowlevel.c:43:
+                       const typeof( ((type *)0)->member ) *__mptr = (ptr); \

ERROR: space prohibited before that close parenthesis ')'
#63: FILE: contrib/virtiofsd/fuse_lowlevel.c:43:
+                       const typeof( ((type *)0)->member ) *__mptr = (ptr); \

ERROR: code indent should never use tabs
#64: FILE: contrib/virtiofsd/fuse_lowlevel.c:44:
+^I^I^I(type *)( (char *)__mptr - offsetof(type,member) );})$

ERROR: space required after that ',' (ctx:VxV)
#64: FILE: contrib/virtiofsd/fuse_lowlevel.c:44:
+                       (type *)( (char *)__mptr - offsetof(type,member) );})
                                                                ^

ERROR: space required after that ';' (ctx:VxV)
#64: FILE: contrib/virtiofsd/fuse_lowlevel.c:44:
+                       (type *)( (char *)__mptr - offsetof(type,member) );})
                                                                          ^

ERROR: space prohibited after that open parenthesis '('
#64: FILE: contrib/virtiofsd/fuse_lowlevel.c:44:
+                       (type *)( (char *)__mptr - offsetof(type,member) );})

ERROR: space prohibited before that close parenthesis ')'
#64: FILE: contrib/virtiofsd/fuse_lowlevel.c:44:
+                       (type *)( (char *)__mptr - offsetof(type,member) );})

ERROR: code indent should never use tabs
#67: FILE: contrib/virtiofsd/fuse_lowlevel.c:47:
+^Iuint64_t kh;$

ERROR: code indent should never use tabs
#68: FILE: contrib/virtiofsd/fuse_lowlevel.c:48:
+^Istruct fuse_session *se;$

ERROR: code indent should never use tabs
#75: FILE: contrib/virtiofsd/fuse_lowlevel.c:55:
+^Ipagesize = getpagesize();$

ERROR: code indent should never use tabs
#80: FILE: contrib/virtiofsd/fuse_lowlevel.c:60:
+^Iattr->ino^I= stbuf->st_ino;$

ERROR: code indent should never use tabs
#81: FILE: contrib/virtiofsd/fuse_lowlevel.c:61:
+^Iattr->mode^I= stbuf->st_mode;$

ERROR: code indent should never use tabs
#82: FILE: contrib/virtiofsd/fuse_lowlevel.c:62:
+^Iattr->nlink^I= stbuf->st_nlink;$

ERROR: code indent should never use tabs
#83: FILE: contrib/virtiofsd/fuse_lowlevel.c:63:
+^Iattr->uid^I= stbuf->st_uid;$

ERROR: code indent should never use tabs
#84: FILE: contrib/virtiofsd/fuse_lowlevel.c:64:
+^Iattr->gid^I= stbuf->st_gid;$

ERROR: code indent should never use tabs
#85: FILE: contrib/virtiofsd/fuse_lowlevel.c:65:
+^Iattr->rdev^I= stbuf->st_rdev;$

ERROR: code indent should never use tabs
#86: FILE: contrib/virtiofsd/fuse_lowlevel.c:66:
+^Iattr->size^I= stbuf->st_size;$

ERROR: code indent should never use tabs
#87: FILE: contrib/virtiofsd/fuse_lowlevel.c:67:
+^Iattr->blksize^I= stbuf->st_blksize;$

ERROR: code indent should never use tabs
#88: FILE: contrib/virtiofsd/fuse_lowlevel.c:68:
+^Iattr->blocks^I= stbuf->st_blocks;$

ERROR: code indent should never use tabs
#89: FILE: contrib/virtiofsd/fuse_lowlevel.c:69:
+^Iattr->atime^I= stbuf->st_atime;$

ERROR: code indent should never use tabs
#90: FILE: contrib/virtiofsd/fuse_lowlevel.c:70:
+^Iattr->mtime^I= stbuf->st_mtime;$

ERROR: code indent should never use tabs
#91: FILE: contrib/virtiofsd/fuse_lowlevel.c:71:
+^Iattr->ctime^I= stbuf->st_ctime;$

ERROR: code indent should never use tabs
#92: FILE: contrib/virtiofsd/fuse_lowlevel.c:72:
+^Iattr->atimensec = ST_ATIM_NSEC(stbuf);$

ERROR: code indent should never use tabs
#93: FILE: contrib/virtiofsd/fuse_lowlevel.c:73:
+^Iattr->mtimensec = ST_MTIM_NSEC(stbuf);$

ERROR: code indent should never use tabs
#94: FILE: contrib/virtiofsd/fuse_lowlevel.c:74:
+^Iattr->ctimensec = ST_CTIM_NSEC(stbuf);$

ERROR: code indent should never use tabs
#99: FILE: contrib/virtiofsd/fuse_lowlevel.c:79:
+^Istbuf->st_mode^I       = attr->mode;$

ERROR: code indent should never use tabs
#100: FILE: contrib/virtiofsd/fuse_lowlevel.c:80:
+^Istbuf->st_uid^I       = attr->uid;$

ERROR: code indent should never use tabs
#101: FILE: contrib/virtiofsd/fuse_lowlevel.c:81:
+^Istbuf->st_gid^I       = attr->gid;$

ERROR: code indent should never use tabs
#102: FILE: contrib/virtiofsd/fuse_lowlevel.c:82:
+^Istbuf->st_size^I       = attr->size;$

ERROR: code indent should never use tabs
#103: FILE: contrib/virtiofsd/fuse_lowlevel.c:83:
+^Istbuf->st_atime^I       = attr->atime;$

ERROR: code indent should never use tabs
#104: FILE: contrib/virtiofsd/fuse_lowlevel.c:84:
+^Istbuf->st_mtime^I       = attr->mtime;$

ERROR: code indent should never use tabs
#105: FILE: contrib/virtiofsd/fuse_lowlevel.c:85:
+^Istbuf->st_ctime        = attr->ctime;$

ERROR: code indent should never use tabs
#106: FILE: contrib/virtiofsd/fuse_lowlevel.c:86:
+^IST_ATIM_NSEC_SET(stbuf, attr->atimensec);$

ERROR: code indent should never use tabs
#107: FILE: contrib/virtiofsd/fuse_lowlevel.c:87:
+^IST_MTIM_NSEC_SET(stbuf, attr->mtimensec);$

ERROR: code indent should never use tabs
#108: FILE: contrib/virtiofsd/fuse_lowlevel.c:88:
+^IST_CTIM_NSEC_SET(stbuf, attr->ctimensec);$

ERROR: code indent should never use tabs
#111: FILE: contrib/virtiofsd/fuse_lowlevel.c:91:
+static^Isize_t iov_length(const struct iovec *iov, size_t count)$

ERROR: code indent should never use tabs
#113: FILE: contrib/virtiofsd/fuse_lowlevel.c:93:
+^Isize_t seg;$

ERROR: code indent should never use tabs
#114: FILE: contrib/virtiofsd/fuse_lowlevel.c:94:
+^Isize_t ret = 0;$

ERROR: code indent should never use tabs
#116: FILE: contrib/virtiofsd/fuse_lowlevel.c:96:
+^Ifor (seg = 0; seg < count; seg++)$

ERROR: braces {} are necessary for all arms of this statement
#116: FILE: contrib/virtiofsd/fuse_lowlevel.c:96:
+       for (seg = 0; seg < count; seg++)
[...]

ERROR: code indent should never use tabs
#117: FILE: contrib/virtiofsd/fuse_lowlevel.c:97:
+^I^Iret += iov[seg].iov_len;$

ERROR: code indent should never use tabs
#118: FILE: contrib/virtiofsd/fuse_lowlevel.c:98:
+^Ireturn ret;$

ERROR: code indent should never use tabs
#123: FILE: contrib/virtiofsd/fuse_lowlevel.c:103:
+^Ireq->next = req;$

ERROR: code indent should never use tabs
#124: FILE: contrib/virtiofsd/fuse_lowlevel.c:104:
+^Ireq->prev = req;$

ERROR: code indent should never use tabs
#129: FILE: contrib/virtiofsd/fuse_lowlevel.c:109:
+^Istruct fuse_req *prev = req->prev;$

ERROR: code indent should never use tabs
#130: FILE: contrib/virtiofsd/fuse_lowlevel.c:110:
+^Istruct fuse_req *next = req->next;$

ERROR: code indent should never use tabs
#131: FILE: contrib/virtiofsd/fuse_lowlevel.c:111:
+^Iprev->next = next;$

ERROR: code indent should never use tabs
#132: FILE: contrib/virtiofsd/fuse_lowlevel.c:112:
+^Inext->prev = prev;$

ERROR: code indent should never use tabs
#137: FILE: contrib/virtiofsd/fuse_lowlevel.c:117:
+^Istruct fuse_req *prev = next->prev;$

ERROR: code indent should never use tabs
#138: FILE: contrib/virtiofsd/fuse_lowlevel.c:118:
+^Ireq->next = next;$

ERROR: code indent should never use tabs
#139: FILE: contrib/virtiofsd/fuse_lowlevel.c:119:
+^Ireq->prev = prev;$

ERROR: code indent should never use tabs
#140: FILE: contrib/virtiofsd/fuse_lowlevel.c:120:
+^Iprev->next = req;$

ERROR: code indent should never use tabs
#141: FILE: contrib/virtiofsd/fuse_lowlevel.c:121:
+^Inext->prev = req;$

ERROR: code indent should never use tabs
#146: FILE: contrib/virtiofsd/fuse_lowlevel.c:126:
+^Ipthread_mutex_destroy(&req->lock);$

ERROR: code indent should never use tabs
#147: FILE: contrib/virtiofsd/fuse_lowlevel.c:127:
+^Ifree(req);$

ERROR: code indent should never use tabs
#152: FILE: contrib/virtiofsd/fuse_lowlevel.c:132:
+^Iint ctr;$

ERROR: code indent should never use tabs
#153: FILE: contrib/virtiofsd/fuse_lowlevel.c:133:
+^Istruct fuse_session *se = req->se;$

ERROR: code indent should never use tabs
#155: FILE: contrib/virtiofsd/fuse_lowlevel.c:135:
+^Ipthread_mutex_lock(&se->lock);$

ERROR: code indent should never use tabs
#156: FILE: contrib/virtiofsd/fuse_lowlevel.c:136:
+^Ireq->u.ni.func = NULL;$

ERROR: code indent should never use tabs
#157: FILE: contrib/virtiofsd/fuse_lowlevel.c:137:
+^Ireq->u.ni.data = NULL;$

ERROR: code indent should never use tabs
#158: FILE: contrib/virtiofsd/fuse_lowlevel.c:138:
+^Ilist_del_req(req);$

ERROR: code indent should never use tabs
#159: FILE: contrib/virtiofsd/fuse_lowlevel.c:139:
+^Ictr = --req->ctr;$

ERROR: code indent should never use tabs
#160: FILE: contrib/virtiofsd/fuse_lowlevel.c:140:
+^Ifuse_chan_put(req->ch);$

ERROR: code indent should never use tabs
#161: FILE: contrib/virtiofsd/fuse_lowlevel.c:141:
+^Ireq->ch = NULL;$

ERROR: code indent should never use tabs
#162: FILE: contrib/virtiofsd/fuse_lowlevel.c:142:
+^Ipthread_mutex_unlock(&se->lock);$

ERROR: code indent should never use tabs
#163: FILE: contrib/virtiofsd/fuse_lowlevel.c:143:
+^Iif (!ctr)$

ERROR: braces {} are necessary for all arms of this statement
#163: FILE: contrib/virtiofsd/fuse_lowlevel.c:143:
+       if (!ctr)
[...]

ERROR: code indent should never use tabs
#164: FILE: contrib/virtiofsd/fuse_lowlevel.c:144:
+^I^Idestroy_req(req);$

ERROR: code indent should never use tabs
#169: FILE: contrib/virtiofsd/fuse_lowlevel.c:149:
+^Istruct fuse_req *req;$

ERROR: code indent should never use tabs
#171: FILE: contrib/virtiofsd/fuse_lowlevel.c:151:
+^Ireq = (struct fuse_req *) calloc(1, sizeof(struct fuse_req));$

ERROR: code indent should never use tabs
#172: FILE: contrib/virtiofsd/fuse_lowlevel.c:152:
+^Iif (req == NULL) {$

ERROR: code indent should never use tabs
#173: FILE: contrib/virtiofsd/fuse_lowlevel.c:153:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: failed to allocate request\n");$

ERROR: code indent should never use tabs
#174: FILE: contrib/virtiofsd/fuse_lowlevel.c:154:
+^I} else {$

ERROR: code indent should never use tabs
#175: FILE: contrib/virtiofsd/fuse_lowlevel.c:155:
+^I^Ireq->se = se;$

ERROR: code indent should never use tabs
#176: FILE: contrib/virtiofsd/fuse_lowlevel.c:156:
+^I^Ireq->ctr = 1;$

ERROR: code indent should never use tabs
#177: FILE: contrib/virtiofsd/fuse_lowlevel.c:157:
+^I^Ilist_init_req(req);$

ERROR: code indent should never use tabs
#178: FILE: contrib/virtiofsd/fuse_lowlevel.c:158:
+^I^Ifuse_mutex_init(&req->lock);$

ERROR: code indent should never use tabs
#179: FILE: contrib/virtiofsd/fuse_lowlevel.c:159:
+^I}$

ERROR: code indent should never use tabs
#181: FILE: contrib/virtiofsd/fuse_lowlevel.c:161:
+^Ireturn req;$

ERROR: code indent should never use tabs
#186: FILE: contrib/virtiofsd/fuse_lowlevel.c:166:
+^I^I^I struct iovec *iov, int count)$

ERROR: code indent should never use tabs
#188: FILE: contrib/virtiofsd/fuse_lowlevel.c:168:
+^Istruct fuse_out_header *out = iov[0].iov_base;$

ERROR: code indent should never use tabs
#190: FILE: contrib/virtiofsd/fuse_lowlevel.c:170:
+^Iout->len = iov_length(iov, count);$

ERROR: code indent should never use tabs
#191: FILE: contrib/virtiofsd/fuse_lowlevel.c:171:
+^Iif (se->debug) {$

ERROR: code indent should never use tabs
#192: FILE: contrib/virtiofsd/fuse_lowlevel.c:172:
+^I^Iif (out->unique == 0) {$

ERROR: code indent should never use tabs
#193: FILE: contrib/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
#194: FILE: contrib/virtiofsd/fuse_lowlevel.c:174:
+^I^I^I^Iout->error, out->len);$

ERROR: code indent should never use tabs
#195: FILE: contrib/virtiofsd/fuse_lowlevel.c:175:
+^I^I} else if (out->error) {$

ERROR: code indent should never use tabs
#196: FILE: contrib/virtiofsd/fuse_lowlevel.c:176:
+^I^I^Ifuse_log(FUSE_LOG_DEBUG,$

ERROR: code indent should never use tabs
#197: FILE: contrib/virtiofsd/fuse_lowlevel.c:177:
+^I^I^I^I"   unique: %llu, error: %i (%s), outsize: %i\n",$

ERROR: code indent should never use tabs
#198: FILE: contrib/virtiofsd/fuse_lowlevel.c:178:
+^I^I^I^I(unsigned long long) out->unique, out->error,$

ERROR: code indent should never use tabs
#199: FILE: contrib/virtiofsd/fuse_lowlevel.c:179:
+^I^I^I^Istrerror(-out->error), out->len);$

ERROR: code indent should never use tabs
#200: FILE: contrib/virtiofsd/fuse_lowlevel.c:180:
+^I^I} else {$

ERROR: code indent should never use tabs
#201: FILE: contrib/virtiofsd/fuse_lowlevel.c:181:
+^I^I^Ifuse_log(FUSE_LOG_DEBUG,$

ERROR: code indent should never use tabs
#202: FILE: contrib/virtiofsd/fuse_lowlevel.c:182:
+^I^I^I^I"   unique: %llu, success, outsize: %i\n",$

ERROR: code indent should never use tabs
#203: FILE: contrib/virtiofsd/fuse_lowlevel.c:183:
+^I^I^I^I(unsigned long long) out->unique, out->len);$

ERROR: code indent should never use tabs
#204: FILE: contrib/virtiofsd/fuse_lowlevel.c:184:
+^I^I}$

ERROR: code indent should never use tabs
#205: FILE: contrib/virtiofsd/fuse_lowlevel.c:185:
+^I}$

ERROR: code indent should never use tabs
#207: FILE: contrib/virtiofsd/fuse_lowlevel.c:187:
+^Issize_t res = writev(ch ? ch->fd : se->fd,$

ERROR: code indent should never use tabs
#208: FILE: contrib/virtiofsd/fuse_lowlevel.c:188:
+^I^I^I     iov, count);$

ERROR: code indent should never use tabs
#209: FILE: contrib/virtiofsd/fuse_lowlevel.c:189:
+^Iint err = errno;$

ERROR: code indent should never use tabs
#211: FILE: contrib/virtiofsd/fuse_lowlevel.c:191:
+^Iif (res == -1) {$

ERROR: code indent should never use tabs
#212: FILE: contrib/virtiofsd/fuse_lowlevel.c:192:
+^I^Iassert(se != NULL);$

ERROR: code indent should never use tabs
#214: FILE: contrib/virtiofsd/fuse_lowlevel.c:194:
+^I^I/* ENOENT means the operation was interrupted */$

ERROR: code indent should never use tabs
#215: FILE: contrib/virtiofsd/fuse_lowlevel.c:195:
+^I^Iif (!fuse_session_exited(se) && err != ENOENT)$

ERROR: braces {} are necessary for all arms of this statement
#215: FILE: contrib/virtiofsd/fuse_lowlevel.c:195:
+               if (!fuse_session_exited(se) && err != ENOENT)
[...]

ERROR: code indent should never use tabs
#216: FILE: contrib/virtiofsd/fuse_lowlevel.c:196:
+^I^I^Iperror("fuse: writing device");$

ERROR: code indent should never use tabs
#217: FILE: contrib/virtiofsd/fuse_lowlevel.c:197:
+^I^Ireturn -err;$

ERROR: code indent should never use tabs
#218: FILE: contrib/virtiofsd/fuse_lowlevel.c:198:
+^I}$

ERROR: code indent should never use tabs
#220: FILE: contrib/virtiofsd/fuse_lowlevel.c:200:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#225: FILE: contrib/virtiofsd/fuse_lowlevel.c:205:
+^I^I^I       int count)$

ERROR: code indent should never use tabs
#227: FILE: contrib/virtiofsd/fuse_lowlevel.c:207:
+^Istruct fuse_out_header out;$

ERROR: code indent should never use tabs
#229: FILE: contrib/virtiofsd/fuse_lowlevel.c:209:
+^Iif (error <= -1000 || error > 0) {$

ERROR: code indent should never use tabs
#230: FILE: contrib/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
#231: FILE: contrib/virtiofsd/fuse_lowlevel.c:211:
+^I^Ierror = -ERANGE;$

ERROR: code indent should never use tabs
#232: FILE: contrib/virtiofsd/fuse_lowlevel.c:212:
+^I}$

ERROR: code indent should never use tabs
#234: FILE: contrib/virtiofsd/fuse_lowlevel.c:214:
+^Iout.unique = req->unique;$

ERROR: code indent should never use tabs
#235: FILE: contrib/virtiofsd/fuse_lowlevel.c:215:
+^Iout.error = error;$

ERROR: code indent should never use tabs
#237: FILE: contrib/virtiofsd/fuse_lowlevel.c:217:
+^Iiov[0].iov_base = &out;$

ERROR: code indent should never use tabs
#238: FILE: contrib/virtiofsd/fuse_lowlevel.c:218:
+^Iiov[0].iov_len = sizeof(struct fuse_out_header);$

ERROR: code indent should never use tabs
#240: FILE: contrib/virtiofsd/fuse_lowlevel.c:220:
+^Ireturn fuse_send_msg(req->se, req->ch, iov, count);$

ERROR: code indent should never use tabs
#244: FILE: contrib/virtiofsd/fuse_lowlevel.c:224:
+^I^I^I  int count)$

ERROR: code indent should never use tabs
#246: FILE: contrib/virtiofsd/fuse_lowlevel.c:226:
+^Iint res;$

ERROR: code indent should never use tabs
#248: FILE: contrib/virtiofsd/fuse_lowlevel.c:228:
+^Ires = fuse_send_reply_iov_nofree(req, error, iov, count);$

ERROR: code indent should never use tabs
#249: FILE: contrib/virtiofsd/fuse_lowlevel.c:229:
+^Ifuse_free_req(req);$

ERROR: code indent should never use tabs
#250: FILE: contrib/virtiofsd/fuse_lowlevel.c:230:
+^Ireturn res;$

ERROR: code indent should never use tabs
#254: FILE: contrib/virtiofsd/fuse_lowlevel.c:234:
+^I^I      size_t argsize)$

ERROR: code indent should never use tabs
#256: FILE: contrib/virtiofsd/fuse_lowlevel.c:236:
+^Istruct iovec iov[2];$

ERROR: code indent should never use tabs
#257: FILE: contrib/virtiofsd/fuse_lowlevel.c:237:
+^Iint count = 1;$

ERROR: code indent should never use tabs
#258: FILE: contrib/virtiofsd/fuse_lowlevel.c:238:
+^Iif (argsize) {$

ERROR: code indent should never use tabs
#259: FILE: contrib/virtiofsd/fuse_lowlevel.c:239:
+^I^Iiov[1].iov_base = (void *) arg;$

ERROR: code indent should never use tabs
#260: FILE: contrib/virtiofsd/fuse_lowlevel.c:240:
+^I^Iiov[1].iov_len = argsize;$

ERROR: code indent should never use tabs
#261: FILE: contrib/virtiofsd/fuse_lowlevel.c:241:
+^I^Icount++;$

ERROR: code indent should never use tabs
#262: FILE: contrib/virtiofsd/fuse_lowlevel.c:242:
+^I}$

ERROR: code indent should never use tabs
#263: FILE: contrib/virtiofsd/fuse_lowlevel.c:243:
+^Ireturn send_reply_iov(req, error, iov, count);$

ERROR: code indent should never use tabs
#268: FILE: contrib/virtiofsd/fuse_lowlevel.c:248:
+^Iint res;$

ERROR: code indent should never use tabs
#269: FILE: contrib/virtiofsd/fuse_lowlevel.c:249:
+^Istruct iovec *padded_iov;$

ERROR: code indent should never use tabs
#271: FILE: contrib/virtiofsd/fuse_lowlevel.c:251:
+^Ipadded_iov = malloc((count + 1) * sizeof(struct iovec));$

ERROR: code indent should never use tabs
#272: FILE: contrib/virtiofsd/fuse_lowlevel.c:252:
+^Iif (padded_iov == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#272: FILE: contrib/virtiofsd/fuse_lowlevel.c:252:
+       if (padded_iov == NULL)
[...]

ERROR: code indent should never use tabs
#273: FILE: contrib/virtiofsd/fuse_lowlevel.c:253:
+^I^Ireturn fuse_reply_err(req, ENOMEM);$

ERROR: code indent should never use tabs
#275: FILE: contrib/virtiofsd/fuse_lowlevel.c:255:
+^Imemcpy(padded_iov + 1, iov, count * sizeof(struct iovec));$

ERROR: code indent should never use tabs
#276: FILE: contrib/virtiofsd/fuse_lowlevel.c:256:
+^Icount++;$

ERROR: code indent should never use tabs
#278: FILE: contrib/virtiofsd/fuse_lowlevel.c:258:
+^Ires = send_reply_iov(req, 0, padded_iov, count);$

ERROR: code indent should never use tabs
#279: FILE: contrib/virtiofsd/fuse_lowlevel.c:259:
+^Ifree(padded_iov);$

ERROR: code indent should never use tabs
#281: FILE: contrib/virtiofsd/fuse_lowlevel.c:261:
+^Ireturn res;$

WARNING: Block comments use a leading /* on a separate line
#285: FILE: contrib/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
#286: FILE: contrib/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
#286: FILE: contrib/virtiofsd/fuse_lowlevel.c:266:
+   allocated by the caller */

ERROR: code indent should never use tabs
#288: FILE: contrib/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
#290: FILE: contrib/virtiofsd/fuse_lowlevel.c:270:
+^I(void)req;$

ERROR: code indent should never use tabs
#291: FILE: contrib/virtiofsd/fuse_lowlevel.c:271:
+^Isize_t namelen;$

ERROR: code indent should never use tabs
#292: FILE: contrib/virtiofsd/fuse_lowlevel.c:272:
+^Isize_t entlen;$

ERROR: code indent should never use tabs
#293: FILE: contrib/virtiofsd/fuse_lowlevel.c:273:
+^Isize_t entlen_padded;$

ERROR: code indent should never use tabs
#294: FILE: contrib/virtiofsd/fuse_lowlevel.c:274:
+^Istruct fuse_dirent *dirent;$

ERROR: code indent should never use tabs
#296: FILE: contrib/virtiofsd/fuse_lowlevel.c:276:
+^Inamelen = strlen(name);$

ERROR: code indent should never use tabs
#297: FILE: contrib/virtiofsd/fuse_lowlevel.c:277:
+^Ientlen = FUSE_NAME_OFFSET + namelen;$

ERROR: code indent should never use tabs
#298: FILE: contrib/virtiofsd/fuse_lowlevel.c:278:
+^Ientlen_padded = FUSE_DIRENT_ALIGN(entlen);$

ERROR: code indent should never use tabs
#300: FILE: contrib/virtiofsd/fuse_lowlevel.c:280:
+^Iif ((buf == NULL) || (entlen_padded > bufsize))$

ERROR: suspect code indent for conditional statements (8, 10)
#300: FILE: contrib/virtiofsd/fuse_lowlevel.c:280:
+       if ((buf == NULL) || (entlen_padded > bufsize))
+         return entlen_padded;

ERROR: braces {} are necessary for all arms of this statement
#300: FILE: contrib/virtiofsd/fuse_lowlevel.c:280:
+       if ((buf == NULL) || (entlen_padded > bufsize))
[...]

ERROR: code indent should never use tabs
#301: FILE: contrib/virtiofsd/fuse_lowlevel.c:281:
+^I  return entlen_padded;$

ERROR: code indent should never use tabs
#303: FILE: contrib/virtiofsd/fuse_lowlevel.c:283:
+^Idirent = (struct fuse_dirent*) buf;$

ERROR: "(foo*)" should be "(foo *)"
#303: FILE: contrib/virtiofsd/fuse_lowlevel.c:283:
+       dirent = (struct fuse_dirent*) buf;

ERROR: code indent should never use tabs
#304: FILE: contrib/virtiofsd/fuse_lowlevel.c:284:
+^Idirent->ino = stbuf->st_ino;$

ERROR: code indent should never use tabs
#305: FILE: contrib/virtiofsd/fuse_lowlevel.c:285:
+^Idirent->off = off;$

ERROR: code indent should never use tabs
#306: FILE: contrib/virtiofsd/fuse_lowlevel.c:286:
+^Idirent->namelen = namelen;$

ERROR: code indent should never use tabs
#307: FILE: contrib/virtiofsd/fuse_lowlevel.c:287:
+^Idirent->type = (stbuf->st_mode & S_IFMT) >> 12;$

ERROR: code indent should never use tabs
#308: FILE: contrib/virtiofsd/fuse_lowlevel.c:288:
+^Imemcpy(dirent->name, name, namelen);$

ERROR: code indent should never use tabs
#309: FILE: contrib/virtiofsd/fuse_lowlevel.c:289:
+^Imemset(dirent->name + namelen, 0, entlen_padded - entlen);$

ERROR: code indent should never use tabs
#311: FILE: contrib/virtiofsd/fuse_lowlevel.c:291:
+^Ireturn entlen_padded;$

ERROR: code indent should never use tabs
#315: FILE: contrib/virtiofsd/fuse_lowlevel.c:295:
+^I^I^I   struct fuse_kstatfs *kstatfs)$

ERROR: code indent should never use tabs
#317: FILE: contrib/virtiofsd/fuse_lowlevel.c:297:
+^Ikstatfs->bsize^I = stbuf->f_bsize;$

ERROR: code indent should never use tabs
#318: FILE: contrib/virtiofsd/fuse_lowlevel.c:298:
+^Ikstatfs->frsize^I = stbuf->f_frsize;$

ERROR: code indent should never use tabs
#319: FILE: contrib/virtiofsd/fuse_lowlevel.c:299:
+^Ikstatfs->blocks^I = stbuf->f_blocks;$

ERROR: code indent should never use tabs
#320: FILE: contrib/virtiofsd/fuse_lowlevel.c:300:
+^Ikstatfs->bfree^I = stbuf->f_bfree;$

ERROR: code indent should never use tabs
#321: FILE: contrib/virtiofsd/fuse_lowlevel.c:301:
+^Ikstatfs->bavail^I = stbuf->f_bavail;$

ERROR: code indent should never use tabs
#322: FILE: contrib/virtiofsd/fuse_lowlevel.c:302:
+^Ikstatfs->files^I = stbuf->f_files;$

ERROR: code indent should never use tabs
#323: FILE: contrib/virtiofsd/fuse_lowlevel.c:303:
+^Ikstatfs->ffree^I = stbuf->f_ffree;$

ERROR: code indent should never use tabs
#324: FILE: contrib/virtiofsd/fuse_lowlevel.c:304:
+^Ikstatfs->namelen = stbuf->f_namemax;$

ERROR: code indent should never use tabs
#329: FILE: contrib/virtiofsd/fuse_lowlevel.c:309:
+^Ireturn send_reply(req, 0, arg, argsize);$

ERROR: code indent should never use tabs
#334: FILE: contrib/virtiofsd/fuse_lowlevel.c:314:
+^Ireturn send_reply(req, -err, NULL, 0);$

ERROR: code indent should never use tabs
#339: FILE: contrib/virtiofsd/fuse_lowlevel.c:319:
+^Ifuse_free_req(req);$

ERROR: code indent should never use tabs
#344: FILE: contrib/virtiofsd/fuse_lowlevel.c:324:
+^Iif (t > (double) ULONG_MAX)$

ERROR: braces {} are necessary for all arms of this statement
#344: FILE: contrib/virtiofsd/fuse_lowlevel.c:324:
+       if (t > (double) ULONG_MAX)
[...]
+       else if (t < 0.0)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#345: FILE: contrib/virtiofsd/fuse_lowlevel.c:325:
+^I^Ireturn ULONG_MAX;$

ERROR: code indent should never use tabs
#346: FILE: contrib/virtiofsd/fuse_lowlevel.c:326:
+^Ielse if (t < 0.0)$

ERROR: braces {} are necessary for all arms of this statement
#346: FILE: contrib/virtiofsd/fuse_lowlevel.c:326:
+       else if (t < 0.0)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#347: FILE: contrib/virtiofsd/fuse_lowlevel.c:327:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#348: FILE: contrib/virtiofsd/fuse_lowlevel.c:328:
+^Ielse$

ERROR: code indent should never use tabs
#349: FILE: contrib/virtiofsd/fuse_lowlevel.c:329:
+^I^Ireturn (unsigned long) t;$

ERROR: code indent should never use tabs
#354: FILE: contrib/virtiofsd/fuse_lowlevel.c:334:
+^Idouble f = t - (double) calc_timeout_sec(t);$

ERROR: code indent should never use tabs
#355: FILE: contrib/virtiofsd/fuse_lowlevel.c:335:
+^Iif (f < 0.0)$

ERROR: braces {} are necessary for all arms of this statement
#355: FILE: contrib/virtiofsd/fuse_lowlevel.c:335:
+       if (f < 0.0)
[...]
+       else if (f >= 0.999999999)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#356: FILE: contrib/virtiofsd/fuse_lowlevel.c:336:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#357: FILE: contrib/virtiofsd/fuse_lowlevel.c:337:
+^Ielse if (f >= 0.999999999)$

ERROR: braces {} are necessary for all arms of this statement
#357: FILE: contrib/virtiofsd/fuse_lowlevel.c:337:
+       else if (f >= 0.999999999)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#358: FILE: contrib/virtiofsd/fuse_lowlevel.c:338:
+^I^Ireturn 999999999;$

ERROR: code indent should never use tabs
#359: FILE: contrib/virtiofsd/fuse_lowlevel.c:339:
+^Ielse$

ERROR: code indent should never use tabs
#360: FILE: contrib/virtiofsd/fuse_lowlevel.c:340:
+^I^Ireturn (unsigned int) (f * 1.0e9);$

ERROR: code indent should never use tabs
#364: FILE: contrib/virtiofsd/fuse_lowlevel.c:344:
+^I^I       const struct fuse_entry_param *e)$

ERROR: code indent should never use tabs
#366: FILE: contrib/virtiofsd/fuse_lowlevel.c:346:
+^Iarg->nodeid = e->ino;$

ERROR: code indent should never use tabs
#367: FILE: contrib/virtiofsd/fuse_lowlevel.c:347:
+^Iarg->generation = e->generation;$

ERROR: code indent should never use tabs
#368: FILE: contrib/virtiofsd/fuse_lowlevel.c:348:
+^Iarg->entry_valid = calc_timeout_sec(e->entry_timeout);$

ERROR: code indent should never use tabs
#369: FILE: contrib/virtiofsd/fuse_lowlevel.c:349:
+^Iarg->entry_valid_nsec = calc_timeout_nsec(e->entry_timeout);$

ERROR: code indent should never use tabs
#370: FILE: contrib/virtiofsd/fuse_lowlevel.c:350:
+^Iarg->attr_valid = calc_timeout_sec(e->attr_timeout);$

ERROR: code indent should never use tabs
#371: FILE: contrib/virtiofsd/fuse_lowlevel.c:351:
+^Iarg->attr_valid_nsec = calc_timeout_nsec(e->attr_timeout);$

ERROR: code indent should never use tabs
#372: FILE: contrib/virtiofsd/fuse_lowlevel.c:352:
+^Iconvert_stat(&e->attr, &arg->attr);$

WARNING: Block comments use a leading /* on a separate line
#375: FILE: contrib/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
#376: FILE: contrib/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
#376: FILE: contrib/virtiofsd/fuse_lowlevel.c:356:
+   allocated by the caller */

ERROR: code indent should never use tabs
#378: FILE: contrib/virtiofsd/fuse_lowlevel.c:358:
+^I^I^I      const char *name,$

ERROR: code indent should never use tabs
#379: FILE: contrib/virtiofsd/fuse_lowlevel.c:359:
+^I^I^I      const struct fuse_entry_param *e, off_t off)$

ERROR: code indent should never use tabs
#381: FILE: contrib/virtiofsd/fuse_lowlevel.c:361:
+^I(void)req;$

ERROR: code indent should never use tabs
#382: FILE: contrib/virtiofsd/fuse_lowlevel.c:362:
+^Isize_t namelen;$

ERROR: code indent should never use tabs
#383: FILE: contrib/virtiofsd/fuse_lowlevel.c:363:
+^Isize_t entlen;$

ERROR: code indent should never use tabs
#384: FILE: contrib/virtiofsd/fuse_lowlevel.c:364:
+^Isize_t entlen_padded;$

ERROR: code indent should never use tabs
#386: FILE: contrib/virtiofsd/fuse_lowlevel.c:366:
+^Inamelen = strlen(name);$

ERROR: code indent should never use tabs
#387: FILE: contrib/virtiofsd/fuse_lowlevel.c:367:
+^Ientlen = FUSE_NAME_OFFSET_DIRENTPLUS + namelen;$

ERROR: code indent should never use tabs
#388: FILE: contrib/virtiofsd/fuse_lowlevel.c:368:
+^Ientlen_padded = FUSE_DIRENT_ALIGN(entlen);$

ERROR: code indent should never use tabs
#389: FILE: contrib/virtiofsd/fuse_lowlevel.c:369:
+^Iif ((buf == NULL) || (entlen_padded > bufsize))$

ERROR: suspect code indent for conditional statements (8, 10)
#389: FILE: contrib/virtiofsd/fuse_lowlevel.c:369:
+       if ((buf == NULL) || (entlen_padded > bufsize))
+         return entlen_padded;

ERROR: braces {} are necessary for all arms of this statement
#389: FILE: contrib/virtiofsd/fuse_lowlevel.c:369:
+       if ((buf == NULL) || (entlen_padded > bufsize))
[...]

ERROR: code indent should never use tabs
#390: FILE: contrib/virtiofsd/fuse_lowlevel.c:370:
+^I  return entlen_padded;$

ERROR: code indent should never use tabs
#392: FILE: contrib/virtiofsd/fuse_lowlevel.c:372:
+^Istruct fuse_direntplus *dp = (struct fuse_direntplus *) buf;$

ERROR: code indent should never use tabs
#393: FILE: contrib/virtiofsd/fuse_lowlevel.c:373:
+^Imemset(&dp->entry_out, 0, sizeof(dp->entry_out));$

ERROR: code indent should never use tabs
#394: FILE: contrib/virtiofsd/fuse_lowlevel.c:374:
+^Ifill_entry(&dp->entry_out, e);$

ERROR: code indent should never use tabs
#396: FILE: contrib/virtiofsd/fuse_lowlevel.c:376:
+^Istruct fuse_dirent *dirent = &dp->dirent;$

ERROR: code indent should never use tabs
#397: FILE: contrib/virtiofsd/fuse_lowlevel.c:377:
+^Idirent->ino = e->attr.st_ino;$

ERROR: code indent should never use tabs
#398: FILE: contrib/virtiofsd/fuse_lowlevel.c:378:
+^Idirent->off = off;$

ERROR: code indent should never use tabs
#399: FILE: contrib/virtiofsd/fuse_lowlevel.c:379:
+^Idirent->namelen = namelen;$

ERROR: code indent should never use tabs
#400: FILE: contrib/virtiofsd/fuse_lowlevel.c:380:
+^Idirent->type = (e->attr.st_mode & S_IFMT) >> 12;$

ERROR: code indent should never use tabs
#401: FILE: contrib/virtiofsd/fuse_lowlevel.c:381:
+^Imemcpy(dirent->name, name, namelen);$

ERROR: code indent should never use tabs
#402: FILE: contrib/virtiofsd/fuse_lowlevel.c:382:
+^Imemset(dirent->name + namelen, 0, entlen_padded - entlen);$

ERROR: code indent should never use tabs
#404: FILE: contrib/virtiofsd/fuse_lowlevel.c:384:
+^Ireturn entlen_padded;$

ERROR: code indent should never use tabs
#408: FILE: contrib/virtiofsd/fuse_lowlevel.c:388:
+^I^I      const struct fuse_file_info *f)$

ERROR: code indent should never use tabs
#410: FILE: contrib/virtiofsd/fuse_lowlevel.c:390:
+^Iarg->fh = f->fh;$

ERROR: code indent should never use tabs
#411: FILE: contrib/virtiofsd/fuse_lowlevel.c:391:
+^Iif (f->direct_io)$

ERROR: braces {} are necessary for all arms of this statement
#411: FILE: contrib/virtiofsd/fuse_lowlevel.c:391:
+       if (f->direct_io)
[...]

ERROR: code indent should never use tabs
#412: FILE: contrib/virtiofsd/fuse_lowlevel.c:392:
+^I^Iarg->open_flags |= FOPEN_DIRECT_IO;$

ERROR: code indent should never use tabs
#413: FILE: contrib/virtiofsd/fuse_lowlevel.c:393:
+^Iif (f->keep_cache)$

ERROR: braces {} are necessary for all arms of this statement
#413: FILE: contrib/virtiofsd/fuse_lowlevel.c:393:
+       if (f->keep_cache)
[...]

ERROR: code indent should never use tabs
#414: FILE: contrib/virtiofsd/fuse_lowlevel.c:394:
+^I^Iarg->open_flags |= FOPEN_KEEP_CACHE;$

ERROR: code indent should never use tabs
#415: FILE: contrib/virtiofsd/fuse_lowlevel.c:395:
+^Iif (f->cache_readdir)$

ERROR: braces {} are necessary for all arms of this statement
#415: FILE: contrib/virtiofsd/fuse_lowlevel.c:395:
+       if (f->cache_readdir)
[...]

ERROR: code indent should never use tabs
#416: FILE: contrib/virtiofsd/fuse_lowlevel.c:396:
+^I^Iarg->open_flags |= FOPEN_CACHE_DIR;$

ERROR: code indent should never use tabs
#417: FILE: contrib/virtiofsd/fuse_lowlevel.c:397:
+^Iif (f->nonseekable)$

ERROR: braces {} are necessary for all arms of this statement
#417: FILE: contrib/virtiofsd/fuse_lowlevel.c:397:
+       if (f->nonseekable)
[...]

ERROR: code indent should never use tabs
#418: FILE: contrib/virtiofsd/fuse_lowlevel.c:398:
+^I^Iarg->open_flags |= FOPEN_NONSEEKABLE;$

ERROR: code indent should never use tabs
#423: FILE: contrib/virtiofsd/fuse_lowlevel.c:403:
+^Istruct fuse_entry_out arg;$

ERROR: code indent should never use tabs
#424: FILE: contrib/virtiofsd/fuse_lowlevel.c:404:
+^Isize_t size = req->se->conn.proto_minor < 9 ?$

ERROR: code indent should never use tabs
#425: FILE: contrib/virtiofsd/fuse_lowlevel.c:405:
+^I^IFUSE_COMPAT_ENTRY_OUT_SIZE : sizeof(arg);$

ERROR: code indent should never use tabs
#427: FILE: contrib/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
#427: FILE: contrib/virtiofsd/fuse_lowlevel.c:407:
+       /* before ABI 7.4 e->ino == 0 was invalid, only ENOENT meant

ERROR: code indent should never use tabs
#428: FILE: contrib/virtiofsd/fuse_lowlevel.c:408:
+^I   negative entry */$

WARNING: Block comments use * on subsequent lines
#428: FILE: contrib/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
#428: FILE: contrib/virtiofsd/fuse_lowlevel.c:408:
+          negative entry */

ERROR: code indent should never use tabs
#429: FILE: contrib/virtiofsd/fuse_lowlevel.c:409:
+^Iif (!e->ino && req->se->conn.proto_minor < 4)$

ERROR: braces {} are necessary for all arms of this statement
#429: FILE: contrib/virtiofsd/fuse_lowlevel.c:409:
+       if (!e->ino && req->se->conn.proto_minor < 4)
[...]

ERROR: code indent should never use tabs
#430: FILE: contrib/virtiofsd/fuse_lowlevel.c:410:
+^I^Ireturn fuse_reply_err(req, ENOENT);$

ERROR: code indent should never use tabs
#432: FILE: contrib/virtiofsd/fuse_lowlevel.c:412:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#433: FILE: contrib/virtiofsd/fuse_lowlevel.c:413:
+^Ifill_entry(&arg, e);$

ERROR: code indent should never use tabs
#434: FILE: contrib/virtiofsd/fuse_lowlevel.c:414:
+^Ireturn send_reply_ok(req, &arg, size);$

ERROR: code indent should never use tabs
#438: FILE: contrib/virtiofsd/fuse_lowlevel.c:418:
+^I^I      const struct fuse_file_info *f)$

ERROR: code indent should never use tabs
#440: FILE: contrib/virtiofsd/fuse_lowlevel.c:420:
+^Ichar buf[sizeof(struct fuse_entry_out) + sizeof(struct fuse_open_out)];$

ERROR: code indent should never use tabs
#441: FILE: contrib/virtiofsd/fuse_lowlevel.c:421:
+^Isize_t entrysize = req->se->conn.proto_minor < 9 ?$

ERROR: code indent should never use tabs
#442: FILE: contrib/virtiofsd/fuse_lowlevel.c:422:
+^I^IFUSE_COMPAT_ENTRY_OUT_SIZE : sizeof(struct fuse_entry_out);$

ERROR: code indent should never use tabs
#443: FILE: contrib/virtiofsd/fuse_lowlevel.c:423:
+^Istruct fuse_entry_out *earg = (struct fuse_entry_out *) buf;$

ERROR: code indent should never use tabs
#444: FILE: contrib/virtiofsd/fuse_lowlevel.c:424:
+^Istruct fuse_open_out *oarg = (struct fuse_open_out *) (buf + entrysize);$

ERROR: code indent should never use tabs
#446: FILE: contrib/virtiofsd/fuse_lowlevel.c:426:
+^Imemset(buf, 0, sizeof(buf));$

ERROR: code indent should never use tabs
#447: FILE: contrib/virtiofsd/fuse_lowlevel.c:427:
+^Ifill_entry(earg, e);$

ERROR: code indent should never use tabs
#448: FILE: contrib/virtiofsd/fuse_lowlevel.c:428:
+^Ifill_open(oarg, f);$

ERROR: code indent should never use tabs
#449: FILE: contrib/virtiofsd/fuse_lowlevel.c:429:
+^Ireturn send_reply_ok(req, buf,$

ERROR: code indent should never use tabs
#450: FILE: contrib/virtiofsd/fuse_lowlevel.c:430:
+^I^I^I     entrysize + sizeof(struct fuse_open_out));$

ERROR: code indent should never use tabs
#454: FILE: contrib/virtiofsd/fuse_lowlevel.c:434:
+^I^I    double attr_timeout)$

ERROR: code indent should never use tabs
#456: FILE: contrib/virtiofsd/fuse_lowlevel.c:436:
+^Istruct fuse_attr_out arg;$

ERROR: code indent should never use tabs
#457: FILE: contrib/virtiofsd/fuse_lowlevel.c:437:
+^Isize_t size = req->se->conn.proto_minor < 9 ?$

ERROR: code indent should never use tabs
#458: FILE: contrib/virtiofsd/fuse_lowlevel.c:438:
+^I^IFUSE_COMPAT_ATTR_OUT_SIZE : sizeof(arg);$

ERROR: code indent should never use tabs
#460: FILE: contrib/virtiofsd/fuse_lowlevel.c:440:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#461: FILE: contrib/virtiofsd/fuse_lowlevel.c:441:
+^Iarg.attr_valid = calc_timeout_sec(attr_timeout);$

ERROR: code indent should never use tabs
#462: FILE: contrib/virtiofsd/fuse_lowlevel.c:442:
+^Iarg.attr_valid_nsec = calc_timeout_nsec(attr_timeout);$

ERROR: code indent should never use tabs
#463: FILE: contrib/virtiofsd/fuse_lowlevel.c:443:
+^Iconvert_stat(attr, &arg.attr);$

ERROR: code indent should never use tabs
#465: FILE: contrib/virtiofsd/fuse_lowlevel.c:445:
+^Ireturn send_reply_ok(req, &arg, size);$

ERROR: code indent should never use tabs
#470: FILE: contrib/virtiofsd/fuse_lowlevel.c:450:
+^Ireturn send_reply_ok(req, linkname, strlen(linkname));$

ERROR: code indent should never use tabs
#475: FILE: contrib/virtiofsd/fuse_lowlevel.c:455:
+^Istruct fuse_open_out arg;$

ERROR: code indent should never use tabs
#477: FILE: contrib/virtiofsd/fuse_lowlevel.c:457:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#478: FILE: contrib/virtiofsd/fuse_lowlevel.c:458:
+^Ifill_open(&arg, f);$

ERROR: code indent should never use tabs
#479: FILE: contrib/virtiofsd/fuse_lowlevel.c:459:
+^Ireturn send_reply_ok(req, &arg, sizeof(arg));$

ERROR: code indent should never use tabs
#484: FILE: contrib/virtiofsd/fuse_lowlevel.c:464:
+^Istruct fuse_write_out arg;$

ERROR: code indent should never use tabs
#486: FILE: contrib/virtiofsd/fuse_lowlevel.c:466:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#487: FILE: contrib/virtiofsd/fuse_lowlevel.c:467:
+^Iarg.size = count;$

ERROR: code indent should never use tabs
#489: FILE: contrib/virtiofsd/fuse_lowlevel.c:469:
+^Ireturn send_reply_ok(req, &arg, sizeof(arg));$

ERROR: code indent should never use tabs
#494: FILE: contrib/virtiofsd/fuse_lowlevel.c:474:
+^Ireturn send_reply_ok(req, buf, size);$

ERROR: code indent should never use tabs
#498: FILE: contrib/virtiofsd/fuse_lowlevel.c:478:
+^I^I^I^I       struct fuse_chan *ch,$

ERROR: code indent should never use tabs
#499: FILE: contrib/virtiofsd/fuse_lowlevel.c:479:
+^I^I^I^I       struct iovec *iov, int iov_count,$

ERROR: code indent should never use tabs
#500: FILE: contrib/virtiofsd/fuse_lowlevel.c:480:
+^I^I^I^I       struct fuse_bufvec *buf,$

ERROR: code indent should never use tabs
#501: FILE: contrib/virtiofsd/fuse_lowlevel.c:481:
+^I^I^I^I       size_t len)$

ERROR: code indent should never use tabs
#503: FILE: contrib/virtiofsd/fuse_lowlevel.c:483:
+^Istruct fuse_bufvec mem_buf = FUSE_BUFVEC_INIT(len);$

ERROR: code indent should never use tabs
#504: FILE: contrib/virtiofsd/fuse_lowlevel.c:484:
+^Ivoid *mbuf;$

ERROR: code indent should never use tabs
#505: FILE: contrib/virtiofsd/fuse_lowlevel.c:485:
+^Iint res;$

ERROR: code indent should never use tabs
#507: FILE: contrib/virtiofsd/fuse_lowlevel.c:487:
+^I/* Optimize common case */$

ERROR: code indent should never use tabs
#508: FILE: contrib/virtiofsd/fuse_lowlevel.c:488:
+^Iif (buf->count == 1 && buf->idx == 0 && buf->off == 0 &&$

ERROR: code indent should never use tabs
#509: FILE: contrib/virtiofsd/fuse_lowlevel.c:489:
+^I    !(buf->buf[0].flags & FUSE_BUF_IS_FD)) {$

ERROR: code indent should never use tabs
#510: FILE: contrib/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
#510: FILE: contrib/virtiofsd/fuse_lowlevel.c:490:
+               /* FIXME: also avoid memory copy if there are multiple buffers

ERROR: code indent should never use tabs
#511: FILE: contrib/virtiofsd/fuse_lowlevel.c:491:
+^I^I   but none of them contain an fd */$

WARNING: Block comments use * on subsequent lines
#511: FILE: contrib/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
#511: FILE: contrib/virtiofsd/fuse_lowlevel.c:491:
+                  but none of them contain an fd */

ERROR: code indent should never use tabs
#513: FILE: contrib/virtiofsd/fuse_lowlevel.c:493:
+^I^Iiov[iov_count].iov_base = buf->buf[0].mem;$

ERROR: code indent should never use tabs
#514: FILE: contrib/virtiofsd/fuse_lowlevel.c:494:
+^I^Iiov[iov_count].iov_len = len;$

ERROR: code indent should never use tabs
#515: FILE: contrib/virtiofsd/fuse_lowlevel.c:495:
+^I^Iiov_count++;$

ERROR: code indent should never use tabs
#516: FILE: contrib/virtiofsd/fuse_lowlevel.c:496:
+^I^Ireturn fuse_send_msg(se, ch, iov, iov_count);$

ERROR: code indent should never use tabs
#517: FILE: contrib/virtiofsd/fuse_lowlevel.c:497:
+^I}$

ERROR: code indent should never use tabs
#519: FILE: contrib/virtiofsd/fuse_lowlevel.c:499:
+^Ires = posix_memalign(&mbuf, pagesize, len);$

ERROR: code indent should never use tabs
#520: FILE: contrib/virtiofsd/fuse_lowlevel.c:500:
+^Iif (res != 0)$

ERROR: braces {} are necessary for all arms of this statement
#520: FILE: contrib/virtiofsd/fuse_lowlevel.c:500:
+       if (res != 0)
[...]

ERROR: code indent should never use tabs
#521: FILE: contrib/virtiofsd/fuse_lowlevel.c:501:
+^I^Ireturn res;$

ERROR: code indent should never use tabs
#523: FILE: contrib/virtiofsd/fuse_lowlevel.c:503:
+^Imem_buf.buf[0].mem = mbuf;$

ERROR: code indent should never use tabs
#524: FILE: contrib/virtiofsd/fuse_lowlevel.c:504:
+^Ires = fuse_buf_copy(&mem_buf, buf, 0);$

ERROR: code indent should never use tabs
#525: FILE: contrib/virtiofsd/fuse_lowlevel.c:505:
+^Iif (res < 0) {$

ERROR: code indent should never use tabs
#526: FILE: contrib/virtiofsd/fuse_lowlevel.c:506:
+^I^Ifree(mbuf);$

ERROR: code indent should never use tabs
#527: FILE: contrib/virtiofsd/fuse_lowlevel.c:507:
+^I^Ireturn -res;$

ERROR: code indent should never use tabs
#528: FILE: contrib/virtiofsd/fuse_lowlevel.c:508:
+^I}$

ERROR: code indent should never use tabs
#529: FILE: contrib/virtiofsd/fuse_lowlevel.c:509:
+^Ilen = res;$

ERROR: code indent should never use tabs
#531: FILE: contrib/virtiofsd/fuse_lowlevel.c:511:
+^Iiov[iov_count].iov_base = mbuf;$

ERROR: code indent should never use tabs
#532: FILE: contrib/virtiofsd/fuse_lowlevel.c:512:
+^Iiov[iov_count].iov_len = len;$

ERROR: code indent should never use tabs
#533: FILE: contrib/virtiofsd/fuse_lowlevel.c:513:
+^Iiov_count++;$

ERROR: code indent should never use tabs
#534: FILE: contrib/virtiofsd/fuse_lowlevel.c:514:
+^Ires = fuse_send_msg(se, ch, iov, iov_count);$

ERROR: code indent should never use tabs
#535: FILE: contrib/virtiofsd/fuse_lowlevel.c:515:
+^Ifree(mbuf);$

ERROR: code indent should never use tabs
#537: FILE: contrib/virtiofsd/fuse_lowlevel.c:517:
+^Ireturn res;$

ERROR: code indent should never use tabs
#541: FILE: contrib/virtiofsd/fuse_lowlevel.c:521:
+^Isize_t size;$

ERROR: code indent should never use tabs
#542: FILE: contrib/virtiofsd/fuse_lowlevel.c:522:
+^Iint can_grow;$

ERROR: code indent should never use tabs
#543: FILE: contrib/virtiofsd/fuse_lowlevel.c:523:
+^Iint pipe[2];$

ERROR: code indent should never use tabs
#548: FILE: contrib/virtiofsd/fuse_lowlevel.c:528:
+^Iclose(llp->pipe[0]);$

ERROR: code indent should never use tabs
#549: FILE: contrib/virtiofsd/fuse_lowlevel.c:529:
+^Iclose(llp->pipe[1]);$

ERROR: code indent should never use tabs
#550: FILE: contrib/virtiofsd/fuse_lowlevel.c:530:
+^Ifree(llp);$

ERROR: code indent should never use tabs
#557: FILE: contrib/virtiofsd/fuse_lowlevel.c:537:
+^Iint rv = pipe(fds);$

ERROR: code indent should never use tabs
#559: FILE: contrib/virtiofsd/fuse_lowlevel.c:539:
+^Iif (rv == -1)$

ERROR: braces {} are necessary for all arms of this statement
#559: FILE: contrib/virtiofsd/fuse_lowlevel.c:539:
+       if (rv == -1)
[...]

ERROR: code indent should never use tabs
#560: FILE: contrib/virtiofsd/fuse_lowlevel.c:540:
+^I^Ireturn rv;$

ERROR: code indent should never use tabs
#562: FILE: contrib/virtiofsd/fuse_lowlevel.c:542:
+^Iif (fcntl(fds[0], F_SETFL, O_NONBLOCK) == -1 ||$

ERROR: code indent should never use tabs
#563: FILE: contrib/virtiofsd/fuse_lowlevel.c:543:
+^I    fcntl(fds[1], F_SETFL, O_NONBLOCK) == -1 ||$

ERROR: code indent should never use tabs
#564: FILE: contrib/virtiofsd/fuse_lowlevel.c:544:
+^I    fcntl(fds[0], F_SETFD, FD_CLOEXEC) == -1 ||$

ERROR: code indent should never use tabs
#565: FILE: contrib/virtiofsd/fuse_lowlevel.c:545:
+^I    fcntl(fds[1], F_SETFD, FD_CLOEXEC) == -1) {$

ERROR: code indent should never use tabs
#566: FILE: contrib/virtiofsd/fuse_lowlevel.c:546:
+^I^Iclose(fds[0]);$

ERROR: code indent should never use tabs
#567: FILE: contrib/virtiofsd/fuse_lowlevel.c:547:
+^I^Iclose(fds[1]);$

ERROR: code indent should never use tabs
#568: FILE: contrib/virtiofsd/fuse_lowlevel.c:548:
+^I^Irv = -1;$

ERROR: code indent should never use tabs
#569: FILE: contrib/virtiofsd/fuse_lowlevel.c:549:
+^I}$

ERROR: code indent should never use tabs
#570: FILE: contrib/virtiofsd/fuse_lowlevel.c:550:
+^Ireturn rv;$

ERROR: code indent should never use tabs
#575: FILE: contrib/virtiofsd/fuse_lowlevel.c:555:
+^Ireturn pipe2(fds, O_CLOEXEC | O_NONBLOCK);$

ERROR: code indent should never use tabs
#581: FILE: contrib/virtiofsd/fuse_lowlevel.c:561:
+^Istruct fuse_ll_pipe *llp = pthread_getspecific(se->pipe_key);$

ERROR: code indent should never use tabs
#582: FILE: contrib/virtiofsd/fuse_lowlevel.c:562:
+^Iif (llp == NULL) {$

ERROR: code indent should never use tabs
#583: FILE: contrib/virtiofsd/fuse_lowlevel.c:563:
+^I^Iint res;$

ERROR: code indent should never use tabs
#585: FILE: contrib/virtiofsd/fuse_lowlevel.c:565:
+^I^Illp = malloc(sizeof(struct fuse_ll_pipe));$

ERROR: code indent should never use tabs
#586: FILE: contrib/virtiofsd/fuse_lowlevel.c:566:
+^I^Iif (llp == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#586: FILE: contrib/virtiofsd/fuse_lowlevel.c:566:
+               if (llp == NULL)
[...]

ERROR: code indent should never use tabs
#587: FILE: contrib/virtiofsd/fuse_lowlevel.c:567:
+^I^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#589: FILE: contrib/virtiofsd/fuse_lowlevel.c:569:
+^I^Ires = fuse_pipe(llp->pipe);$

ERROR: code indent should never use tabs
#590: FILE: contrib/virtiofsd/fuse_lowlevel.c:570:
+^I^Iif (res == -1) {$

ERROR: code indent should never use tabs
#591: FILE: contrib/virtiofsd/fuse_lowlevel.c:571:
+^I^I^Ifree(llp);$

ERROR: code indent should never use tabs
#592: FILE: contrib/virtiofsd/fuse_lowlevel.c:572:
+^I^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#593: FILE: contrib/virtiofsd/fuse_lowlevel.c:573:
+^I^I}$

ERROR: code indent should never use tabs
#595: FILE: contrib/virtiofsd/fuse_lowlevel.c:575:
+^I^I/*$

ERROR: code indent should never use tabs
#596: FILE: contrib/virtiofsd/fuse_lowlevel.c:576:
+^I^I *the default size is 16 pages on linux$

ERROR: code indent should never use tabs
#597: FILE: contrib/virtiofsd/fuse_lowlevel.c:577:
+^I^I */$

ERROR: code indent should never use tabs
#598: FILE: contrib/virtiofsd/fuse_lowlevel.c:578:
+^I^Illp->size = pagesize * 16;$

ERROR: code indent should never use tabs
#599: FILE: contrib/virtiofsd/fuse_lowlevel.c:579:
+^I^Illp->can_grow = 1;$

ERROR: code indent should never use tabs
#601: FILE: contrib/virtiofsd/fuse_lowlevel.c:581:
+^I^Ipthread_setspecific(se->pipe_key, llp);$

ERROR: code indent should never use tabs
#602: FILE: contrib/virtiofsd/fuse_lowlevel.c:582:
+^I}$

ERROR: code indent should never use tabs
#604: FILE: contrib/virtiofsd/fuse_lowlevel.c:584:
+^Ireturn llp;$

ERROR: code indent should never use tabs
#610: FILE: contrib/virtiofsd/fuse_lowlevel.c:590:
+^Istruct fuse_ll_pipe *llp = pthread_getspecific(se->pipe_key);$

ERROR: code indent should never use tabs
#611: FILE: contrib/virtiofsd/fuse_lowlevel.c:591:
+^Iif (llp) {$

ERROR: code indent should never use tabs
#612: FILE: contrib/virtiofsd/fuse_lowlevel.c:592:
+^I^Ipthread_setspecific(se->pipe_key, NULL);$

ERROR: code indent should never use tabs
#613: FILE: contrib/virtiofsd/fuse_lowlevel.c:593:
+^I^Ifuse_ll_pipe_free(llp);$

ERROR: code indent should never use tabs
#614: FILE: contrib/virtiofsd/fuse_lowlevel.c:594:
+^I}$

ERROR: code indent should never use tabs
#620: FILE: contrib/virtiofsd/fuse_lowlevel.c:600:
+^Iint res;$

ERROR: code indent should never use tabs
#622: FILE: contrib/virtiofsd/fuse_lowlevel.c:602:
+^Ires = read(fd, buf, len);$

ERROR: code indent should never use tabs
#623: FILE: contrib/virtiofsd/fuse_lowlevel.c:603:
+^Iif (res == -1) {$

ERROR: line over 90 characters
#624: FILE: contrib/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
#624: FILE: contrib/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
#625: FILE: contrib/virtiofsd/fuse_lowlevel.c:605:
+^I^Ireturn -EIO;$

ERROR: code indent should never use tabs
#626: FILE: contrib/virtiofsd/fuse_lowlevel.c:606:
+^I}$

ERROR: code indent should never use tabs
#627: FILE: contrib/virtiofsd/fuse_lowlevel.c:607:
+^Iif (res != len) {$

ERROR: line over 90 characters
#628: FILE: contrib/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
#628: FILE: contrib/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
#629: FILE: contrib/virtiofsd/fuse_lowlevel.c:609:
+^I^Ireturn -EIO;$

ERROR: code indent should never use tabs
#630: FILE: contrib/virtiofsd/fuse_lowlevel.c:610:
+^I}$

ERROR: code indent should never use tabs
#631: FILE: contrib/virtiofsd/fuse_lowlevel.c:611:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#636: FILE: contrib/virtiofsd/fuse_lowlevel.c:616:
+^Iint max;$

ERROR: code indent should never use tabs
#637: FILE: contrib/virtiofsd/fuse_lowlevel.c:617:
+^Iint res;$

ERROR: code indent should never use tabs
#638: FILE: contrib/virtiofsd/fuse_lowlevel.c:618:
+^Iint maxfd;$

ERROR: code indent should never use tabs
#639: FILE: contrib/virtiofsd/fuse_lowlevel.c:619:
+^Ichar buf[32];$

ERROR: code indent should never use tabs
#641: FILE: contrib/virtiofsd/fuse_lowlevel.c:621:
+^Imaxfd = open("/proc/sys/fs/pipe-max-size", O_RDONLY);$

ERROR: code indent should never use tabs
#642: FILE: contrib/virtiofsd/fuse_lowlevel.c:622:
+^Iif (maxfd < 0)$

ERROR: braces {} are necessary for all arms of this statement
#642: FILE: contrib/virtiofsd/fuse_lowlevel.c:622:
+       if (maxfd < 0)
[...]

ERROR: code indent should never use tabs
#643: FILE: contrib/virtiofsd/fuse_lowlevel.c:623:
+^I^Ireturn -errno;$

ERROR: code indent should never use tabs
#645: FILE: contrib/virtiofsd/fuse_lowlevel.c:625:
+^Ires = read(maxfd, buf, sizeof(buf) - 1);$

ERROR: code indent should never use tabs
#646: FILE: contrib/virtiofsd/fuse_lowlevel.c:626:
+^Iif (res < 0) {$

ERROR: code indent should never use tabs
#647: FILE: contrib/virtiofsd/fuse_lowlevel.c:627:
+^I^Iint saved_errno;$

ERROR: code indent should never use tabs
#649: FILE: contrib/virtiofsd/fuse_lowlevel.c:629:
+^I^Isaved_errno = errno;$

ERROR: code indent should never use tabs
#650: FILE: contrib/virtiofsd/fuse_lowlevel.c:630:
+^I^Iclose(maxfd);$

ERROR: code indent should never use tabs
#651: FILE: contrib/virtiofsd/fuse_lowlevel.c:631:
+^I^Ireturn -saved_errno;$

ERROR: code indent should never use tabs
#652: FILE: contrib/virtiofsd/fuse_lowlevel.c:632:
+^I}$

ERROR: code indent should never use tabs
#653: FILE: contrib/virtiofsd/fuse_lowlevel.c:633:
+^Iclose(maxfd);$

ERROR: code indent should never use tabs
#654: FILE: contrib/virtiofsd/fuse_lowlevel.c:634:
+^Ibuf[res] = '\0';$

ERROR: code indent should never use tabs
#656: FILE: contrib/virtiofsd/fuse_lowlevel.c:636:
+^Imax = atoi(buf);$

ERROR: code indent should never use tabs
#657: FILE: contrib/virtiofsd/fuse_lowlevel.c:637:
+^Ires = fcntl(pipefd, F_SETPIPE_SZ, max);$

ERROR: code indent should never use tabs
#658: FILE: contrib/virtiofsd/fuse_lowlevel.c:638:
+^Iif (res < 0)$

ERROR: braces {} are necessary for all arms of this statement
#658: FILE: contrib/virtiofsd/fuse_lowlevel.c:638:
+       if (res < 0)
[...]

ERROR: code indent should never use tabs
#659: FILE: contrib/virtiofsd/fuse_lowlevel.c:639:
+^I^Ireturn -errno;$

ERROR: code indent should never use tabs
#660: FILE: contrib/virtiofsd/fuse_lowlevel.c:640:
+^Ireturn max;$

ERROR: code indent should never use tabs
#664: FILE: contrib/virtiofsd/fuse_lowlevel.c:644:
+^I^I^I       struct iovec *iov, int iov_count,$

ERROR: code indent should never use tabs
#665: FILE: contrib/virtiofsd/fuse_lowlevel.c:645:
+^I^I^I       struct fuse_bufvec *buf, unsigned int flags)$

ERROR: code indent should never use tabs
#667: FILE: contrib/virtiofsd/fuse_lowlevel.c:647:
+^Iint res;$

ERROR: code indent should never use tabs
#668: FILE: contrib/virtiofsd/fuse_lowlevel.c:648:
+^Isize_t len = fuse_buf_size(buf);$

ERROR: code indent should never use tabs
#669: FILE: contrib/virtiofsd/fuse_lowlevel.c:649:
+^Istruct fuse_out_header *out = iov[0].iov_base;$

ERROR: code indent should never use tabs
#670: FILE: contrib/virtiofsd/fuse_lowlevel.c:650:
+^Istruct fuse_ll_pipe *llp;$

ERROR: code indent should never use tabs
#671: FILE: contrib/virtiofsd/fuse_lowlevel.c:651:
+^Iint splice_flags;$

ERROR: code indent should never use tabs
#672: FILE: contrib/virtiofsd/fuse_lowlevel.c:652:
+^Isize_t pipesize;$

ERROR: code indent should never use tabs
#673: FILE: contrib/virtiofsd/fuse_lowlevel.c:653:
+^Isize_t total_fd_size;$

ERROR: code indent should never use tabs
#674: FILE: contrib/virtiofsd/fuse_lowlevel.c:654:
+^Isize_t idx;$

ERROR: code indent should never use tabs
#675: FILE: contrib/virtiofsd/fuse_lowlevel.c:655:
+^Isize_t headerlen;$

ERROR: code indent should never use tabs
#676: FILE: contrib/virtiofsd/fuse_lowlevel.c:656:
+^Istruct fuse_bufvec pipe_buf = FUSE_BUFVEC_INIT(len);$

ERROR: code indent should never use tabs
#678: FILE: contrib/virtiofsd/fuse_lowlevel.c:658:
+^Iif (se->broken_splice_nonblock)$

ERROR: braces {} are necessary for all arms of this statement
#678: FILE: contrib/virtiofsd/fuse_lowlevel.c:658:
+       if (se->broken_splice_nonblock)
[...]

ERROR: code indent should never use tabs
#679: FILE: contrib/virtiofsd/fuse_lowlevel.c:659:
+^I^Igoto fallback;$

ERROR: code indent should never use tabs
#681: FILE: contrib/virtiofsd/fuse_lowlevel.c:661:
+^Iif (flags & FUSE_BUF_NO_SPLICE)$

ERROR: braces {} are necessary for all arms of this statement
#681: FILE: contrib/virtiofsd/fuse_lowlevel.c:661:
+       if (flags & FUSE_BUF_NO_SPLICE)
[...]

ERROR: code indent should never use tabs
#682: FILE: contrib/virtiofsd/fuse_lowlevel.c:662:
+^I^Igoto fallback;$

ERROR: code indent should never use tabs
#684: FILE: contrib/virtiofsd/fuse_lowlevel.c:664:
+^Itotal_fd_size = 0;$

ERROR: code indent should never use tabs
#685: FILE: contrib/virtiofsd/fuse_lowlevel.c:665:
+^Ifor (idx = buf->idx; idx < buf->count; idx++) {$

ERROR: code indent should never use tabs
#686: FILE: contrib/virtiofsd/fuse_lowlevel.c:666:
+^I^Iif (buf->buf[idx].flags & FUSE_BUF_IS_FD) {$

ERROR: code indent should never use tabs
#687: FILE: contrib/virtiofsd/fuse_lowlevel.c:667:
+^I^I^Itotal_fd_size = buf->buf[idx].size;$

ERROR: code indent should never use tabs
#688: FILE: contrib/virtiofsd/fuse_lowlevel.c:668:
+^I^I^Iif (idx == buf->idx)$

ERROR: braces {} are necessary for all arms of this statement
#688: FILE: contrib/virtiofsd/fuse_lowlevel.c:668:
+                       if (idx == buf->idx)
[...]

ERROR: code indent should never use tabs
#689: FILE: contrib/virtiofsd/fuse_lowlevel.c:669:
+^I^I^I^Itotal_fd_size -= buf->off;$

ERROR: code indent should never use tabs
#690: FILE: contrib/virtiofsd/fuse_lowlevel.c:670:
+^I^I}$

ERROR: code indent should never use tabs
#691: FILE: contrib/virtiofsd/fuse_lowlevel.c:671:
+^I}$

ERROR: code indent should never use tabs
#692: FILE: contrib/virtiofsd/fuse_lowlevel.c:672:
+^Iif (total_fd_size < 2 * pagesize)$

ERROR: braces {} are necessary for all arms of this statement
#692: FILE: contrib/virtiofsd/fuse_lowlevel.c:672:
+       if (total_fd_size < 2 * pagesize)
[...]

ERROR: code indent should never use tabs
#693: FILE: contrib/virtiofsd/fuse_lowlevel.c:673:
+^I^Igoto fallback;$

ERROR: code indent should never use tabs
#695: FILE: contrib/virtiofsd/fuse_lowlevel.c:675:
+^Iif (se->conn.proto_minor < 14 ||$

ERROR: code indent should never use tabs
#696: FILE: contrib/virtiofsd/fuse_lowlevel.c:676:
+^I    !(se->conn.want & FUSE_CAP_SPLICE_WRITE))$

ERROR: code indent should never use tabs
#697: FILE: contrib/virtiofsd/fuse_lowlevel.c:677:
+^I^Igoto fallback;$

ERROR: code indent should never use tabs
#699: FILE: contrib/virtiofsd/fuse_lowlevel.c:679:
+^Illp = fuse_ll_get_pipe(se);$

ERROR: code indent should never use tabs
#700: FILE: contrib/virtiofsd/fuse_lowlevel.c:680:
+^Iif (llp == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#700: FILE: contrib/virtiofsd/fuse_lowlevel.c:680:
+       if (llp == NULL)
[...]

ERROR: code indent should never use tabs
#701: FILE: contrib/virtiofsd/fuse_lowlevel.c:681:
+^I^Igoto fallback;$

ERROR: code indent should never use tabs
#704: FILE: contrib/virtiofsd/fuse_lowlevel.c:684:
+^Iheaderlen = iov_length(iov, iov_count);$

ERROR: code indent should never use tabs
#706: FILE: contrib/virtiofsd/fuse_lowlevel.c:686:
+^Iout->len = headerlen + len;$

ERROR: code indent should never use tabs
#708: FILE: contrib/virtiofsd/fuse_lowlevel.c:688:
+^I/*$

ERROR: code indent should never use tabs
#709: FILE: contrib/virtiofsd/fuse_lowlevel.c:689:
+^I * Heuristic for the required pipe size, does not work if the$

ERROR: code indent should never use tabs
#710: FILE: contrib/virtiofsd/fuse_lowlevel.c:690:
+^I * source contains less than page size fragments$

ERROR: code indent should never use tabs
#711: FILE: contrib/virtiofsd/fuse_lowlevel.c:691:
+^I */$

ERROR: code indent should never use tabs
#712: FILE: contrib/virtiofsd/fuse_lowlevel.c:692:
+^Ipipesize = pagesize * (iov_count + buf->count + 1) + out->len;$

ERROR: code indent should never use tabs
#714: FILE: contrib/virtiofsd/fuse_lowlevel.c:694:
+^Iif (llp->size < pipesize) {$

ERROR: code indent should never use tabs
#715: FILE: contrib/virtiofsd/fuse_lowlevel.c:695:
+^I^Iif (llp->can_grow) {$

ERROR: code indent should never use tabs
#716: FILE: contrib/virtiofsd/fuse_lowlevel.c:696:
+^I^I^Ires = fcntl(llp->pipe[0], F_SETPIPE_SZ, pipesize);$

ERROR: code indent should never use tabs
#717: FILE: contrib/virtiofsd/fuse_lowlevel.c:697:
+^I^I^Iif (res == -1) {$

ERROR: code indent should never use tabs
#718: FILE: contrib/virtiofsd/fuse_lowlevel.c:698:
+^I^I^I^Ires = grow_pipe_to_max(llp->pipe[0]);$

ERROR: code indent should never use tabs
#719: FILE: contrib/virtiofsd/fuse_lowlevel.c:699:
+^I^I^I^Iif (res > 0)$

ERROR: braces {} are necessary for all arms of this statement
#719: FILE: contrib/virtiofsd/fuse_lowlevel.c:699:
+                               if (res > 0)
[...]

ERROR: code indent should never use tabs
#720: FILE: contrib/virtiofsd/fuse_lowlevel.c:700:
+^I^I^I^I^Illp->size = res;$

ERROR: code indent should never use tabs
#721: FILE: contrib/virtiofsd/fuse_lowlevel.c:701:
+^I^I^I^Illp->can_grow = 0;$

ERROR: code indent should never use tabs
#722: FILE: contrib/virtiofsd/fuse_lowlevel.c:702:
+^I^I^I^Igoto fallback;$

ERROR: code indent should never use tabs
#723: FILE: contrib/virtiofsd/fuse_lowlevel.c:703:
+^I^I^I}$

ERROR: code indent should never use tabs
#724: FILE: contrib/virtiofsd/fuse_lowlevel.c:704:
+^I^I^Illp->size = res;$

ERROR: code indent should never use tabs
#725: FILE: contrib/virtiofsd/fuse_lowlevel.c:705:
+^I^I}$

ERROR: code indent should never use tabs
#726: FILE: contrib/virtiofsd/fuse_lowlevel.c:706:
+^I^Iif (llp->size < pipesize)$

ERROR: braces {} are necessary for all arms of this statement
#726: FILE: contrib/virtiofsd/fuse_lowlevel.c:706:
+               if (llp->size < pipesize)
[...]

ERROR: code indent should never use tabs
#727: FILE: contrib/virtiofsd/fuse_lowlevel.c:707:
+^I^I^Igoto fallback;$

ERROR: code indent should never use tabs
#728: FILE: contrib/virtiofsd/fuse_lowlevel.c:708:
+^I}$

ERROR: code indent should never use tabs
#731: FILE: contrib/virtiofsd/fuse_lowlevel.c:711:
+^Ires = vmsplice(llp->pipe[1], iov, iov_count, SPLICE_F_NONBLOCK);$

ERROR: code indent should never use tabs
#732: FILE: contrib/virtiofsd/fuse_lowlevel.c:712:
+^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#732: FILE: contrib/virtiofsd/fuse_lowlevel.c:712:
+       if (res == -1)
[...]

ERROR: code indent should never use tabs
#733: FILE: contrib/virtiofsd/fuse_lowlevel.c:713:
+^I^Igoto fallback;$

ERROR: code indent should never use tabs
#735: FILE: contrib/virtiofsd/fuse_lowlevel.c:715:
+^Iif (res != headerlen) {$

ERROR: code indent should never use tabs
#736: FILE: contrib/virtiofsd/fuse_lowlevel.c:716:
+^I^Ires = -EIO;$

WARNING: line over 80 characters
#737: FILE: contrib/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
#737: FILE: contrib/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
#738: FILE: contrib/virtiofsd/fuse_lowlevel.c:718:
+^I^I^Iheaderlen);$

ERROR: code indent should never use tabs
#739: FILE: contrib/virtiofsd/fuse_lowlevel.c:719:
+^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#740: FILE: contrib/virtiofsd/fuse_lowlevel.c:720:
+^I}$

ERROR: code indent should never use tabs
#742: FILE: contrib/virtiofsd/fuse_lowlevel.c:722:
+^Ipipe_buf.buf[0].flags = FUSE_BUF_IS_FD;$

ERROR: code indent should never use tabs
#743: FILE: contrib/virtiofsd/fuse_lowlevel.c:723:
+^Ipipe_buf.buf[0].fd = llp->pipe[1];$

ERROR: code indent should never use tabs
#745: FILE: contrib/virtiofsd/fuse_lowlevel.c:725:
+^Ires = fuse_buf_copy(&pipe_buf, buf,$

ERROR: code indent should never use tabs
#746: FILE: contrib/virtiofsd/fuse_lowlevel.c:726:
+^I^I^I    FUSE_BUF_FORCE_SPLICE | FUSE_BUF_SPLICE_NONBLOCK);$

ERROR: code indent should never use tabs
#747: FILE: contrib/virtiofsd/fuse_lowlevel.c:727:
+^Iif (res < 0) {$

ERROR: code indent should never use tabs
#748: FILE: contrib/virtiofsd/fuse_lowlevel.c:728:
+^I^Iif (res == -EAGAIN || res == -EINVAL) {$

ERROR: code indent should never use tabs
#749: FILE: contrib/virtiofsd/fuse_lowlevel.c:729:
+^I^I^I/*$

ERROR: code indent should never use tabs
#750: FILE: contrib/virtiofsd/fuse_lowlevel.c:730:
+^I^I^I * Should only get EAGAIN on kernels with$

ERROR: code indent should never use tabs
#751: FILE: contrib/virtiofsd/fuse_lowlevel.c:731:
+^I^I^I * broken SPLICE_F_NONBLOCK support (<=$

ERROR: code indent should never use tabs
#752: FILE: contrib/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
#753: FILE: contrib/virtiofsd/fuse_lowlevel.c:733:
+^I^I^I * returned even if the pipe itself is not$

ERROR: code indent should never use tabs
#754: FILE: contrib/virtiofsd/fuse_lowlevel.c:734:
+^I^I^I * full$

ERROR: code indent should never use tabs
#755: FILE: contrib/virtiofsd/fuse_lowlevel.c:735:
+^I^I^I *$

ERROR: code indent should never use tabs
#756: FILE: contrib/virtiofsd/fuse_lowlevel.c:736:
+^I^I^I * EINVAL might mean that splice can't handle$

ERROR: code indent should never use tabs
#757: FILE: contrib/virtiofsd/fuse_lowlevel.c:737:
+^I^I^I * this combination of input and output.$

ERROR: code indent should never use tabs
#758: FILE: contrib/virtiofsd/fuse_lowlevel.c:738:
+^I^I^I */$

ERROR: code indent should never use tabs
#759: FILE: contrib/virtiofsd/fuse_lowlevel.c:739:
+^I^I^Iif (res == -EAGAIN)$

ERROR: braces {} are necessary for all arms of this statement
#759: FILE: contrib/virtiofsd/fuse_lowlevel.c:739:
+                       if (res == -EAGAIN)
[...]

ERROR: code indent should never use tabs
#760: FILE: contrib/virtiofsd/fuse_lowlevel.c:740:
+^I^I^I^Ise->broken_splice_nonblock = 1;$

ERROR: code indent should never use tabs
#762: FILE: contrib/virtiofsd/fuse_lowlevel.c:742:
+^I^I^Ipthread_setspecific(se->pipe_key, NULL);$

ERROR: code indent should never use tabs
#763: FILE: contrib/virtiofsd/fuse_lowlevel.c:743:
+^I^I^Ifuse_ll_pipe_free(llp);$

ERROR: code indent should never use tabs
#764: FILE: contrib/virtiofsd/fuse_lowlevel.c:744:
+^I^I^Igoto fallback;$

ERROR: code indent should never use tabs
#765: FILE: contrib/virtiofsd/fuse_lowlevel.c:745:
+^I^I}$

ERROR: code indent should never use tabs
#766: FILE: contrib/virtiofsd/fuse_lowlevel.c:746:
+^I^Ires = -res;$

ERROR: code indent should never use tabs
#767: FILE: contrib/virtiofsd/fuse_lowlevel.c:747:
+^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#768: FILE: contrib/virtiofsd/fuse_lowlevel.c:748:
+^I}$

ERROR: code indent should never use tabs
#770: FILE: contrib/virtiofsd/fuse_lowlevel.c:750:
+^Iif (res != 0 && res < len) {$

ERROR: code indent should never use tabs
#771: FILE: contrib/virtiofsd/fuse_lowlevel.c:751:
+^I^Istruct fuse_bufvec mem_buf = FUSE_BUFVEC_INIT(len);$

ERROR: code indent should never use tabs
#772: FILE: contrib/virtiofsd/fuse_lowlevel.c:752:
+^I^Ivoid *mbuf;$

ERROR: code indent should never use tabs
#773: FILE: contrib/virtiofsd/fuse_lowlevel.c:753:
+^I^Isize_t now_len = res;$

ERROR: code indent should never use tabs
#774: FILE: contrib/virtiofsd/fuse_lowlevel.c:754:
+^I^I/*$

ERROR: code indent should never use tabs
#775: FILE: contrib/virtiofsd/fuse_lowlevel.c:755:
+^I^I * For regular files a short count is either$

ERROR: code indent should never use tabs
#776: FILE: contrib/virtiofsd/fuse_lowlevel.c:756:
+^I^I *  1) due to EOF, or$

ERROR: code indent should never use tabs
#777: FILE: contrib/virtiofsd/fuse_lowlevel.c:757:
+^I^I *  2) because of broken SPLICE_F_NONBLOCK (see above)$

ERROR: code indent should never use tabs
#778: FILE: contrib/virtiofsd/fuse_lowlevel.c:758:
+^I^I *$

ERROR: code indent should never use tabs
#779: FILE: contrib/virtiofsd/fuse_lowlevel.c:759:
+^I^I * For other inputs it's possible that we overflowed$

ERROR: code indent should never use tabs
#780: FILE: contrib/virtiofsd/fuse_lowlevel.c:760:
+^I^I * the pipe because of small buffer fragments.$

ERROR: code indent should never use tabs
#781: FILE: contrib/virtiofsd/fuse_lowlevel.c:761:
+^I^I */$

ERROR: code indent should never use tabs
#783: FILE: contrib/virtiofsd/fuse_lowlevel.c:763:
+^I^Ires = posix_memalign(&mbuf, pagesize, len);$

ERROR: code indent should never use tabs
#784: FILE: contrib/virtiofsd/fuse_lowlevel.c:764:
+^I^Iif (res != 0)$

ERROR: braces {} are necessary for all arms of this statement
#784: FILE: contrib/virtiofsd/fuse_lowlevel.c:764:
+               if (res != 0)
[...]

ERROR: code indent should never use tabs
#785: FILE: contrib/virtiofsd/fuse_lowlevel.c:765:
+^I^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#787: FILE: contrib/virtiofsd/fuse_lowlevel.c:767:
+^I^Imem_buf.buf[0].mem = mbuf;$

ERROR: code indent should never use tabs
#788: FILE: contrib/virtiofsd/fuse_lowlevel.c:768:
+^I^Imem_buf.off = now_len;$

ERROR: code indent should never use tabs
#789: FILE: contrib/virtiofsd/fuse_lowlevel.c:769:
+^I^Ires = fuse_buf_copy(&mem_buf, buf, 0);$

ERROR: code indent should never use tabs
#790: FILE: contrib/virtiofsd/fuse_lowlevel.c:770:
+^I^Iif (res > 0) {$

ERROR: code indent should never use tabs
#791: FILE: contrib/virtiofsd/fuse_lowlevel.c:771:
+^I^I^Ichar *tmpbuf;$

ERROR: code indent should never use tabs
#792: FILE: contrib/virtiofsd/fuse_lowlevel.c:772:
+^I^I^Isize_t extra_len = res;$

ERROR: code indent should never use tabs
#793: FILE: contrib/virtiofsd/fuse_lowlevel.c:773:
+^I^I^I/*$

ERROR: code indent should never use tabs
#794: FILE: contrib/virtiofsd/fuse_lowlevel.c:774:
+^I^I^I * Trickiest case: got more data.  Need to get$

ERROR: code indent should never use tabs
#795: FILE: contrib/virtiofsd/fuse_lowlevel.c:775:
+^I^I^I * back the data from the pipe and then fall$

ERROR: code indent should never use tabs
#796: FILE: contrib/virtiofsd/fuse_lowlevel.c:776:
+^I^I^I * back to regular write.$

ERROR: code indent should never use tabs
#797: FILE: contrib/virtiofsd/fuse_lowlevel.c:777:
+^I^I^I */$

ERROR: code indent should never use tabs
#798: FILE: contrib/virtiofsd/fuse_lowlevel.c:778:
+^I^I^Itmpbuf = malloc(headerlen);$

ERROR: code indent should never use tabs
#799: FILE: contrib/virtiofsd/fuse_lowlevel.c:779:
+^I^I^Iif (tmpbuf == NULL) {$

ERROR: code indent should never use tabs
#800: FILE: contrib/virtiofsd/fuse_lowlevel.c:780:
+^I^I^I^Ifree(mbuf);$

ERROR: code indent should never use tabs
#801: FILE: contrib/virtiofsd/fuse_lowlevel.c:781:
+^I^I^I^Ires = ENOMEM;$

ERROR: code indent should never use tabs
#802: FILE: contrib/virtiofsd/fuse_lowlevel.c:782:
+^I^I^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#803: FILE: contrib/virtiofsd/fuse_lowlevel.c:783:
+^I^I^I}$

ERROR: code indent should never use tabs
#804: FILE: contrib/virtiofsd/fuse_lowlevel.c:784:
+^I^I^Ires = read_back(llp->pipe[0], tmpbuf, headerlen);$

ERROR: code indent should never use tabs
#805: FILE: contrib/virtiofsd/fuse_lowlevel.c:785:
+^I^I^Ifree(tmpbuf);$

ERROR: code indent should never use tabs
#806: FILE: contrib/virtiofsd/fuse_lowlevel.c:786:
+^I^I^Iif (res != 0) {$

ERROR: code indent should never use tabs
#807: FILE: contrib/virtiofsd/fuse_lowlevel.c:787:
+^I^I^I^Ifree(mbuf);$

ERROR: code indent should never use tabs
#808: FILE: contrib/virtiofsd/fuse_lowlevel.c:788:
+^I^I^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#809: FILE: contrib/virtiofsd/fuse_lowlevel.c:789:
+^I^I^I}$

ERROR: code indent should never use tabs
#810: FILE: contrib/virtiofsd/fuse_lowlevel.c:790:
+^I^I^Ires = read_back(llp->pipe[0], mbuf, now_len);$

ERROR: code indent should never use tabs
#811: FILE: contrib/virtiofsd/fuse_lowlevel.c:791:
+^I^I^Iif (res != 0) {$

ERROR: code indent should never use tabs
#812: FILE: contrib/virtiofsd/fuse_lowlevel.c:792:
+^I^I^I^Ifree(mbuf);$

ERROR: code indent should never use tabs
#813: FILE: contrib/virtiofsd/fuse_lowlevel.c:793:
+^I^I^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#814: FILE: contrib/virtiofsd/fuse_lowlevel.c:794:
+^I^I^I}$

ERROR: code indent should never use tabs
#815: FILE: contrib/virtiofsd/fuse_lowlevel.c:795:
+^I^I^Ilen = now_len + extra_len;$

ERROR: code indent should never use tabs
#816: FILE: contrib/virtiofsd/fuse_lowlevel.c:796:
+^I^I^Iiov[iov_count].iov_base = mbuf;$

ERROR: code indent should never use tabs
#817: FILE: contrib/virtiofsd/fuse_lowlevel.c:797:
+^I^I^Iiov[iov_count].iov_len = len;$

ERROR: code indent should never use tabs
#818: FILE: contrib/virtiofsd/fuse_lowlevel.c:798:
+^I^I^Iiov_count++;$

ERROR: code indent should never use tabs
#819: FILE: contrib/virtiofsd/fuse_lowlevel.c:799:
+^I^I^Ires = fuse_send_msg(se, ch, iov, iov_count);$

ERROR: code indent should never use tabs
#820: FILE: contrib/virtiofsd/fuse_lowlevel.c:800:
+^I^I^Ifree(mbuf);$

ERROR: code indent should never use tabs
#821: FILE: contrib/virtiofsd/fuse_lowlevel.c:801:
+^I^I^Ireturn res;$

ERROR: code indent should never use tabs
#822: FILE: contrib/virtiofsd/fuse_lowlevel.c:802:
+^I^I}$

ERROR: code indent should never use tabs
#823: FILE: contrib/virtiofsd/fuse_lowlevel.c:803:
+^I^Ifree(mbuf);$

ERROR: code indent should never use tabs
#824: FILE: contrib/virtiofsd/fuse_lowlevel.c:804:
+^I^Ires = now_len;$

ERROR: code indent should never use tabs
#825: FILE: contrib/virtiofsd/fuse_lowlevel.c:805:
+^I}$

ERROR: code indent should never use tabs
#826: FILE: contrib/virtiofsd/fuse_lowlevel.c:806:
+^Ilen = res;$

ERROR: code indent should never use tabs
#827: FILE: contrib/virtiofsd/fuse_lowlevel.c:807:
+^Iout->len = headerlen + len;$

ERROR: code indent should never use tabs
#829: FILE: contrib/virtiofsd/fuse_lowlevel.c:809:
+^Iif (se->debug) {$

ERROR: code indent should never use tabs
#830: FILE: contrib/virtiofsd/fuse_lowlevel.c:810:
+^I^Ifuse_log(FUSE_LOG_DEBUG,$

ERROR: code indent should never use tabs
#831: FILE: contrib/virtiofsd/fuse_lowlevel.c:811:
+^I^I^I"   unique: %llu, success, outsize: %i (splice)\n",$

ERROR: code indent should never use tabs
#832: FILE: contrib/virtiofsd/fuse_lowlevel.c:812:
+^I^I^I(unsigned long long) out->unique, out->len);$

ERROR: code indent should never use tabs
#833: FILE: contrib/virtiofsd/fuse_lowlevel.c:813:
+^I}$

ERROR: code indent should never use tabs
#835: FILE: contrib/virtiofsd/fuse_lowlevel.c:815:
+^Isplice_flags = 0;$

ERROR: code indent should never use tabs
#836: FILE: contrib/virtiofsd/fuse_lowlevel.c:816:
+^Iif ((flags & FUSE_BUF_SPLICE_MOVE) &&$

ERROR: code indent should never use tabs
#837: FILE: contrib/virtiofsd/fuse_lowlevel.c:817:
+^I    (se->conn.want & FUSE_CAP_SPLICE_MOVE))$

ERROR: code indent should never use tabs
#838: FILE: contrib/virtiofsd/fuse_lowlevel.c:818:
+^I^Isplice_flags |= SPLICE_F_MOVE;$

ERROR: code indent should never use tabs
#840: FILE: contrib/virtiofsd/fuse_lowlevel.c:820:
+^Ires = splice(llp->pipe[0], NULL, ch ? ch->fd : se->fd,$

ERROR: code indent should never use tabs
#841: FILE: contrib/virtiofsd/fuse_lowlevel.c:821:
+^I^I     NULL, out->len, splice_flags);$

ERROR: code indent should never use tabs
#842: FILE: contrib/virtiofsd/fuse_lowlevel.c:822:
+^Iif (res == -1) {$

ERROR: code indent should never use tabs
#843: FILE: contrib/virtiofsd/fuse_lowlevel.c:823:
+^I^Ires = -errno;$

ERROR: code indent should never use tabs
#844: FILE: contrib/virtiofsd/fuse_lowlevel.c:824:
+^I^Iperror("fuse: splice from pipe");$

ERROR: code indent should never use tabs
#845: FILE: contrib/virtiofsd/fuse_lowlevel.c:825:
+^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#846: FILE: contrib/virtiofsd/fuse_lowlevel.c:826:
+^I}$

ERROR: code indent should never use tabs
#847: FILE: contrib/virtiofsd/fuse_lowlevel.c:827:
+^Iif (res != out->len) {$

ERROR: code indent should never use tabs
#848: FILE: contrib/virtiofsd/fuse_lowlevel.c:828:
+^I^Ires = -EIO;$

ERROR: code indent should never use tabs
#849: FILE: contrib/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
#850: FILE: contrib/virtiofsd/fuse_lowlevel.c:830:
+^I^I^Ires, out->len);$

ERROR: code indent should never use tabs
#851: FILE: contrib/virtiofsd/fuse_lowlevel.c:831:
+^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#852: FILE: contrib/virtiofsd/fuse_lowlevel.c:832:
+^I}$

ERROR: code indent should never use tabs
#853: FILE: contrib/virtiofsd/fuse_lowlevel.c:833:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#856: FILE: contrib/virtiofsd/fuse_lowlevel.c:836:
+^Ifuse_ll_clear_pipe(se);$

ERROR: code indent should never use tabs
#857: FILE: contrib/virtiofsd/fuse_lowlevel.c:837:
+^Ireturn res;$

ERROR: code indent should never use tabs
#860: FILE: contrib/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
#864: FILE: contrib/virtiofsd/fuse_lowlevel.c:844:
+^I^I^I       struct iovec *iov, int iov_count,$

ERROR: code indent should never use tabs
#865: FILE: contrib/virtiofsd/fuse_lowlevel.c:845:
+^I^I^I       struct fuse_bufvec *buf, unsigned int flags)$

ERROR: code indent should never use tabs
#867: FILE: contrib/virtiofsd/fuse_lowlevel.c:847:
+^Isize_t len = fuse_buf_size(buf);$

ERROR: code indent should never use tabs
#868: FILE: contrib/virtiofsd/fuse_lowlevel.c:848:
+^I(void) flags;$

ERROR: code indent should never use tabs
#870: FILE: contrib/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
#875: FILE: contrib/virtiofsd/fuse_lowlevel.c:855:
+^I^I    enum fuse_buf_copy_flags flags)$

ERROR: code indent should never use tabs
#877: FILE: contrib/virtiofsd/fuse_lowlevel.c:857:
+^Istruct iovec iov[2];$

ERROR: code indent should never use tabs
#878: FILE: contrib/virtiofsd/fuse_lowlevel.c:858:
+^Istruct fuse_out_header out;$

ERROR: code indent should never use tabs
#879: FILE: contrib/virtiofsd/fuse_lowlevel.c:859:
+^Iint res;$

ERROR: code indent should never use tabs
#881: FILE: contrib/virtiofsd/fuse_lowlevel.c:861:
+^Iiov[0].iov_base = &out;$

ERROR: code indent should never use tabs
#882: FILE: contrib/virtiofsd/fuse_lowlevel.c:862:
+^Iiov[0].iov_len = sizeof(struct fuse_out_header);$

ERROR: code indent should never use tabs
#884: FILE: contrib/virtiofsd/fuse_lowlevel.c:864:
+^Iout.unique = req->unique;$

ERROR: code indent should never use tabs
#885: FILE: contrib/virtiofsd/fuse_lowlevel.c:865:
+^Iout.error = 0;$

ERROR: code indent should never use tabs
#887: FILE: contrib/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
#888: FILE: contrib/virtiofsd/fuse_lowlevel.c:868:
+^Iif (res <= 0) {$

ERROR: code indent should never use tabs
#889: FILE: contrib/virtiofsd/fuse_lowlevel.c:869:
+^I^Ifuse_free_req(req);$

ERROR: code indent should never use tabs
#890: FILE: contrib/virtiofsd/fuse_lowlevel.c:870:
+^I^Ireturn res;$

ERROR: code indent should never use tabs
#891: FILE: contrib/virtiofsd/fuse_lowlevel.c:871:
+^I} else {$

ERROR: code indent should never use tabs
#892: FILE: contrib/virtiofsd/fuse_lowlevel.c:872:
+^I^Ireturn fuse_reply_err(req, res);$

ERROR: code indent should never use tabs
#893: FILE: contrib/virtiofsd/fuse_lowlevel.c:873:
+^I}$

ERROR: code indent should never use tabs
#898: FILE: contrib/virtiofsd/fuse_lowlevel.c:878:
+^Istruct fuse_statfs_out arg;$

ERROR: code indent should never use tabs
#899: FILE: contrib/virtiofsd/fuse_lowlevel.c:879:
+^Isize_t size = req->se->conn.proto_minor < 4 ?$

ERROR: code indent should never use tabs
#900: FILE: contrib/virtiofsd/fuse_lowlevel.c:880:
+^I^IFUSE_COMPAT_STATFS_SIZE : sizeof(arg);$

ERROR: code indent should never use tabs
#902: FILE: contrib/virtiofsd/fuse_lowlevel.c:882:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#903: FILE: contrib/virtiofsd/fuse_lowlevel.c:883:
+^Iconvert_statfs(stbuf, &arg.st);$

ERROR: code indent should never use tabs
#905: FILE: contrib/virtiofsd/fuse_lowlevel.c:885:
+^Ireturn send_reply_ok(req, &arg, size);$

ERROR: code indent should never use tabs
#910: FILE: contrib/virtiofsd/fuse_lowlevel.c:890:
+^Istruct fuse_getxattr_out arg;$

ERROR: code indent should never use tabs
#912: FILE: contrib/virtiofsd/fuse_lowlevel.c:892:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#913: FILE: contrib/virtiofsd/fuse_lowlevel.c:893:
+^Iarg.size = count;$

ERROR: code indent should never use tabs
#915: FILE: contrib/virtiofsd/fuse_lowlevel.c:895:
+^Ireturn send_reply_ok(req, &arg, sizeof(arg));$

ERROR: code indent should never use tabs
#920: FILE: contrib/virtiofsd/fuse_lowlevel.c:900:
+^Istruct fuse_lk_out arg;$

ERROR: code indent should never use tabs
#922: FILE: contrib/virtiofsd/fuse_lowlevel.c:902:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#923: FILE: contrib/virtiofsd/fuse_lowlevel.c:903:
+^Iarg.lk.type = lock->l_type;$

ERROR: code indent should never use tabs
#924: FILE: contrib/virtiofsd/fuse_lowlevel.c:904:
+^Iif (lock->l_type != F_UNLCK) {$

ERROR: code indent should never use tabs
#925: FILE: contrib/virtiofsd/fuse_lowlevel.c:905:
+^I^Iarg.lk.start = lock->l_start;$

ERROR: code indent should never use tabs
#926: FILE: contrib/virtiofsd/fuse_lowlevel.c:906:
+^I^Iif (lock->l_len == 0)$

ERROR: braces {} are necessary for all arms of this statement
#926: FILE: contrib/virtiofsd/fuse_lowlevel.c:906:
+               if (lock->l_len == 0)
[...]
+               else
[...]

ERROR: code indent should never use tabs
#927: FILE: contrib/virtiofsd/fuse_lowlevel.c:907:
+^I^I^Iarg.lk.end = OFFSET_MAX;$

ERROR: code indent should never use tabs
#928: FILE: contrib/virtiofsd/fuse_lowlevel.c:908:
+^I^Ielse$

ERROR: code indent should never use tabs
#929: FILE: contrib/virtiofsd/fuse_lowlevel.c:909:
+^I^I^Iarg.lk.end = lock->l_start + lock->l_len - 1;$

ERROR: code indent should never use tabs
#930: FILE: contrib/virtiofsd/fuse_lowlevel.c:910:
+^I}$

ERROR: code indent should never use tabs
#931: FILE: contrib/virtiofsd/fuse_lowlevel.c:911:
+^Iarg.lk.pid = lock->l_pid;$

ERROR: code indent should never use tabs
#932: FILE: contrib/virtiofsd/fuse_lowlevel.c:912:
+^Ireturn send_reply_ok(req, &arg, sizeof(arg));$

ERROR: code indent should never use tabs
#937: FILE: contrib/virtiofsd/fuse_lowlevel.c:917:
+^Istruct fuse_bmap_out arg;$

ERROR: code indent should never use tabs
#939: FILE: contrib/virtiofsd/fuse_lowlevel.c:919:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#940: FILE: contrib/virtiofsd/fuse_lowlevel.c:920:
+^Iarg.block = idx;$

ERROR: code indent should never use tabs
#942: FILE: contrib/virtiofsd/fuse_lowlevel.c:922:
+^Ireturn send_reply_ok(req, &arg, sizeof(arg));$

ERROR: code indent should never use tabs
#946: FILE: contrib/virtiofsd/fuse_lowlevel.c:926:
+^I^I^I^I^I^I      size_t count)$

ERROR: code indent should never use tabs
#948: FILE: contrib/virtiofsd/fuse_lowlevel.c:928:
+^Istruct fuse_ioctl_iovec *fiov;$

ERROR: code indent should never use tabs
#949: FILE: contrib/virtiofsd/fuse_lowlevel.c:929:
+^Isize_t i;$

ERROR: code indent should never use tabs
#951: FILE: contrib/virtiofsd/fuse_lowlevel.c:931:
+^Ifiov = malloc(sizeof(fiov[0]) * count);$

ERROR: code indent should never use tabs
#952: FILE: contrib/virtiofsd/fuse_lowlevel.c:932:
+^Iif (!fiov)$

ERROR: braces {} are necessary for all arms of this statement
#952: FILE: contrib/virtiofsd/fuse_lowlevel.c:932:
+       if (!fiov)
[...]

ERROR: code indent should never use tabs
#953: FILE: contrib/virtiofsd/fuse_lowlevel.c:933:
+^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#955: FILE: contrib/virtiofsd/fuse_lowlevel.c:935:
+^Ifor (i = 0; i < count; i++) {$

ERROR: code indent should never use tabs
#956: FILE: contrib/virtiofsd/fuse_lowlevel.c:936:
+^I^Ifiov[i].base = (uintptr_t) iov[i].iov_base;$

ERROR: code indent should never use tabs
#957: FILE: contrib/virtiofsd/fuse_lowlevel.c:937:
+^I^Ifiov[i].len = iov[i].iov_len;$

ERROR: code indent should never use tabs
#958: FILE: contrib/virtiofsd/fuse_lowlevel.c:938:
+^I}$

ERROR: code indent should never use tabs
#960: FILE: contrib/virtiofsd/fuse_lowlevel.c:940:
+^Ireturn fiov;$

ERROR: code indent should never use tabs
#964: FILE: contrib/virtiofsd/fuse_lowlevel.c:944:
+^I^I^I   const struct iovec *in_iov, size_t in_count,$

ERROR: code indent should never use tabs
#965: FILE: contrib/virtiofsd/fuse_lowlevel.c:945:
+^I^I^I   const struct iovec *out_iov, size_t out_count)$

ERROR: code indent should never use tabs
#967: FILE: contrib/virtiofsd/fuse_lowlevel.c:947:
+^Istruct fuse_ioctl_out arg;$

ERROR: code indent should never use tabs
#968: FILE: contrib/virtiofsd/fuse_lowlevel.c:948:
+^Istruct fuse_ioctl_iovec *in_fiov = NULL;$

ERROR: code indent should never use tabs
#969: FILE: contrib/virtiofsd/fuse_lowlevel.c:949:
+^Istruct fuse_ioctl_iovec *out_fiov = NULL;$

ERROR: code indent should never use tabs
#970: FILE: contrib/virtiofsd/fuse_lowlevel.c:950:
+^Istruct iovec iov[4];$

ERROR: code indent should never use tabs
#971: FILE: contrib/virtiofsd/fuse_lowlevel.c:951:
+^Isize_t count = 1;$

ERROR: code indent should never use tabs
#972: FILE: contrib/virtiofsd/fuse_lowlevel.c:952:
+^Iint res;$

ERROR: code indent should never use tabs
#974: FILE: contrib/virtiofsd/fuse_lowlevel.c:954:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#975: FILE: contrib/virtiofsd/fuse_lowlevel.c:955:
+^Iarg.flags |= FUSE_IOCTL_RETRY;$

ERROR: code indent should never use tabs
#976: FILE: contrib/virtiofsd/fuse_lowlevel.c:956:
+^Iarg.in_iovs = in_count;$

ERROR: code indent should never use tabs
#977: FILE: contrib/virtiofsd/fuse_lowlevel.c:957:
+^Iarg.out_iovs = out_count;$

ERROR: code indent should never use tabs
#978: FILE: contrib/virtiofsd/fuse_lowlevel.c:958:
+^Iiov[count].iov_base = &arg;$

ERROR: code indent should never use tabs
#979: FILE: contrib/virtiofsd/fuse_lowlevel.c:959:
+^Iiov[count].iov_len = sizeof(arg);$

ERROR: code indent should never use tabs
#980: FILE: contrib/virtiofsd/fuse_lowlevel.c:960:
+^Icount++;$

ERROR: code indent should never use tabs
#982: FILE: contrib/virtiofsd/fuse_lowlevel.c:962:
+^Iif (req->se->conn.proto_minor < 16) {$

ERROR: code indent should never use tabs
#983: FILE: contrib/virtiofsd/fuse_lowlevel.c:963:
+^I^Iif (in_count) {$

ERROR: code indent should never use tabs
#984: FILE: contrib/virtiofsd/fuse_lowlevel.c:964:
+^I^I^Iiov[count].iov_base = (void *)in_iov;$

ERROR: code indent should never use tabs
#985: FILE: contrib/virtiofsd/fuse_lowlevel.c:965:
+^I^I^Iiov[count].iov_len = sizeof(in_iov[0]) * in_count;$

ERROR: code indent should never use tabs
#986: FILE: contrib/virtiofsd/fuse_lowlevel.c:966:
+^I^I^Icount++;$

ERROR: code indent should never use tabs
#987: FILE: contrib/virtiofsd/fuse_lowlevel.c:967:
+^I^I}$

ERROR: code indent should never use tabs
#989: FILE: contrib/virtiofsd/fuse_lowlevel.c:969:
+^I^Iif (out_count) {$

ERROR: code indent should never use tabs
#990: FILE: contrib/virtiofsd/fuse_lowlevel.c:970:
+^I^I^Iiov[count].iov_base = (void *)out_iov;$

ERROR: code indent should never use tabs
#991: FILE: contrib/virtiofsd/fuse_lowlevel.c:971:
+^I^I^Iiov[count].iov_len = sizeof(out_iov[0]) * out_count;$

ERROR: code indent should never use tabs
#992: FILE: contrib/virtiofsd/fuse_lowlevel.c:972:
+^I^I^Icount++;$

ERROR: code indent should never use tabs
#993: FILE: contrib/virtiofsd/fuse_lowlevel.c:973:
+^I^I}$

ERROR: code indent should never use tabs
#994: FILE: contrib/virtiofsd/fuse_lowlevel.c:974:
+^I} else {$

ERROR: code indent should never use tabs
#995: FILE: contrib/virtiofsd/fuse_lowlevel.c:975:
+^I^I/* Can't handle non-compat 64bit ioctls on 32bit */$

ERROR: code indent should never use tabs
#996: FILE: contrib/virtiofsd/fuse_lowlevel.c:976:
+^I^Iif (sizeof(void *) == 4 && req->ioctl_64bit) {$

ERROR: code indent should never use tabs
#997: FILE: contrib/virtiofsd/fuse_lowlevel.c:977:
+^I^I^Ires = fuse_reply_err(req, EINVAL);$

ERROR: code indent should never use tabs
#998: FILE: contrib/virtiofsd/fuse_lowlevel.c:978:
+^I^I^Igoto out;$

ERROR: code indent should never use tabs
#999: FILE: contrib/virtiofsd/fuse_lowlevel.c:979:
+^I^I}$

ERROR: code indent should never use tabs
#1001: FILE: contrib/virtiofsd/fuse_lowlevel.c:981:
+^I^Iif (in_count) {$

ERROR: code indent should never use tabs
#1002: FILE: contrib/virtiofsd/fuse_lowlevel.c:982:
+^I^I^Iin_fiov = fuse_ioctl_iovec_copy(in_iov, in_count);$

ERROR: code indent should never use tabs
#1003: FILE: contrib/virtiofsd/fuse_lowlevel.c:983:
+^I^I^Iif (!in_fiov)$

ERROR: braces {} are necessary for all arms of this statement
#1003: FILE: contrib/virtiofsd/fuse_lowlevel.c:983:
+                       if (!in_fiov)
[...]

ERROR: code indent should never use tabs
#1004: FILE: contrib/virtiofsd/fuse_lowlevel.c:984:
+^I^I^I^Igoto enomem;$

ERROR: code indent should never use tabs
#1006: FILE: contrib/virtiofsd/fuse_lowlevel.c:986:
+^I^I^Iiov[count].iov_base = (void *)in_fiov;$

ERROR: code indent should never use tabs
#1007: FILE: contrib/virtiofsd/fuse_lowlevel.c:987:
+^I^I^Iiov[count].iov_len = sizeof(in_fiov[0]) * in_count;$

ERROR: code indent should never use tabs
#1008: FILE: contrib/virtiofsd/fuse_lowlevel.c:988:
+^I^I^Icount++;$

ERROR: code indent should never use tabs
#1009: FILE: contrib/virtiofsd/fuse_lowlevel.c:989:
+^I^I}$

ERROR: code indent should never use tabs
#1010: FILE: contrib/virtiofsd/fuse_lowlevel.c:990:
+^I^Iif (out_count) {$

ERROR: code indent should never use tabs
#1011: FILE: contrib/virtiofsd/fuse_lowlevel.c:991:
+^I^I^Iout_fiov = fuse_ioctl_iovec_copy(out_iov, out_count);$

ERROR: code indent should never use tabs
#1012: FILE: contrib/virtiofsd/fuse_lowlevel.c:992:
+^I^I^Iif (!out_fiov)$

ERROR: braces {} are necessary for all arms of this statement
#1012: FILE: contrib/virtiofsd/fuse_lowlevel.c:992:
+                       if (!out_fiov)
[...]

ERROR: code indent should never use tabs
#1013: FILE: contrib/virtiofsd/fuse_lowlevel.c:993:
+^I^I^I^Igoto enomem;$

ERROR: code indent should never use tabs
#1015: FILE: contrib/virtiofsd/fuse_lowlevel.c:995:
+^I^I^Iiov[count].iov_base = (void *)out_fiov;$

ERROR: code indent should never use tabs
#1016: FILE: contrib/virtiofsd/fuse_lowlevel.c:996:
+^I^I^Iiov[count].iov_len = sizeof(out_fiov[0]) * out_count;$

ERROR: code indent should never use tabs
#1017: FILE: contrib/virtiofsd/fuse_lowlevel.c:997:
+^I^I^Icount++;$

ERROR: code indent should never use tabs
#1018: FILE: contrib/virtiofsd/fuse_lowlevel.c:998:
+^I^I}$

ERROR: code indent should never use tabs
#1019: FILE: contrib/virtiofsd/fuse_lowlevel.c:999:
+^I}$

ERROR: code indent should never use tabs
#1021: FILE: contrib/virtiofsd/fuse_lowlevel.c:1001:
+^Ires = send_reply_iov(req, 0, iov, count);$

ERROR: code indent should never use tabs
#1023: FILE: contrib/virtiofsd/fuse_lowlevel.c:1003:
+^Ifree(in_fiov);$

ERROR: code indent should never use tabs
#1024: FILE: contrib/virtiofsd/fuse_lowlevel.c:1004:
+^Ifree(out_fiov);$

ERROR: code indent should never use tabs
#1026: FILE: contrib/virtiofsd/fuse_lowlevel.c:1006:
+^Ireturn res;$

ERROR: code indent should never use tabs
#1029: FILE: contrib/virtiofsd/fuse_lowlevel.c:1009:
+^Ires = fuse_reply_err(req, ENOMEM);$

ERROR: code indent should never use tabs
#1030: FILE: contrib/virtiofsd/fuse_lowlevel.c:1010:
+^Igoto out;$

ERROR: code indent should never use tabs
#1035: FILE: contrib/virtiofsd/fuse_lowlevel.c:1015:
+^Istruct fuse_ioctl_out arg;$

ERROR: code indent should never use tabs
#1036: FILE: contrib/virtiofsd/fuse_lowlevel.c:1016:
+^Istruct iovec iov[3];$

ERROR: code indent should never use tabs
#1037: FILE: contrib/virtiofsd/fuse_lowlevel.c:1017:
+^Isize_t count = 1;$

ERROR: code indent should never use tabs
#1039: FILE: contrib/virtiofsd/fuse_lowlevel.c:1019:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#1040: FILE: contrib/virtiofsd/fuse_lowlevel.c:1020:
+^Iarg.result = result;$

ERROR: code indent should never use tabs
#1041: FILE: contrib/virtiofsd/fuse_lowlevel.c:1021:
+^Iiov[count].iov_base = &arg;$

ERROR: code indent should never use tabs
#1042: FILE: contrib/virtiofsd/fuse_lowlevel.c:1022:
+^Iiov[count].iov_len = sizeof(arg);$

ERROR: code indent should never use tabs
#1043: FILE: contrib/virtiofsd/fuse_lowlevel.c:1023:
+^Icount++;$

ERROR: code indent should never use tabs
#1045: FILE: contrib/virtiofsd/fuse_lowlevel.c:1025:
+^Iif (size) {$

ERROR: code indent should never use tabs
#1046: FILE: contrib/virtiofsd/fuse_lowlevel.c:1026:
+^I^Iiov[count].iov_base = (char *) buf;$

ERROR: code indent should never use tabs
#1047: FILE: contrib/virtiofsd/fuse_lowlevel.c:1027:
+^I^Iiov[count].iov_len = size;$

ERROR: code indent should never use tabs
#1048: FILE: contrib/virtiofsd/fuse_lowlevel.c:1028:
+^I^Icount++;$

ERROR: code indent should never use tabs
#1049: FILE: contrib/virtiofsd/fuse_lowlevel.c:1029:
+^I}$

ERROR: code indent should never use tabs
#1051: FILE: contrib/virtiofsd/fuse_lowlevel.c:1031:
+^Ireturn send_reply_iov(req, 0, iov, count);$

ERROR: code indent should never use tabs
#1055: FILE: contrib/virtiofsd/fuse_lowlevel.c:1035:
+^I^I^I int count)$

ERROR: code indent should never use tabs
#1057: FILE: contrib/virtiofsd/fuse_lowlevel.c:1037:
+^Istruct iovec *padded_iov;$

ERROR: code indent should never use tabs
#1058: FILE: contrib/virtiofsd/fuse_lowlevel.c:1038:
+^Istruct fuse_ioctl_out arg;$

ERROR: code indent should never use tabs
#1059: FILE: contrib/virtiofsd/fuse_lowlevel.c:1039:
+^Iint res;$

ERROR: code indent should never use tabs
#1061: FILE: contrib/virtiofsd/fuse_lowlevel.c:1041:
+^Ipadded_iov = malloc((count + 2) * sizeof(struct iovec));$

ERROR: code indent should never use tabs
#1062: FILE: contrib/virtiofsd/fuse_lowlevel.c:1042:
+^Iif (padded_iov == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#1062: FILE: contrib/virtiofsd/fuse_lowlevel.c:1042:
+       if (padded_iov == NULL)
[...]

ERROR: code indent should never use tabs
#1063: FILE: contrib/virtiofsd/fuse_lowlevel.c:1043:
+^I^Ireturn fuse_reply_err(req, ENOMEM);$

ERROR: code indent should never use tabs
#1065: FILE: contrib/virtiofsd/fuse_lowlevel.c:1045:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#1066: FILE: contrib/virtiofsd/fuse_lowlevel.c:1046:
+^Iarg.result = result;$

ERROR: code indent should never use tabs
#1067: FILE: contrib/virtiofsd/fuse_lowlevel.c:1047:
+^Ipadded_iov[1].iov_base = &arg;$

ERROR: code indent should never use tabs
#1068: FILE: contrib/virtiofsd/fuse_lowlevel.c:1048:
+^Ipadded_iov[1].iov_len = sizeof(arg);$

ERROR: code indent should never use tabs
#1070: FILE: contrib/virtiofsd/fuse_lowlevel.c:1050:
+^Imemcpy(&padded_iov[2], iov, count * sizeof(struct iovec));$

ERROR: code indent should never use tabs
#1072: FILE: contrib/virtiofsd/fuse_lowlevel.c:1052:
+^Ires = send_reply_iov(req, 0, padded_iov, count + 2);$

ERROR: code indent should never use tabs
#1073: FILE: contrib/virtiofsd/fuse_lowlevel.c:1053:
+^Ifree(padded_iov);$

ERROR: code indent should never use tabs
#1075: FILE: contrib/virtiofsd/fuse_lowlevel.c:1055:
+^Ireturn res;$

ERROR: code indent should never use tabs
#1080: FILE: contrib/virtiofsd/fuse_lowlevel.c:1060:
+^Istruct fuse_poll_out arg;$

ERROR: code indent should never use tabs
#1082: FILE: contrib/virtiofsd/fuse_lowlevel.c:1062:
+^Imemset(&arg, 0, sizeof(arg));$

ERROR: code indent should never use tabs
#1083: FILE: contrib/virtiofsd/fuse_lowlevel.c:1063:
+^Iarg.revents = revents;$

ERROR: code indent should never use tabs
#1085: FILE: contrib/virtiofsd/fuse_lowlevel.c:1065:
+^Ireturn send_reply_ok(req, &arg, sizeof(arg));$

ERROR: code indent should never use tabs
#1090: FILE: contrib/virtiofsd/fuse_lowlevel.c:1070:
+^Ichar *name = (char *) inarg;$

ERROR: code indent should never use tabs
#1092: FILE: contrib/virtiofsd/fuse_lowlevel.c:1072:
+^Iif (req->se->op.lookup)$

ERROR: braces {} are necessary for all arms of this statement
#1092: FILE: contrib/virtiofsd/fuse_lowlevel.c:1072:
+       if (req->se->op.lookup)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1093: FILE: contrib/virtiofsd/fuse_lowlevel.c:1073:
+^I^Ireq->se->op.lookup(req, nodeid, name);$

ERROR: code indent should never use tabs
#1094: FILE: contrib/virtiofsd/fuse_lowlevel.c:1074:
+^Ielse$

ERROR: code indent should never use tabs
#1095: FILE: contrib/virtiofsd/fuse_lowlevel.c:1075:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1100: FILE: contrib/virtiofsd/fuse_lowlevel.c:1080:
+^Istruct fuse_forget_in *arg = (struct fuse_forget_in *) inarg;$

ERROR: code indent should never use tabs
#1102: FILE: contrib/virtiofsd/fuse_lowlevel.c:1082:
+^Iif (req->se->op.forget)$

ERROR: braces {} are necessary for all arms of this statement
#1102: FILE: contrib/virtiofsd/fuse_lowlevel.c:1082:
+       if (req->se->op.forget)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1103: FILE: contrib/virtiofsd/fuse_lowlevel.c:1083:
+^I^Ireq->se->op.forget(req, nodeid, arg->nlookup);$

ERROR: code indent should never use tabs
#1104: FILE: contrib/virtiofsd/fuse_lowlevel.c:1084:
+^Ielse$

ERROR: code indent should never use tabs
#1105: FILE: contrib/virtiofsd/fuse_lowlevel.c:1085:
+^I^Ifuse_reply_none(req);$

ERROR: code indent should never use tabs
#1109: FILE: contrib/virtiofsd/fuse_lowlevel.c:1089:
+^I^I^I    const void *inarg)$

ERROR: code indent should never use tabs
#1111: FILE: contrib/virtiofsd/fuse_lowlevel.c:1091:
+^Istruct fuse_batch_forget_in *arg = (void *) inarg;$

ERROR: code indent should never use tabs
#1112: FILE: contrib/virtiofsd/fuse_lowlevel.c:1092:
+^Istruct fuse_forget_one *param = (void *) PARAM(arg);$

ERROR: code indent should never use tabs
#1113: FILE: contrib/virtiofsd/fuse_lowlevel.c:1093:
+^Iunsigned int i;$

ERROR: code indent should never use tabs
#1115: FILE: contrib/virtiofsd/fuse_lowlevel.c:1095:
+^I(void) nodeid;$

ERROR: code indent should never use tabs
#1117: FILE: contrib/virtiofsd/fuse_lowlevel.c:1097:
+^Iif (req->se->op.forget_multi) {$

ERROR: code indent should never use tabs
#1118: FILE: contrib/virtiofsd/fuse_lowlevel.c:1098:
+^I^Ireq->se->op.forget_multi(req, arg->count,$

ERROR: code indent should never use tabs
#1119: FILE: contrib/virtiofsd/fuse_lowlevel.c:1099:
+^I^I^I^I     (struct fuse_forget_data *) param);$

ERROR: code indent should never use tabs
#1120: FILE: contrib/virtiofsd/fuse_lowlevel.c:1100:
+^I} else if (req->se->op.forget) {$

ERROR: code indent should never use tabs
#1121: FILE: contrib/virtiofsd/fuse_lowlevel.c:1101:
+^I^Ifor (i = 0; i < arg->count; i++) {$

ERROR: code indent should never use tabs
#1122: FILE: contrib/virtiofsd/fuse_lowlevel.c:1102:
+^I^I^Istruct fuse_forget_one *forget = &param[i];$

ERROR: code indent should never use tabs
#1123: FILE: contrib/virtiofsd/fuse_lowlevel.c:1103:
+^I^I^Istruct fuse_req *dummy_req;$

ERROR: code indent should never use tabs
#1125: FILE: contrib/virtiofsd/fuse_lowlevel.c:1105:
+^I^I^Idummy_req = fuse_ll_alloc_req(req->se);$

ERROR: code indent should never use tabs
#1126: FILE: contrib/virtiofsd/fuse_lowlevel.c:1106:
+^I^I^Iif (dummy_req == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#1126: FILE: contrib/virtiofsd/fuse_lowlevel.c:1106:
+                       if (dummy_req == NULL)
[...]

ERROR: code indent should never use tabs
#1127: FILE: contrib/virtiofsd/fuse_lowlevel.c:1107:
+^I^I^I^Ibreak;$

ERROR: code indent should never use tabs
#1129: FILE: contrib/virtiofsd/fuse_lowlevel.c:1109:
+^I^I^Idummy_req->unique = req->unique;$

ERROR: code indent should never use tabs
#1130: FILE: contrib/virtiofsd/fuse_lowlevel.c:1110:
+^I^I^Idummy_req->ctx = req->ctx;$

ERROR: code indent should never use tabs
#1131: FILE: contrib/virtiofsd/fuse_lowlevel.c:1111:
+^I^I^Idummy_req->ch = NULL;$

ERROR: code indent should never use tabs
#1133: FILE: contrib/virtiofsd/fuse_lowlevel.c:1113:
+^I^I^Ireq->se->op.forget(dummy_req, forget->nodeid,$

ERROR: code indent should never use tabs
#1134: FILE: contrib/virtiofsd/fuse_lowlevel.c:1114:
+^I^I^I^I^I  forget->nlookup);$

ERROR: code indent should never use tabs
#1135: FILE: contrib/virtiofsd/fuse_lowlevel.c:1115:
+^I^I}$

ERROR: code indent should never use tabs
#1136: FILE: contrib/virtiofsd/fuse_lowlevel.c:1116:
+^I^Ifuse_reply_none(req);$

ERROR: code indent should never use tabs
#1137: FILE: contrib/virtiofsd/fuse_lowlevel.c:1117:
+^I} else {$

ERROR: code indent should never use tabs
#1138: FILE: contrib/virtiofsd/fuse_lowlevel.c:1118:
+^I^Ifuse_reply_none(req);$

ERROR: code indent should never use tabs
#1139: FILE: contrib/virtiofsd/fuse_lowlevel.c:1119:
+^I}$

ERROR: code indent should never use tabs
#1144: FILE: contrib/virtiofsd/fuse_lowlevel.c:1124:
+^Istruct fuse_file_info *fip = NULL;$

ERROR: code indent should never use tabs
#1145: FILE: contrib/virtiofsd/fuse_lowlevel.c:1125:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1147: FILE: contrib/virtiofsd/fuse_lowlevel.c:1127:
+^Iif (req->se->conn.proto_minor >= 9) {$

ERROR: code indent should never use tabs
#1148: FILE: contrib/virtiofsd/fuse_lowlevel.c:1128:
+^I^Istruct fuse_getattr_in *arg = (struct fuse_getattr_in *) inarg;$

ERROR: code indent should never use tabs
#1150: FILE: contrib/virtiofsd/fuse_lowlevel.c:1130:
+^I^Iif (arg->getattr_flags & FUSE_GETATTR_FH) {$

ERROR: code indent should never use tabs
#1151: FILE: contrib/virtiofsd/fuse_lowlevel.c:1131:
+^I^I^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1152: FILE: contrib/virtiofsd/fuse_lowlevel.c:1132:
+^I^I^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1153: FILE: contrib/virtiofsd/fuse_lowlevel.c:1133:
+^I^I^Ifip = &fi;$

ERROR: code indent should never use tabs
#1154: FILE: contrib/virtiofsd/fuse_lowlevel.c:1134:
+^I^I}$

ERROR: code indent should never use tabs
#1155: FILE: contrib/virtiofsd/fuse_lowlevel.c:1135:
+^I}$

ERROR: code indent should never use tabs
#1157: FILE: contrib/virtiofsd/fuse_lowlevel.c:1137:
+^Iif (req->se->op.getattr)$

ERROR: braces {} are necessary for all arms of this statement
#1157: FILE: contrib/virtiofsd/fuse_lowlevel.c:1137:
+       if (req->se->op.getattr)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1158: FILE: contrib/virtiofsd/fuse_lowlevel.c:1138:
+^I^Ireq->se->op.getattr(req, nodeid, fip);$

ERROR: code indent should never use tabs
#1159: FILE: contrib/virtiofsd/fuse_lowlevel.c:1139:
+^Ielse$

ERROR: code indent should never use tabs
#1160: FILE: contrib/virtiofsd/fuse_lowlevel.c:1140:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1165: FILE: contrib/virtiofsd/fuse_lowlevel.c:1145:
+^Istruct fuse_setattr_in *arg = (struct fuse_setattr_in *) inarg;$

ERROR: code indent should never use tabs
#1167: FILE: contrib/virtiofsd/fuse_lowlevel.c:1147:
+^Iif (req->se->op.setattr) {$

ERROR: code indent should never use tabs
#1168: FILE: contrib/virtiofsd/fuse_lowlevel.c:1148:
+^I^Istruct fuse_file_info *fi = NULL;$

ERROR: code indent should never use tabs
#1169: FILE: contrib/virtiofsd/fuse_lowlevel.c:1149:
+^I^Istruct fuse_file_info fi_store;$

ERROR: code indent should never use tabs
#1170: FILE: contrib/virtiofsd/fuse_lowlevel.c:1150:
+^I^Istruct stat stbuf;$

ERROR: code indent should never use tabs
#1171: FILE: contrib/virtiofsd/fuse_lowlevel.c:1151:
+^I^Imemset(&stbuf, 0, sizeof(stbuf));$

ERROR: code indent should never use tabs
#1172: FILE: contrib/virtiofsd/fuse_lowlevel.c:1152:
+^I^Iconvert_attr(arg, &stbuf);$

ERROR: code indent should never use tabs
#1173: FILE: contrib/virtiofsd/fuse_lowlevel.c:1153:
+^I^Iif (arg->valid & FATTR_FH) {$

ERROR: code indent should never use tabs
#1174: FILE: contrib/virtiofsd/fuse_lowlevel.c:1154:
+^I^I^Iarg->valid &= ~FATTR_FH;$

ERROR: code indent should never use tabs
#1175: FILE: contrib/virtiofsd/fuse_lowlevel.c:1155:
+^I^I^Imemset(&fi_store, 0, sizeof(fi_store));$

ERROR: code indent should never use tabs
#1176: FILE: contrib/virtiofsd/fuse_lowlevel.c:1156:
+^I^I^Ifi = &fi_store;$

ERROR: code indent should never use tabs
#1177: FILE: contrib/virtiofsd/fuse_lowlevel.c:1157:
+^I^I^Ifi->fh = arg->fh;$

ERROR: code indent should never use tabs
#1178: FILE: contrib/virtiofsd/fuse_lowlevel.c:1158:
+^I^I}$

ERROR: code indent should never use tabs
#1179: FILE: contrib/virtiofsd/fuse_lowlevel.c:1159:
+^I^Iarg->valid &=$

ERROR: code indent should never use tabs
#1180: FILE: contrib/virtiofsd/fuse_lowlevel.c:1160:
+^I^I^IFUSE_SET_ATTR_MODE^I|$

ERROR: code indent should never use tabs
#1181: FILE: contrib/virtiofsd/fuse_lowlevel.c:1161:
+^I^I^IFUSE_SET_ATTR_UID^I|$

ERROR: code indent should never use tabs
#1182: FILE: contrib/virtiofsd/fuse_lowlevel.c:1162:
+^I^I^IFUSE_SET_ATTR_GID^I|$

ERROR: code indent should never use tabs
#1183: FILE: contrib/virtiofsd/fuse_lowlevel.c:1163:
+^I^I^IFUSE_SET_ATTR_SIZE^I|$

ERROR: code indent should never use tabs
#1184: FILE: contrib/virtiofsd/fuse_lowlevel.c:1164:
+^I^I^IFUSE_SET_ATTR_ATIME^I|$

ERROR: code indent should never use tabs
#1185: FILE: contrib/virtiofsd/fuse_lowlevel.c:1165:
+^I^I^IFUSE_SET_ATTR_MTIME^I|$

ERROR: code indent should never use tabs
#1186: FILE: contrib/virtiofsd/fuse_lowlevel.c:1166:
+^I^I^IFUSE_SET_ATTR_ATIME_NOW^I|$

ERROR: code indent should never use tabs
#1187: FILE: contrib/virtiofsd/fuse_lowlevel.c:1167:
+^I^I^IFUSE_SET_ATTR_MTIME_NOW |$

ERROR: code indent should never use tabs
#1188: FILE: contrib/virtiofsd/fuse_lowlevel.c:1168:
+^I^I^IFUSE_SET_ATTR_CTIME;$

ERROR: code indent should never use tabs
#1190: FILE: contrib/virtiofsd/fuse_lowlevel.c:1170:
+^I^Ireq->se->op.setattr(req, nodeid, &stbuf, arg->valid, fi);$

ERROR: code indent should never use tabs
#1191: FILE: contrib/virtiofsd/fuse_lowlevel.c:1171:
+^I} else$

ERROR: code indent should never use tabs
#1192: FILE: contrib/virtiofsd/fuse_lowlevel.c:1172:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1197: FILE: contrib/virtiofsd/fuse_lowlevel.c:1177:
+^Istruct fuse_access_in *arg = (struct fuse_access_in *) inarg;$

ERROR: code indent should never use tabs
#1199: FILE: contrib/virtiofsd/fuse_lowlevel.c:1179:
+^Iif (req->se->op.access)$

ERROR: braces {} are necessary for all arms of this statement
#1199: FILE: contrib/virtiofsd/fuse_lowlevel.c:1179:
+       if (req->se->op.access)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1200: FILE: contrib/virtiofsd/fuse_lowlevel.c:1180:
+^I^Ireq->se->op.access(req, nodeid, arg->mask);$

ERROR: code indent should never use tabs
#1201: FILE: contrib/virtiofsd/fuse_lowlevel.c:1181:
+^Ielse$

ERROR: code indent should never use tabs
#1202: FILE: contrib/virtiofsd/fuse_lowlevel.c:1182:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1207: FILE: contrib/virtiofsd/fuse_lowlevel.c:1187:
+^I(void) inarg;$

ERROR: code indent should never use tabs
#1209: FILE: contrib/virtiofsd/fuse_lowlevel.c:1189:
+^Iif (req->se->op.readlink)$

ERROR: braces {} are necessary for all arms of this statement
#1209: FILE: contrib/virtiofsd/fuse_lowlevel.c:1189:
+       if (req->se->op.readlink)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1210: FILE: contrib/virtiofsd/fuse_lowlevel.c:1190:
+^I^Ireq->se->op.readlink(req, nodeid);$

ERROR: code indent should never use tabs
#1211: FILE: contrib/virtiofsd/fuse_lowlevel.c:1191:
+^Ielse$

ERROR: code indent should never use tabs
#1212: FILE: contrib/virtiofsd/fuse_lowlevel.c:1192:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1217: FILE: contrib/virtiofsd/fuse_lowlevel.c:1197:
+^Istruct fuse_mknod_in *arg = (struct fuse_mknod_in *) inarg;$

ERROR: code indent should never use tabs
#1218: FILE: contrib/virtiofsd/fuse_lowlevel.c:1198:
+^Ichar *name = PARAM(arg);$

ERROR: code indent should never use tabs
#1220: FILE: contrib/virtiofsd/fuse_lowlevel.c:1200:
+^Iif (req->se->conn.proto_minor >= 12)$

ERROR: braces {} are necessary for all arms of this statement
#1220: FILE: contrib/virtiofsd/fuse_lowlevel.c:1200:
+       if (req->se->conn.proto_minor >= 12)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1221: FILE: contrib/virtiofsd/fuse_lowlevel.c:1201:
+^I^Ireq->ctx.umask = arg->umask;$

ERROR: code indent should never use tabs
#1222: FILE: contrib/virtiofsd/fuse_lowlevel.c:1202:
+^Ielse$

ERROR: code indent should never use tabs
#1223: FILE: contrib/virtiofsd/fuse_lowlevel.c:1203:
+^I^Iname = (char *) inarg + FUSE_COMPAT_MKNOD_IN_SIZE;$

ERROR: code indent should never use tabs
#1225: FILE: contrib/virtiofsd/fuse_lowlevel.c:1205:
+^Iif (req->se->op.mknod)$

ERROR: braces {} are necessary for all arms of this statement
#1225: FILE: contrib/virtiofsd/fuse_lowlevel.c:1205:
+       if (req->se->op.mknod)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1226: FILE: contrib/virtiofsd/fuse_lowlevel.c:1206:
+^I^Ireq->se->op.mknod(req, nodeid, name, arg->mode, arg->rdev);$

ERROR: code indent should never use tabs
#1227: FILE: contrib/virtiofsd/fuse_lowlevel.c:1207:
+^Ielse$

ERROR: code indent should never use tabs
#1228: FILE: contrib/virtiofsd/fuse_lowlevel.c:1208:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1233: FILE: contrib/virtiofsd/fuse_lowlevel.c:1213:
+^Istruct fuse_mkdir_in *arg = (struct fuse_mkdir_in *) inarg;$

ERROR: code indent should never use tabs
#1235: FILE: contrib/virtiofsd/fuse_lowlevel.c:1215:
+^Iif (req->se->conn.proto_minor >= 12)$

ERROR: braces {} are necessary for all arms of this statement
#1235: FILE: contrib/virtiofsd/fuse_lowlevel.c:1215:
+       if (req->se->conn.proto_minor >= 12)
[...]

ERROR: code indent should never use tabs
#1236: FILE: contrib/virtiofsd/fuse_lowlevel.c:1216:
+^I^Ireq->ctx.umask = arg->umask;$

ERROR: code indent should never use tabs
#1238: FILE: contrib/virtiofsd/fuse_lowlevel.c:1218:
+^Iif (req->se->op.mkdir)$

ERROR: braces {} are necessary for all arms of this statement
#1238: FILE: contrib/virtiofsd/fuse_lowlevel.c:1218:
+       if (req->se->op.mkdir)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1239: FILE: contrib/virtiofsd/fuse_lowlevel.c:1219:
+^I^Ireq->se->op.mkdir(req, nodeid, PARAM(arg), arg->mode);$

ERROR: code indent should never use tabs
#1240: FILE: contrib/virtiofsd/fuse_lowlevel.c:1220:
+^Ielse$

ERROR: code indent should never use tabs
#1241: FILE: contrib/virtiofsd/fuse_lowlevel.c:1221:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1246: FILE: contrib/virtiofsd/fuse_lowlevel.c:1226:
+^Ichar *name = (char *) inarg;$

ERROR: code indent should never use tabs
#1248: FILE: contrib/virtiofsd/fuse_lowlevel.c:1228:
+^Iif (req->se->op.unlink)$

ERROR: braces {} are necessary for all arms of this statement
#1248: FILE: contrib/virtiofsd/fuse_lowlevel.c:1228:
+       if (req->se->op.unlink)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1249: FILE: contrib/virtiofsd/fuse_lowlevel.c:1229:
+^I^Ireq->se->op.unlink(req, nodeid, name);$

ERROR: code indent should never use tabs
#1250: FILE: contrib/virtiofsd/fuse_lowlevel.c:1230:
+^Ielse$

ERROR: code indent should never use tabs
#1251: FILE: contrib/virtiofsd/fuse_lowlevel.c:1231:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1256: FILE: contrib/virtiofsd/fuse_lowlevel.c:1236:
+^Ichar *name = (char *) inarg;$

ERROR: code indent should never use tabs
#1258: FILE: contrib/virtiofsd/fuse_lowlevel.c:1238:
+^Iif (req->se->op.rmdir)$

ERROR: braces {} are necessary for all arms of this statement
#1258: FILE: contrib/virtiofsd/fuse_lowlevel.c:1238:
+       if (req->se->op.rmdir)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1259: FILE: contrib/virtiofsd/fuse_lowlevel.c:1239:
+^I^Ireq->se->op.rmdir(req, nodeid, name);$

ERROR: code indent should never use tabs
#1260: FILE: contrib/virtiofsd/fuse_lowlevel.c:1240:
+^Ielse$

ERROR: code indent should never use tabs
#1261: FILE: contrib/virtiofsd/fuse_lowlevel.c:1241:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1266: FILE: contrib/virtiofsd/fuse_lowlevel.c:1246:
+^Ichar *name = (char *) inarg;$

ERROR: code indent should never use tabs
#1267: FILE: contrib/virtiofsd/fuse_lowlevel.c:1247:
+^Ichar *linkname = ((char *) inarg) + strlen((char *) inarg) + 1;$

ERROR: code indent should never use tabs
#1269: FILE: contrib/virtiofsd/fuse_lowlevel.c:1249:
+^Iif (req->se->op.symlink)$

ERROR: braces {} are necessary for all arms of this statement
#1269: FILE: contrib/virtiofsd/fuse_lowlevel.c:1249:
+       if (req->se->op.symlink)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1270: FILE: contrib/virtiofsd/fuse_lowlevel.c:1250:
+^I^Ireq->se->op.symlink(req, linkname, nodeid, name);$

ERROR: code indent should never use tabs
#1271: FILE: contrib/virtiofsd/fuse_lowlevel.c:1251:
+^Ielse$

ERROR: code indent should never use tabs
#1272: FILE: contrib/virtiofsd/fuse_lowlevel.c:1252:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1277: FILE: contrib/virtiofsd/fuse_lowlevel.c:1257:
+^Istruct fuse_rename_in *arg = (struct fuse_rename_in *) inarg;$

ERROR: code indent should never use tabs
#1278: FILE: contrib/virtiofsd/fuse_lowlevel.c:1258:
+^Ichar *oldname = PARAM(arg);$

ERROR: code indent should never use tabs
#1279: FILE: contrib/virtiofsd/fuse_lowlevel.c:1259:
+^Ichar *newname = oldname + strlen(oldname) + 1;$

ERROR: code indent should never use tabs
#1281: FILE: contrib/virtiofsd/fuse_lowlevel.c:1261:
+^Iif (req->se->op.rename)$

ERROR: code indent should never use tabs
#1282: FILE: contrib/virtiofsd/fuse_lowlevel.c:1262:
+^I^Ireq->se->op.rename(req, nodeid, oldname, arg->newdir, newname,$

ERROR: code indent should never use tabs
#1283: FILE: contrib/virtiofsd/fuse_lowlevel.c:1263:
+^I^I^I^I  0);$

ERROR: code indent should never use tabs
#1284: FILE: contrib/virtiofsd/fuse_lowlevel.c:1264:
+^Ielse$

ERROR: code indent should never use tabs
#1285: FILE: contrib/virtiofsd/fuse_lowlevel.c:1265:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1290: FILE: contrib/virtiofsd/fuse_lowlevel.c:1270:
+^Istruct fuse_rename2_in *arg = (struct fuse_rename2_in *) inarg;$

ERROR: code indent should never use tabs
#1291: FILE: contrib/virtiofsd/fuse_lowlevel.c:1271:
+^Ichar *oldname = PARAM(arg);$

ERROR: code indent should never use tabs
#1292: FILE: contrib/virtiofsd/fuse_lowlevel.c:1272:
+^Ichar *newname = oldname + strlen(oldname) + 1;$

ERROR: code indent should never use tabs
#1294: FILE: contrib/virtiofsd/fuse_lowlevel.c:1274:
+^Iif (req->se->op.rename)$

ERROR: code indent should never use tabs
#1295: FILE: contrib/virtiofsd/fuse_lowlevel.c:1275:
+^I^Ireq->se->op.rename(req, nodeid, oldname, arg->newdir, newname,$

ERROR: code indent should never use tabs
#1296: FILE: contrib/virtiofsd/fuse_lowlevel.c:1276:
+^I^I^I^I  arg->flags);$

ERROR: code indent should never use tabs
#1297: FILE: contrib/virtiofsd/fuse_lowlevel.c:1277:
+^Ielse$

ERROR: code indent should never use tabs
#1298: FILE: contrib/virtiofsd/fuse_lowlevel.c:1278:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1303: FILE: contrib/virtiofsd/fuse_lowlevel.c:1283:
+^Istruct fuse_link_in *arg = (struct fuse_link_in *) inarg;$

ERROR: code indent should never use tabs
#1305: FILE: contrib/virtiofsd/fuse_lowlevel.c:1285:
+^Iif (req->se->op.link)$

ERROR: braces {} are necessary for all arms of this statement
#1305: FILE: contrib/virtiofsd/fuse_lowlevel.c:1285:
+       if (req->se->op.link)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1306: FILE: contrib/virtiofsd/fuse_lowlevel.c:1286:
+^I^Ireq->se->op.link(req, arg->oldnodeid, nodeid, PARAM(arg));$

ERROR: code indent should never use tabs
#1307: FILE: contrib/virtiofsd/fuse_lowlevel.c:1287:
+^Ielse$

ERROR: code indent should never use tabs
#1308: FILE: contrib/virtiofsd/fuse_lowlevel.c:1288:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1313: FILE: contrib/virtiofsd/fuse_lowlevel.c:1293:
+^Istruct fuse_create_in *arg = (struct fuse_create_in *) inarg;$

ERROR: code indent should never use tabs
#1315: FILE: contrib/virtiofsd/fuse_lowlevel.c:1295:
+^Iif (req->se->op.create) {$

ERROR: code indent should never use tabs
#1316: FILE: contrib/virtiofsd/fuse_lowlevel.c:1296:
+^I^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1317: FILE: contrib/virtiofsd/fuse_lowlevel.c:1297:
+^I^Ichar *name = PARAM(arg);$

ERROR: code indent should never use tabs
#1319: FILE: contrib/virtiofsd/fuse_lowlevel.c:1299:
+^I^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1320: FILE: contrib/virtiofsd/fuse_lowlevel.c:1300:
+^I^Ifi.flags = arg->flags;$

ERROR: code indent should never use tabs
#1322: FILE: contrib/virtiofsd/fuse_lowlevel.c:1302:
+^I^Iif (req->se->conn.proto_minor >= 12)$

ERROR: braces {} are necessary for all arms of this statement
#1322: FILE: contrib/virtiofsd/fuse_lowlevel.c:1302:
+               if (req->se->conn.proto_minor >= 12)
[...]
+               else
[...]

ERROR: code indent should never use tabs
#1323: FILE: contrib/virtiofsd/fuse_lowlevel.c:1303:
+^I^I^Ireq->ctx.umask = arg->umask;$

ERROR: code indent should never use tabs
#1324: FILE: contrib/virtiofsd/fuse_lowlevel.c:1304:
+^I^Ielse$

ERROR: code indent should never use tabs
#1325: FILE: contrib/virtiofsd/fuse_lowlevel.c:1305:
+^I^I^Iname = (char *) inarg + sizeof(struct fuse_open_in);$

ERROR: code indent should never use tabs
#1327: FILE: contrib/virtiofsd/fuse_lowlevel.c:1307:
+^I^Ireq->se->op.create(req, nodeid, name, arg->mode, &fi);$

ERROR: code indent should never use tabs
#1328: FILE: contrib/virtiofsd/fuse_lowlevel.c:1308:
+^I} else$

ERROR: code indent should never use tabs
#1329: FILE: contrib/virtiofsd/fuse_lowlevel.c:1309:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1334: FILE: contrib/virtiofsd/fuse_lowlevel.c:1314:
+^Istruct fuse_open_in *arg = (struct fuse_open_in *) inarg;$

ERROR: code indent should never use tabs
#1335: FILE: contrib/virtiofsd/fuse_lowlevel.c:1315:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1337: FILE: contrib/virtiofsd/fuse_lowlevel.c:1317:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1338: FILE: contrib/virtiofsd/fuse_lowlevel.c:1318:
+^Ifi.flags = arg->flags;$

ERROR: code indent should never use tabs
#1340: FILE: contrib/virtiofsd/fuse_lowlevel.c:1320:
+^Iif (req->se->op.open)$

ERROR: braces {} are necessary for all arms of this statement
#1340: FILE: contrib/virtiofsd/fuse_lowlevel.c:1320:
+       if (req->se->op.open)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1341: FILE: contrib/virtiofsd/fuse_lowlevel.c:1321:
+^I^Ireq->se->op.open(req, nodeid, &fi);$

ERROR: code indent should never use tabs
#1342: FILE: contrib/virtiofsd/fuse_lowlevel.c:1322:
+^Ielse$

ERROR: code indent should never use tabs
#1343: FILE: contrib/virtiofsd/fuse_lowlevel.c:1323:
+^I^Ifuse_reply_open(req, &fi);$

ERROR: code indent should never use tabs
#1348: FILE: contrib/virtiofsd/fuse_lowlevel.c:1328:
+^Istruct fuse_read_in *arg = (struct fuse_read_in *) inarg;$

ERROR: code indent should never use tabs
#1350: FILE: contrib/virtiofsd/fuse_lowlevel.c:1330:
+^Iif (req->se->op.read) {$

ERROR: code indent should never use tabs
#1351: FILE: contrib/virtiofsd/fuse_lowlevel.c:1331:
+^I^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1353: FILE: contrib/virtiofsd/fuse_lowlevel.c:1333:
+^I^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1354: FILE: contrib/virtiofsd/fuse_lowlevel.c:1334:
+^I^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1355: FILE: contrib/virtiofsd/fuse_lowlevel.c:1335:
+^I^Iif (req->se->conn.proto_minor >= 9) {$

ERROR: code indent should never use tabs
#1356: FILE: contrib/virtiofsd/fuse_lowlevel.c:1336:
+^I^I^Ifi.lock_owner = arg->lock_owner;$

ERROR: code indent should never use tabs
#1357: FILE: contrib/virtiofsd/fuse_lowlevel.c:1337:
+^I^I^Ifi.flags = arg->flags;$

ERROR: code indent should never use tabs
#1358: FILE: contrib/virtiofsd/fuse_lowlevel.c:1338:
+^I^I}$

ERROR: code indent should never use tabs
#1359: FILE: contrib/virtiofsd/fuse_lowlevel.c:1339:
+^I^Ireq->se->op.read(req, nodeid, arg->size, arg->offset, &fi);$

ERROR: code indent should never use tabs
#1360: FILE: contrib/virtiofsd/fuse_lowlevel.c:1340:
+^I} else$

ERROR: code indent should never use tabs
#1361: FILE: contrib/virtiofsd/fuse_lowlevel.c:1341:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1366: FILE: contrib/virtiofsd/fuse_lowlevel.c:1346:
+^Istruct fuse_write_in *arg = (struct fuse_write_in *) inarg;$

ERROR: code indent should never use tabs
#1367: FILE: contrib/virtiofsd/fuse_lowlevel.c:1347:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1368: FILE: contrib/virtiofsd/fuse_lowlevel.c:1348:
+^Ichar *param;$

ERROR: code indent should never use tabs
#1370: FILE: contrib/virtiofsd/fuse_lowlevel.c:1350:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1371: FILE: contrib/virtiofsd/fuse_lowlevel.c:1351:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1372: FILE: contrib/virtiofsd/fuse_lowlevel.c:1352:
+^Ifi.writepage = (arg->write_flags & FUSE_WRITE_CACHE) != 0;$

ERROR: code indent should never use tabs
#1374: FILE: contrib/virtiofsd/fuse_lowlevel.c:1354:
+^Iif (req->se->conn.proto_minor < 9) {$

ERROR: code indent should never use tabs
#1375: FILE: contrib/virtiofsd/fuse_lowlevel.c:1355:
+^I^Iparam = ((char *) arg) + FUSE_COMPAT_WRITE_IN_SIZE;$

ERROR: code indent should never use tabs
#1376: FILE: contrib/virtiofsd/fuse_lowlevel.c:1356:
+^I} else {$

ERROR: code indent should never use tabs
#1377: FILE: contrib/virtiofsd/fuse_lowlevel.c:1357:
+^I^Ifi.lock_owner = arg->lock_owner;$

ERROR: code indent should never use tabs
#1378: FILE: contrib/virtiofsd/fuse_lowlevel.c:1358:
+^I^Ifi.flags = arg->flags;$

ERROR: code indent should never use tabs
#1379: FILE: contrib/virtiofsd/fuse_lowlevel.c:1359:
+^I^Iparam = PARAM(arg);$

ERROR: code indent should never use tabs
#1380: FILE: contrib/virtiofsd/fuse_lowlevel.c:1360:
+^I}$

ERROR: code indent should never use tabs
#1382: FILE: contrib/virtiofsd/fuse_lowlevel.c:1362:
+^Iif (req->se->op.write)$

ERROR: code indent should never use tabs
#1383: FILE: contrib/virtiofsd/fuse_lowlevel.c:1363:
+^I^Ireq->se->op.write(req, nodeid, param, arg->size,$

ERROR: code indent should never use tabs
#1384: FILE: contrib/virtiofsd/fuse_lowlevel.c:1364:
+^I^I^I^I arg->offset, &fi);$

ERROR: code indent should never use tabs
#1385: FILE: contrib/virtiofsd/fuse_lowlevel.c:1365:
+^Ielse$

ERROR: code indent should never use tabs
#1386: FILE: contrib/virtiofsd/fuse_lowlevel.c:1366:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1390: FILE: contrib/virtiofsd/fuse_lowlevel.c:1370:
+^I^I^I const struct fuse_buf *ibuf)$

ERROR: code indent should never use tabs
#1392: FILE: contrib/virtiofsd/fuse_lowlevel.c:1372:
+^Istruct fuse_session *se = req->se;$

ERROR: code indent should never use tabs
#1393: FILE: contrib/virtiofsd/fuse_lowlevel.c:1373:
+^Istruct fuse_bufvec bufv = {$

ERROR: code indent should never use tabs
#1394: FILE: contrib/virtiofsd/fuse_lowlevel.c:1374:
+^I^I.buf[0] = *ibuf,$

ERROR: code indent should never use tabs
#1395: FILE: contrib/virtiofsd/fuse_lowlevel.c:1375:
+^I^I.count = 1,$

ERROR: code indent should never use tabs
#1396: FILE: contrib/virtiofsd/fuse_lowlevel.c:1376:
+^I};$

ERROR: code indent should never use tabs
#1397: FILE: contrib/virtiofsd/fuse_lowlevel.c:1377:
+^Istruct fuse_write_in *arg = (struct fuse_write_in *) inarg;$

ERROR: code indent should never use tabs
#1398: FILE: contrib/virtiofsd/fuse_lowlevel.c:1378:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1400: FILE: contrib/virtiofsd/fuse_lowlevel.c:1380:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1401: FILE: contrib/virtiofsd/fuse_lowlevel.c:1381:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1402: FILE: contrib/virtiofsd/fuse_lowlevel.c:1382:
+^Ifi.writepage = arg->write_flags & FUSE_WRITE_CACHE;$

ERROR: code indent should never use tabs
#1404: FILE: contrib/virtiofsd/fuse_lowlevel.c:1384:
+^Iif (se->conn.proto_minor < 9) {$

ERROR: code indent should never use tabs
#1405: FILE: contrib/virtiofsd/fuse_lowlevel.c:1385:
+^I^Ibufv.buf[0].mem = ((char *) arg) + FUSE_COMPAT_WRITE_IN_SIZE;$

ERROR: code indent should never use tabs
#1406: FILE: contrib/virtiofsd/fuse_lowlevel.c:1386:
+^I^Ibufv.buf[0].size -= sizeof(struct fuse_in_header) +$

ERROR: code indent should never use tabs
#1407: FILE: contrib/virtiofsd/fuse_lowlevel.c:1387:
+^I^I^IFUSE_COMPAT_WRITE_IN_SIZE;$

ERROR: code indent should never use tabs
#1408: FILE: contrib/virtiofsd/fuse_lowlevel.c:1388:
+^I^Iassert(!(bufv.buf[0].flags & FUSE_BUF_IS_FD));$

ERROR: code indent should never use tabs
#1409: FILE: contrib/virtiofsd/fuse_lowlevel.c:1389:
+^I} else {$

ERROR: code indent should never use tabs
#1410: FILE: contrib/virtiofsd/fuse_lowlevel.c:1390:
+^I^Ifi.lock_owner = arg->lock_owner;$

ERROR: code indent should never use tabs
#1411: FILE: contrib/virtiofsd/fuse_lowlevel.c:1391:
+^I^Ifi.flags = arg->flags;$

ERROR: code indent should never use tabs
#1412: FILE: contrib/virtiofsd/fuse_lowlevel.c:1392:
+^I^Iif (!(bufv.buf[0].flags & FUSE_BUF_IS_FD))$

ERROR: braces {} are necessary for all arms of this statement
#1412: FILE: contrib/virtiofsd/fuse_lowlevel.c:1392:
+               if (!(bufv.buf[0].flags & FUSE_BUF_IS_FD))
[...]

ERROR: code indent should never use tabs
#1413: FILE: contrib/virtiofsd/fuse_lowlevel.c:1393:
+^I^I^Ibufv.buf[0].mem = PARAM(arg);$

ERROR: code indent should never use tabs
#1415: FILE: contrib/virtiofsd/fuse_lowlevel.c:1395:
+^I^Ibufv.buf[0].size -= sizeof(struct fuse_in_header) +$

ERROR: code indent should never use tabs
#1416: FILE: contrib/virtiofsd/fuse_lowlevel.c:1396:
+^I^I^Isizeof(struct fuse_write_in);$

ERROR: code indent should never use tabs
#1417: FILE: contrib/virtiofsd/fuse_lowlevel.c:1397:
+^I}$

ERROR: code indent should never use tabs
#1418: FILE: contrib/virtiofsd/fuse_lowlevel.c:1398:
+^Iif (bufv.buf[0].size < arg->size) {$

WARNING: line over 80 characters
#1419: FILE: contrib/virtiofsd/fuse_lowlevel.c:1399:
+               fuse_log(FUSE_LOG_ERR, "fuse: do_write_buf: buffer size too small\n");

ERROR: code indent should never use tabs
#1419: FILE: contrib/virtiofsd/fuse_lowlevel.c:1399:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: do_write_buf: buffer size too small\n");$

ERROR: code indent should never use tabs
#1420: FILE: contrib/virtiofsd/fuse_lowlevel.c:1400:
+^I^Ifuse_reply_err(req, EIO);$

ERROR: code indent should never use tabs
#1421: FILE: contrib/virtiofsd/fuse_lowlevel.c:1401:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1422: FILE: contrib/virtiofsd/fuse_lowlevel.c:1402:
+^I}$

ERROR: code indent should never use tabs
#1423: FILE: contrib/virtiofsd/fuse_lowlevel.c:1403:
+^Ibufv.buf[0].size = arg->size;$

ERROR: code indent should never use tabs
#1425: FILE: contrib/virtiofsd/fuse_lowlevel.c:1405:
+^Ise->op.write_buf(req, nodeid, &bufv, arg->offset, &fi);$

ERROR: code indent should never use tabs
#1428: FILE: contrib/virtiofsd/fuse_lowlevel.c:1408:
+^I/* Need to reset the pipe if ->write_buf() didn't consume all data */$

ERROR: code indent should never use tabs
#1429: FILE: contrib/virtiofsd/fuse_lowlevel.c:1409:
+^Iif ((ibuf->flags & FUSE_BUF_IS_FD) && bufv.idx < bufv.count)$

ERROR: braces {} are necessary for all arms of this statement
#1429: FILE: contrib/virtiofsd/fuse_lowlevel.c:1409:
+       if ((ibuf->flags & FUSE_BUF_IS_FD) && bufv.idx < bufv.count)
[...]

ERROR: code indent should never use tabs
#1430: FILE: contrib/virtiofsd/fuse_lowlevel.c:1410:
+^I^Ifuse_ll_clear_pipe(se);$

ERROR: code indent should never use tabs
#1435: FILE: contrib/virtiofsd/fuse_lowlevel.c:1415:
+^Istruct fuse_flush_in *arg = (struct fuse_flush_in *) inarg;$

ERROR: code indent should never use tabs
#1436: FILE: contrib/virtiofsd/fuse_lowlevel.c:1416:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1438: FILE: contrib/virtiofsd/fuse_lowlevel.c:1418:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1439: FILE: contrib/virtiofsd/fuse_lowlevel.c:1419:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1440: FILE: contrib/virtiofsd/fuse_lowlevel.c:1420:
+^Ifi.flush = 1;$

ERROR: code indent should never use tabs
#1441: FILE: contrib/virtiofsd/fuse_lowlevel.c:1421:
+^Iif (req->se->conn.proto_minor >= 7)$

ERROR: braces {} are necessary for all arms of this statement
#1441: FILE: contrib/virtiofsd/fuse_lowlevel.c:1421:
+       if (req->se->conn.proto_minor >= 7)
[...]

ERROR: code indent should never use tabs
#1442: FILE: contrib/virtiofsd/fuse_lowlevel.c:1422:
+^I^Ifi.lock_owner = arg->lock_owner;$

ERROR: code indent should never use tabs
#1444: FILE: contrib/virtiofsd/fuse_lowlevel.c:1424:
+^Iif (req->se->op.flush)$

ERROR: braces {} are necessary for all arms of this statement
#1444: FILE: contrib/virtiofsd/fuse_lowlevel.c:1424:
+       if (req->se->op.flush)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1445: FILE: contrib/virtiofsd/fuse_lowlevel.c:1425:
+^I^Ireq->se->op.flush(req, nodeid, &fi);$

ERROR: code indent should never use tabs
#1446: FILE: contrib/virtiofsd/fuse_lowlevel.c:1426:
+^Ielse$

ERROR: code indent should never use tabs
#1447: FILE: contrib/virtiofsd/fuse_lowlevel.c:1427:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1452: FILE: contrib/virtiofsd/fuse_lowlevel.c:1432:
+^Istruct fuse_release_in *arg = (struct fuse_release_in *) inarg;$

ERROR: code indent should never use tabs
#1453: FILE: contrib/virtiofsd/fuse_lowlevel.c:1433:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1455: FILE: contrib/virtiofsd/fuse_lowlevel.c:1435:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1456: FILE: contrib/virtiofsd/fuse_lowlevel.c:1436:
+^Ifi.flags = arg->flags;$

ERROR: code indent should never use tabs
#1457: FILE: contrib/virtiofsd/fuse_lowlevel.c:1437:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1458: FILE: contrib/virtiofsd/fuse_lowlevel.c:1438:
+^Iif (req->se->conn.proto_minor >= 8) {$

ERROR: code indent should never use tabs
#1459: FILE: contrib/virtiofsd/fuse_lowlevel.c:1439:
+^I^Ifi.flush = (arg->release_flags & FUSE_RELEASE_FLUSH) ? 1 : 0;$

ERROR: code indent should never use tabs
#1460: FILE: contrib/virtiofsd/fuse_lowlevel.c:1440:
+^I^Ifi.lock_owner = arg->lock_owner;$

ERROR: code indent should never use tabs
#1461: FILE: contrib/virtiofsd/fuse_lowlevel.c:1441:
+^I}$

ERROR: code indent should never use tabs
#1462: FILE: contrib/virtiofsd/fuse_lowlevel.c:1442:
+^Iif (arg->release_flags & FUSE_RELEASE_FLOCK_UNLOCK) {$

ERROR: code indent should never use tabs
#1463: FILE: contrib/virtiofsd/fuse_lowlevel.c:1443:
+^I^Ifi.flock_release = 1;$

ERROR: code indent should never use tabs
#1464: FILE: contrib/virtiofsd/fuse_lowlevel.c:1444:
+^I^Ifi.lock_owner = arg->lock_owner;$

ERROR: code indent should never use tabs
#1465: FILE: contrib/virtiofsd/fuse_lowlevel.c:1445:
+^I}$

ERROR: code indent should never use tabs
#1467: FILE: contrib/virtiofsd/fuse_lowlevel.c:1447:
+^Iif (req->se->op.release)$

ERROR: braces {} are necessary for all arms of this statement
#1467: FILE: contrib/virtiofsd/fuse_lowlevel.c:1447:
+       if (req->se->op.release)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1468: FILE: contrib/virtiofsd/fuse_lowlevel.c:1448:
+^I^Ireq->se->op.release(req, nodeid, &fi);$

ERROR: code indent should never use tabs
#1469: FILE: contrib/virtiofsd/fuse_lowlevel.c:1449:
+^Ielse$

ERROR: code indent should never use tabs
#1470: FILE: contrib/virtiofsd/fuse_lowlevel.c:1450:
+^I^Ifuse_reply_err(req, 0);$

ERROR: code indent should never use tabs
#1475: FILE: contrib/virtiofsd/fuse_lowlevel.c:1455:
+^Istruct fuse_fsync_in *arg = (struct fuse_fsync_in *) inarg;$

ERROR: code indent should never use tabs
#1476: FILE: contrib/virtiofsd/fuse_lowlevel.c:1456:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1477: FILE: contrib/virtiofsd/fuse_lowlevel.c:1457:
+^Iint datasync = arg->fsync_flags & 1;$

ERROR: code indent should never use tabs
#1479: FILE: contrib/virtiofsd/fuse_lowlevel.c:1459:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1480: FILE: contrib/virtiofsd/fuse_lowlevel.c:1460:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1482: FILE: contrib/virtiofsd/fuse_lowlevel.c:1462:
+^Iif (req->se->op.fsync)$

ERROR: braces {} are necessary for all arms of this statement
#1482: FILE: contrib/virtiofsd/fuse_lowlevel.c:1462:
+       if (req->se->op.fsync)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1483: FILE: contrib/virtiofsd/fuse_lowlevel.c:1463:
+^I^Ireq->se->op.fsync(req, nodeid, datasync, &fi);$

ERROR: code indent should never use tabs
#1484: FILE: contrib/virtiofsd/fuse_lowlevel.c:1464:
+^Ielse$

ERROR: code indent should never use tabs
#1485: FILE: contrib/virtiofsd/fuse_lowlevel.c:1465:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1490: FILE: contrib/virtiofsd/fuse_lowlevel.c:1470:
+^Istruct fuse_open_in *arg = (struct fuse_open_in *) inarg;$

ERROR: code indent should never use tabs
#1491: FILE: contrib/virtiofsd/fuse_lowlevel.c:1471:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1493: FILE: contrib/virtiofsd/fuse_lowlevel.c:1473:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1494: FILE: contrib/virtiofsd/fuse_lowlevel.c:1474:
+^Ifi.flags = arg->flags;$

ERROR: code indent should never use tabs
#1496: FILE: contrib/virtiofsd/fuse_lowlevel.c:1476:
+^Iif (req->se->op.opendir)$

ERROR: braces {} are necessary for all arms of this statement
#1496: FILE: contrib/virtiofsd/fuse_lowlevel.c:1476:
+       if (req->se->op.opendir)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1497: FILE: contrib/virtiofsd/fuse_lowlevel.c:1477:
+^I^Ireq->se->op.opendir(req, nodeid, &fi);$

ERROR: code indent should never use tabs
#1498: FILE: contrib/virtiofsd/fuse_lowlevel.c:1478:
+^Ielse$

ERROR: code indent should never use tabs
#1499: FILE: contrib/virtiofsd/fuse_lowlevel.c:1479:
+^I^Ifuse_reply_open(req, &fi);$

ERROR: code indent should never use tabs
#1504: FILE: contrib/virtiofsd/fuse_lowlevel.c:1484:
+^Istruct fuse_read_in *arg = (struct fuse_read_in *) inarg;$

ERROR: code indent should never use tabs
#1505: FILE: contrib/virtiofsd/fuse_lowlevel.c:1485:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1507: FILE: contrib/virtiofsd/fuse_lowlevel.c:1487:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1508: FILE: contrib/virtiofsd/fuse_lowlevel.c:1488:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1510: FILE: contrib/virtiofsd/fuse_lowlevel.c:1490:
+^Iif (req->se->op.readdir)$

ERROR: braces {} are necessary for all arms of this statement
#1510: FILE: contrib/virtiofsd/fuse_lowlevel.c:1490:
+       if (req->se->op.readdir)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1511: FILE: contrib/virtiofsd/fuse_lowlevel.c:1491:
+^I^Ireq->se->op.readdir(req, nodeid, arg->size, arg->offset, &fi);$

ERROR: code indent should never use tabs
#1512: FILE: contrib/virtiofsd/fuse_lowlevel.c:1492:
+^Ielse$

ERROR: code indent should never use tabs
#1513: FILE: contrib/virtiofsd/fuse_lowlevel.c:1493:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1518: FILE: contrib/virtiofsd/fuse_lowlevel.c:1498:
+^Istruct fuse_read_in *arg = (struct fuse_read_in *) inarg;$

ERROR: code indent should never use tabs
#1519: FILE: contrib/virtiofsd/fuse_lowlevel.c:1499:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1521: FILE: contrib/virtiofsd/fuse_lowlevel.c:1501:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1522: FILE: contrib/virtiofsd/fuse_lowlevel.c:1502:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1524: FILE: contrib/virtiofsd/fuse_lowlevel.c:1504:
+^Iif (req->se->op.readdirplus)$

ERROR: braces {} are necessary for all arms of this statement
#1524: FILE: contrib/virtiofsd/fuse_lowlevel.c:1504:
+       if (req->se->op.readdirplus)
[...]
+       else
[...]

WARNING: line over 80 characters
#1525: FILE: contrib/virtiofsd/fuse_lowlevel.c:1505:
+               req->se->op.readdirplus(req, nodeid, arg->size, arg->offset, &fi);

ERROR: code indent should never use tabs
#1525: FILE: contrib/virtiofsd/fuse_lowlevel.c:1505:
+^I^Ireq->se->op.readdirplus(req, nodeid, arg->size, arg->offset, &fi);$

ERROR: code indent should never use tabs
#1526: FILE: contrib/virtiofsd/fuse_lowlevel.c:1506:
+^Ielse$

ERROR: code indent should never use tabs
#1527: FILE: contrib/virtiofsd/fuse_lowlevel.c:1507:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1532: FILE: contrib/virtiofsd/fuse_lowlevel.c:1512:
+^Istruct fuse_release_in *arg = (struct fuse_release_in *) inarg;$

ERROR: code indent should never use tabs
#1533: FILE: contrib/virtiofsd/fuse_lowlevel.c:1513:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1535: FILE: contrib/virtiofsd/fuse_lowlevel.c:1515:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1536: FILE: contrib/virtiofsd/fuse_lowlevel.c:1516:
+^Ifi.flags = arg->flags;$

ERROR: code indent should never use tabs
#1537: FILE: contrib/virtiofsd/fuse_lowlevel.c:1517:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1539: FILE: contrib/virtiofsd/fuse_lowlevel.c:1519:
+^Iif (req->se->op.releasedir)$

ERROR: braces {} are necessary for all arms of this statement
#1539: FILE: contrib/virtiofsd/fuse_lowlevel.c:1519:
+       if (req->se->op.releasedir)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1540: FILE: contrib/virtiofsd/fuse_lowlevel.c:1520:
+^I^Ireq->se->op.releasedir(req, nodeid, &fi);$

ERROR: code indent should never use tabs
#1541: FILE: contrib/virtiofsd/fuse_lowlevel.c:1521:
+^Ielse$

ERROR: code indent should never use tabs
#1542: FILE: contrib/virtiofsd/fuse_lowlevel.c:1522:
+^I^Ifuse_reply_err(req, 0);$

ERROR: code indent should never use tabs
#1547: FILE: contrib/virtiofsd/fuse_lowlevel.c:1527:
+^Istruct fuse_fsync_in *arg = (struct fuse_fsync_in *) inarg;$

ERROR: code indent should never use tabs
#1548: FILE: contrib/virtiofsd/fuse_lowlevel.c:1528:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1549: FILE: contrib/virtiofsd/fuse_lowlevel.c:1529:
+^Iint datasync = arg->fsync_flags & 1;$

ERROR: code indent should never use tabs
#1551: FILE: contrib/virtiofsd/fuse_lowlevel.c:1531:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1552: FILE: contrib/virtiofsd/fuse_lowlevel.c:1532:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1554: FILE: contrib/virtiofsd/fuse_lowlevel.c:1534:
+^Iif (req->se->op.fsyncdir)$

ERROR: braces {} are necessary for all arms of this statement
#1554: FILE: contrib/virtiofsd/fuse_lowlevel.c:1534:
+       if (req->se->op.fsyncdir)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1555: FILE: contrib/virtiofsd/fuse_lowlevel.c:1535:
+^I^Ireq->se->op.fsyncdir(req, nodeid, datasync, &fi);$

ERROR: code indent should never use tabs
#1556: FILE: contrib/virtiofsd/fuse_lowlevel.c:1536:
+^Ielse$

ERROR: code indent should never use tabs
#1557: FILE: contrib/virtiofsd/fuse_lowlevel.c:1537:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1562: FILE: contrib/virtiofsd/fuse_lowlevel.c:1542:
+^I(void) nodeid;$

ERROR: code indent should never use tabs
#1563: FILE: contrib/virtiofsd/fuse_lowlevel.c:1543:
+^I(void) inarg;$

ERROR: code indent should never use tabs
#1565: FILE: contrib/virtiofsd/fuse_lowlevel.c:1545:
+^Iif (req->se->op.statfs)$

ERROR: code indent should never use tabs
#1566: FILE: contrib/virtiofsd/fuse_lowlevel.c:1546:
+^I^Ireq->se->op.statfs(req, nodeid);$

ERROR: code indent should never use tabs
#1567: FILE: contrib/virtiofsd/fuse_lowlevel.c:1547:
+^Ielse {$

ERROR: code indent should never use tabs
#1568: FILE: contrib/virtiofsd/fuse_lowlevel.c:1548:
+^I^Istruct statvfs buf = {$

ERROR: code indent should never use tabs
#1569: FILE: contrib/virtiofsd/fuse_lowlevel.c:1549:
+^I^I^I.f_namemax = 255,$

ERROR: code indent should never use tabs
#1570: FILE: contrib/virtiofsd/fuse_lowlevel.c:1550:
+^I^I^I.f_bsize = 512,$

ERROR: code indent should never use tabs
#1571: FILE: contrib/virtiofsd/fuse_lowlevel.c:1551:
+^I^I};$

ERROR: code indent should never use tabs
#1572: FILE: contrib/virtiofsd/fuse_lowlevel.c:1552:
+^I^Ifuse_reply_statfs(req, &buf);$

ERROR: code indent should never use tabs
#1573: FILE: contrib/virtiofsd/fuse_lowlevel.c:1553:
+^I}$

ERROR: code indent should never use tabs
#1578: FILE: contrib/virtiofsd/fuse_lowlevel.c:1558:
+^Istruct fuse_setxattr_in *arg = (struct fuse_setxattr_in *) inarg;$

ERROR: code indent should never use tabs
#1579: FILE: contrib/virtiofsd/fuse_lowlevel.c:1559:
+^Ichar *name = PARAM(arg);$

ERROR: code indent should never use tabs
#1580: FILE: contrib/virtiofsd/fuse_lowlevel.c:1560:
+^Ichar *value = name + strlen(name) + 1;$

ERROR: code indent should never use tabs
#1582: FILE: contrib/virtiofsd/fuse_lowlevel.c:1562:
+^Iif (req->se->op.setxattr)$

ERROR: code indent should never use tabs
#1583: FILE: contrib/virtiofsd/fuse_lowlevel.c:1563:
+^I^Ireq->se->op.setxattr(req, nodeid, name, value, arg->size,$

ERROR: code indent should never use tabs
#1584: FILE: contrib/virtiofsd/fuse_lowlevel.c:1564:
+^I^I^I^I    arg->flags);$

ERROR: code indent should never use tabs
#1585: FILE: contrib/virtiofsd/fuse_lowlevel.c:1565:
+^Ielse$

ERROR: code indent should never use tabs
#1586: FILE: contrib/virtiofsd/fuse_lowlevel.c:1566:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1591: FILE: contrib/virtiofsd/fuse_lowlevel.c:1571:
+^Istruct fuse_getxattr_in *arg = (struct fuse_getxattr_in *) inarg;$

ERROR: code indent should never use tabs
#1593: FILE: contrib/virtiofsd/fuse_lowlevel.c:1573:
+^Iif (req->se->op.getxattr)$

ERROR: braces {} are necessary for all arms of this statement
#1593: FILE: contrib/virtiofsd/fuse_lowlevel.c:1573:
+       if (req->se->op.getxattr)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1594: FILE: contrib/virtiofsd/fuse_lowlevel.c:1574:
+^I^Ireq->se->op.getxattr(req, nodeid, PARAM(arg), arg->size);$

ERROR: code indent should never use tabs
#1595: FILE: contrib/virtiofsd/fuse_lowlevel.c:1575:
+^Ielse$

ERROR: code indent should never use tabs
#1596: FILE: contrib/virtiofsd/fuse_lowlevel.c:1576:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1601: FILE: contrib/virtiofsd/fuse_lowlevel.c:1581:
+^Istruct fuse_getxattr_in *arg = (struct fuse_getxattr_in *) inarg;$

ERROR: code indent should never use tabs
#1603: FILE: contrib/virtiofsd/fuse_lowlevel.c:1583:
+^Iif (req->se->op.listxattr)$

ERROR: braces {} are necessary for all arms of this statement
#1603: FILE: contrib/virtiofsd/fuse_lowlevel.c:1583:
+       if (req->se->op.listxattr)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1604: FILE: contrib/virtiofsd/fuse_lowlevel.c:1584:
+^I^Ireq->se->op.listxattr(req, nodeid, arg->size);$

ERROR: code indent should never use tabs
#1605: FILE: contrib/virtiofsd/fuse_lowlevel.c:1585:
+^Ielse$

ERROR: code indent should never use tabs
#1606: FILE: contrib/virtiofsd/fuse_lowlevel.c:1586:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1611: FILE: contrib/virtiofsd/fuse_lowlevel.c:1591:
+^Ichar *name = (char *) inarg;$

ERROR: code indent should never use tabs
#1613: FILE: contrib/virtiofsd/fuse_lowlevel.c:1593:
+^Iif (req->se->op.removexattr)$

ERROR: braces {} are necessary for all arms of this statement
#1613: FILE: contrib/virtiofsd/fuse_lowlevel.c:1593:
+       if (req->se->op.removexattr)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1614: FILE: contrib/virtiofsd/fuse_lowlevel.c:1594:
+^I^Ireq->se->op.removexattr(req, nodeid, name);$

ERROR: code indent should never use tabs
#1615: FILE: contrib/virtiofsd/fuse_lowlevel.c:1595:
+^Ielse$

ERROR: code indent should never use tabs
#1616: FILE: contrib/virtiofsd/fuse_lowlevel.c:1596:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1620: FILE: contrib/virtiofsd/fuse_lowlevel.c:1600:
+^I^I^I^I   struct flock *flock)$

ERROR: code indent should never use tabs
#1622: FILE: contrib/virtiofsd/fuse_lowlevel.c:1602:
+^Imemset(flock, 0, sizeof(struct flock));$

ERROR: code indent should never use tabs
#1623: FILE: contrib/virtiofsd/fuse_lowlevel.c:1603:
+^Iflock->l_type = fl->type;$

ERROR: code indent should never use tabs
#1624: FILE: contrib/virtiofsd/fuse_lowlevel.c:1604:
+^Iflock->l_whence = SEEK_SET;$

ERROR: code indent should never use tabs
#1625: FILE: contrib/virtiofsd/fuse_lowlevel.c:1605:
+^Iflock->l_start = fl->start;$

ERROR: code indent should never use tabs
#1626: FILE: contrib/virtiofsd/fuse_lowlevel.c:1606:
+^Iif (fl->end == OFFSET_MAX)$

ERROR: braces {} are necessary for all arms of this statement
#1626: FILE: contrib/virtiofsd/fuse_lowlevel.c:1606:
+       if (fl->end == OFFSET_MAX)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1627: FILE: contrib/virtiofsd/fuse_lowlevel.c:1607:
+^I^Iflock->l_len = 0;$

ERROR: code indent should never use tabs
#1628: FILE: contrib/virtiofsd/fuse_lowlevel.c:1608:
+^Ielse$

ERROR: code indent should never use tabs
#1629: FILE: contrib/virtiofsd/fuse_lowlevel.c:1609:
+^I^Iflock->l_len = fl->end - fl->start + 1;$

ERROR: code indent should never use tabs
#1630: FILE: contrib/virtiofsd/fuse_lowlevel.c:1610:
+^Iflock->l_pid = fl->pid;$

ERROR: code indent should never use tabs
#1635: FILE: contrib/virtiofsd/fuse_lowlevel.c:1615:
+^Istruct fuse_lk_in *arg = (struct fuse_lk_in *) inarg;$

ERROR: code indent should never use tabs
#1636: FILE: contrib/virtiofsd/fuse_lowlevel.c:1616:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1637: FILE: contrib/virtiofsd/fuse_lowlevel.c:1617:
+^Istruct flock flock;$

ERROR: code indent should never use tabs
#1639: FILE: contrib/virtiofsd/fuse_lowlevel.c:1619:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1640: FILE: contrib/virtiofsd/fuse_lowlevel.c:1620:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1641: FILE: contrib/virtiofsd/fuse_lowlevel.c:1621:
+^Ifi.lock_owner = arg->owner;$

ERROR: code indent should never use tabs
#1643: FILE: contrib/virtiofsd/fuse_lowlevel.c:1623:
+^Iconvert_fuse_file_lock(&arg->lk, &flock);$

ERROR: code indent should never use tabs
#1644: FILE: contrib/virtiofsd/fuse_lowlevel.c:1624:
+^Iif (req->se->op.getlk)$

ERROR: braces {} are necessary for all arms of this statement
#1644: FILE: contrib/virtiofsd/fuse_lowlevel.c:1624:
+       if (req->se->op.getlk)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1645: FILE: contrib/virtiofsd/fuse_lowlevel.c:1625:
+^I^Ireq->se->op.getlk(req, nodeid, &fi, &flock);$

ERROR: code indent should never use tabs
#1646: FILE: contrib/virtiofsd/fuse_lowlevel.c:1626:
+^Ielse$

ERROR: code indent should never use tabs
#1647: FILE: contrib/virtiofsd/fuse_lowlevel.c:1627:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1651: FILE: contrib/virtiofsd/fuse_lowlevel.c:1631:
+^I^I^I    const void *inarg, int sleep)$

ERROR: code indent should never use tabs
#1653: FILE: contrib/virtiofsd/fuse_lowlevel.c:1633:
+^Istruct fuse_lk_in *arg = (struct fuse_lk_in *) inarg;$

ERROR: code indent should never use tabs
#1654: FILE: contrib/virtiofsd/fuse_lowlevel.c:1634:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1655: FILE: contrib/virtiofsd/fuse_lowlevel.c:1635:
+^Istruct flock flock;$

ERROR: code indent should never use tabs
#1657: FILE: contrib/virtiofsd/fuse_lowlevel.c:1637:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1658: FILE: contrib/virtiofsd/fuse_lowlevel.c:1638:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1659: FILE: contrib/virtiofsd/fuse_lowlevel.c:1639:
+^Ifi.lock_owner = arg->owner;$

ERROR: code indent should never use tabs
#1661: FILE: contrib/virtiofsd/fuse_lowlevel.c:1641:
+^Iif (arg->lk_flags & FUSE_LK_FLOCK) {$

ERROR: code indent should never use tabs
#1662: FILE: contrib/virtiofsd/fuse_lowlevel.c:1642:
+^I^Iint op = 0;$

ERROR: code indent should never use tabs
#1664: FILE: contrib/virtiofsd/fuse_lowlevel.c:1644:
+^I^Iswitch (arg->lk.type) {$

ERROR: code indent should never use tabs
#1665: FILE: contrib/virtiofsd/fuse_lowlevel.c:1645:
+^I^Icase F_RDLCK:$

ERROR: code indent should never use tabs
#1666: FILE: contrib/virtiofsd/fuse_lowlevel.c:1646:
+^I^I^Iop = LOCK_SH;$

ERROR: code indent should never use tabs
#1667: FILE: contrib/virtiofsd/fuse_lowlevel.c:1647:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#1668: FILE: contrib/virtiofsd/fuse_lowlevel.c:1648:
+^I^Icase F_WRLCK:$

ERROR: code indent should never use tabs
#1669: FILE: contrib/virtiofsd/fuse_lowlevel.c:1649:
+^I^I^Iop = LOCK_EX;$

ERROR: code indent should never use tabs
#1670: FILE: contrib/virtiofsd/fuse_lowlevel.c:1650:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#1671: FILE: contrib/virtiofsd/fuse_lowlevel.c:1651:
+^I^Icase F_UNLCK:$

ERROR: code indent should never use tabs
#1672: FILE: contrib/virtiofsd/fuse_lowlevel.c:1652:
+^I^I^Iop = LOCK_UN;$

ERROR: code indent should never use tabs
#1673: FILE: contrib/virtiofsd/fuse_lowlevel.c:1653:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#1674: FILE: contrib/virtiofsd/fuse_lowlevel.c:1654:
+^I^I}$

ERROR: code indent should never use tabs
#1675: FILE: contrib/virtiofsd/fuse_lowlevel.c:1655:
+^I^Iif (!sleep)$

ERROR: braces {} are necessary for all arms of this statement
#1675: FILE: contrib/virtiofsd/fuse_lowlevel.c:1655:
+               if (!sleep)
[...]

ERROR: code indent should never use tabs
#1676: FILE: contrib/virtiofsd/fuse_lowlevel.c:1656:
+^I^I^Iop |= LOCK_NB;$

ERROR: code indent should never use tabs
#1678: FILE: contrib/virtiofsd/fuse_lowlevel.c:1658:
+^I^Iif (req->se->op.flock)$

ERROR: braces {} are necessary for all arms of this statement
#1678: FILE: contrib/virtiofsd/fuse_lowlevel.c:1658:
+               if (req->se->op.flock)
[...]
+               else
[...]

ERROR: code indent should never use tabs
#1679: FILE: contrib/virtiofsd/fuse_lowlevel.c:1659:
+^I^I^Ireq->se->op.flock(req, nodeid, &fi, op);$

ERROR: code indent should never use tabs
#1680: FILE: contrib/virtiofsd/fuse_lowlevel.c:1660:
+^I^Ielse$

ERROR: code indent should never use tabs
#1681: FILE: contrib/virtiofsd/fuse_lowlevel.c:1661:
+^I^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1682: FILE: contrib/virtiofsd/fuse_lowlevel.c:1662:
+^I} else {$

ERROR: code indent should never use tabs
#1683: FILE: contrib/virtiofsd/fuse_lowlevel.c:1663:
+^I^Iconvert_fuse_file_lock(&arg->lk, &flock);$

ERROR: code indent should never use tabs
#1684: FILE: contrib/virtiofsd/fuse_lowlevel.c:1664:
+^I^Iif (req->se->op.setlk)$

ERROR: braces {} are necessary for all arms of this statement
#1684: FILE: contrib/virtiofsd/fuse_lowlevel.c:1664:
+               if (req->se->op.setlk)
[...]
+               else
[...]

ERROR: code indent should never use tabs
#1685: FILE: contrib/virtiofsd/fuse_lowlevel.c:1665:
+^I^I^Ireq->se->op.setlk(req, nodeid, &fi, &flock, sleep);$

ERROR: code indent should never use tabs
#1686: FILE: contrib/virtiofsd/fuse_lowlevel.c:1666:
+^I^Ielse$

ERROR: code indent should never use tabs
#1687: FILE: contrib/virtiofsd/fuse_lowlevel.c:1667:
+^I^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1688: FILE: contrib/virtiofsd/fuse_lowlevel.c:1668:
+^I}$

ERROR: code indent should never use tabs
#1693: FILE: contrib/virtiofsd/fuse_lowlevel.c:1673:
+^Ido_setlk_common(req, nodeid, inarg, 0);$

ERROR: code indent should never use tabs
#1698: FILE: contrib/virtiofsd/fuse_lowlevel.c:1678:
+^Ido_setlk_common(req, nodeid, inarg, 1);$

ERROR: code indent should never use tabs
#1703: FILE: contrib/virtiofsd/fuse_lowlevel.c:1683:
+^Istruct fuse_req *curr;$

ERROR: code indent should never use tabs
#1705: FILE: contrib/virtiofsd/fuse_lowlevel.c:1685:
+^Ifor (curr = se->list.next; curr != &se->list; curr = curr->next) {$

ERROR: code indent should never use tabs
#1706: FILE: contrib/virtiofsd/fuse_lowlevel.c:1686:
+^I^Iif (curr->unique == req->u.i.unique) {$

ERROR: code indent should never use tabs
#1707: FILE: contrib/virtiofsd/fuse_lowlevel.c:1687:
+^I^I^Ifuse_interrupt_func_t func;$

ERROR: code indent should never use tabs
#1708: FILE: contrib/virtiofsd/fuse_lowlevel.c:1688:
+^I^I^Ivoid *data;$

ERROR: code indent should never use tabs
#1710: FILE: contrib/virtiofsd/fuse_lowlevel.c:1690:
+^I^I^Icurr->ctr++;$

ERROR: code indent should never use tabs
#1711: FILE: contrib/virtiofsd/fuse_lowlevel.c:1691:
+^I^I^Ipthread_mutex_unlock(&se->lock);$

ERROR: code indent should never use tabs
#1713: FILE: contrib/virtiofsd/fuse_lowlevel.c:1693:
+^I^I^I/* Ugh, ugly locking */$

ERROR: code indent should never use tabs
#1714: FILE: contrib/virtiofsd/fuse_lowlevel.c:1694:
+^I^I^Ipthread_mutex_lock(&curr->lock);$

ERROR: code indent should never use tabs
#1715: FILE: contrib/virtiofsd/fuse_lowlevel.c:1695:
+^I^I^Ipthread_mutex_lock(&se->lock);$

ERROR: code indent should never use tabs
#1716: FILE: contrib/virtiofsd/fuse_lowlevel.c:1696:
+^I^I^Icurr->interrupted = 1;$

ERROR: code indent should never use tabs
#1717: FILE: contrib/virtiofsd/fuse_lowlevel.c:1697:
+^I^I^Ifunc = curr->u.ni.func;$

ERROR: code indent should never use tabs
#1718: FILE: contrib/virtiofsd/fuse_lowlevel.c:1698:
+^I^I^Idata = curr->u.ni.data;$

ERROR: code indent should never use tabs
#1719: FILE: contrib/virtiofsd/fuse_lowlevel.c:1699:
+^I^I^Ipthread_mutex_unlock(&se->lock);$

ERROR: code indent should never use tabs
#1720: FILE: contrib/virtiofsd/fuse_lowlevel.c:1700:
+^I^I^Iif (func)$

ERROR: braces {} are necessary for all arms of this statement
#1720: FILE: contrib/virtiofsd/fuse_lowlevel.c:1700:
+                       if (func)
[...]

ERROR: code indent should never use tabs
#1721: FILE: contrib/virtiofsd/fuse_lowlevel.c:1701:
+^I^I^I^Ifunc(curr, data);$

ERROR: code indent should never use tabs
#1722: FILE: contrib/virtiofsd/fuse_lowlevel.c:1702:
+^I^I^Ipthread_mutex_unlock(&curr->lock);$

ERROR: code indent should never use tabs
#1724: FILE: contrib/virtiofsd/fuse_lowlevel.c:1704:
+^I^I^Ipthread_mutex_lock(&se->lock);$

ERROR: code indent should never use tabs
#1725: FILE: contrib/virtiofsd/fuse_lowlevel.c:1705:
+^I^I^Icurr->ctr--;$

ERROR: code indent should never use tabs
#1726: FILE: contrib/virtiofsd/fuse_lowlevel.c:1706:
+^I^I^Iif (!curr->ctr)$

ERROR: braces {} are necessary for all arms of this statement
#1726: FILE: contrib/virtiofsd/fuse_lowlevel.c:1706:
+                       if (!curr->ctr)
[...]

ERROR: code indent should never use tabs
#1727: FILE: contrib/virtiofsd/fuse_lowlevel.c:1707:
+^I^I^I^Idestroy_req(curr);$

ERROR: code indent should never use tabs
#1729: FILE: contrib/virtiofsd/fuse_lowlevel.c:1709:
+^I^I^Ireturn 1;$

ERROR: code indent should never use tabs
#1730: FILE: contrib/virtiofsd/fuse_lowlevel.c:1710:
+^I^I}$

ERROR: code indent should never use tabs
#1731: FILE: contrib/virtiofsd/fuse_lowlevel.c:1711:
+^I}$

ERROR: code indent should never use tabs
#1732: FILE: contrib/virtiofsd/fuse_lowlevel.c:1712:
+^Ifor (curr = se->interrupts.next; curr != &se->interrupts;$

ERROR: code indent should never use tabs
#1733: FILE: contrib/virtiofsd/fuse_lowlevel.c:1713:
+^I     curr = curr->next) {$

ERROR: code indent should never use tabs
#1734: FILE: contrib/virtiofsd/fuse_lowlevel.c:1714:
+^I^Iif (curr->u.i.unique == req->u.i.unique)$

ERROR: braces {} are necessary for all arms of this statement
#1734: FILE: contrib/virtiofsd/fuse_lowlevel.c:1714:
+               if (curr->u.i.unique == req->u.i.unique)
[...]

ERROR: code indent should never use tabs
#1735: FILE: contrib/virtiofsd/fuse_lowlevel.c:1715:
+^I^I^Ireturn 1;$

ERROR: code indent should never use tabs
#1736: FILE: contrib/virtiofsd/fuse_lowlevel.c:1716:
+^I}$

ERROR: code indent should never use tabs
#1737: FILE: contrib/virtiofsd/fuse_lowlevel.c:1717:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#1742: FILE: contrib/virtiofsd/fuse_lowlevel.c:1722:
+^Istruct fuse_interrupt_in *arg = (struct fuse_interrupt_in *) inarg;$

ERROR: code indent should never use tabs
#1743: FILE: contrib/virtiofsd/fuse_lowlevel.c:1723:
+^Istruct fuse_session *se = req->se;$

ERROR: code indent should never use tabs
#1745: FILE: contrib/virtiofsd/fuse_lowlevel.c:1725:
+^I(void) nodeid;$

ERROR: code indent should never use tabs
#1746: FILE: contrib/virtiofsd/fuse_lowlevel.c:1726:
+^Iif (se->debug)$

ERROR: code indent should never use tabs
#1747: FILE: contrib/virtiofsd/fuse_lowlevel.c:1727:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "INTERRUPT: %llu\n",$

ERROR: code indent should never use tabs
#1748: FILE: contrib/virtiofsd/fuse_lowlevel.c:1728:
+^I^I^I(unsigned long long) arg->unique);$

ERROR: code indent should never use tabs
#1750: FILE: contrib/virtiofsd/fuse_lowlevel.c:1730:
+^Ireq->u.i.unique = arg->unique;$

ERROR: code indent should never use tabs
#1752: FILE: contrib/virtiofsd/fuse_lowlevel.c:1732:
+^Ipthread_mutex_lock(&se->lock);$

ERROR: code indent should never use tabs
#1753: FILE: contrib/virtiofsd/fuse_lowlevel.c:1733:
+^Iif (find_interrupted(se, req))$

ERROR: braces {} are necessary for all arms of this statement
#1753: FILE: contrib/virtiofsd/fuse_lowlevel.c:1733:
+       if (find_interrupted(se, req))
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1754: FILE: contrib/virtiofsd/fuse_lowlevel.c:1734:
+^I^Idestroy_req(req);$

ERROR: code indent should never use tabs
#1755: FILE: contrib/virtiofsd/fuse_lowlevel.c:1735:
+^Ielse$

ERROR: code indent should never use tabs
#1756: FILE: contrib/virtiofsd/fuse_lowlevel.c:1736:
+^I^Ilist_add_req(req, &se->interrupts);$

ERROR: code indent should never use tabs
#1757: FILE: contrib/virtiofsd/fuse_lowlevel.c:1737:
+^Ipthread_mutex_unlock(&se->lock);$

ERROR: code indent should never use tabs
#1761: FILE: contrib/virtiofsd/fuse_lowlevel.c:1741:
+^I^I^I^I^Istruct fuse_req *req)$

ERROR: code indent should never use tabs
#1763: FILE: contrib/virtiofsd/fuse_lowlevel.c:1743:
+^Istruct fuse_req *curr;$

ERROR: code indent should never use tabs
#1765: FILE: contrib/virtiofsd/fuse_lowlevel.c:1745:
+^Ifor (curr = se->interrupts.next; curr != &se->interrupts;$

ERROR: code indent should never use tabs
#1766: FILE: contrib/virtiofsd/fuse_lowlevel.c:1746:
+^I     curr = curr->next) {$

ERROR: code indent should never use tabs
#1767: FILE: contrib/virtiofsd/fuse_lowlevel.c:1747:
+^I^Iif (curr->u.i.unique == req->unique) {$

ERROR: code indent should never use tabs
#1768: FILE: contrib/virtiofsd/fuse_lowlevel.c:1748:
+^I^I^Ireq->interrupted = 1;$

ERROR: code indent should never use tabs
#1769: FILE: contrib/virtiofsd/fuse_lowlevel.c:1749:
+^I^I^Ilist_del_req(curr);$

ERROR: code indent should never use tabs
#1770: FILE: contrib/virtiofsd/fuse_lowlevel.c:1750:
+^I^I^Ifree(curr);$

ERROR: code indent should never use tabs
#1771: FILE: contrib/virtiofsd/fuse_lowlevel.c:1751:
+^I^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#1772: FILE: contrib/virtiofsd/fuse_lowlevel.c:1752:
+^I^I}$

ERROR: code indent should never use tabs
#1773: FILE: contrib/virtiofsd/fuse_lowlevel.c:1753:
+^I}$

ERROR: code indent should never use tabs
#1774: FILE: contrib/virtiofsd/fuse_lowlevel.c:1754:
+^Icurr = se->interrupts.next;$

ERROR: code indent should never use tabs
#1775: FILE: contrib/virtiofsd/fuse_lowlevel.c:1755:
+^Iif (curr != &se->interrupts) {$

ERROR: code indent should never use tabs
#1776: FILE: contrib/virtiofsd/fuse_lowlevel.c:1756:
+^I^Ilist_del_req(curr);$

ERROR: code indent should never use tabs
#1777: FILE: contrib/virtiofsd/fuse_lowlevel.c:1757:
+^I^Ilist_init_req(curr);$

ERROR: code indent should never use tabs
#1778: FILE: contrib/virtiofsd/fuse_lowlevel.c:1758:
+^I^Ireturn curr;$

ERROR: code indent should never use tabs
#1779: FILE: contrib/virtiofsd/fuse_lowlevel.c:1759:
+^I} else$

ERROR: code indent should never use tabs
#1780: FILE: contrib/virtiofsd/fuse_lowlevel.c:1760:
+^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#1785: FILE: contrib/virtiofsd/fuse_lowlevel.c:1765:
+^Istruct fuse_bmap_in *arg = (struct fuse_bmap_in *) inarg;$

ERROR: code indent should never use tabs
#1787: FILE: contrib/virtiofsd/fuse_lowlevel.c:1767:
+^Iif (req->se->op.bmap)$

ERROR: braces {} are necessary for all arms of this statement
#1787: FILE: contrib/virtiofsd/fuse_lowlevel.c:1767:
+       if (req->se->op.bmap)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1788: FILE: contrib/virtiofsd/fuse_lowlevel.c:1768:
+^I^Ireq->se->op.bmap(req, nodeid, arg->blocksize, arg->block);$

ERROR: code indent should never use tabs
#1789: FILE: contrib/virtiofsd/fuse_lowlevel.c:1769:
+^Ielse$

ERROR: code indent should never use tabs
#1790: FILE: contrib/virtiofsd/fuse_lowlevel.c:1770:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1795: FILE: contrib/virtiofsd/fuse_lowlevel.c:1775:
+^Istruct fuse_ioctl_in *arg = (struct fuse_ioctl_in *) inarg;$

ERROR: code indent should never use tabs
#1796: FILE: contrib/virtiofsd/fuse_lowlevel.c:1776:
+^Iunsigned int flags = arg->flags;$

ERROR: code indent should never use tabs
#1797: FILE: contrib/virtiofsd/fuse_lowlevel.c:1777:
+^Ivoid *in_buf = arg->in_size ? PARAM(arg) : NULL;$

ERROR: code indent should never use tabs
#1798: FILE: contrib/virtiofsd/fuse_lowlevel.c:1778:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1800: FILE: contrib/virtiofsd/fuse_lowlevel.c:1780:
+^Iif (flags & FUSE_IOCTL_DIR &&$

ERROR: code indent should never use tabs
#1801: FILE: contrib/virtiofsd/fuse_lowlevel.c:1781:
+^I    !(req->se->conn.want & FUSE_CAP_IOCTL_DIR)) {$

ERROR: code indent should never use tabs
#1802: FILE: contrib/virtiofsd/fuse_lowlevel.c:1782:
+^I^Ifuse_reply_err(req, ENOTTY);$

ERROR: code indent should never use tabs
#1803: FILE: contrib/virtiofsd/fuse_lowlevel.c:1783:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#1804: FILE: contrib/virtiofsd/fuse_lowlevel.c:1784:
+^I}$

ERROR: code indent should never use tabs
#1806: FILE: contrib/virtiofsd/fuse_lowlevel.c:1786:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1807: FILE: contrib/virtiofsd/fuse_lowlevel.c:1787:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1809: FILE: contrib/virtiofsd/fuse_lowlevel.c:1789:
+^Iif (sizeof(void *) == 4 && req->se->conn.proto_minor >= 16 &&$

ERROR: code indent should never use tabs
#1810: FILE: contrib/virtiofsd/fuse_lowlevel.c:1790:
+^I    !(flags & FUSE_IOCTL_32BIT)) {$

ERROR: code indent should never use tabs
#1811: FILE: contrib/virtiofsd/fuse_lowlevel.c:1791:
+^I^Ireq->ioctl_64bit = 1;$

ERROR: code indent should never use tabs
#1812: FILE: contrib/virtiofsd/fuse_lowlevel.c:1792:
+^I}$

ERROR: code indent should never use tabs
#1814: FILE: contrib/virtiofsd/fuse_lowlevel.c:1794:
+^Iif (req->se->op.ioctl)$

ERROR: code indent should never use tabs
#1815: FILE: contrib/virtiofsd/fuse_lowlevel.c:1795:
+^I^Ireq->se->op.ioctl(req, nodeid, arg->cmd,$

ERROR: code indent should never use tabs
#1816: FILE: contrib/virtiofsd/fuse_lowlevel.c:1796:
+^I^I^I^I (void *)(uintptr_t)arg->arg, &fi, flags,$

ERROR: code indent should never use tabs
#1817: FILE: contrib/virtiofsd/fuse_lowlevel.c:1797:
+^I^I^I^I in_buf, arg->in_size, arg->out_size);$

ERROR: code indent should never use tabs
#1818: FILE: contrib/virtiofsd/fuse_lowlevel.c:1798:
+^Ielse$

ERROR: code indent should never use tabs
#1819: FILE: contrib/virtiofsd/fuse_lowlevel.c:1799:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1824: FILE: contrib/virtiofsd/fuse_lowlevel.c:1804:
+^Ifree(ph);$

ERROR: code indent should never use tabs
#1829: FILE: contrib/virtiofsd/fuse_lowlevel.c:1809:
+^Istruct fuse_poll_in *arg = (struct fuse_poll_in *) inarg;$

ERROR: code indent should never use tabs
#1830: FILE: contrib/virtiofsd/fuse_lowlevel.c:1810:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1832: FILE: contrib/virtiofsd/fuse_lowlevel.c:1812:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1833: FILE: contrib/virtiofsd/fuse_lowlevel.c:1813:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1834: FILE: contrib/virtiofsd/fuse_lowlevel.c:1814:
+^Ifi.poll_events = arg->events;$

ERROR: code indent should never use tabs
#1836: FILE: contrib/virtiofsd/fuse_lowlevel.c:1816:
+^Iif (req->se->op.poll) {$

ERROR: code indent should never use tabs
#1837: FILE: contrib/virtiofsd/fuse_lowlevel.c:1817:
+^I^Istruct fuse_pollhandle *ph = NULL;$

ERROR: code indent should never use tabs
#1839: FILE: contrib/virtiofsd/fuse_lowlevel.c:1819:
+^I^Iif (arg->flags & FUSE_POLL_SCHEDULE_NOTIFY) {$

ERROR: code indent should never use tabs
#1840: FILE: contrib/virtiofsd/fuse_lowlevel.c:1820:
+^I^I^Iph = malloc(sizeof(struct fuse_pollhandle));$

ERROR: code indent should never use tabs
#1841: FILE: contrib/virtiofsd/fuse_lowlevel.c:1821:
+^I^I^Iif (ph == NULL) {$

ERROR: code indent should never use tabs
#1842: FILE: contrib/virtiofsd/fuse_lowlevel.c:1822:
+^I^I^I^Ifuse_reply_err(req, ENOMEM);$

ERROR: code indent should never use tabs
#1843: FILE: contrib/virtiofsd/fuse_lowlevel.c:1823:
+^I^I^I^Ireturn;$

ERROR: code indent should never use tabs
#1844: FILE: contrib/virtiofsd/fuse_lowlevel.c:1824:
+^I^I^I}$

ERROR: code indent should never use tabs
#1845: FILE: contrib/virtiofsd/fuse_lowlevel.c:1825:
+^I^I^Iph->kh = arg->kh;$

ERROR: code indent should never use tabs
#1846: FILE: contrib/virtiofsd/fuse_lowlevel.c:1826:
+^I^I^Iph->se = req->se;$

ERROR: code indent should never use tabs
#1847: FILE: contrib/virtiofsd/fuse_lowlevel.c:1827:
+^I^I}$

ERROR: code indent should never use tabs
#1849: FILE: contrib/virtiofsd/fuse_lowlevel.c:1829:
+^I^Ireq->se->op.poll(req, nodeid, &fi, ph);$

ERROR: code indent should never use tabs
#1850: FILE: contrib/virtiofsd/fuse_lowlevel.c:1830:
+^I} else {$

ERROR: code indent should never use tabs
#1851: FILE: contrib/virtiofsd/fuse_lowlevel.c:1831:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1852: FILE: contrib/virtiofsd/fuse_lowlevel.c:1832:
+^I}$

ERROR: code indent should never use tabs
#1857: FILE: contrib/virtiofsd/fuse_lowlevel.c:1837:
+^Istruct fuse_fallocate_in *arg = (struct fuse_fallocate_in *) inarg;$

ERROR: code indent should never use tabs
#1858: FILE: contrib/virtiofsd/fuse_lowlevel.c:1838:
+^Istruct fuse_file_info fi;$

ERROR: code indent should never use tabs
#1860: FILE: contrib/virtiofsd/fuse_lowlevel.c:1840:
+^Imemset(&fi, 0, sizeof(fi));$

ERROR: code indent should never use tabs
#1861: FILE: contrib/virtiofsd/fuse_lowlevel.c:1841:
+^Ifi.fh = arg->fh;$

ERROR: code indent should never use tabs
#1863: FILE: contrib/virtiofsd/fuse_lowlevel.c:1843:
+^Iif (req->se->op.fallocate)$

ERROR: braces {} are necessary for all arms of this statement
#1863: FILE: contrib/virtiofsd/fuse_lowlevel.c:1843:
+       if (req->se->op.fallocate)
[...]
+       else
[...]

ERROR: line over 90 characters
#1864: FILE: contrib/virtiofsd/fuse_lowlevel.c:1844:
+               req->se->op.fallocate(req, nodeid, arg->mode, arg->offset, arg->length, &fi);

ERROR: code indent should never use tabs
#1864: FILE: contrib/virtiofsd/fuse_lowlevel.c:1844:
+^I^Ireq->se->op.fallocate(req, nodeid, arg->mode, arg->offset, arg->length, &fi);$

ERROR: code indent should never use tabs
#1865: FILE: contrib/virtiofsd/fuse_lowlevel.c:1845:
+^Ielse$

ERROR: code indent should never use tabs
#1866: FILE: contrib/virtiofsd/fuse_lowlevel.c:1846:
+^I^Ifuse_reply_err(req, ENOSYS);$

WARNING: line over 80 characters
#1869: FILE: contrib/virtiofsd/fuse_lowlevel.c:1849:
+static void do_copy_file_range(fuse_req_t req, fuse_ino_t nodeid_in, const void *inarg)

WARNING: line over 80 characters
#1871: FILE: contrib/virtiofsd/fuse_lowlevel.c:1851:
+       struct fuse_copy_file_range_in *arg = (struct fuse_copy_file_range_in *) inarg;

ERROR: code indent should never use tabs
#1871: FILE: contrib/virtiofsd/fuse_lowlevel.c:1851:
+^Istruct fuse_copy_file_range_in *arg = (struct fuse_copy_file_range_in *) inarg;$

ERROR: code indent should never use tabs
#1872: FILE: contrib/virtiofsd/fuse_lowlevel.c:1852:
+^Istruct fuse_file_info fi_in, fi_out;$

ERROR: code indent should never use tabs
#1874: FILE: contrib/virtiofsd/fuse_lowlevel.c:1854:
+^Imemset(&fi_in, 0, sizeof(fi_in));$

ERROR: code indent should never use tabs
#1875: FILE: contrib/virtiofsd/fuse_lowlevel.c:1855:
+^Ifi_in.fh = arg->fh_in;$

ERROR: code indent should never use tabs
#1877: FILE: contrib/virtiofsd/fuse_lowlevel.c:1857:
+^Imemset(&fi_out, 0, sizeof(fi_out));$

ERROR: code indent should never use tabs
#1878: FILE: contrib/virtiofsd/fuse_lowlevel.c:1858:
+^Ifi_out.fh = arg->fh_out;$

ERROR: code indent should never use tabs
#1881: FILE: contrib/virtiofsd/fuse_lowlevel.c:1861:
+^Iif (req->se->op.copy_file_range)$

ERROR: code indent should never use tabs
#1882: FILE: contrib/virtiofsd/fuse_lowlevel.c:1862:
+^I^Ireq->se->op.copy_file_range(req, nodeid_in, arg->off_in,$

ERROR: code indent should never use tabs
#1883: FILE: contrib/virtiofsd/fuse_lowlevel.c:1863:
+^I^I^I^I^I    &fi_in, arg->nodeid_out,$

ERROR: code indent should never use tabs
#1884: FILE: contrib/virtiofsd/fuse_lowlevel.c:1864:
+^I^I^I^I^I    arg->off_out, &fi_out, arg->len,$

ERROR: code indent should never use tabs
#1885: FILE: contrib/virtiofsd/fuse_lowlevel.c:1865:
+^I^I^I^I^I    arg->flags);$

ERROR: code indent should never use tabs
#1886: FILE: contrib/virtiofsd/fuse_lowlevel.c:1866:
+^Ielse$

ERROR: code indent should never use tabs
#1887: FILE: contrib/virtiofsd/fuse_lowlevel.c:1867:
+^I^Ifuse_reply_err(req, ENOSYS);$

ERROR: code indent should never use tabs
#1892: FILE: contrib/virtiofsd/fuse_lowlevel.c:1872:
+^Istruct fuse_init_in *arg = (struct fuse_init_in *) inarg;$

ERROR: code indent should never use tabs
#1893: FILE: contrib/virtiofsd/fuse_lowlevel.c:1873:
+^Istruct fuse_init_out outarg;$

ERROR: code indent should never use tabs
#1894: FILE: contrib/virtiofsd/fuse_lowlevel.c:1874:
+^Istruct fuse_session *se = req->se;$

ERROR: code indent should never use tabs
#1895: FILE: contrib/virtiofsd/fuse_lowlevel.c:1875:
+^Isize_t bufsize = se->bufsize;$

ERROR: code indent should never use tabs
#1896: FILE: contrib/virtiofsd/fuse_lowlevel.c:1876:
+^Isize_t outargsize = sizeof(outarg);$

ERROR: code indent should never use tabs
#1898: FILE: contrib/virtiofsd/fuse_lowlevel.c:1878:
+^I(void) nodeid;$

ERROR: code indent should never use tabs
#1899: FILE: contrib/virtiofsd/fuse_lowlevel.c:1879:
+^Iif (se->debug) {$

WARNING: line over 80 characters
#1900: FILE: contrib/virtiofsd/fuse_lowlevel.c:1880:
+               fuse_log(FUSE_LOG_DEBUG, "INIT: %u.%u\n", arg->major, arg->minor);

ERROR: code indent should never use tabs
#1900: FILE: contrib/virtiofsd/fuse_lowlevel.c:1880:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "INIT: %u.%u\n", arg->major, arg->minor);$

ERROR: code indent should never use tabs
#1901: FILE: contrib/virtiofsd/fuse_lowlevel.c:1881:
+^I^Iif (arg->major == 7 && arg->minor >= 6) {$

ERROR: code indent should never use tabs
#1902: FILE: contrib/virtiofsd/fuse_lowlevel.c:1882:
+^I^I^Ifuse_log(FUSE_LOG_DEBUG, "flags=0x%08x\n", arg->flags);$

ERROR: code indent should never use tabs
#1903: FILE: contrib/virtiofsd/fuse_lowlevel.c:1883:
+^I^I^Ifuse_log(FUSE_LOG_DEBUG, "max_readahead=0x%08x\n",$

ERROR: code indent should never use tabs
#1904: FILE: contrib/virtiofsd/fuse_lowlevel.c:1884:
+^I^I^I^Iarg->max_readahead);$

ERROR: code indent should never use tabs
#1905: FILE: contrib/virtiofsd/fuse_lowlevel.c:1885:
+^I^I}$

ERROR: code indent should never use tabs
#1906: FILE: contrib/virtiofsd/fuse_lowlevel.c:1886:
+^I}$

ERROR: code indent should never use tabs
#1907: FILE: contrib/virtiofsd/fuse_lowlevel.c:1887:
+^Ise->conn.proto_major = arg->major;$

ERROR: code indent should never use tabs
#1908: FILE: contrib/virtiofsd/fuse_lowlevel.c:1888:
+^Ise->conn.proto_minor = arg->minor;$

ERROR: code indent should never use tabs
#1909: FILE: contrib/virtiofsd/fuse_lowlevel.c:1889:
+^Ise->conn.capable = 0;$

ERROR: code indent should never use tabs
#1910: FILE: contrib/virtiofsd/fuse_lowlevel.c:1890:
+^Ise->conn.want = 0;$

ERROR: code indent should never use tabs
#1912: FILE: contrib/virtiofsd/fuse_lowlevel.c:1892:
+^Imemset(&outarg, 0, sizeof(outarg));$

ERROR: code indent should never use tabs
#1913: FILE: contrib/virtiofsd/fuse_lowlevel.c:1893:
+^Ioutarg.major = FUSE_KERNEL_VERSION;$

ERROR: code indent should never use tabs
#1914: FILE: contrib/virtiofsd/fuse_lowlevel.c:1894:
+^Ioutarg.minor = FUSE_KERNEL_MINOR_VERSION;$

ERROR: code indent should never use tabs
#1916: FILE: contrib/virtiofsd/fuse_lowlevel.c:1896:
+^Iif (arg->major < 7) {$

WARNING: line over 80 characters
#1917: FILE: contrib/virtiofsd/fuse_lowlevel.c:1897:
+               fuse_log(FUSE_LOG_ERR, "fuse: unsupported protocol version: %u.%u\n",

ERROR: code indent should never use tabs
#1917: FILE: contrib/virtiofsd/fuse_lowlevel.c:1897:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: unsupported protocol version: %u.%u\n",$

ERROR: code indent should never use tabs
#1918: FILE: contrib/virtiofsd/fuse_lowlevel.c:1898:
+^I^I^Iarg->major, arg->minor);$

ERROR: code indent should never use tabs
#1919: FILE: contrib/virtiofsd/fuse_lowlevel.c:1899:
+^I^Ifuse_reply_err(req, EPROTO);$

ERROR: code indent should never use tabs
#1920: FILE: contrib/virtiofsd/fuse_lowlevel.c:1900:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#1921: FILE: contrib/virtiofsd/fuse_lowlevel.c:1901:
+^I}$

ERROR: code indent should never use tabs
#1923: FILE: contrib/virtiofsd/fuse_lowlevel.c:1903:
+^Iif (arg->major > 7) {$

ERROR: code indent should never use tabs
#1924: FILE: contrib/virtiofsd/fuse_lowlevel.c:1904:
+^I^I/* Wait for a second INIT request with a 7.X version */$

ERROR: code indent should never use tabs
#1925: FILE: contrib/virtiofsd/fuse_lowlevel.c:1905:
+^I^Isend_reply_ok(req, &outarg, sizeof(outarg));$

ERROR: code indent should never use tabs
#1926: FILE: contrib/virtiofsd/fuse_lowlevel.c:1906:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#1927: FILE: contrib/virtiofsd/fuse_lowlevel.c:1907:
+^I}$

ERROR: code indent should never use tabs
#1929: FILE: contrib/virtiofsd/fuse_lowlevel.c:1909:
+^Iif (arg->minor >= 6) {$

ERROR: code indent should never use tabs
#1930: FILE: contrib/virtiofsd/fuse_lowlevel.c:1910:
+^I^Iif (arg->max_readahead < se->conn.max_readahead)$

ERROR: braces {} are necessary for all arms of this statement
#1930: FILE: contrib/virtiofsd/fuse_lowlevel.c:1910:
+               if (arg->max_readahead < se->conn.max_readahead)
[...]

ERROR: code indent should never use tabs
#1931: FILE: contrib/virtiofsd/fuse_lowlevel.c:1911:
+^I^I^Ise->conn.max_readahead = arg->max_readahead;$

ERROR: code indent should never use tabs
#1932: FILE: contrib/virtiofsd/fuse_lowlevel.c:1912:
+^I^Iif (arg->flags & FUSE_ASYNC_READ)$

ERROR: braces {} are necessary for all arms of this statement
#1932: FILE: contrib/virtiofsd/fuse_lowlevel.c:1912:
+               if (arg->flags & FUSE_ASYNC_READ)
[...]

ERROR: code indent should never use tabs
#1933: FILE: contrib/virtiofsd/fuse_lowlevel.c:1913:
+^I^I^Ise->conn.capable |= FUSE_CAP_ASYNC_READ;$

ERROR: code indent should never use tabs
#1934: FILE: contrib/virtiofsd/fuse_lowlevel.c:1914:
+^I^Iif (arg->flags & FUSE_POSIX_LOCKS)$

ERROR: braces {} are necessary for all arms of this statement
#1934: FILE: contrib/virtiofsd/fuse_lowlevel.c:1914:
+               if (arg->flags & FUSE_POSIX_LOCKS)
[...]

ERROR: code indent should never use tabs
#1935: FILE: contrib/virtiofsd/fuse_lowlevel.c:1915:
+^I^I^Ise->conn.capable |= FUSE_CAP_POSIX_LOCKS;$

ERROR: code indent should never use tabs
#1936: FILE: contrib/virtiofsd/fuse_lowlevel.c:1916:
+^I^Iif (arg->flags & FUSE_ATOMIC_O_TRUNC)$

ERROR: braces {} are necessary for all arms of this statement
#1936: FILE: contrib/virtiofsd/fuse_lowlevel.c:1916:
+               if (arg->flags & FUSE_ATOMIC_O_TRUNC)
[...]

ERROR: code indent should never use tabs
#1937: FILE: contrib/virtiofsd/fuse_lowlevel.c:1917:
+^I^I^Ise->conn.capable |= FUSE_CAP_ATOMIC_O_TRUNC;$

ERROR: code indent should never use tabs
#1938: FILE: contrib/virtiofsd/fuse_lowlevel.c:1918:
+^I^Iif (arg->flags & FUSE_EXPORT_SUPPORT)$

ERROR: braces {} are necessary for all arms of this statement
#1938: FILE: contrib/virtiofsd/fuse_lowlevel.c:1918:
+               if (arg->flags & FUSE_EXPORT_SUPPORT)
[...]

ERROR: code indent should never use tabs
#1939: FILE: contrib/virtiofsd/fuse_lowlevel.c:1919:
+^I^I^Ise->conn.capable |= FUSE_CAP_EXPORT_SUPPORT;$

ERROR: code indent should never use tabs
#1940: FILE: contrib/virtiofsd/fuse_lowlevel.c:1920:
+^I^Iif (arg->flags & FUSE_DONT_MASK)$

ERROR: braces {} are necessary for all arms of this statement
#1940: FILE: contrib/virtiofsd/fuse_lowlevel.c:1920:
+               if (arg->flags & FUSE_DONT_MASK)
[...]

ERROR: code indent should never use tabs
#1941: FILE: contrib/virtiofsd/fuse_lowlevel.c:1921:
+^I^I^Ise->conn.capable |= FUSE_CAP_DONT_MASK;$

ERROR: code indent should never use tabs
#1942: FILE: contrib/virtiofsd/fuse_lowlevel.c:1922:
+^I^Iif (arg->flags & FUSE_FLOCK_LOCKS)$

ERROR: braces {} are necessary for all arms of this statement
#1942: FILE: contrib/virtiofsd/fuse_lowlevel.c:1922:
+               if (arg->flags & FUSE_FLOCK_LOCKS)
[...]

ERROR: code indent should never use tabs
#1943: FILE: contrib/virtiofsd/fuse_lowlevel.c:1923:
+^I^I^Ise->conn.capable |= FUSE_CAP_FLOCK_LOCKS;$

ERROR: code indent should never use tabs
#1944: FILE: contrib/virtiofsd/fuse_lowlevel.c:1924:
+^I^Iif (arg->flags & FUSE_AUTO_INVAL_DATA)$

ERROR: braces {} are necessary for all arms of this statement
#1944: FILE: contrib/virtiofsd/fuse_lowlevel.c:1924:
+               if (arg->flags & FUSE_AUTO_INVAL_DATA)
[...]

ERROR: code indent should never use tabs
#1945: FILE: contrib/virtiofsd/fuse_lowlevel.c:1925:
+^I^I^Ise->conn.capable |= FUSE_CAP_AUTO_INVAL_DATA;$

ERROR: code indent should never use tabs
#1946: FILE: contrib/virtiofsd/fuse_lowlevel.c:1926:
+^I^Iif (arg->flags & FUSE_DO_READDIRPLUS)$

ERROR: braces {} are necessary for all arms of this statement
#1946: FILE: contrib/virtiofsd/fuse_lowlevel.c:1926:
+               if (arg->flags & FUSE_DO_READDIRPLUS)
[...]

ERROR: code indent should never use tabs
#1947: FILE: contrib/virtiofsd/fuse_lowlevel.c:1927:
+^I^I^Ise->conn.capable |= FUSE_CAP_READDIRPLUS;$

ERROR: code indent should never use tabs
#1948: FILE: contrib/virtiofsd/fuse_lowlevel.c:1928:
+^I^Iif (arg->flags & FUSE_READDIRPLUS_AUTO)$

ERROR: braces {} are necessary for all arms of this statement
#1948: FILE: contrib/virtiofsd/fuse_lowlevel.c:1928:
+               if (arg->flags & FUSE_READDIRPLUS_AUTO)
[...]

ERROR: code indent should never use tabs
#1949: FILE: contrib/virtiofsd/fuse_lowlevel.c:1929:
+^I^I^Ise->conn.capable |= FUSE_CAP_READDIRPLUS_AUTO;$

ERROR: code indent should never use tabs
#1950: FILE: contrib/virtiofsd/fuse_lowlevel.c:1930:
+^I^Iif (arg->flags & FUSE_ASYNC_DIO)$

ERROR: braces {} are necessary for all arms of this statement
#1950: FILE: contrib/virtiofsd/fuse_lowlevel.c:1930:
+               if (arg->flags & FUSE_ASYNC_DIO)
[...]

ERROR: code indent should never use tabs
#1951: FILE: contrib/virtiofsd/fuse_lowlevel.c:1931:
+^I^I^Ise->conn.capable |= FUSE_CAP_ASYNC_DIO;$

ERROR: code indent should never use tabs
#1952: FILE: contrib/virtiofsd/fuse_lowlevel.c:1932:
+^I^Iif (arg->flags & FUSE_WRITEBACK_CACHE)$

ERROR: braces {} are necessary for all arms of this statement
#1952: FILE: contrib/virtiofsd/fuse_lowlevel.c:1932:
+               if (arg->flags & FUSE_WRITEBACK_CACHE)
[...]

ERROR: code indent should never use tabs
#1953: FILE: contrib/virtiofsd/fuse_lowlevel.c:1933:
+^I^I^Ise->conn.capable |= FUSE_CAP_WRITEBACK_CACHE;$

ERROR: code indent should never use tabs
#1954: FILE: contrib/virtiofsd/fuse_lowlevel.c:1934:
+^I^Iif (arg->flags & FUSE_NO_OPEN_SUPPORT)$

ERROR: braces {} are necessary for all arms of this statement
#1954: FILE: contrib/virtiofsd/fuse_lowlevel.c:1934:
+               if (arg->flags & FUSE_NO_OPEN_SUPPORT)
[...]

ERROR: code indent should never use tabs
#1955: FILE: contrib/virtiofsd/fuse_lowlevel.c:1935:
+^I^I^Ise->conn.capable |= FUSE_CAP_NO_OPEN_SUPPORT;$

ERROR: code indent should never use tabs
#1956: FILE: contrib/virtiofsd/fuse_lowlevel.c:1936:
+^I^Iif (arg->flags & FUSE_PARALLEL_DIROPS)$

ERROR: braces {} are necessary for all arms of this statement
#1956: FILE: contrib/virtiofsd/fuse_lowlevel.c:1936:
+               if (arg->flags & FUSE_PARALLEL_DIROPS)
[...]

ERROR: code indent should never use tabs
#1957: FILE: contrib/virtiofsd/fuse_lowlevel.c:1937:
+^I^I^Ise->conn.capable |= FUSE_CAP_PARALLEL_DIROPS;$

ERROR: code indent should never use tabs
#1958: FILE: contrib/virtiofsd/fuse_lowlevel.c:1938:
+^I^Iif (arg->flags & FUSE_POSIX_ACL)$

ERROR: braces {} are necessary for all arms of this statement
#1958: FILE: contrib/virtiofsd/fuse_lowlevel.c:1938:
+               if (arg->flags & FUSE_POSIX_ACL)
[...]

ERROR: code indent should never use tabs
#1959: FILE: contrib/virtiofsd/fuse_lowlevel.c:1939:
+^I^I^Ise->conn.capable |= FUSE_CAP_POSIX_ACL;$

ERROR: code indent should never use tabs
#1960: FILE: contrib/virtiofsd/fuse_lowlevel.c:1940:
+^I^Iif (arg->flags & FUSE_HANDLE_KILLPRIV)$

ERROR: braces {} are necessary for all arms of this statement
#1960: FILE: contrib/virtiofsd/fuse_lowlevel.c:1940:
+               if (arg->flags & FUSE_HANDLE_KILLPRIV)
[...]

ERROR: code indent should never use tabs
#1961: FILE: contrib/virtiofsd/fuse_lowlevel.c:1941:
+^I^I^Ise->conn.capable |= FUSE_CAP_HANDLE_KILLPRIV;$

ERROR: code indent should never use tabs
#1962: FILE: contrib/virtiofsd/fuse_lowlevel.c:1942:
+^I^Iif (arg->flags & FUSE_NO_OPENDIR_SUPPORT)$

ERROR: braces {} are necessary for all arms of this statement
#1962: FILE: contrib/virtiofsd/fuse_lowlevel.c:1942:
+               if (arg->flags & FUSE_NO_OPENDIR_SUPPORT)
[...]

ERROR: code indent should never use tabs
#1963: FILE: contrib/virtiofsd/fuse_lowlevel.c:1943:
+^I^I^Ise->conn.capable |= FUSE_CAP_NO_OPENDIR_SUPPORT;$

ERROR: code indent should never use tabs
#1964: FILE: contrib/virtiofsd/fuse_lowlevel.c:1944:
+^I^Iif (!(arg->flags & FUSE_MAX_PAGES)) {$

ERROR: code indent should never use tabs
#1965: FILE: contrib/virtiofsd/fuse_lowlevel.c:1945:
+^I^I^Isize_t max_bufsize =$

ERROR: code indent should never use tabs
#1966: FILE: contrib/virtiofsd/fuse_lowlevel.c:1946:
+^I^I^I^IFUSE_DEFAULT_MAX_PAGES_PER_REQ * getpagesize()$

ERROR: code indent should never use tabs
#1967: FILE: contrib/virtiofsd/fuse_lowlevel.c:1947:
+^I^I^I^I+ FUSE_BUFFER_HEADER_SIZE;$

ERROR: code indent should never use tabs
#1968: FILE: contrib/virtiofsd/fuse_lowlevel.c:1948:
+^I^I^Iif (bufsize > max_bufsize) {$

ERROR: code indent should never use tabs
#1969: FILE: contrib/virtiofsd/fuse_lowlevel.c:1949:
+^I^I^I^Ibufsize = max_bufsize;$

ERROR: code indent should never use tabs
#1970: FILE: contrib/virtiofsd/fuse_lowlevel.c:1950:
+^I^I^I}$

ERROR: code indent should never use tabs
#1971: FILE: contrib/virtiofsd/fuse_lowlevel.c:1951:
+^I^I}$

ERROR: code indent should never use tabs
#1972: FILE: contrib/virtiofsd/fuse_lowlevel.c:1952:
+^I} else {$

ERROR: code indent should never use tabs
#1973: FILE: contrib/virtiofsd/fuse_lowlevel.c:1953:
+^I^Ise->conn.max_readahead = 0;$

ERROR: code indent should never use tabs
#1974: FILE: contrib/virtiofsd/fuse_lowlevel.c:1954:
+^I}$

ERROR: code indent should never use tabs
#1976: FILE: contrib/virtiofsd/fuse_lowlevel.c:1956:
+^Iif (se->conn.proto_minor >= 14) {$

WARNING: line over 80 characters
#1979: FILE: contrib/virtiofsd/fuse_lowlevel.c:1959:
+               se->conn.capable |= FUSE_CAP_SPLICE_WRITE | FUSE_CAP_SPLICE_MOVE;

ERROR: code indent should never use tabs
#1979: FILE: contrib/virtiofsd/fuse_lowlevel.c:1959:
+^I^Ise->conn.capable |= FUSE_CAP_SPLICE_WRITE | FUSE_CAP_SPLICE_MOVE;$

ERROR: code indent should never use tabs
#1981: FILE: contrib/virtiofsd/fuse_lowlevel.c:1961:
+^I^Ise->conn.capable |= FUSE_CAP_SPLICE_READ;$

ERROR: code indent should never use tabs
#1983: FILE: contrib/virtiofsd/fuse_lowlevel.c:1963:
+^I}$

ERROR: code indent should never use tabs
#1984: FILE: contrib/virtiofsd/fuse_lowlevel.c:1964:
+^Iif (se->conn.proto_minor >= 18)$

ERROR: braces {} are necessary for all arms of this statement
#1984: FILE: contrib/virtiofsd/fuse_lowlevel.c:1964:
+       if (se->conn.proto_minor >= 18)
[...]

ERROR: code indent should never use tabs
#1985: FILE: contrib/virtiofsd/fuse_lowlevel.c:1965:
+^I^Ise->conn.capable |= FUSE_CAP_IOCTL_DIR;$

ERROR: code indent should never use tabs
#1987: FILE: contrib/virtiofsd/fuse_lowlevel.c:1967:
+^I/* Default settings for modern filesystems.$

WARNING: Block comments use a leading /* on a separate line
#1987: FILE: contrib/virtiofsd/fuse_lowlevel.c:1967:
+       /* Default settings for modern filesystems.

ERROR: code indent should never use tabs
#1988: FILE: contrib/virtiofsd/fuse_lowlevel.c:1968:
+^I *$

ERROR: code indent should never use tabs
#1989: FILE: contrib/virtiofsd/fuse_lowlevel.c:1969:
+^I * Most of these capabilities were disabled by default in$

ERROR: code indent should never use tabs
#1990: FILE: contrib/virtiofsd/fuse_lowlevel.c:1970:
+^I * libfuse2 for backwards compatibility reasons. In libfuse3,$

ERROR: code indent should never use tabs
#1991: FILE: contrib/virtiofsd/fuse_lowlevel.c:1971:
+^I * we can finally enable them by default (as long as they're$

ERROR: code indent should never use tabs
#1992: FILE: contrib/virtiofsd/fuse_lowlevel.c:1972:
+^I * supported by the kernel).$

ERROR: code indent should never use tabs
#1993: FILE: contrib/virtiofsd/fuse_lowlevel.c:1973:
+^I */$

ERROR: Macros with complex values should be enclosed in parenthesis
#1994: FILE: contrib/virtiofsd/fuse_lowlevel.c:1974:
+#define LL_SET_DEFAULT(cond, cap) \
+       if ((cond) && (se->conn.capable & (cap))) \
+               se->conn.want |= (cap)

ERROR: code indent should never use tabs
#1995: FILE: contrib/virtiofsd/fuse_lowlevel.c:1975:
+^Iif ((cond) && (se->conn.capable & (cap))) \$

ERROR: code indent should never use tabs
#1996: FILE: contrib/virtiofsd/fuse_lowlevel.c:1976:
+^I^Ise->conn.want |= (cap)$

ERROR: code indent should never use tabs
#1997: FILE: contrib/virtiofsd/fuse_lowlevel.c:1977:
+^ILL_SET_DEFAULT(1, FUSE_CAP_ASYNC_READ);$

ERROR: code indent should never use tabs
#1998: FILE: contrib/virtiofsd/fuse_lowlevel.c:1978:
+^ILL_SET_DEFAULT(1, FUSE_CAP_PARALLEL_DIROPS);$

ERROR: code indent should never use tabs
#1999: FILE: contrib/virtiofsd/fuse_lowlevel.c:1979:
+^ILL_SET_DEFAULT(1, FUSE_CAP_AUTO_INVAL_DATA);$

ERROR: code indent should never use tabs
#2000: FILE: contrib/virtiofsd/fuse_lowlevel.c:1980:
+^ILL_SET_DEFAULT(1, FUSE_CAP_HANDLE_KILLPRIV);$

ERROR: code indent should never use tabs
#2001: FILE: contrib/virtiofsd/fuse_lowlevel.c:1981:
+^ILL_SET_DEFAULT(1, FUSE_CAP_ASYNC_DIO);$

ERROR: code indent should never use tabs
#2002: FILE: contrib/virtiofsd/fuse_lowlevel.c:1982:
+^ILL_SET_DEFAULT(1, FUSE_CAP_IOCTL_DIR);$

ERROR: code indent should never use tabs
#2003: FILE: contrib/virtiofsd/fuse_lowlevel.c:1983:
+^ILL_SET_DEFAULT(1, FUSE_CAP_ATOMIC_O_TRUNC);$

ERROR: code indent should never use tabs
#2004: FILE: contrib/virtiofsd/fuse_lowlevel.c:1984:
+^ILL_SET_DEFAULT(se->op.write_buf, FUSE_CAP_SPLICE_READ);$

ERROR: code indent should never use tabs
#2005: FILE: contrib/virtiofsd/fuse_lowlevel.c:1985:
+^ILL_SET_DEFAULT(se->op.getlk && se->op.setlk,$

ERROR: code indent should never use tabs
#2006: FILE: contrib/virtiofsd/fuse_lowlevel.c:1986:
+^I^I       FUSE_CAP_POSIX_LOCKS);$

ERROR: code indent should never use tabs
#2007: FILE: contrib/virtiofsd/fuse_lowlevel.c:1987:
+^ILL_SET_DEFAULT(se->op.flock, FUSE_CAP_FLOCK_LOCKS);$

ERROR: code indent should never use tabs
#2008: FILE: contrib/virtiofsd/fuse_lowlevel.c:1988:
+^ILL_SET_DEFAULT(se->op.readdirplus, FUSE_CAP_READDIRPLUS);$

ERROR: code indent should never use tabs
#2009: FILE: contrib/virtiofsd/fuse_lowlevel.c:1989:
+^ILL_SET_DEFAULT(se->op.readdirplus && se->op.readdir,$

ERROR: code indent should never use tabs
#2010: FILE: contrib/virtiofsd/fuse_lowlevel.c:1990:
+^I^I       FUSE_CAP_READDIRPLUS_AUTO);$

ERROR: code indent should never use tabs
#2011: FILE: contrib/virtiofsd/fuse_lowlevel.c:1991:
+^Ise->conn.time_gran = 1;$

ERROR: trailing whitespace
#2012: FILE: contrib/virtiofsd/fuse_lowlevel.c:1992:
+^I$

ERROR: code indent should never use tabs
#2012: FILE: contrib/virtiofsd/fuse_lowlevel.c:1992:
+^I$

ERROR: code indent should never use tabs
#2013: FILE: contrib/virtiofsd/fuse_lowlevel.c:1993:
+^Iif (bufsize < FUSE_MIN_READ_BUFFER) {$

WARNING: line over 80 characters
#2014: FILE: contrib/virtiofsd/fuse_lowlevel.c:1994:
+               fuse_log(FUSE_LOG_ERR, "fuse: warning: buffer size too small: %zu\n",

ERROR: code indent should never use tabs
#2014: FILE: contrib/virtiofsd/fuse_lowlevel.c:1994:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: warning: buffer size too small: %zu\n",$

ERROR: code indent should never use tabs
#2015: FILE: contrib/virtiofsd/fuse_lowlevel.c:1995:
+^I^I^Ibufsize);$

ERROR: code indent should never use tabs
#2016: FILE: contrib/virtiofsd/fuse_lowlevel.c:1996:
+^I^Ibufsize = FUSE_MIN_READ_BUFFER;$

ERROR: code indent should never use tabs
#2017: FILE: contrib/virtiofsd/fuse_lowlevel.c:1997:
+^I}$

ERROR: code indent should never use tabs
#2018: FILE: contrib/virtiofsd/fuse_lowlevel.c:1998:
+^Ise->bufsize = bufsize;$

ERROR: code indent should never use tabs
#2020: FILE: contrib/virtiofsd/fuse_lowlevel.c:2000:
+^Iif (se->conn.max_write > bufsize - FUSE_BUFFER_HEADER_SIZE)$

ERROR: braces {} are necessary for all arms of this statement
#2020: FILE: contrib/virtiofsd/fuse_lowlevel.c:2000:
+       if (se->conn.max_write > bufsize - FUSE_BUFFER_HEADER_SIZE)
[...]

ERROR: code indent should never use tabs
#2021: FILE: contrib/virtiofsd/fuse_lowlevel.c:2001:
+^I^Ise->conn.max_write = bufsize - FUSE_BUFFER_HEADER_SIZE;$

ERROR: code indent should never use tabs
#2023: FILE: contrib/virtiofsd/fuse_lowlevel.c:2003:
+^Ise->got_init = 1;$

ERROR: code indent should never use tabs
#2024: FILE: contrib/virtiofsd/fuse_lowlevel.c:2004:
+^Iif (se->op.init)$

ERROR: braces {} are necessary for all arms of this statement
#2024: FILE: contrib/virtiofsd/fuse_lowlevel.c:2004:
+       if (se->op.init)
[...]

ERROR: code indent should never use tabs
#2025: FILE: contrib/virtiofsd/fuse_lowlevel.c:2005:
+^I^Ise->op.init(se->userdata, &se->conn);$

ERROR: code indent should never use tabs
#2027: FILE: contrib/virtiofsd/fuse_lowlevel.c:2007:
+^Iif (se->conn.want & (~se->conn.capable)) {$

WARNING: line over 80 characters
#2028: FILE: contrib/virtiofsd/fuse_lowlevel.c:2008:
+               fuse_log(FUSE_LOG_ERR, "fuse: error: filesystem requested capabilities "

ERROR: code indent should never use tabs
#2028: FILE: contrib/virtiofsd/fuse_lowlevel.c:2008:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: error: filesystem requested capabilities "$

ERROR: code indent should never use tabs
#2029: FILE: contrib/virtiofsd/fuse_lowlevel.c:2009:
+^I^I^I"0x%x that are not supported by kernel, aborting.\n",$

ERROR: code indent should never use tabs
#2030: FILE: contrib/virtiofsd/fuse_lowlevel.c:2010:
+^I^I^Ise->conn.want & (~se->conn.capable));$

ERROR: code indent should never use tabs
#2031: FILE: contrib/virtiofsd/fuse_lowlevel.c:2011:
+^I^Ifuse_reply_err(req, EPROTO);$

ERROR: code indent should never use tabs
#2032: FILE: contrib/virtiofsd/fuse_lowlevel.c:2012:
+^I^Ise->error = -EPROTO;$

ERROR: code indent should never use tabs
#2033: FILE: contrib/virtiofsd/fuse_lowlevel.c:2013:
+^I^Ifuse_session_exit(se);$

ERROR: code indent should never use tabs
#2034: FILE: contrib/virtiofsd/fuse_lowlevel.c:2014:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#2035: FILE: contrib/virtiofsd/fuse_lowlevel.c:2015:
+^I}$

ERROR: code indent should never use tabs
#2037: FILE: contrib/virtiofsd/fuse_lowlevel.c:2017:
+^Iunsigned max_read_mo = get_max_read(se->mo);$

ERROR: code indent should never use tabs
#2038: FILE: contrib/virtiofsd/fuse_lowlevel.c:2018:
+^Iif (se->conn.max_read != max_read_mo) {$

WARNING: line over 80 characters
#2039: FILE: contrib/virtiofsd/fuse_lowlevel.c:2019:
+               fuse_log(FUSE_LOG_ERR, "fuse: error: init() and fuse_session_new() "

ERROR: code indent should never use tabs
#2039: FILE: contrib/virtiofsd/fuse_lowlevel.c:2019:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: error: init() and fuse_session_new() "$

ERROR: code indent should never use tabs
#2040: FILE: contrib/virtiofsd/fuse_lowlevel.c:2020:
+^I^I^I"requested different maximum read size (%u vs %u)\n",$

ERROR: code indent should never use tabs
#2041: FILE: contrib/virtiofsd/fuse_lowlevel.c:2021:
+^I^I^Ise->conn.max_read, max_read_mo);$

ERROR: code indent should never use tabs
#2042: FILE: contrib/virtiofsd/fuse_lowlevel.c:2022:
+^I^Ifuse_reply_err(req, EPROTO);$

ERROR: code indent should never use tabs
#2043: FILE: contrib/virtiofsd/fuse_lowlevel.c:2023:
+^I^Ise->error = -EPROTO;$

ERROR: code indent should never use tabs
#2044: FILE: contrib/virtiofsd/fuse_lowlevel.c:2024:
+^I^Ifuse_session_exit(se);$

ERROR: code indent should never use tabs
#2045: FILE: contrib/virtiofsd/fuse_lowlevel.c:2025:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#2046: FILE: contrib/virtiofsd/fuse_lowlevel.c:2026:
+^I}$

ERROR: code indent should never use tabs
#2048: FILE: contrib/virtiofsd/fuse_lowlevel.c:2028:
+^Iif (se->conn.max_write < bufsize - FUSE_BUFFER_HEADER_SIZE) {$

ERROR: code indent should never use tabs
#2049: FILE: contrib/virtiofsd/fuse_lowlevel.c:2029:
+^I^Ise->bufsize = se->conn.max_write + FUSE_BUFFER_HEADER_SIZE;$

ERROR: code indent should never use tabs
#2050: FILE: contrib/virtiofsd/fuse_lowlevel.c:2030:
+^I}$

ERROR: code indent should never use tabs
#2051: FILE: contrib/virtiofsd/fuse_lowlevel.c:2031:
+^Iif (arg->flags & FUSE_MAX_PAGES) {$

ERROR: code indent should never use tabs
#2052: FILE: contrib/virtiofsd/fuse_lowlevel.c:2032:
+^I^Ioutarg.flags |= FUSE_MAX_PAGES;$

ERROR: code indent should never use tabs
#2053: FILE: contrib/virtiofsd/fuse_lowlevel.c:2033:
+^I^Ioutarg.max_pages = (se->conn.max_write - 1) / getpagesize() + 1;$

ERROR: code indent should never use tabs
#2054: FILE: contrib/virtiofsd/fuse_lowlevel.c:2034:
+^I}$

ERROR: code indent should never use tabs
#2056: FILE: contrib/virtiofsd/fuse_lowlevel.c:2036:
+^I/* Always enable big writes, this is superseded$

WARNING: Block comments use a leading /* on a separate line
#2056: FILE: contrib/virtiofsd/fuse_lowlevel.c:2036:
+       /* Always enable big writes, this is superseded

ERROR: code indent should never use tabs
#2057: FILE: contrib/virtiofsd/fuse_lowlevel.c:2037:
+^I   by the max_write option */$

WARNING: Block comments use * on subsequent lines
#2057: FILE: contrib/virtiofsd/fuse_lowlevel.c:2037:
+       /* Always enable big writes, this is superseded
+          by the max_write option */

WARNING: Block comments use a trailing */ on a separate line
#2057: FILE: contrib/virtiofsd/fuse_lowlevel.c:2037:
+          by the max_write option */

ERROR: code indent should never use tabs
#2058: FILE: contrib/virtiofsd/fuse_lowlevel.c:2038:
+^Ioutarg.flags |= FUSE_BIG_WRITES;$

ERROR: code indent should never use tabs
#2060: FILE: contrib/virtiofsd/fuse_lowlevel.c:2040:
+^Iif (se->conn.want & FUSE_CAP_ASYNC_READ)$

ERROR: braces {} are necessary for all arms of this statement
#2060: FILE: contrib/virtiofsd/fuse_lowlevel.c:2040:
+       if (se->conn.want & FUSE_CAP_ASYNC_READ)
[...]

ERROR: code indent should never use tabs
#2061: FILE: contrib/virtiofsd/fuse_lowlevel.c:2041:
+^I^Ioutarg.flags |= FUSE_ASYNC_READ;$

ERROR: code indent should never use tabs
#2062: FILE: contrib/virtiofsd/fuse_lowlevel.c:2042:
+^Iif (se->conn.want & FUSE_CAP_POSIX_LOCKS)$

ERROR: braces {} are necessary for all arms of this statement
#2062: FILE: contrib/virtiofsd/fuse_lowlevel.c:2042:
+       if (se->conn.want & FUSE_CAP_POSIX_LOCKS)
[...]

ERROR: code indent should never use tabs
#2063: FILE: contrib/virtiofsd/fuse_lowlevel.c:2043:
+^I^Ioutarg.flags |= FUSE_POSIX_LOCKS;$

ERROR: code indent should never use tabs
#2064: FILE: contrib/virtiofsd/fuse_lowlevel.c:2044:
+^Iif (se->conn.want & FUSE_CAP_ATOMIC_O_TRUNC)$

ERROR: braces {} are necessary for all arms of this statement
#2064: FILE: contrib/virtiofsd/fuse_lowlevel.c:2044:
+       if (se->conn.want & FUSE_CAP_ATOMIC_O_TRUNC)
[...]

ERROR: code indent should never use tabs
#2065: FILE: contrib/virtiofsd/fuse_lowlevel.c:2045:
+^I^Ioutarg.flags |= FUSE_ATOMIC_O_TRUNC;$

ERROR: code indent should never use tabs
#2066: FILE: contrib/virtiofsd/fuse_lowlevel.c:2046:
+^Iif (se->conn.want & FUSE_CAP_EXPORT_SUPPORT)$

ERROR: braces {} are necessary for all arms of this statement
#2066: FILE: contrib/virtiofsd/fuse_lowlevel.c:2046:
+       if (se->conn.want & FUSE_CAP_EXPORT_SUPPORT)
[...]

ERROR: code indent should never use tabs
#2067: FILE: contrib/virtiofsd/fuse_lowlevel.c:2047:
+^I^Ioutarg.flags |= FUSE_EXPORT_SUPPORT;$

ERROR: code indent should never use tabs
#2068: FILE: contrib/virtiofsd/fuse_lowlevel.c:2048:
+^Iif (se->conn.want & FUSE_CAP_DONT_MASK)$

ERROR: braces {} are necessary for all arms of this statement
#2068: FILE: contrib/virtiofsd/fuse_lowlevel.c:2048:
+       if (se->conn.want & FUSE_CAP_DONT_MASK)
[...]

ERROR: code indent should never use tabs
#2069: FILE: contrib/virtiofsd/fuse_lowlevel.c:2049:
+^I^Ioutarg.flags |= FUSE_DONT_MASK;$

ERROR: code indent should never use tabs
#2070: FILE: contrib/virtiofsd/fuse_lowlevel.c:2050:
+^Iif (se->conn.want & FUSE_CAP_FLOCK_LOCKS)$

ERROR: braces {} are necessary for all arms of this statement
#2070: FILE: contrib/virtiofsd/fuse_lowlevel.c:2050:
+       if (se->conn.want & FUSE_CAP_FLOCK_LOCKS)
[...]

ERROR: code indent should never use tabs
#2071: FILE: contrib/virtiofsd/fuse_lowlevel.c:2051:
+^I^Ioutarg.flags |= FUSE_FLOCK_LOCKS;$

ERROR: code indent should never use tabs
#2072: FILE: contrib/virtiofsd/fuse_lowlevel.c:2052:
+^Iif (se->conn.want & FUSE_CAP_AUTO_INVAL_DATA)$

ERROR: braces {} are necessary for all arms of this statement
#2072: FILE: contrib/virtiofsd/fuse_lowlevel.c:2052:
+       if (se->conn.want & FUSE_CAP_AUTO_INVAL_DATA)
[...]

ERROR: code indent should never use tabs
#2073: FILE: contrib/virtiofsd/fuse_lowlevel.c:2053:
+^I^Ioutarg.flags |= FUSE_AUTO_INVAL_DATA;$

ERROR: code indent should never use tabs
#2074: FILE: contrib/virtiofsd/fuse_lowlevel.c:2054:
+^Iif (se->conn.want & FUSE_CAP_READDIRPLUS)$

ERROR: braces {} are necessary for all arms of this statement
#2074: FILE: contrib/virtiofsd/fuse_lowlevel.c:2054:
+       if (se->conn.want & FUSE_CAP_READDIRPLUS)
[...]

ERROR: code indent should never use tabs
#2075: FILE: contrib/virtiofsd/fuse_lowlevel.c:2055:
+^I^Ioutarg.flags |= FUSE_DO_READDIRPLUS;$

ERROR: code indent should never use tabs
#2076: FILE: contrib/virtiofsd/fuse_lowlevel.c:2056:
+^Iif (se->conn.want & FUSE_CAP_READDIRPLUS_AUTO)$

ERROR: braces {} are necessary for all arms of this statement
#2076: FILE: contrib/virtiofsd/fuse_lowlevel.c:2056:
+       if (se->conn.want & FUSE_CAP_READDIRPLUS_AUTO)
[...]

ERROR: code indent should never use tabs
#2077: FILE: contrib/virtiofsd/fuse_lowlevel.c:2057:
+^I^Ioutarg.flags |= FUSE_READDIRPLUS_AUTO;$

ERROR: code indent should never use tabs
#2078: FILE: contrib/virtiofsd/fuse_lowlevel.c:2058:
+^Iif (se->conn.want & FUSE_CAP_ASYNC_DIO)$

ERROR: braces {} are necessary for all arms of this statement
#2078: FILE: contrib/virtiofsd/fuse_lowlevel.c:2058:
+       if (se->conn.want & FUSE_CAP_ASYNC_DIO)
[...]

ERROR: code indent should never use tabs
#2079: FILE: contrib/virtiofsd/fuse_lowlevel.c:2059:
+^I^Ioutarg.flags |= FUSE_ASYNC_DIO;$

ERROR: code indent should never use tabs
#2080: FILE: contrib/virtiofsd/fuse_lowlevel.c:2060:
+^Iif (se->conn.want & FUSE_CAP_WRITEBACK_CACHE)$

ERROR: braces {} are necessary for all arms of this statement
#2080: FILE: contrib/virtiofsd/fuse_lowlevel.c:2060:
+       if (se->conn.want & FUSE_CAP_WRITEBACK_CACHE)
[...]

ERROR: code indent should never use tabs
#2081: FILE: contrib/virtiofsd/fuse_lowlevel.c:2061:
+^I^Ioutarg.flags |= FUSE_WRITEBACK_CACHE;$

ERROR: code indent should never use tabs
#2082: FILE: contrib/virtiofsd/fuse_lowlevel.c:2062:
+^Iif (se->conn.want & FUSE_CAP_POSIX_ACL)$

ERROR: braces {} are necessary for all arms of this statement
#2082: FILE: contrib/virtiofsd/fuse_lowlevel.c:2062:
+       if (se->conn.want & FUSE_CAP_POSIX_ACL)
[...]

ERROR: code indent should never use tabs
#2083: FILE: contrib/virtiofsd/fuse_lowlevel.c:2063:
+^I^Ioutarg.flags |= FUSE_POSIX_ACL;$

ERROR: code indent should never use tabs
#2084: FILE: contrib/virtiofsd/fuse_lowlevel.c:2064:
+^Ioutarg.max_readahead = se->conn.max_readahead;$

ERROR: code indent should never use tabs
#2085: FILE: contrib/virtiofsd/fuse_lowlevel.c:2065:
+^Ioutarg.max_write = se->conn.max_write;$

ERROR: code indent should never use tabs
#2086: FILE: contrib/virtiofsd/fuse_lowlevel.c:2066:
+^Iif (se->conn.proto_minor >= 13) {$

ERROR: code indent should never use tabs
#2087: FILE: contrib/virtiofsd/fuse_lowlevel.c:2067:
+^I^Iif (se->conn.max_background >= (1 << 16))$

ERROR: braces {} are necessary for all arms of this statement
#2087: FILE: contrib/virtiofsd/fuse_lowlevel.c:2067:
+               if (se->conn.max_background >= (1 << 16))
[...]

ERROR: code indent should never use tabs
#2088: FILE: contrib/virtiofsd/fuse_lowlevel.c:2068:
+^I^I^Ise->conn.max_background = (1 << 16) - 1;$

ERROR: code indent should never use tabs
#2089: FILE: contrib/virtiofsd/fuse_lowlevel.c:2069:
+^I^Iif (se->conn.congestion_threshold > se->conn.max_background)$

ERROR: braces {} are necessary for all arms of this statement
#2089: FILE: contrib/virtiofsd/fuse_lowlevel.c:2069:
+               if (se->conn.congestion_threshold > se->conn.max_background)
[...]

ERROR: code indent should never use tabs
#2090: FILE: contrib/virtiofsd/fuse_lowlevel.c:2070:
+^I^I^Ise->conn.congestion_threshold = se->conn.max_background;$

ERROR: code indent should never use tabs
#2091: FILE: contrib/virtiofsd/fuse_lowlevel.c:2071:
+^I^Iif (!se->conn.congestion_threshold) {$

ERROR: code indent should never use tabs
#2092: FILE: contrib/virtiofsd/fuse_lowlevel.c:2072:
+^I^I^Ise->conn.congestion_threshold =$

ERROR: code indent should never use tabs
#2093: FILE: contrib/virtiofsd/fuse_lowlevel.c:2073:
+^I^I^I^Ise->conn.max_background * 3 / 4;$

ERROR: code indent should never use tabs
#2094: FILE: contrib/virtiofsd/fuse_lowlevel.c:2074:
+^I^I}$

ERROR: code indent should never use tabs
#2096: FILE: contrib/virtiofsd/fuse_lowlevel.c:2076:
+^I^Ioutarg.max_background = se->conn.max_background;$

ERROR: code indent should never use tabs
#2097: FILE: contrib/virtiofsd/fuse_lowlevel.c:2077:
+^I^Ioutarg.congestion_threshold = se->conn.congestion_threshold;$

ERROR: code indent should never use tabs
#2098: FILE: contrib/virtiofsd/fuse_lowlevel.c:2078:
+^I}$

ERROR: code indent should never use tabs
#2099: FILE: contrib/virtiofsd/fuse_lowlevel.c:2079:
+^Iif (se->conn.proto_minor >= 23)$

ERROR: braces {} are necessary for all arms of this statement
#2099: FILE: contrib/virtiofsd/fuse_lowlevel.c:2079:
+       if (se->conn.proto_minor >= 23)
[...]

ERROR: code indent should never use tabs
#2100: FILE: contrib/virtiofsd/fuse_lowlevel.c:2080:
+^I^Ioutarg.time_gran = se->conn.time_gran;$

ERROR: code indent should never use tabs
#2102: FILE: contrib/virtiofsd/fuse_lowlevel.c:2082:
+^Iif (se->debug) {$

WARNING: line over 80 characters
#2103: FILE: contrib/virtiofsd/fuse_lowlevel.c:2083:
+               fuse_log(FUSE_LOG_DEBUG, "   INIT: %u.%u\n", outarg.major, outarg.minor);

ERROR: code indent should never use tabs
#2103: FILE: contrib/virtiofsd/fuse_lowlevel.c:2083:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "   INIT: %u.%u\n", outarg.major, outarg.minor);$

ERROR: code indent should never use tabs
#2104: FILE: contrib/virtiofsd/fuse_lowlevel.c:2084:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "   flags=0x%08x\n", outarg.flags);$

ERROR: code indent should never use tabs
#2105: FILE: contrib/virtiofsd/fuse_lowlevel.c:2085:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "   max_readahead=0x%08x\n",$

ERROR: code indent should never use tabs
#2106: FILE: contrib/virtiofsd/fuse_lowlevel.c:2086:
+^I^I^Ioutarg.max_readahead);$

WARNING: line over 80 characters
#2107: FILE: contrib/virtiofsd/fuse_lowlevel.c:2087:
+               fuse_log(FUSE_LOG_DEBUG, "   max_write=0x%08x\n", outarg.max_write);

ERROR: code indent should never use tabs
#2107: FILE: contrib/virtiofsd/fuse_lowlevel.c:2087:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "   max_write=0x%08x\n", outarg.max_write);$

ERROR: code indent should never use tabs
#2108: FILE: contrib/virtiofsd/fuse_lowlevel.c:2088:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "   max_background=%i\n",$

ERROR: code indent should never use tabs
#2109: FILE: contrib/virtiofsd/fuse_lowlevel.c:2089:
+^I^I^Ioutarg.max_background);$

ERROR: code indent should never use tabs
#2110: FILE: contrib/virtiofsd/fuse_lowlevel.c:2090:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "   congestion_threshold=%i\n",$

ERROR: code indent should never use tabs
#2111: FILE: contrib/virtiofsd/fuse_lowlevel.c:2091:
+^I^I^Ioutarg.congestion_threshold);$

ERROR: code indent should never use tabs
#2112: FILE: contrib/virtiofsd/fuse_lowlevel.c:2092:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "   time_gran=%u\n",$

ERROR: code indent should never use tabs
#2113: FILE: contrib/virtiofsd/fuse_lowlevel.c:2093:
+^I^I^Ioutarg.time_gran);$

ERROR: code indent should never use tabs
#2114: FILE: contrib/virtiofsd/fuse_lowlevel.c:2094:
+^I}$

ERROR: code indent should never use tabs
#2115: FILE: contrib/virtiofsd/fuse_lowlevel.c:2095:
+^Iif (arg->minor < 5)$

ERROR: braces {} are necessary for all arms of this statement
#2115: FILE: contrib/virtiofsd/fuse_lowlevel.c:2095:
+       if (arg->minor < 5)
[...]
+       else if (arg->minor < 23)
[...]

ERROR: code indent should never use tabs
#2116: FILE: contrib/virtiofsd/fuse_lowlevel.c:2096:
+^I^Ioutargsize = FUSE_COMPAT_INIT_OUT_SIZE;$

ERROR: code indent should never use tabs
#2117: FILE: contrib/virtiofsd/fuse_lowlevel.c:2097:
+^Ielse if (arg->minor < 23)$

ERROR: braces {} are necessary for all arms of this statement
#2117: FILE: contrib/virtiofsd/fuse_lowlevel.c:2097:
+       else if (arg->minor < 23)
[...]

ERROR: code indent should never use tabs
#2118: FILE: contrib/virtiofsd/fuse_lowlevel.c:2098:
+^I^Ioutargsize = FUSE_COMPAT_22_INIT_OUT_SIZE;$

ERROR: code indent should never use tabs
#2120: FILE: contrib/virtiofsd/fuse_lowlevel.c:2100:
+^Isend_reply_ok(req, &outarg, outargsize);$

ERROR: code indent should never use tabs
#2125: FILE: contrib/virtiofsd/fuse_lowlevel.c:2105:
+^Istruct fuse_session *se = req->se;$

ERROR: code indent should never use tabs
#2127: FILE: contrib/virtiofsd/fuse_lowlevel.c:2107:
+^I(void) nodeid;$

ERROR: code indent should never use tabs
#2128: FILE: contrib/virtiofsd/fuse_lowlevel.c:2108:
+^I(void) inarg;$

ERROR: code indent should never use tabs
#2130: FILE: contrib/virtiofsd/fuse_lowlevel.c:2110:
+^Ise->got_destroy = 1;$

ERROR: code indent should never use tabs
#2131: FILE: contrib/virtiofsd/fuse_lowlevel.c:2111:
+^Iif (se->op.destroy)$

ERROR: braces {} are necessary for all arms of this statement
#2131: FILE: contrib/virtiofsd/fuse_lowlevel.c:2111:
+       if (se->op.destroy)
[...]

ERROR: code indent should never use tabs
#2132: FILE: contrib/virtiofsd/fuse_lowlevel.c:2112:
+^I^Ise->op.destroy(se->userdata);$

ERROR: code indent should never use tabs
#2134: FILE: contrib/virtiofsd/fuse_lowlevel.c:2114:
+^Isend_reply_ok(req, NULL, 0);$

ERROR: code indent should never use tabs
#2139: FILE: contrib/virtiofsd/fuse_lowlevel.c:2119:
+^Istruct fuse_notify_req *prev = nreq->prev;$

ERROR: code indent should never use tabs
#2140: FILE: contrib/virtiofsd/fuse_lowlevel.c:2120:
+^Istruct fuse_notify_req *next = nreq->next;$

ERROR: code indent should never use tabs
#2141: FILE: contrib/virtiofsd/fuse_lowlevel.c:2121:
+^Iprev->next = next;$

ERROR: code indent should never use tabs
#2142: FILE: contrib/virtiofsd/fuse_lowlevel.c:2122:
+^Inext->prev = prev;$

ERROR: code indent should never use tabs
#2146: FILE: contrib/virtiofsd/fuse_lowlevel.c:2126:
+^I^I^I  struct fuse_notify_req *next)$

ERROR: code indent should never use tabs
#2148: FILE: contrib/virtiofsd/fuse_lowlevel.c:2128:
+^Istruct fuse_notify_req *prev = next->prev;$

ERROR: code indent should never use tabs
#2149: FILE: contrib/virtiofsd/fuse_lowlevel.c:2129:
+^Inreq->next = next;$

ERROR: code indent should never use tabs
#2150: FILE: contrib/virtiofsd/fuse_lowlevel.c:2130:
+^Inreq->prev = prev;$

ERROR: code indent should never use tabs
#2151: FILE: contrib/virtiofsd/fuse_lowlevel.c:2131:
+^Iprev->next = nreq;$

ERROR: code indent should never use tabs
#2152: FILE: contrib/virtiofsd/fuse_lowlevel.c:2132:
+^Inext->prev = nreq;$

ERROR: code indent should never use tabs
#2157: FILE: contrib/virtiofsd/fuse_lowlevel.c:2137:
+^Inreq->next = nreq;$

ERROR: code indent should never use tabs
#2158: FILE: contrib/virtiofsd/fuse_lowlevel.c:2138:
+^Inreq->prev = nreq;$

ERROR: code indent should never use tabs
#2162: FILE: contrib/virtiofsd/fuse_lowlevel.c:2142:
+^I^I^I    const void *inarg, const struct fuse_buf *buf)$

ERROR: code indent should never use tabs
#2164: FILE: contrib/virtiofsd/fuse_lowlevel.c:2144:
+^Istruct fuse_session *se = req->se;$

ERROR: code indent should never use tabs
#2165: FILE: contrib/virtiofsd/fuse_lowlevel.c:2145:
+^Istruct fuse_notify_req *nreq;$

ERROR: code indent should never use tabs
#2166: FILE: contrib/virtiofsd/fuse_lowlevel.c:2146:
+^Istruct fuse_notify_req *head;$

ERROR: code indent should never use tabs
#2168: FILE: contrib/virtiofsd/fuse_lowlevel.c:2148:
+^Ipthread_mutex_lock(&se->lock);$

ERROR: code indent should never use tabs
#2169: FILE: contrib/virtiofsd/fuse_lowlevel.c:2149:
+^Ihead = &se->notify_list;$

ERROR: code indent should never use tabs
#2170: FILE: contrib/virtiofsd/fuse_lowlevel.c:2150:
+^Ifor (nreq = head->next; nreq != head; nreq = nreq->next) {$

ERROR: code indent should never use tabs
#2171: FILE: contrib/virtiofsd/fuse_lowlevel.c:2151:
+^I^Iif (nreq->unique == req->unique) {$

ERROR: code indent should never use tabs
#2172: FILE: contrib/virtiofsd/fuse_lowlevel.c:2152:
+^I^I^Ilist_del_nreq(nreq);$

ERROR: code indent should never use tabs
#2173: FILE: contrib/virtiofsd/fuse_lowlevel.c:2153:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#2174: FILE: contrib/virtiofsd/fuse_lowlevel.c:2154:
+^I^I}$

ERROR: code indent should never use tabs
#2175: FILE: contrib/virtiofsd/fuse_lowlevel.c:2155:
+^I}$

ERROR: code indent should never use tabs
#2176: FILE: contrib/virtiofsd/fuse_lowlevel.c:2156:
+^Ipthread_mutex_unlock(&se->lock);$

ERROR: code indent should never use tabs
#2178: FILE: contrib/virtiofsd/fuse_lowlevel.c:2158:
+^Iif (nreq != head)$

ERROR: braces {} are necessary for all arms of this statement
#2178: FILE: contrib/virtiofsd/fuse_lowlevel.c:2158:
+       if (nreq != head)
[...]

ERROR: code indent should never use tabs
#2179: FILE: contrib/virtiofsd/fuse_lowlevel.c:2159:
+^I^Inreq->reply(nreq, req, nodeid, inarg, buf);$

ERROR: code indent should never use tabs
#2183: FILE: contrib/virtiofsd/fuse_lowlevel.c:2163:
+^I^I^I   struct iovec *iov, int count)$

ERROR: code indent should never use tabs
#2185: FILE: contrib/virtiofsd/fuse_lowlevel.c:2165:
+^Istruct fuse_out_header out;$

ERROR: code indent should never use tabs
#2187: FILE: contrib/virtiofsd/fuse_lowlevel.c:2167:
+^Iif (!se->got_init)$

ERROR: braces {} are necessary for all arms of this statement
#2187: FILE: contrib/virtiofsd/fuse_lowlevel.c:2167:
+       if (!se->got_init)
[...]

ERROR: code indent should never use tabs
#2188: FILE: contrib/virtiofsd/fuse_lowlevel.c:2168:
+^I^Ireturn -ENOTCONN;$

ERROR: code indent should never use tabs
#2190: FILE: contrib/virtiofsd/fuse_lowlevel.c:2170:
+^Iout.unique = 0;$

ERROR: code indent should never use tabs
#2191: FILE: contrib/virtiofsd/fuse_lowlevel.c:2171:
+^Iout.error = notify_code;$

ERROR: code indent should never use tabs
#2192: FILE: contrib/virtiofsd/fuse_lowlevel.c:2172:
+^Iiov[0].iov_base = &out;$

ERROR: code indent should never use tabs
#2193: FILE: contrib/virtiofsd/fuse_lowlevel.c:2173:
+^Iiov[0].iov_len = sizeof(struct fuse_out_header);$

ERROR: code indent should never use tabs
#2195: FILE: contrib/virtiofsd/fuse_lowlevel.c:2175:
+^Ireturn fuse_send_msg(se, NULL, iov, count);$

ERROR: code indent should never use tabs
#2200: FILE: contrib/virtiofsd/fuse_lowlevel.c:2180:
+^Iif (ph != NULL) {$

ERROR: code indent should never use tabs
#2201: FILE: contrib/virtiofsd/fuse_lowlevel.c:2181:
+^I^Istruct fuse_notify_poll_wakeup_out outarg;$

ERROR: code indent should never use tabs
#2202: FILE: contrib/virtiofsd/fuse_lowlevel.c:2182:
+^I^Istruct iovec iov[2];$

ERROR: code indent should never use tabs
#2204: FILE: contrib/virtiofsd/fuse_lowlevel.c:2184:
+^I^Ioutarg.kh = ph->kh;$

ERROR: code indent should never use tabs
#2206: FILE: contrib/virtiofsd/fuse_lowlevel.c:2186:
+^I^Iiov[1].iov_base = &outarg;$

ERROR: code indent should never use tabs
#2207: FILE: contrib/virtiofsd/fuse_lowlevel.c:2187:
+^I^Iiov[1].iov_len = sizeof(outarg);$

ERROR: code indent should never use tabs
#2209: FILE: contrib/virtiofsd/fuse_lowlevel.c:2189:
+^I^Ireturn send_notify_iov(ph->se, FUSE_NOTIFY_POLL, iov, 2);$

ERROR: code indent should never use tabs
#2210: FILE: contrib/virtiofsd/fuse_lowlevel.c:2190:
+^I} else {$

ERROR: code indent should never use tabs
#2211: FILE: contrib/virtiofsd/fuse_lowlevel.c:2191:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#2212: FILE: contrib/virtiofsd/fuse_lowlevel.c:2192:
+^I}$

ERROR: code indent should never use tabs
#2216: FILE: contrib/virtiofsd/fuse_lowlevel.c:2196:
+^I^I^I^I     off_t off, off_t len)$

ERROR: code indent should never use tabs
#2218: FILE: contrib/virtiofsd/fuse_lowlevel.c:2198:
+^Istruct fuse_notify_inval_inode_out outarg;$

ERROR: code indent should never use tabs
#2219: FILE: contrib/virtiofsd/fuse_lowlevel.c:2199:
+^Istruct iovec iov[2];$

ERROR: code indent should never use tabs
#2221: FILE: contrib/virtiofsd/fuse_lowlevel.c:2201:
+^Iif (!se)$

ERROR: braces {} are necessary for all arms of this statement
#2221: FILE: contrib/virtiofsd/fuse_lowlevel.c:2201:
+       if (!se)
[...]

ERROR: code indent should never use tabs
#2222: FILE: contrib/virtiofsd/fuse_lowlevel.c:2202:
+^I^Ireturn -EINVAL;$

ERROR: code indent should never use tabs
#2224: FILE: contrib/virtiofsd/fuse_lowlevel.c:2204:
+^Iif (se->conn.proto_major < 6 || se->conn.proto_minor < 12)$

ERROR: braces {} are necessary for all arms of this statement
#2224: FILE: contrib/virtiofsd/fuse_lowlevel.c:2204:
+       if (se->conn.proto_major < 6 || se->conn.proto_minor < 12)
[...]

ERROR: code indent should never use tabs
#2225: FILE: contrib/virtiofsd/fuse_lowlevel.c:2205:
+^I^Ireturn -ENOSYS;$

ERROR: trailing whitespace
#2226: FILE: contrib/virtiofsd/fuse_lowlevel.c:2206:
+^I$

ERROR: code indent should never use tabs
#2226: FILE: contrib/virtiofsd/fuse_lowlevel.c:2206:
+^I$

ERROR: code indent should never use tabs
#2227: FILE: contrib/virtiofsd/fuse_lowlevel.c:2207:
+^Ioutarg.ino = ino;$

ERROR: code indent should never use tabs
#2228: FILE: contrib/virtiofsd/fuse_lowlevel.c:2208:
+^Ioutarg.off = off;$

ERROR: code indent should never use tabs
#2229: FILE: contrib/virtiofsd/fuse_lowlevel.c:2209:
+^Ioutarg.len = len;$

ERROR: code indent should never use tabs
#2231: FILE: contrib/virtiofsd/fuse_lowlevel.c:2211:
+^Iiov[1].iov_base = &outarg;$

ERROR: code indent should never use tabs
#2232: FILE: contrib/virtiofsd/fuse_lowlevel.c:2212:
+^Iiov[1].iov_len = sizeof(outarg);$

ERROR: code indent should never use tabs
#2234: FILE: contrib/virtiofsd/fuse_lowlevel.c:2214:
+^Ireturn send_notify_iov(se, FUSE_NOTIFY_INVAL_INODE, iov, 2);$

ERROR: code indent should never use tabs
#2238: FILE: contrib/virtiofsd/fuse_lowlevel.c:2218:
+^I^I^I^I     const char *name, size_t namelen)$

ERROR: code indent should never use tabs
#2240: FILE: contrib/virtiofsd/fuse_lowlevel.c:2220:
+^Istruct fuse_notify_inval_entry_out outarg;$

ERROR: code indent should never use tabs
#2241: FILE: contrib/virtiofsd/fuse_lowlevel.c:2221:
+^Istruct iovec iov[3];$

ERROR: code indent should never use tabs
#2243: FILE: contrib/virtiofsd/fuse_lowlevel.c:2223:
+^Iif (!se)$

ERROR: braces {} are necessary for all arms of this statement
#2243: FILE: contrib/virtiofsd/fuse_lowlevel.c:2223:
+       if (!se)
[...]

ERROR: code indent should never use tabs
#2244: FILE: contrib/virtiofsd/fuse_lowlevel.c:2224:
+^I^Ireturn -EINVAL;$

ERROR: trailing whitespace
#2245: FILE: contrib/virtiofsd/fuse_lowlevel.c:2225:
+^I$

ERROR: code indent should never use tabs
#2245: FILE: contrib/virtiofsd/fuse_lowlevel.c:2225:
+^I$

ERROR: code indent should never use tabs
#2246: FILE: contrib/virtiofsd/fuse_lowlevel.c:2226:
+^Iif (se->conn.proto_major < 6 || se->conn.proto_minor < 12)$

ERROR: braces {} are necessary for all arms of this statement
#2246: FILE: contrib/virtiofsd/fuse_lowlevel.c:2226:
+       if (se->conn.proto_major < 6 || se->conn.proto_minor < 12)
[...]

ERROR: code indent should never use tabs
#2247: FILE: contrib/virtiofsd/fuse_lowlevel.c:2227:
+^I^Ireturn -ENOSYS;$

ERROR: code indent should never use tabs
#2249: FILE: contrib/virtiofsd/fuse_lowlevel.c:2229:
+^Ioutarg.parent = parent;$

ERROR: code indent should never use tabs
#2250: FILE: contrib/virtiofsd/fuse_lowlevel.c:2230:
+^Ioutarg.namelen = namelen;$

ERROR: code indent should never use tabs
#2251: FILE: contrib/virtiofsd/fuse_lowlevel.c:2231:
+^Ioutarg.padding = 0;$

ERROR: code indent should never use tabs
#2253: FILE: contrib/virtiofsd/fuse_lowlevel.c:2233:
+^Iiov[1].iov_base = &outarg;$

ERROR: code indent should never use tabs
#2254: FILE: contrib/virtiofsd/fuse_lowlevel.c:2234:
+^Iiov[1].iov_len = sizeof(outarg);$

ERROR: code indent should never use tabs
#2255: FILE: contrib/virtiofsd/fuse_lowlevel.c:2235:
+^Iiov[2].iov_base = (void *)name;$

ERROR: code indent should never use tabs
#2256: FILE: contrib/virtiofsd/fuse_lowlevel.c:2236:
+^Iiov[2].iov_len = namelen + 1;$

ERROR: code indent should never use tabs
#2258: FILE: contrib/virtiofsd/fuse_lowlevel.c:2238:
+^Ireturn send_notify_iov(se, FUSE_NOTIFY_INVAL_ENTRY, iov, 3);$

ERROR: code indent should never use tabs
#2262: FILE: contrib/virtiofsd/fuse_lowlevel.c:2242:
+^I^I^I^Ifuse_ino_t parent, fuse_ino_t child,$

ERROR: code indent should never use tabs
#2263: FILE: contrib/virtiofsd/fuse_lowlevel.c:2243:
+^I^I^I^Iconst char *name, size_t namelen)$

ERROR: code indent should never use tabs
#2265: FILE: contrib/virtiofsd/fuse_lowlevel.c:2245:
+^Istruct fuse_notify_delete_out outarg;$

ERROR: code indent should never use tabs
#2266: FILE: contrib/virtiofsd/fuse_lowlevel.c:2246:
+^Istruct iovec iov[3];$

ERROR: code indent should never use tabs
#2268: FILE: contrib/virtiofsd/fuse_lowlevel.c:2248:
+^Iif (!se)$

ERROR: braces {} are necessary for all arms of this statement
#2268: FILE: contrib/virtiofsd/fuse_lowlevel.c:2248:
+       if (!se)
[...]

ERROR: code indent should never use tabs
#2269: FILE: contrib/virtiofsd/fuse_lowlevel.c:2249:
+^I^Ireturn -EINVAL;$

ERROR: code indent should never use tabs
#2271: FILE: contrib/virtiofsd/fuse_lowlevel.c:2251:
+^Iif (se->conn.proto_major < 6 || se->conn.proto_minor < 18)$

ERROR: braces {} are necessary for all arms of this statement
#2271: FILE: contrib/virtiofsd/fuse_lowlevel.c:2251:
+       if (se->conn.proto_major < 6 || se->conn.proto_minor < 18)
[...]

ERROR: code indent should never use tabs
#2272: FILE: contrib/virtiofsd/fuse_lowlevel.c:2252:
+^I^Ireturn -ENOSYS;$

ERROR: code indent should never use tabs
#2274: FILE: contrib/virtiofsd/fuse_lowlevel.c:2254:
+^Ioutarg.parent = parent;$

ERROR: code indent should never use tabs
#2275: FILE: contrib/virtiofsd/fuse_lowlevel.c:2255:
+^Ioutarg.child = child;$

ERROR: code indent should never use tabs
#2276: FILE: contrib/virtiofsd/fuse_lowlevel.c:2256:
+^Ioutarg.namelen = namelen;$

ERROR: code indent should never use tabs
#2277: FILE: contrib/virtiofsd/fuse_lowlevel.c:2257:
+^Ioutarg.padding = 0;$

ERROR: code indent should never use tabs
#2279: FILE: contrib/virtiofsd/fuse_lowlevel.c:2259:
+^Iiov[1].iov_base = &outarg;$

ERROR: code indent should never use tabs
#2280: FILE: contrib/virtiofsd/fuse_lowlevel.c:2260:
+^Iiov[1].iov_len = sizeof(outarg);$

ERROR: code indent should never use tabs
#2281: FILE: contrib/virtiofsd/fuse_lowlevel.c:2261:
+^Iiov[2].iov_base = (void *)name;$

ERROR: code indent should never use tabs
#2282: FILE: contrib/virtiofsd/fuse_lowlevel.c:2262:
+^Iiov[2].iov_len = namelen + 1;$

ERROR: code indent should never use tabs
#2284: FILE: contrib/virtiofsd/fuse_lowlevel.c:2264:
+^Ireturn send_notify_iov(se, FUSE_NOTIFY_DELETE, iov, 3);$

ERROR: code indent should never use tabs
#2288: FILE: contrib/virtiofsd/fuse_lowlevel.c:2268:
+^I^I^I       off_t offset, struct fuse_bufvec *bufv,$

ERROR: code indent should never use tabs
#2289: FILE: contrib/virtiofsd/fuse_lowlevel.c:2269:
+^I^I^I       enum fuse_buf_copy_flags flags)$

ERROR: code indent should never use tabs
#2291: FILE: contrib/virtiofsd/fuse_lowlevel.c:2271:
+^Istruct fuse_out_header out;$

ERROR: code indent should never use tabs
#2292: FILE: contrib/virtiofsd/fuse_lowlevel.c:2272:
+^Istruct fuse_notify_store_out outarg;$

ERROR: code indent should never use tabs
#2293: FILE: contrib/virtiofsd/fuse_lowlevel.c:2273:
+^Istruct iovec iov[3];$

ERROR: code indent should never use tabs
#2294: FILE: contrib/virtiofsd/fuse_lowlevel.c:2274:
+^Isize_t size = fuse_buf_size(bufv);$

ERROR: code indent should never use tabs
#2295: FILE: contrib/virtiofsd/fuse_lowlevel.c:2275:
+^Iint res;$

ERROR: code indent should never use tabs
#2297: FILE: contrib/virtiofsd/fuse_lowlevel.c:2277:
+^Iif (!se)$

ERROR: braces {} are necessary for all arms of this statement
#2297: FILE: contrib/virtiofsd/fuse_lowlevel.c:2277:
+       if (!se)
[...]

ERROR: code indent should never use tabs
#2298: FILE: contrib/virtiofsd/fuse_lowlevel.c:2278:
+^I^Ireturn -EINVAL;$

ERROR: code indent should never use tabs
#2300: FILE: contrib/virtiofsd/fuse_lowlevel.c:2280:
+^Iif (se->conn.proto_major < 6 || se->conn.proto_minor < 15)$

ERROR: braces {} are necessary for all arms of this statement
#2300: FILE: contrib/virtiofsd/fuse_lowlevel.c:2280:
+       if (se->conn.proto_major < 6 || se->conn.proto_minor < 15)
[...]

ERROR: code indent should never use tabs
#2301: FILE: contrib/virtiofsd/fuse_lowlevel.c:2281:
+^I^Ireturn -ENOSYS;$

ERROR: code indent should never use tabs
#2303: FILE: contrib/virtiofsd/fuse_lowlevel.c:2283:
+^Iout.unique = 0;$

ERROR: code indent should never use tabs
#2304: FILE: contrib/virtiofsd/fuse_lowlevel.c:2284:
+^Iout.error = FUSE_NOTIFY_STORE;$

ERROR: code indent should never use tabs
#2306: FILE: contrib/virtiofsd/fuse_lowlevel.c:2286:
+^Ioutarg.nodeid = ino;$

ERROR: code indent should never use tabs
#2307: FILE: contrib/virtiofsd/fuse_lowlevel.c:2287:
+^Ioutarg.offset = offset;$

ERROR: code indent should never use tabs
#2308: FILE: contrib/virtiofsd/fuse_lowlevel.c:2288:
+^Ioutarg.size = size;$

ERROR: code indent should never use tabs
#2309: FILE: contrib/virtiofsd/fuse_lowlevel.c:2289:
+^Ioutarg.padding = 0;$

ERROR: code indent should never use tabs
#2311: FILE: contrib/virtiofsd/fuse_lowlevel.c:2291:
+^Iiov[0].iov_base = &out;$

ERROR: code indent should never use tabs
#2312: FILE: contrib/virtiofsd/fuse_lowlevel.c:2292:
+^Iiov[0].iov_len = sizeof(out);$

ERROR: code indent should never use tabs
#2313: FILE: contrib/virtiofsd/fuse_lowlevel.c:2293:
+^Iiov[1].iov_base = &outarg;$

ERROR: code indent should never use tabs
#2314: FILE: contrib/virtiofsd/fuse_lowlevel.c:2294:
+^Iiov[1].iov_len = sizeof(outarg);$

ERROR: code indent should never use tabs
#2316: FILE: contrib/virtiofsd/fuse_lowlevel.c:2296:
+^Ires = fuse_send_data_iov(se, NULL, iov, 2, bufv, flags);$

ERROR: code indent should never use tabs
#2317: FILE: contrib/virtiofsd/fuse_lowlevel.c:2297:
+^Iif (res > 0)$

ERROR: braces {} are necessary for all arms of this statement
#2317: FILE: contrib/virtiofsd/fuse_lowlevel.c:2297:
+       if (res > 0)
[...]

ERROR: code indent should never use tabs
#2318: FILE: contrib/virtiofsd/fuse_lowlevel.c:2298:
+^I^Ires = -res;$

ERROR: code indent should never use tabs
#2320: FILE: contrib/virtiofsd/fuse_lowlevel.c:2300:
+^Ireturn res;$

ERROR: code indent should never use tabs
#2324: FILE: contrib/virtiofsd/fuse_lowlevel.c:2304:
+^Istruct fuse_notify_req nreq;$

ERROR: code indent should never use tabs
#2325: FILE: contrib/virtiofsd/fuse_lowlevel.c:2305:
+^Ivoid *cookie;$

ERROR: code indent should never use tabs
#2329: FILE: contrib/virtiofsd/fuse_lowlevel.c:2309:
+^I^I^I^I   fuse_req_t req, fuse_ino_t ino,$

ERROR: code indent should never use tabs
#2330: FILE: contrib/virtiofsd/fuse_lowlevel.c:2310:
+^I^I^I^I   const void *inarg,$

ERROR: code indent should never use tabs
#2331: FILE: contrib/virtiofsd/fuse_lowlevel.c:2311:
+^I^I^I^I   const struct fuse_buf *ibuf)$

ERROR: code indent should never use tabs
#2333: FILE: contrib/virtiofsd/fuse_lowlevel.c:2313:
+^Istruct fuse_session *se = req->se;$

ERROR: code indent should never use tabs
#2334: FILE: contrib/virtiofsd/fuse_lowlevel.c:2314:
+^Istruct fuse_retrieve_req *rreq =$

ERROR: code indent should never use tabs
#2335: FILE: contrib/virtiofsd/fuse_lowlevel.c:2315:
+^I^Icontainer_of(nreq, struct fuse_retrieve_req, nreq);$

ERROR: code indent should never use tabs
#2336: FILE: contrib/virtiofsd/fuse_lowlevel.c:2316:
+^Iconst struct fuse_notify_retrieve_in *arg = inarg;$

ERROR: code indent should never use tabs
#2337: FILE: contrib/virtiofsd/fuse_lowlevel.c:2317:
+^Istruct fuse_bufvec bufv = {$

ERROR: code indent should never use tabs
#2338: FILE: contrib/virtiofsd/fuse_lowlevel.c:2318:
+^I^I.buf[0] = *ibuf,$

ERROR: code indent should never use tabs
#2339: FILE: contrib/virtiofsd/fuse_lowlevel.c:2319:
+^I^I.count = 1,$

ERROR: code indent should never use tabs
#2340: FILE: contrib/virtiofsd/fuse_lowlevel.c:2320:
+^I};$

ERROR: code indent should never use tabs
#2342: FILE: contrib/virtiofsd/fuse_lowlevel.c:2322:
+^Iif (!(bufv.buf[0].flags & FUSE_BUF_IS_FD))$

ERROR: braces {} are necessary for all arms of this statement
#2342: FILE: contrib/virtiofsd/fuse_lowlevel.c:2322:
+       if (!(bufv.buf[0].flags & FUSE_BUF_IS_FD))
[...]

ERROR: code indent should never use tabs
#2343: FILE: contrib/virtiofsd/fuse_lowlevel.c:2323:
+^I^Ibufv.buf[0].mem = PARAM(arg);$

ERROR: code indent should never use tabs
#2345: FILE: contrib/virtiofsd/fuse_lowlevel.c:2325:
+^Ibufv.buf[0].size -= sizeof(struct fuse_in_header) +$

ERROR: code indent should never use tabs
#2346: FILE: contrib/virtiofsd/fuse_lowlevel.c:2326:
+^I^Isizeof(struct fuse_notify_retrieve_in);$

ERROR: code indent should never use tabs
#2348: FILE: contrib/virtiofsd/fuse_lowlevel.c:2328:
+^Iif (bufv.buf[0].size < arg->size) {$

WARNING: line over 80 characters
#2349: FILE: contrib/virtiofsd/fuse_lowlevel.c:2329:
+               fuse_log(FUSE_LOG_ERR, "fuse: retrieve reply: buffer size too small\n");

ERROR: code indent should never use tabs
#2349: FILE: contrib/virtiofsd/fuse_lowlevel.c:2329:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: retrieve reply: buffer size too small\n");$

ERROR: code indent should never use tabs
#2350: FILE: contrib/virtiofsd/fuse_lowlevel.c:2330:
+^I^Ifuse_reply_none(req);$

ERROR: code indent should never use tabs
#2351: FILE: contrib/virtiofsd/fuse_lowlevel.c:2331:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#2352: FILE: contrib/virtiofsd/fuse_lowlevel.c:2332:
+^I}$

ERROR: code indent should never use tabs
#2353: FILE: contrib/virtiofsd/fuse_lowlevel.c:2333:
+^Ibufv.buf[0].size = arg->size;$

ERROR: code indent should never use tabs
#2355: FILE: contrib/virtiofsd/fuse_lowlevel.c:2335:
+^Iif (se->op.retrieve_reply) {$

ERROR: code indent should never use tabs
#2356: FILE: contrib/virtiofsd/fuse_lowlevel.c:2336:
+^I^Ise->op.retrieve_reply(req, rreq->cookie, ino,$

ERROR: code indent should never use tabs
#2357: FILE: contrib/virtiofsd/fuse_lowlevel.c:2337:
+^I^I^I^I^I  arg->offset, &bufv);$

ERROR: code indent should never use tabs
#2358: FILE: contrib/virtiofsd/fuse_lowlevel.c:2338:
+^I} else {$

ERROR: code indent should never use tabs
#2359: FILE: contrib/virtiofsd/fuse_lowlevel.c:2339:
+^I^Ifuse_reply_none(req);$

ERROR: code indent should never use tabs
#2360: FILE: contrib/virtiofsd/fuse_lowlevel.c:2340:
+^I}$

ERROR: code indent should never use tabs
#2362: FILE: contrib/virtiofsd/fuse_lowlevel.c:2342:
+^Ifree(rreq);$

ERROR: code indent should never use tabs
#2363: FILE: contrib/virtiofsd/fuse_lowlevel.c:2343:
+^Iif ((ibuf->flags & FUSE_BUF_IS_FD) && bufv.idx < bufv.count)$

ERROR: braces {} are necessary for all arms of this statement
#2363: FILE: contrib/virtiofsd/fuse_lowlevel.c:2343:
+       if ((ibuf->flags & FUSE_BUF_IS_FD) && bufv.idx < bufv.count)
[...]

ERROR: code indent should never use tabs
#2364: FILE: contrib/virtiofsd/fuse_lowlevel.c:2344:
+^I^Ifuse_ll_clear_pipe(se);$

ERROR: code indent should never use tabs
#2368: FILE: contrib/virtiofsd/fuse_lowlevel.c:2348:
+^I^I^I^I  size_t size, off_t offset, void *cookie)$

ERROR: code indent should never use tabs
#2370: FILE: contrib/virtiofsd/fuse_lowlevel.c:2350:
+^Istruct fuse_notify_retrieve_out outarg;$

ERROR: code indent should never use tabs
#2371: FILE: contrib/virtiofsd/fuse_lowlevel.c:2351:
+^Istruct iovec iov[2];$

ERROR: code indent should never use tabs
#2372: FILE: contrib/virtiofsd/fuse_lowlevel.c:2352:
+^Istruct fuse_retrieve_req *rreq;$

ERROR: code indent should never use tabs
#2373: FILE: contrib/virtiofsd/fuse_lowlevel.c:2353:
+^Iint err;$

ERROR: code indent should never use tabs
#2375: FILE: contrib/virtiofsd/fuse_lowlevel.c:2355:
+^Iif (!se)$

ERROR: braces {} are necessary for all arms of this statement
#2375: FILE: contrib/virtiofsd/fuse_lowlevel.c:2355:
+       if (!se)
[...]

ERROR: code indent should never use tabs
#2376: FILE: contrib/virtiofsd/fuse_lowlevel.c:2356:
+^I^Ireturn -EINVAL;$

ERROR: code indent should never use tabs
#2378: FILE: contrib/virtiofsd/fuse_lowlevel.c:2358:
+^Iif (se->conn.proto_major < 6 || se->conn.proto_minor < 15)$

ERROR: braces {} are necessary for all arms of this statement
#2378: FILE: contrib/virtiofsd/fuse_lowlevel.c:2358:
+       if (se->conn.proto_major < 6 || se->conn.proto_minor < 15)
[...]

ERROR: code indent should never use tabs
#2379: FILE: contrib/virtiofsd/fuse_lowlevel.c:2359:
+^I^Ireturn -ENOSYS;$

ERROR: code indent should never use tabs
#2381: FILE: contrib/virtiofsd/fuse_lowlevel.c:2361:
+^Irreq = malloc(sizeof(*rreq));$

ERROR: code indent should never use tabs
#2382: FILE: contrib/virtiofsd/fuse_lowlevel.c:2362:
+^Iif (rreq == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#2382: FILE: contrib/virtiofsd/fuse_lowlevel.c:2362:
+       if (rreq == NULL)
[...]

ERROR: code indent should never use tabs
#2383: FILE: contrib/virtiofsd/fuse_lowlevel.c:2363:
+^I^Ireturn -ENOMEM;$

ERROR: code indent should never use tabs
#2385: FILE: contrib/virtiofsd/fuse_lowlevel.c:2365:
+^Ipthread_mutex_lock(&se->lock);$

ERROR: code indent should never use tabs
#2386: FILE: contrib/virtiofsd/fuse_lowlevel.c:2366:
+^Irreq->cookie = cookie;$

ERROR: code indent should never use tabs
#2387: FILE: contrib/virtiofsd/fuse_lowlevel.c:2367:
+^Irreq->nreq.unique = se->notify_ctr++;$

ERROR: code indent should never use tabs
#2388: FILE: contrib/virtiofsd/fuse_lowlevel.c:2368:
+^Irreq->nreq.reply = fuse_ll_retrieve_reply;$

ERROR: code indent should never use tabs
#2389: FILE: contrib/virtiofsd/fuse_lowlevel.c:2369:
+^Ilist_add_nreq(&rreq->nreq, &se->notify_list);$

ERROR: code indent should never use tabs
#2390: FILE: contrib/virtiofsd/fuse_lowlevel.c:2370:
+^Ipthread_mutex_unlock(&se->lock);$

ERROR: code indent should never use tabs
#2392: FILE: contrib/virtiofsd/fuse_lowlevel.c:2372:
+^Ioutarg.notify_unique = rreq->nreq.unique;$

ERROR: code indent should never use tabs
#2393: FILE: contrib/virtiofsd/fuse_lowlevel.c:2373:
+^Ioutarg.nodeid = ino;$

ERROR: code indent should never use tabs
#2394: FILE: contrib/virtiofsd/fuse_lowlevel.c:2374:
+^Ioutarg.offset = offset;$

ERROR: code indent should never use tabs
#2395: FILE: contrib/virtiofsd/fuse_lowlevel.c:2375:
+^Ioutarg.size = size;$

ERROR: code indent should never use tabs
#2396: FILE: contrib/virtiofsd/fuse_lowlevel.c:2376:
+^Ioutarg.padding = 0;$

ERROR: code indent should never use tabs
#2398: FILE: contrib/virtiofsd/fuse_lowlevel.c:2378:
+^Iiov[1].iov_base = &outarg;$

ERROR: code indent should never use tabs
#2399: FILE: contrib/virtiofsd/fuse_lowlevel.c:2379:
+^Iiov[1].iov_len = sizeof(outarg);$

ERROR: code indent should never use tabs
#2401: FILE: contrib/virtiofsd/fuse_lowlevel.c:2381:
+^Ierr = send_notify_iov(se, FUSE_NOTIFY_RETRIEVE, iov, 2);$

ERROR: code indent should never use tabs
#2402: FILE: contrib/virtiofsd/fuse_lowlevel.c:2382:
+^Iif (err) {$

ERROR: code indent should never use tabs
#2403: FILE: contrib/virtiofsd/fuse_lowlevel.c:2383:
+^I^Ipthread_mutex_lock(&se->lock);$

ERROR: code indent should never use tabs
#2404: FILE: contrib/virtiofsd/fuse_lowlevel.c:2384:
+^I^Ilist_del_nreq(&rreq->nreq);$

ERROR: code indent should never use tabs
#2405: FILE: contrib/virtiofsd/fuse_lowlevel.c:2385:
+^I^Ipthread_mutex_unlock(&se->lock);$

ERROR: code indent should never use tabs
#2406: FILE: contrib/virtiofsd/fuse_lowlevel.c:2386:
+^I^Ifree(rreq);$

ERROR: code indent should never use tabs
#2407: FILE: contrib/virtiofsd/fuse_lowlevel.c:2387:
+^I}$

ERROR: code indent should never use tabs
#2409: FILE: contrib/virtiofsd/fuse_lowlevel.c:2389:
+^Ireturn err;$

ERROR: code indent should never use tabs
#2414: FILE: contrib/virtiofsd/fuse_lowlevel.c:2394:
+^Ireturn req->se->userdata;$

ERROR: code indent should never use tabs
#2419: FILE: contrib/virtiofsd/fuse_lowlevel.c:2399:
+^Ireturn &req->ctx;$

ERROR: code indent should never use tabs
#2423: FILE: contrib/virtiofsd/fuse_lowlevel.c:2403:
+^I^I^I     void *data)$

ERROR: code indent should never use tabs
#2425: FILE: contrib/virtiofsd/fuse_lowlevel.c:2405:
+^Ipthread_mutex_lock(&req->lock);$

ERROR: code indent should never use tabs
#2426: FILE: contrib/virtiofsd/fuse_lowlevel.c:2406:
+^Ipthread_mutex_lock(&req->se->lock);$

ERROR: code indent should never use tabs
#2427: FILE: contrib/virtiofsd/fuse_lowlevel.c:2407:
+^Ireq->u.ni.func = func;$

ERROR: code indent should never use tabs
#2428: FILE: contrib/virtiofsd/fuse_lowlevel.c:2408:
+^Ireq->u.ni.data = data;$

ERROR: code indent should never use tabs
#2429: FILE: contrib/virtiofsd/fuse_lowlevel.c:2409:
+^Ipthread_mutex_unlock(&req->se->lock);$

ERROR: code indent should never use tabs
#2430: FILE: contrib/virtiofsd/fuse_lowlevel.c:2410:
+^Iif (req->interrupted && func)$

ERROR: braces {} are necessary for all arms of this statement
#2430: FILE: contrib/virtiofsd/fuse_lowlevel.c:2410:
+       if (req->interrupted && func)
[...]

ERROR: code indent should never use tabs
#2431: FILE: contrib/virtiofsd/fuse_lowlevel.c:2411:
+^I^Ifunc(req, data);$

ERROR: code indent should never use tabs
#2432: FILE: contrib/virtiofsd/fuse_lowlevel.c:2412:
+^Ipthread_mutex_unlock(&req->lock);$

ERROR: code indent should never use tabs
#2437: FILE: contrib/virtiofsd/fuse_lowlevel.c:2417:
+^Iint interrupted;$

ERROR: code indent should never use tabs
#2439: FILE: contrib/virtiofsd/fuse_lowlevel.c:2419:
+^Ipthread_mutex_lock(&req->se->lock);$

ERROR: code indent should never use tabs
#2440: FILE: contrib/virtiofsd/fuse_lowlevel.c:2420:
+^Iinterrupted = req->interrupted;$

ERROR: code indent should never use tabs
#2441: FILE: contrib/virtiofsd/fuse_lowlevel.c:2421:
+^Ipthread_mutex_unlock(&req->se->lock);$

ERROR: code indent should never use tabs
#2443: FILE: contrib/virtiofsd/fuse_lowlevel.c:2423:
+^Ireturn interrupted;$

ERROR: code indent should never use tabs
#2447: FILE: contrib/virtiofsd/fuse_lowlevel.c:2427:
+^Ivoid (*func)(fuse_req_t, fuse_ino_t, const void *);$

ERROR: code indent should never use tabs
#2448: FILE: contrib/virtiofsd/fuse_lowlevel.c:2428:
+^Iconst char *name;$

ERROR: code indent should never use tabs
#2450: FILE: contrib/virtiofsd/fuse_lowlevel.c:2430:
+^I[FUSE_LOOKUP]^I   = { do_lookup,      "LOOKUP"^I     },$

ERROR: code indent should never use tabs
#2451: FILE: contrib/virtiofsd/fuse_lowlevel.c:2431:
+^I[FUSE_FORGET]^I   = { do_forget,      "FORGET"^I     },$

ERROR: code indent should never use tabs
#2452: FILE: contrib/virtiofsd/fuse_lowlevel.c:2432:
+^I[FUSE_GETATTR]^I   = { do_getattr,     "GETATTR"     },$

ERROR: code indent should never use tabs
#2453: FILE: contrib/virtiofsd/fuse_lowlevel.c:2433:
+^I[FUSE_SETATTR]^I   = { do_setattr,     "SETATTR"     },$

ERROR: code indent should never use tabs
#2454: FILE: contrib/virtiofsd/fuse_lowlevel.c:2434:
+^I[FUSE_READLINK]^I   = { do_readlink,    "READLINK"    },$

ERROR: code indent should never use tabs
#2455: FILE: contrib/virtiofsd/fuse_lowlevel.c:2435:
+^I[FUSE_SYMLINK]^I   = { do_symlink,     "SYMLINK"     },$

ERROR: code indent should never use tabs
#2456: FILE: contrib/virtiofsd/fuse_lowlevel.c:2436:
+^I[FUSE_MKNOD]^I   = { do_mknod,       "MKNOD"^I     },$

ERROR: code indent should never use tabs
#2457: FILE: contrib/virtiofsd/fuse_lowlevel.c:2437:
+^I[FUSE_MKDIR]^I   = { do_mkdir,       "MKDIR"^I     },$

ERROR: code indent should never use tabs
#2458: FILE: contrib/virtiofsd/fuse_lowlevel.c:2438:
+^I[FUSE_UNLINK]^I   = { do_unlink,      "UNLINK"^I     },$

ERROR: code indent should never use tabs
#2459: FILE: contrib/virtiofsd/fuse_lowlevel.c:2439:
+^I[FUSE_RMDIR]^I   = { do_rmdir,       "RMDIR"^I     },$

ERROR: code indent should never use tabs
#2460: FILE: contrib/virtiofsd/fuse_lowlevel.c:2440:
+^I[FUSE_RENAME]^I   = { do_rename,      "RENAME"^I     },$

ERROR: code indent should never use tabs
#2461: FILE: contrib/virtiofsd/fuse_lowlevel.c:2441:
+^I[FUSE_LINK]^I   = { do_link,^I       "LINK"^I     },$

ERROR: code indent should never use tabs
#2462: FILE: contrib/virtiofsd/fuse_lowlevel.c:2442:
+^I[FUSE_OPEN]^I   = { do_open,^I       "OPEN"^I     },$

ERROR: code indent should never use tabs
#2463: FILE: contrib/virtiofsd/fuse_lowlevel.c:2443:
+^I[FUSE_READ]^I   = { do_read,^I       "READ"^I     },$

ERROR: code indent should never use tabs
#2464: FILE: contrib/virtiofsd/fuse_lowlevel.c:2444:
+^I[FUSE_WRITE]^I   = { do_write,       "WRITE"^I     },$

ERROR: code indent should never use tabs
#2465: FILE: contrib/virtiofsd/fuse_lowlevel.c:2445:
+^I[FUSE_STATFS]^I   = { do_statfs,      "STATFS"^I     },$

ERROR: code indent should never use tabs
#2466: FILE: contrib/virtiofsd/fuse_lowlevel.c:2446:
+^I[FUSE_RELEASE]^I   = { do_release,     "RELEASE"     },$

ERROR: code indent should never use tabs
#2467: FILE: contrib/virtiofsd/fuse_lowlevel.c:2447:
+^I[FUSE_FSYNC]^I   = { do_fsync,       "FSYNC"^I     },$

ERROR: code indent should never use tabs
#2468: FILE: contrib/virtiofsd/fuse_lowlevel.c:2448:
+^I[FUSE_SETXATTR]^I   = { do_setxattr,    "SETXATTR"    },$

ERROR: code indent should never use tabs
#2469: FILE: contrib/virtiofsd/fuse_lowlevel.c:2449:
+^I[FUSE_GETXATTR]^I   = { do_getxattr,    "GETXATTR"    },$

ERROR: code indent should never use tabs
#2470: FILE: contrib/virtiofsd/fuse_lowlevel.c:2450:
+^I[FUSE_LISTXATTR]   = { do_listxattr,   "LISTXATTR"   },$

ERROR: code indent should never use tabs
#2471: FILE: contrib/virtiofsd/fuse_lowlevel.c:2451:
+^I[FUSE_REMOVEXATTR] = { do_removexattr, "REMOVEXATTR" },$

ERROR: code indent should never use tabs
#2472: FILE: contrib/virtiofsd/fuse_lowlevel.c:2452:
+^I[FUSE_FLUSH]^I   = { do_flush,       "FLUSH"^I     },$

ERROR: code indent should never use tabs
#2473: FILE: contrib/virtiofsd/fuse_lowlevel.c:2453:
+^I[FUSE_INIT]^I   = { do_init,^I       "INIT"^I     },$

ERROR: code indent should never use tabs
#2474: FILE: contrib/virtiofsd/fuse_lowlevel.c:2454:
+^I[FUSE_OPENDIR]^I   = { do_opendir,     "OPENDIR"     },$

ERROR: code indent should never use tabs
#2475: FILE: contrib/virtiofsd/fuse_lowlevel.c:2455:
+^I[FUSE_READDIR]^I   = { do_readdir,     "READDIR"     },$

ERROR: code indent should never use tabs
#2476: FILE: contrib/virtiofsd/fuse_lowlevel.c:2456:
+^I[FUSE_RELEASEDIR]  = { do_releasedir,  "RELEASEDIR"  },$

ERROR: code indent should never use tabs
#2477: FILE: contrib/virtiofsd/fuse_lowlevel.c:2457:
+^I[FUSE_FSYNCDIR]^I   = { do_fsyncdir,    "FSYNCDIR"    },$

ERROR: code indent should never use tabs
#2478: FILE: contrib/virtiofsd/fuse_lowlevel.c:2458:
+^I[FUSE_GETLK]^I   = { do_getlk,       "GETLK"^I     },$

ERROR: code indent should never use tabs
#2479: FILE: contrib/virtiofsd/fuse_lowlevel.c:2459:
+^I[FUSE_SETLK]^I   = { do_setlk,       "SETLK"^I     },$

ERROR: code indent should never use tabs
#2480: FILE: contrib/virtiofsd/fuse_lowlevel.c:2460:
+^I[FUSE_SETLKW]^I   = { do_setlkw,      "SETLKW"^I     },$

ERROR: code indent should never use tabs
#2481: FILE: contrib/virtiofsd/fuse_lowlevel.c:2461:
+^I[FUSE_ACCESS]^I   = { do_access,      "ACCESS"^I     },$

ERROR: code indent should never use tabs
#2482: FILE: contrib/virtiofsd/fuse_lowlevel.c:2462:
+^I[FUSE_CREATE]^I   = { do_create,      "CREATE"^I     },$

ERROR: code indent should never use tabs
#2483: FILE: contrib/virtiofsd/fuse_lowlevel.c:2463:
+^I[FUSE_INTERRUPT]   = { do_interrupt,   "INTERRUPT"   },$

ERROR: code indent should never use tabs
#2484: FILE: contrib/virtiofsd/fuse_lowlevel.c:2464:
+^I[FUSE_BMAP]^I   = { do_bmap,^I       "BMAP"^I     },$

ERROR: code indent should never use tabs
#2485: FILE: contrib/virtiofsd/fuse_lowlevel.c:2465:
+^I[FUSE_IOCTL]^I   = { do_ioctl,       "IOCTL"^I     },$

ERROR: code indent should never use tabs
#2486: FILE: contrib/virtiofsd/fuse_lowlevel.c:2466:
+^I[FUSE_POLL]^I   = { do_poll,        "POLL"^I     },$

ERROR: code indent should never use tabs
#2487: FILE: contrib/virtiofsd/fuse_lowlevel.c:2467:
+^I[FUSE_FALLOCATE]   = { do_fallocate,   "FALLOCATE"   },$

ERROR: code indent should never use tabs
#2488: FILE: contrib/virtiofsd/fuse_lowlevel.c:2468:
+^I[FUSE_DESTROY]^I   = { do_destroy,     "DESTROY"     },$

ERROR: code indent should never use tabs
#2489: FILE: contrib/virtiofsd/fuse_lowlevel.c:2469:
+^I[FUSE_NOTIFY_REPLY] = { (void *) 1,    "NOTIFY_REPLY" },$

ERROR: code indent should never use tabs
#2490: FILE: contrib/virtiofsd/fuse_lowlevel.c:2470:
+^I[FUSE_BATCH_FORGET] = { do_batch_forget, "BATCH_FORGET" },$

ERROR: code indent should never use tabs
#2491: FILE: contrib/virtiofsd/fuse_lowlevel.c:2471:
+^I[FUSE_READDIRPLUS] = { do_readdirplus,^I"READDIRPLUS"},$

ERROR: code indent should never use tabs
#2492: FILE: contrib/virtiofsd/fuse_lowlevel.c:2472:
+^I[FUSE_RENAME2]     = { do_rename2,      "RENAME2"    },$

ERROR: code indent should never use tabs
#2493: FILE: contrib/virtiofsd/fuse_lowlevel.c:2473:
+^I[FUSE_COPY_FILE_RANGE] = { do_copy_file_range, "COPY_FILE_RANGE" },$

ERROR: code indent should never use tabs
#2494: FILE: contrib/virtiofsd/fuse_lowlevel.c:2474:
+^I[CUSE_INIT]^I   = { cuse_lowlevel_init, "CUSE_INIT"   },$

ERROR: code indent should never use tabs
#2501: FILE: contrib/virtiofsd/fuse_lowlevel.c:2481:
+^Iif (opcode >= FUSE_MAXOP || !fuse_ll_ops[opcode].name)$

ERROR: braces {} are necessary for all arms of this statement
#2501: FILE: contrib/virtiofsd/fuse_lowlevel.c:2481:
+       if (opcode >= FUSE_MAXOP || !fuse_ll_ops[opcode].name)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#2502: FILE: contrib/virtiofsd/fuse_lowlevel.c:2482:
+^I^Ireturn "???";$

ERROR: code indent should never use tabs
#2503: FILE: contrib/virtiofsd/fuse_lowlevel.c:2483:
+^Ielse$

ERROR: code indent should never use tabs
#2504: FILE: contrib/virtiofsd/fuse_lowlevel.c:2484:
+^I^Ireturn fuse_ll_ops[opcode].name;$

ERROR: code indent should never use tabs
#2508: FILE: contrib/virtiofsd/fuse_lowlevel.c:2488:
+^I^I^I^I  struct fuse_bufvec *src)$

ERROR: code indent should never use tabs
#2510: FILE: contrib/virtiofsd/fuse_lowlevel.c:2490:
+^Issize_t res = fuse_buf_copy(dst, src, 0);$

ERROR: code indent should never use tabs
#2511: FILE: contrib/virtiofsd/fuse_lowlevel.c:2491:
+^Iif (res < 0) {$

WARNING: line over 80 characters
#2512: FILE: contrib/virtiofsd/fuse_lowlevel.c:2492:
+               fuse_log(FUSE_LOG_ERR, "fuse: copy from pipe: %s\n", strerror(-res));

ERROR: code indent should never use tabs
#2512: FILE: contrib/virtiofsd/fuse_lowlevel.c:2492:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: copy from pipe: %s\n", strerror(-res));$

ERROR: code indent should never use tabs
#2513: FILE: contrib/virtiofsd/fuse_lowlevel.c:2493:
+^I^Ireturn res;$

ERROR: code indent should never use tabs
#2514: FILE: contrib/virtiofsd/fuse_lowlevel.c:2494:
+^I}$

ERROR: code indent should never use tabs
#2515: FILE: contrib/virtiofsd/fuse_lowlevel.c:2495:
+^Iif ((size_t)res < fuse_buf_size(dst)) {$

ERROR: code indent should never use tabs
#2516: FILE: contrib/virtiofsd/fuse_lowlevel.c:2496:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: copy from pipe: short read\n");$

ERROR: code indent should never use tabs
#2517: FILE: contrib/virtiofsd/fuse_lowlevel.c:2497:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#2518: FILE: contrib/virtiofsd/fuse_lowlevel.c:2498:
+^I}$

ERROR: code indent should never use tabs
#2519: FILE: contrib/virtiofsd/fuse_lowlevel.c:2499:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#2523: FILE: contrib/virtiofsd/fuse_lowlevel.c:2503:
+^I^I^I      const struct fuse_buf *buf)$

ERROR: code indent should never use tabs
#2525: FILE: contrib/virtiofsd/fuse_lowlevel.c:2505:
+^Ifuse_session_process_buf_int(se, buf, NULL);$

WARNING: line over 80 characters
#2529: FILE: contrib/virtiofsd/fuse_lowlevel.c:2509:
+                                 const struct fuse_buf *buf, struct fuse_chan *ch)

ERROR: code indent should never use tabs
#2529: FILE: contrib/virtiofsd/fuse_lowlevel.c:2509:
+^I^I^I^I  const struct fuse_buf *buf, struct fuse_chan *ch)$

ERROR: code indent should never use tabs
#2531: FILE: contrib/virtiofsd/fuse_lowlevel.c:2511:
+^Iconst size_t write_header_size = sizeof(struct fuse_in_header) +$

ERROR: code indent should never use tabs
#2532: FILE: contrib/virtiofsd/fuse_lowlevel.c:2512:
+^I^Isizeof(struct fuse_write_in);$

ERROR: code indent should never use tabs
#2533: FILE: contrib/virtiofsd/fuse_lowlevel.c:2513:
+^Istruct fuse_bufvec bufv = { .buf[0] = *buf, .count = 1 };$

ERROR: code indent should never use tabs
#2534: FILE: contrib/virtiofsd/fuse_lowlevel.c:2514:
+^Istruct fuse_bufvec tmpbuf = FUSE_BUFVEC_INIT(write_header_size);$

ERROR: code indent should never use tabs
#2535: FILE: contrib/virtiofsd/fuse_lowlevel.c:2515:
+^Istruct fuse_in_header *in;$

ERROR: code indent should never use tabs
#2536: FILE: contrib/virtiofsd/fuse_lowlevel.c:2516:
+^Iconst void *inarg;$

ERROR: code indent should never use tabs
#2537: FILE: contrib/virtiofsd/fuse_lowlevel.c:2517:
+^Istruct fuse_req *req;$

ERROR: code indent should never use tabs
#2538: FILE: contrib/virtiofsd/fuse_lowlevel.c:2518:
+^Ivoid *mbuf = NULL;$

ERROR: code indent should never use tabs
#2539: FILE: contrib/virtiofsd/fuse_lowlevel.c:2519:
+^Iint err;$

ERROR: code indent should never use tabs
#2540: FILE: contrib/virtiofsd/fuse_lowlevel.c:2520:
+^Iint res;$

ERROR: code indent should never use tabs
#2542: FILE: contrib/virtiofsd/fuse_lowlevel.c:2522:
+^Iif (buf->flags & FUSE_BUF_IS_FD) {$

ERROR: code indent should never use tabs
#2543: FILE: contrib/virtiofsd/fuse_lowlevel.c:2523:
+^I^Iif (buf->size < tmpbuf.buf[0].size)$

ERROR: braces {} are necessary for all arms of this statement
#2543: FILE: contrib/virtiofsd/fuse_lowlevel.c:2523:
+               if (buf->size < tmpbuf.buf[0].size)
[...]

ERROR: code indent should never use tabs
#2544: FILE: contrib/virtiofsd/fuse_lowlevel.c:2524:
+^I^I^Itmpbuf.buf[0].size = buf->size;$

ERROR: code indent should never use tabs
#2546: FILE: contrib/virtiofsd/fuse_lowlevel.c:2526:
+^I^Imbuf = malloc(tmpbuf.buf[0].size);$

ERROR: code indent should never use tabs
#2547: FILE: contrib/virtiofsd/fuse_lowlevel.c:2527:
+^I^Iif (mbuf == NULL) {$

WARNING: line over 80 characters
#2548: FILE: contrib/virtiofsd/fuse_lowlevel.c:2528:
+                       fuse_log(FUSE_LOG_ERR, "fuse: failed to allocate header\n");

ERROR: code indent should never use tabs
#2548: FILE: contrib/virtiofsd/fuse_lowlevel.c:2528:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "fuse: failed to allocate header\n");$

ERROR: code indent should never use tabs
#2549: FILE: contrib/virtiofsd/fuse_lowlevel.c:2529:
+^I^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#2550: FILE: contrib/virtiofsd/fuse_lowlevel.c:2530:
+^I^I}$

ERROR: code indent should never use tabs
#2551: FILE: contrib/virtiofsd/fuse_lowlevel.c:2531:
+^I^Itmpbuf.buf[0].mem = mbuf;$

ERROR: code indent should never use tabs
#2553: FILE: contrib/virtiofsd/fuse_lowlevel.c:2533:
+^I^Ires = fuse_ll_copy_from_pipe(&tmpbuf, &bufv);$

ERROR: code indent should never use tabs
#2554: FILE: contrib/virtiofsd/fuse_lowlevel.c:2534:
+^I^Iif (res < 0)$

ERROR: braces {} are necessary for all arms of this statement
#2554: FILE: contrib/virtiofsd/fuse_lowlevel.c:2534:
+               if (res < 0)
[...]

ERROR: code indent should never use tabs
#2555: FILE: contrib/virtiofsd/fuse_lowlevel.c:2535:
+^I^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#2557: FILE: contrib/virtiofsd/fuse_lowlevel.c:2537:
+^I^Iin = mbuf;$

ERROR: code indent should never use tabs
#2558: FILE: contrib/virtiofsd/fuse_lowlevel.c:2538:
+^I} else {$

ERROR: code indent should never use tabs
#2559: FILE: contrib/virtiofsd/fuse_lowlevel.c:2539:
+^I^Iin = buf->mem;$

ERROR: code indent should never use tabs
#2560: FILE: contrib/virtiofsd/fuse_lowlevel.c:2540:
+^I}$

ERROR: code indent should never use tabs
#2562: FILE: contrib/virtiofsd/fuse_lowlevel.c:2542:
+^Iif (se->debug) {$

ERROR: code indent should never use tabs
#2563: FILE: contrib/virtiofsd/fuse_lowlevel.c:2543:
+^I^Ifuse_log(FUSE_LOG_DEBUG,$

ERROR: code indent should never use tabs
#2564: FILE: contrib/virtiofsd/fuse_lowlevel.c:2544:
+^I^I^I"unique: %llu, opcode: %s (%i), nodeid: %llu, insize: %zu, pid: %u\n",$

ERROR: code indent should never use tabs
#2565: FILE: contrib/virtiofsd/fuse_lowlevel.c:2545:
+^I^I^I(unsigned long long) in->unique,$

ERROR: code indent should never use tabs
#2566: FILE: contrib/virtiofsd/fuse_lowlevel.c:2546:
+^I^I^Iopname((enum fuse_opcode) in->opcode), in->opcode,$

ERROR: code indent should never use tabs
#2567: FILE: contrib/virtiofsd/fuse_lowlevel.c:2547:
+^I^I^I(unsigned long long) in->nodeid, buf->size, in->pid);$

ERROR: code indent should never use tabs
#2568: FILE: contrib/virtiofsd/fuse_lowlevel.c:2548:
+^I}$

ERROR: code indent should never use tabs
#2570: FILE: contrib/virtiofsd/fuse_lowlevel.c:2550:
+^Ireq = fuse_ll_alloc_req(se);$

ERROR: code indent should never use tabs
#2571: FILE: contrib/virtiofsd/fuse_lowlevel.c:2551:
+^Iif (req == NULL) {$

ERROR: code indent should never use tabs
#2572: FILE: contrib/virtiofsd/fuse_lowlevel.c:2552:
+^I^Istruct fuse_out_header out = {$

ERROR: code indent should never use tabs
#2573: FILE: contrib/virtiofsd/fuse_lowlevel.c:2553:
+^I^I^I.unique = in->unique,$

ERROR: code indent should never use tabs
#2574: FILE: contrib/virtiofsd/fuse_lowlevel.c:2554:
+^I^I^I.error = -ENOMEM,$

ERROR: code indent should never use tabs
#2575: FILE: contrib/virtiofsd/fuse_lowlevel.c:2555:
+^I^I};$

ERROR: code indent should never use tabs
#2576: FILE: contrib/virtiofsd/fuse_lowlevel.c:2556:
+^I^Istruct iovec iov = {$

ERROR: code indent should never use tabs
#2577: FILE: contrib/virtiofsd/fuse_lowlevel.c:2557:
+^I^I^I.iov_base = &out,$

ERROR: code indent should never use tabs
#2578: FILE: contrib/virtiofsd/fuse_lowlevel.c:2558:
+^I^I^I.iov_len = sizeof(struct fuse_out_header),$

ERROR: code indent should never use tabs
#2579: FILE: contrib/virtiofsd/fuse_lowlevel.c:2559:
+^I^I};$

ERROR: code indent should never use tabs
#2581: FILE: contrib/virtiofsd/fuse_lowlevel.c:2561:
+^I^Ifuse_send_msg(se, ch, &iov, 1);$

ERROR: code indent should never use tabs
#2582: FILE: contrib/virtiofsd/fuse_lowlevel.c:2562:
+^I^Igoto clear_pipe;$

ERROR: code indent should never use tabs
#2583: FILE: contrib/virtiofsd/fuse_lowlevel.c:2563:
+^I}$

ERROR: code indent should never use tabs
#2585: FILE: contrib/virtiofsd/fuse_lowlevel.c:2565:
+^Ireq->unique = in->unique;$

ERROR: code indent should never use tabs
#2586: FILE: contrib/virtiofsd/fuse_lowlevel.c:2566:
+^Ireq->ctx.uid = in->uid;$

ERROR: code indent should never use tabs
#2587: FILE: contrib/virtiofsd/fuse_lowlevel.c:2567:
+^Ireq->ctx.gid = in->gid;$

ERROR: code indent should never use tabs
#2588: FILE: contrib/virtiofsd/fuse_lowlevel.c:2568:
+^Ireq->ctx.pid = in->pid;$

ERROR: code indent should never use tabs
#2589: FILE: contrib/virtiofsd/fuse_lowlevel.c:2569:
+^Ireq->ch = ch ? fuse_chan_get(ch) : NULL;$

ERROR: code indent should never use tabs
#2591: FILE: contrib/virtiofsd/fuse_lowlevel.c:2571:
+^Ierr = EIO;$

ERROR: code indent should never use tabs
#2592: FILE: contrib/virtiofsd/fuse_lowlevel.c:2572:
+^Iif (!se->got_init) {$

ERROR: code indent should never use tabs
#2593: FILE: contrib/virtiofsd/fuse_lowlevel.c:2573:
+^I^Ienum fuse_opcode expected;$

ERROR: code indent should never use tabs
#2595: FILE: contrib/virtiofsd/fuse_lowlevel.c:2575:
+^I^Iexpected = se->cuse_data ? CUSE_INIT : FUSE_INIT;$

ERROR: code indent should never use tabs
#2596: FILE: contrib/virtiofsd/fuse_lowlevel.c:2576:
+^I^Iif (in->opcode != expected)$

ERROR: braces {} are necessary for all arms of this statement
#2596: FILE: contrib/virtiofsd/fuse_lowlevel.c:2576:
+               if (in->opcode != expected)
[...]

ERROR: code indent should never use tabs
#2597: FILE: contrib/virtiofsd/fuse_lowlevel.c:2577:
+^I^I^Igoto reply_err;$

ERROR: code indent should never use tabs
#2598: FILE: contrib/virtiofsd/fuse_lowlevel.c:2578:
+^I} else if (in->opcode == FUSE_INIT || in->opcode == CUSE_INIT)$

ERROR: braces {} are necessary for all arms of this statement
#2598: FILE: contrib/virtiofsd/fuse_lowlevel.c:2578:
+       } else if (in->opcode == FUSE_INIT || in->opcode == CUSE_INIT)
[...]

ERROR: code indent should never use tabs
#2599: FILE: contrib/virtiofsd/fuse_lowlevel.c:2579:
+^I^Igoto reply_err;$

ERROR: code indent should never use tabs
#2601: FILE: contrib/virtiofsd/fuse_lowlevel.c:2581:
+^Ierr = EACCES;$

ERROR: code indent should never use tabs
#2602: FILE: contrib/virtiofsd/fuse_lowlevel.c:2582:
+^I/* Implement -o allow_root */$

ERROR: code indent should never use tabs
#2603: FILE: contrib/virtiofsd/fuse_lowlevel.c:2583:
+^Iif (se->deny_others && in->uid != se->owner && in->uid != 0 &&$

ERROR: code indent should never use tabs
#2604: FILE: contrib/virtiofsd/fuse_lowlevel.c:2584:
+^I^I in->opcode != FUSE_INIT && in->opcode != FUSE_READ &&$

ERROR: code indent should never use tabs
#2605: FILE: contrib/virtiofsd/fuse_lowlevel.c:2585:
+^I^I in->opcode != FUSE_WRITE && in->opcode != FUSE_FSYNC &&$

ERROR: code indent should never use tabs
#2606: FILE: contrib/virtiofsd/fuse_lowlevel.c:2586:
+^I^I in->opcode != FUSE_RELEASE && in->opcode != FUSE_READDIR &&$

ERROR: code indent should never use tabs
#2607: FILE: contrib/virtiofsd/fuse_lowlevel.c:2587:
+^I^I in->opcode != FUSE_FSYNCDIR && in->opcode != FUSE_RELEASEDIR &&$

ERROR: code indent should never use tabs
#2608: FILE: contrib/virtiofsd/fuse_lowlevel.c:2588:
+^I^I in->opcode != FUSE_NOTIFY_REPLY &&$

ERROR: code indent should never use tabs
#2609: FILE: contrib/virtiofsd/fuse_lowlevel.c:2589:
+^I^I in->opcode != FUSE_READDIRPLUS)$

ERROR: code indent should never use tabs
#2610: FILE: contrib/virtiofsd/fuse_lowlevel.c:2590:
+^I^Igoto reply_err;$

ERROR: code indent should never use tabs
#2612: FILE: contrib/virtiofsd/fuse_lowlevel.c:2592:
+^Ierr = ENOSYS;$

ERROR: code indent should never use tabs
#2613: FILE: contrib/virtiofsd/fuse_lowlevel.c:2593:
+^Iif (in->opcode >= FUSE_MAXOP || !fuse_ll_ops[in->opcode].func)$

ERROR: braces {} are necessary for all arms of this statement
#2613: FILE: contrib/virtiofsd/fuse_lowlevel.c:2593:
+       if (in->opcode >= FUSE_MAXOP || !fuse_ll_ops[in->opcode].func)
[...]

ERROR: code indent should never use tabs
#2614: FILE: contrib/virtiofsd/fuse_lowlevel.c:2594:
+^I^Igoto reply_err;$

ERROR: code indent should never use tabs
#2615: FILE: contrib/virtiofsd/fuse_lowlevel.c:2595:
+^Iif (in->opcode != FUSE_INTERRUPT) {$

ERROR: code indent should never use tabs
#2616: FILE: contrib/virtiofsd/fuse_lowlevel.c:2596:
+^I^Istruct fuse_req *intr;$

ERROR: code indent should never use tabs
#2617: FILE: contrib/virtiofsd/fuse_lowlevel.c:2597:
+^I^Ipthread_mutex_lock(&se->lock);$

ERROR: code indent should never use tabs
#2618: FILE: contrib/virtiofsd/fuse_lowlevel.c:2598:
+^I^Iintr = check_interrupt(se, req);$

ERROR: code indent should never use tabs
#2619: FILE: contrib/virtiofsd/fuse_lowlevel.c:2599:
+^I^Ilist_add_req(req, &se->list);$

ERROR: code indent should never use tabs
#2620: FILE: contrib/virtiofsd/fuse_lowlevel.c:2600:
+^I^Ipthread_mutex_unlock(&se->lock);$

ERROR: code indent should never use tabs
#2621: FILE: contrib/virtiofsd/fuse_lowlevel.c:2601:
+^I^Iif (intr)$

ERROR: braces {} are necessary for all arms of this statement
#2621: FILE: contrib/virtiofsd/fuse_lowlevel.c:2601:
+               if (intr)
[...]

ERROR: code indent should never use tabs
#2622: FILE: contrib/virtiofsd/fuse_lowlevel.c:2602:
+^I^I^Ifuse_reply_err(intr, EAGAIN);$

ERROR: code indent should never use tabs
#2623: FILE: contrib/virtiofsd/fuse_lowlevel.c:2603:
+^I}$

ERROR: code indent should never use tabs
#2625: FILE: contrib/virtiofsd/fuse_lowlevel.c:2605:
+^Iif ((buf->flags & FUSE_BUF_IS_FD) && write_header_size < buf->size &&$

ERROR: code indent should never use tabs
#2626: FILE: contrib/virtiofsd/fuse_lowlevel.c:2606:
+^I    (in->opcode != FUSE_WRITE || !se->op.write_buf) &&$

ERROR: code indent should never use tabs
#2627: FILE: contrib/virtiofsd/fuse_lowlevel.c:2607:
+^I    in->opcode != FUSE_NOTIFY_REPLY) {$

ERROR: code indent should never use tabs
#2628: FILE: contrib/virtiofsd/fuse_lowlevel.c:2608:
+^I^Ivoid *newmbuf;$

ERROR: code indent should never use tabs
#2630: FILE: contrib/virtiofsd/fuse_lowlevel.c:2610:
+^I^Ierr = ENOMEM;$

ERROR: code indent should never use tabs
#2631: FILE: contrib/virtiofsd/fuse_lowlevel.c:2611:
+^I^Inewmbuf = realloc(mbuf, buf->size);$

ERROR: code indent should never use tabs
#2632: FILE: contrib/virtiofsd/fuse_lowlevel.c:2612:
+^I^Iif (newmbuf == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#2632: FILE: contrib/virtiofsd/fuse_lowlevel.c:2612:
+               if (newmbuf == NULL)
[...]

ERROR: code indent should never use tabs
#2633: FILE: contrib/virtiofsd/fuse_lowlevel.c:2613:
+^I^I^Igoto reply_err;$

ERROR: code indent should never use tabs
#2634: FILE: contrib/virtiofsd/fuse_lowlevel.c:2614:
+^I^Imbuf = newmbuf;$

ERROR: code indent should never use tabs
#2636: FILE: contrib/virtiofsd/fuse_lowlevel.c:2616:
+^I^Itmpbuf = FUSE_BUFVEC_INIT(buf->size - write_header_size);$

ERROR: code indent should never use tabs
#2637: FILE: contrib/virtiofsd/fuse_lowlevel.c:2617:
+^I^Itmpbuf.buf[0].mem = (char *)mbuf + write_header_size;$

ERROR: code indent should never use tabs
#2639: FILE: contrib/virtiofsd/fuse_lowlevel.c:2619:
+^I^Ires = fuse_ll_copy_from_pipe(&tmpbuf, &bufv);$

ERROR: code indent should never use tabs
#2640: FILE: contrib/virtiofsd/fuse_lowlevel.c:2620:
+^I^Ierr = -res;$

ERROR: code indent should never use tabs
#2641: FILE: contrib/virtiofsd/fuse_lowlevel.c:2621:
+^I^Iif (res < 0)$

ERROR: braces {} are necessary for all arms of this statement
#2641: FILE: contrib/virtiofsd/fuse_lowlevel.c:2621:
+               if (res < 0)
[...]

ERROR: code indent should never use tabs
#2642: FILE: contrib/virtiofsd/fuse_lowlevel.c:2622:
+^I^I^Igoto reply_err;$

ERROR: code indent should never use tabs
#2644: FILE: contrib/virtiofsd/fuse_lowlevel.c:2624:
+^I^Iin = mbuf;$

ERROR: code indent should never use tabs
#2645: FILE: contrib/virtiofsd/fuse_lowlevel.c:2625:
+^I}$

ERROR: code indent should never use tabs
#2647: FILE: contrib/virtiofsd/fuse_lowlevel.c:2627:
+^Iinarg = (void *) &in[1];$

ERROR: code indent should never use tabs
#2648: FILE: contrib/virtiofsd/fuse_lowlevel.c:2628:
+^Iif (in->opcode == FUSE_WRITE && se->op.write_buf)$

ERROR: braces {} are necessary for all arms of this statement
#2648: FILE: contrib/virtiofsd/fuse_lowlevel.c:2628:
+       if (in->opcode == FUSE_WRITE && se->op.write_buf)
[...]
+       else if (in->opcode == FUSE_NOTIFY_REPLY)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#2649: FILE: contrib/virtiofsd/fuse_lowlevel.c:2629:
+^I^Ido_write_buf(req, in->nodeid, inarg, buf);$

ERROR: code indent should never use tabs
#2650: FILE: contrib/virtiofsd/fuse_lowlevel.c:2630:
+^Ielse if (in->opcode == FUSE_NOTIFY_REPLY)$

ERROR: braces {} are necessary for all arms of this statement
#2650: FILE: contrib/virtiofsd/fuse_lowlevel.c:2630:
+       else if (in->opcode == FUSE_NOTIFY_REPLY)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#2651: FILE: contrib/virtiofsd/fuse_lowlevel.c:2631:
+^I^Ido_notify_reply(req, in->nodeid, inarg, buf);$

ERROR: code indent should never use tabs
#2652: FILE: contrib/virtiofsd/fuse_lowlevel.c:2632:
+^Ielse$

ERROR: code indent should never use tabs
#2653: FILE: contrib/virtiofsd/fuse_lowlevel.c:2633:
+^I^Ifuse_ll_ops[in->opcode].func(req, in->nodeid, inarg);$

ERROR: code indent should never use tabs
#2656: FILE: contrib/virtiofsd/fuse_lowlevel.c:2636:
+^Ifree(mbuf);$

ERROR: code indent should never use tabs
#2657: FILE: contrib/virtiofsd/fuse_lowlevel.c:2637:
+^Ireturn;$

ERROR: code indent should never use tabs
#2660: FILE: contrib/virtiofsd/fuse_lowlevel.c:2640:
+^Ifuse_reply_err(req, err);$

ERROR: code indent should never use tabs
#2662: FILE: contrib/virtiofsd/fuse_lowlevel.c:2642:
+^Iif (buf->flags & FUSE_BUF_IS_FD)$

ERROR: braces {} are necessary for all arms of this statement
#2662: FILE: contrib/virtiofsd/fuse_lowlevel.c:2642:
+       if (buf->flags & FUSE_BUF_IS_FD)
[...]

ERROR: code indent should never use tabs
#2663: FILE: contrib/virtiofsd/fuse_lowlevel.c:2643:
+^I^Ifuse_ll_clear_pipe(se);$

ERROR: code indent should never use tabs
#2664: FILE: contrib/virtiofsd/fuse_lowlevel.c:2644:
+^Igoto out_free;$

ERROR: space required after that ',' (ctx:VxV)
#2667: FILE: contrib/virtiofsd/fuse_lowlevel.c:2647:
+#define LL_OPTION(n,o,v) \
                    ^

ERROR: space required after that ',' (ctx:VxV)
#2667: FILE: contrib/virtiofsd/fuse_lowlevel.c:2647:
+#define LL_OPTION(n,o,v) \
                      ^

ERROR: code indent should never use tabs
#2668: FILE: contrib/virtiofsd/fuse_lowlevel.c:2648:
+^I{ n, offsetof(struct fuse_session, o), v }$

ERROR: code indent should never use tabs
#2671: FILE: contrib/virtiofsd/fuse_lowlevel.c:2651:
+^ILL_OPTION("debug", debug, 1),$

ERROR: code indent should never use tabs
#2672: FILE: contrib/virtiofsd/fuse_lowlevel.c:2652:
+^ILL_OPTION("-d", debug, 1),$

ERROR: code indent should never use tabs
#2673: FILE: contrib/virtiofsd/fuse_lowlevel.c:2653:
+^ILL_OPTION("--debug", debug, 1),$

ERROR: code indent should never use tabs
#2674: FILE: contrib/virtiofsd/fuse_lowlevel.c:2654:
+^ILL_OPTION("allow_root", deny_others, 1),$

ERROR: code indent should never use tabs
#2675: FILE: contrib/virtiofsd/fuse_lowlevel.c:2655:
+^IFUSE_OPT_END$

ERROR: code indent should never use tabs
#2680: FILE: contrib/virtiofsd/fuse_lowlevel.c:2660:
+^Iprintf("using FUSE kernel interface version %i.%i\n",$

ERROR: code indent should never use tabs
#2681: FILE: contrib/virtiofsd/fuse_lowlevel.c:2661:
+^I       FUSE_KERNEL_VERSION, FUSE_KERNEL_MINOR_VERSION);$

ERROR: code indent should never use tabs
#2682: FILE: contrib/virtiofsd/fuse_lowlevel.c:2662:
+^Ifuse_mount_version();$

ERROR: code indent should never use tabs
#2687: FILE: contrib/virtiofsd/fuse_lowlevel.c:2667:
+^I/* These are not all options, but the ones that are$

WARNING: Block comments use a leading /* on a separate line
#2687: FILE: contrib/virtiofsd/fuse_lowlevel.c:2667:
+       /* These are not all options, but the ones that are

ERROR: code indent should never use tabs
#2688: FILE: contrib/virtiofsd/fuse_lowlevel.c:2668:
+^I   potentially of interest to an end-user */$

WARNING: Block comments use * on subsequent lines
#2688: FILE: contrib/virtiofsd/fuse_lowlevel.c:2668:
+       /* 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
#2688: FILE: contrib/virtiofsd/fuse_lowlevel.c:2668:
+          potentially of interest to an end-user */

ERROR: code indent should never use tabs
#2689: FILE: contrib/virtiofsd/fuse_lowlevel.c:2669:
+^Iprintf($

ERROR: code indent should never use tabs
#2697: FILE: contrib/virtiofsd/fuse_lowlevel.c:2677:
+^Istruct fuse_ll_pipe *llp;$

ERROR: code indent should never use tabs
#2699: FILE: contrib/virtiofsd/fuse_lowlevel.c:2679:
+^Iif (se->got_init && !se->got_destroy) {$

ERROR: code indent should never use tabs
#2700: FILE: contrib/virtiofsd/fuse_lowlevel.c:2680:
+^I^Iif (se->op.destroy)$

ERROR: braces {} are necessary for all arms of this statement
#2700: FILE: contrib/virtiofsd/fuse_lowlevel.c:2680:
+               if (se->op.destroy)
[...]

ERROR: code indent should never use tabs
#2701: FILE: contrib/virtiofsd/fuse_lowlevel.c:2681:
+^I^I^Ise->op.destroy(se->userdata);$

ERROR: code indent should never use tabs
#2702: FILE: contrib/virtiofsd/fuse_lowlevel.c:2682:
+^I}$

ERROR: code indent should never use tabs
#2703: FILE: contrib/virtiofsd/fuse_lowlevel.c:2683:
+^Illp = pthread_getspecific(se->pipe_key);$

ERROR: code indent should never use tabs
#2704: FILE: contrib/virtiofsd/fuse_lowlevel.c:2684:
+^Iif (llp != NULL)$

ERROR: braces {} are necessary for all arms of this statement
#2704: FILE: contrib/virtiofsd/fuse_lowlevel.c:2684:
+       if (llp != NULL)
[...]

ERROR: code indent should never use tabs
#2705: FILE: contrib/virtiofsd/fuse_lowlevel.c:2685:
+^I^Ifuse_ll_pipe_free(llp);$

ERROR: code indent should never use tabs
#2706: FILE: contrib/virtiofsd/fuse_lowlevel.c:2686:
+^Ipthread_key_delete(se->pipe_key);$

ERROR: code indent should never use tabs
#2707: FILE: contrib/virtiofsd/fuse_lowlevel.c:2687:
+^Ipthread_mutex_destroy(&se->lock);$

ERROR: code indent should never use tabs
#2708: FILE: contrib/virtiofsd/fuse_lowlevel.c:2688:
+^Ifree(se->cuse_data);$

ERROR: code indent should never use tabs
#2709: FILE: contrib/virtiofsd/fuse_lowlevel.c:2689:
+^Iif (se->fd != -1)$

ERROR: braces {} are necessary for all arms of this statement
#2709: FILE: contrib/virtiofsd/fuse_lowlevel.c:2689:
+       if (se->fd != -1)
[...]

ERROR: code indent should never use tabs
#2710: FILE: contrib/virtiofsd/fuse_lowlevel.c:2690:
+^I^Iclose(se->fd);$

ERROR: code indent should never use tabs
#2711: FILE: contrib/virtiofsd/fuse_lowlevel.c:2691:
+^Idestroy_mount_opts(se->mo);$

ERROR: code indent should never use tabs
#2712: FILE: contrib/virtiofsd/fuse_lowlevel.c:2692:
+^Ifree(se);$

ERROR: code indent should never use tabs
#2718: FILE: contrib/virtiofsd/fuse_lowlevel.c:2698:
+^Istruct fuse_ll_pipe *llp = data;$

ERROR: code indent should never use tabs
#2719: FILE: contrib/virtiofsd/fuse_lowlevel.c:2699:
+^Ifuse_ll_pipe_free(llp);$

ERROR: code indent should never use tabs
#2724: FILE: contrib/virtiofsd/fuse_lowlevel.c:2704:
+^Ireturn fuse_session_receive_buf_int(se, buf, NULL);$

ERROR: code indent should never use tabs
#2728: FILE: contrib/virtiofsd/fuse_lowlevel.c:2708:
+^I^I^I^I struct fuse_chan *ch)$

ERROR: code indent should never use tabs
#2730: FILE: contrib/virtiofsd/fuse_lowlevel.c:2710:
+^Iint err;$

ERROR: code indent should never use tabs
#2731: FILE: contrib/virtiofsd/fuse_lowlevel.c:2711:
+^Issize_t res;$

ERROR: code indent should never use tabs
#2733: FILE: contrib/virtiofsd/fuse_lowlevel.c:2713:
+^Isize_t bufsize = se->bufsize;$

ERROR: code indent should never use tabs
#2734: FILE: contrib/virtiofsd/fuse_lowlevel.c:2714:
+^Istruct fuse_ll_pipe *llp;$

ERROR: code indent should never use tabs
#2735: FILE: contrib/virtiofsd/fuse_lowlevel.c:2715:
+^Istruct fuse_buf tmpbuf;$

WARNING: line over 80 characters
#2737: FILE: contrib/virtiofsd/fuse_lowlevel.c:2717:
+       if (se->conn.proto_minor < 14 || !(se->conn.want & FUSE_CAP_SPLICE_READ))

ERROR: code indent should never use tabs
#2737: FILE: contrib/virtiofsd/fuse_lowlevel.c:2717:
+^Iif (se->conn.proto_minor < 14 || !(se->conn.want & FUSE_CAP_SPLICE_READ))$

ERROR: braces {} are necessary for all arms of this statement
#2737: FILE: contrib/virtiofsd/fuse_lowlevel.c:2717:
+       if (se->conn.proto_minor < 14 || !(se->conn.want & FUSE_CAP_SPLICE_READ))
[...]

ERROR: code indent should never use tabs
#2738: FILE: contrib/virtiofsd/fuse_lowlevel.c:2718:
+^I^Igoto fallback;$

ERROR: code indent should never use tabs
#2740: FILE: contrib/virtiofsd/fuse_lowlevel.c:2720:
+^Illp = fuse_ll_get_pipe(se);$

ERROR: code indent should never use tabs
#2741: FILE: contrib/virtiofsd/fuse_lowlevel.c:2721:
+^Iif (llp == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#2741: FILE: contrib/virtiofsd/fuse_lowlevel.c:2721:
+       if (llp == NULL)
[...]

ERROR: code indent should never use tabs
#2742: FILE: contrib/virtiofsd/fuse_lowlevel.c:2722:
+^I^Igoto fallback;$

ERROR: code indent should never use tabs
#2744: FILE: contrib/virtiofsd/fuse_lowlevel.c:2724:
+^Iif (llp->size < bufsize) {$

ERROR: code indent should never use tabs
#2745: FILE: contrib/virtiofsd/fuse_lowlevel.c:2725:
+^I^Iif (llp->can_grow) {$

ERROR: code indent should never use tabs
#2746: FILE: contrib/virtiofsd/fuse_lowlevel.c:2726:
+^I^I^Ires = fcntl(llp->pipe[0], F_SETPIPE_SZ, bufsize);$

ERROR: code indent should never use tabs
#2747: FILE: contrib/virtiofsd/fuse_lowlevel.c:2727:
+^I^I^Iif (res == -1) {$

ERROR: code indent should never use tabs
#2748: FILE: contrib/virtiofsd/fuse_lowlevel.c:2728:
+^I^I^I^Illp->can_grow = 0;$

ERROR: code indent should never use tabs
#2749: FILE: contrib/virtiofsd/fuse_lowlevel.c:2729:
+^I^I^I^Ires = grow_pipe_to_max(llp->pipe[0]);$

ERROR: code indent should never use tabs
#2750: FILE: contrib/virtiofsd/fuse_lowlevel.c:2730:
+^I^I^I^Iif (res > 0)$

ERROR: braces {} are necessary for all arms of this statement
#2750: FILE: contrib/virtiofsd/fuse_lowlevel.c:2730:
+                               if (res > 0)
[...]

ERROR: code indent should never use tabs
#2751: FILE: contrib/virtiofsd/fuse_lowlevel.c:2731:
+^I^I^I^I^Illp->size = res;$

ERROR: code indent should never use tabs
#2752: FILE: contrib/virtiofsd/fuse_lowlevel.c:2732:
+^I^I^I^Igoto fallback;$

ERROR: code indent should never use tabs
#2753: FILE: contrib/virtiofsd/fuse_lowlevel.c:2733:
+^I^I^I}$

ERROR: code indent should never use tabs
#2754: FILE: contrib/virtiofsd/fuse_lowlevel.c:2734:
+^I^I^Illp->size = res;$

ERROR: code indent should never use tabs
#2755: FILE: contrib/virtiofsd/fuse_lowlevel.c:2735:
+^I^I}$

ERROR: code indent should never use tabs
#2756: FILE: contrib/virtiofsd/fuse_lowlevel.c:2736:
+^I^Iif (llp->size < bufsize)$

ERROR: braces {} are necessary for all arms of this statement
#2756: FILE: contrib/virtiofsd/fuse_lowlevel.c:2736:
+               if (llp->size < bufsize)
[...]

ERROR: code indent should never use tabs
#2757: FILE: contrib/virtiofsd/fuse_lowlevel.c:2737:
+^I^I^Igoto fallback;$

ERROR: code indent should never use tabs
#2758: FILE: contrib/virtiofsd/fuse_lowlevel.c:2738:
+^I}$

ERROR: code indent should never use tabs
#2760: FILE: contrib/virtiofsd/fuse_lowlevel.c:2740:
+^Ires = splice(ch ? ch->fd : se->fd,$

ERROR: code indent should never use tabs
#2761: FILE: contrib/virtiofsd/fuse_lowlevel.c:2741:
+^I^I     NULL, llp->pipe[1], NULL, bufsize, 0);$

ERROR: code indent should never use tabs
#2762: FILE: contrib/virtiofsd/fuse_lowlevel.c:2742:
+^Ierr = errno;$

ERROR: code indent should never use tabs
#2764: FILE: contrib/virtiofsd/fuse_lowlevel.c:2744:
+^Iif (fuse_session_exited(se))$

ERROR: braces {} are necessary for all arms of this statement
#2764: FILE: contrib/virtiofsd/fuse_lowlevel.c:2744:
+       if (fuse_session_exited(se))
[...]

ERROR: code indent should never use tabs
#2765: FILE: contrib/virtiofsd/fuse_lowlevel.c:2745:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#2767: FILE: contrib/virtiofsd/fuse_lowlevel.c:2747:
+^Iif (res == -1) {$

ERROR: code indent should never use tabs
#2768: FILE: contrib/virtiofsd/fuse_lowlevel.c:2748:
+^I^Iif (err == ENODEV) {$

ERROR: code indent should never use tabs
#2769: FILE: contrib/virtiofsd/fuse_lowlevel.c:2749:
+^I^I^I/* Filesystem was unmounted, or connection was aborted$

WARNING: Block comments use a leading /* on a separate line
#2769: FILE: contrib/virtiofsd/fuse_lowlevel.c:2749:
+                       /* Filesystem was unmounted, or connection was aborted

ERROR: code indent should never use tabs
#2770: FILE: contrib/virtiofsd/fuse_lowlevel.c:2750:
+^I^I^I   via /sys/fs/fuse/connections */$

WARNING: Block comments use * on subsequent lines
#2770: FILE: contrib/virtiofsd/fuse_lowlevel.c:2750:
+                       /* Filesystem was unmounted, or connection was aborted
+                          via /sys/fs/fuse/connections */

WARNING: Block comments use a trailing */ on a separate line
#2770: FILE: contrib/virtiofsd/fuse_lowlevel.c:2750:
+                          via /sys/fs/fuse/connections */

ERROR: code indent should never use tabs
#2771: FILE: contrib/virtiofsd/fuse_lowlevel.c:2751:
+^I^I^Ifuse_session_exit(se);$

ERROR: code indent should never use tabs
#2772: FILE: contrib/virtiofsd/fuse_lowlevel.c:2752:
+^I^I^Ireturn 0;$

ERROR: code indent should never use tabs
#2773: FILE: contrib/virtiofsd/fuse_lowlevel.c:2753:
+^I^I}$

ERROR: code indent should never use tabs
#2774: FILE: contrib/virtiofsd/fuse_lowlevel.c:2754:
+^I^Iif (err != EINTR && err != EAGAIN)$

ERROR: braces {} are necessary for all arms of this statement
#2774: FILE: contrib/virtiofsd/fuse_lowlevel.c:2754:
+               if (err != EINTR && err != EAGAIN)
[...]

ERROR: code indent should never use tabs
#2775: FILE: contrib/virtiofsd/fuse_lowlevel.c:2755:
+^I^I^Iperror("fuse: splice from device");$

ERROR: code indent should never use tabs
#2776: FILE: contrib/virtiofsd/fuse_lowlevel.c:2756:
+^I^Ireturn -err;$

ERROR: code indent should never use tabs
#2777: FILE: contrib/virtiofsd/fuse_lowlevel.c:2757:
+^I}$

ERROR: code indent should never use tabs
#2779: FILE: contrib/virtiofsd/fuse_lowlevel.c:2759:
+^Iif (res < sizeof(struct fuse_in_header)) {$

ERROR: code indent should never use tabs
#2780: FILE: contrib/virtiofsd/fuse_lowlevel.c:2760:
+^I^Ifuse_log(FUSE_LOG_ERR, "short splice from fuse device\n");$

ERROR: code indent should never use tabs
#2781: FILE: contrib/virtiofsd/fuse_lowlevel.c:2761:
+^I^Ireturn -EIO;$

ERROR: code indent should never use tabs
#2782: FILE: contrib/virtiofsd/fuse_lowlevel.c:2762:
+^I}$

ERROR: code indent should never use tabs
#2784: FILE: contrib/virtiofsd/fuse_lowlevel.c:2764:
+^Itmpbuf = (struct fuse_buf) {$

ERROR: code indent should never use tabs
#2785: FILE: contrib/virtiofsd/fuse_lowlevel.c:2765:
+^I^I.size = res,$

ERROR: code indent should never use tabs
#2786: FILE: contrib/virtiofsd/fuse_lowlevel.c:2766:
+^I^I.flags = FUSE_BUF_IS_FD,$

ERROR: code indent should never use tabs
#2787: FILE: contrib/virtiofsd/fuse_lowlevel.c:2767:
+^I^I.fd = llp->pipe[0],$

ERROR: code indent should never use tabs
#2788: FILE: contrib/virtiofsd/fuse_lowlevel.c:2768:
+^I};$

ERROR: code indent should never use tabs
#2790: FILE: contrib/virtiofsd/fuse_lowlevel.c:2770:
+^I/*$

ERROR: code indent should never use tabs
#2791: FILE: contrib/virtiofsd/fuse_lowlevel.c:2771:
+^I * Don't bother with zero copy for small requests.$

ERROR: code indent should never use tabs
#2792: FILE: contrib/virtiofsd/fuse_lowlevel.c:2772:
+^I * fuse_loop_mt() needs to check for FORGET so this more than$

ERROR: code indent should never use tabs
#2793: FILE: contrib/virtiofsd/fuse_lowlevel.c:2773:
+^I * just an optimization.$

ERROR: code indent should never use tabs
#2794: FILE: contrib/virtiofsd/fuse_lowlevel.c:2774:
+^I */$

ERROR: code indent should never use tabs
#2795: FILE: contrib/virtiofsd/fuse_lowlevel.c:2775:
+^Iif (res < sizeof(struct fuse_in_header) +$

ERROR: code indent should never use tabs
#2796: FILE: contrib/virtiofsd/fuse_lowlevel.c:2776:
+^I    sizeof(struct fuse_write_in) + pagesize) {$

ERROR: code indent should never use tabs
#2797: FILE: contrib/virtiofsd/fuse_lowlevel.c:2777:
+^I^Istruct fuse_bufvec src = { .buf[0] = tmpbuf, .count = 1 };$

ERROR: code indent should never use tabs
#2798: FILE: contrib/virtiofsd/fuse_lowlevel.c:2778:
+^I^Istruct fuse_bufvec dst = { .count = 1 };$

ERROR: code indent should never use tabs
#2800: FILE: contrib/virtiofsd/fuse_lowlevel.c:2780:
+^I^Iif (!buf->mem) {$

ERROR: code indent should never use tabs
#2801: FILE: contrib/virtiofsd/fuse_lowlevel.c:2781:
+^I^I^Ibuf->mem = malloc(se->bufsize);$

ERROR: code indent should never use tabs
#2802: FILE: contrib/virtiofsd/fuse_lowlevel.c:2782:
+^I^I^Iif (!buf->mem) {$

ERROR: code indent should never use tabs
#2803: FILE: contrib/virtiofsd/fuse_lowlevel.c:2783:
+^I^I^I^Ifuse_log(FUSE_LOG_ERR,$

ERROR: code indent should never use tabs
#2804: FILE: contrib/virtiofsd/fuse_lowlevel.c:2784:
+^I^I^I^I^I"fuse: failed to allocate read buffer\n");$

ERROR: code indent should never use tabs
#2805: FILE: contrib/virtiofsd/fuse_lowlevel.c:2785:
+^I^I^I^Ireturn -ENOMEM;$

ERROR: code indent should never use tabs
#2806: FILE: contrib/virtiofsd/fuse_lowlevel.c:2786:
+^I^I^I}$

ERROR: code indent should never use tabs
#2807: FILE: contrib/virtiofsd/fuse_lowlevel.c:2787:
+^I^I}$

ERROR: code indent should never use tabs
#2808: FILE: contrib/virtiofsd/fuse_lowlevel.c:2788:
+^I^Ibuf->size = se->bufsize;$

ERROR: code indent should never use tabs
#2809: FILE: contrib/virtiofsd/fuse_lowlevel.c:2789:
+^I^Ibuf->flags = 0;$

ERROR: code indent should never use tabs
#2810: FILE: contrib/virtiofsd/fuse_lowlevel.c:2790:
+^I^Idst.buf[0] = *buf;$

ERROR: code indent should never use tabs
#2812: FILE: contrib/virtiofsd/fuse_lowlevel.c:2792:
+^I^Ires = fuse_buf_copy(&dst, &src, 0);$

ERROR: code indent should never use tabs
#2813: FILE: contrib/virtiofsd/fuse_lowlevel.c:2793:
+^I^Iif (res < 0) {$

ERROR: code indent should never use tabs
#2814: FILE: contrib/virtiofsd/fuse_lowlevel.c:2794:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "fuse: copy from pipe: %s\n",$

ERROR: code indent should never use tabs
#2815: FILE: contrib/virtiofsd/fuse_lowlevel.c:2795:
+^I^I^I^Istrerror(-res));$

ERROR: code indent should never use tabs
#2816: FILE: contrib/virtiofsd/fuse_lowlevel.c:2796:
+^I^I^Ifuse_ll_clear_pipe(se);$

ERROR: code indent should never use tabs
#2817: FILE: contrib/virtiofsd/fuse_lowlevel.c:2797:
+^I^I^Ireturn res;$

ERROR: code indent should never use tabs
#2818: FILE: contrib/virtiofsd/fuse_lowlevel.c:2798:
+^I^I}$

ERROR: code indent should never use tabs
#2819: FILE: contrib/virtiofsd/fuse_lowlevel.c:2799:
+^I^Iif (res < tmpbuf.size) {$

WARNING: line over 80 characters
#2820: FILE: contrib/virtiofsd/fuse_lowlevel.c:2800:
+                       fuse_log(FUSE_LOG_ERR, "fuse: copy from pipe: short read\n");

ERROR: code indent should never use tabs
#2820: FILE: contrib/virtiofsd/fuse_lowlevel.c:2800:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "fuse: copy from pipe: short read\n");$

ERROR: code indent should never use tabs
#2821: FILE: contrib/virtiofsd/fuse_lowlevel.c:2801:
+^I^I^Ifuse_ll_clear_pipe(se);$

ERROR: code indent should never use tabs
#2822: FILE: contrib/virtiofsd/fuse_lowlevel.c:2802:
+^I^I^Ireturn -EIO;$

ERROR: code indent should never use tabs
#2823: FILE: contrib/virtiofsd/fuse_lowlevel.c:2803:
+^I^I}$

ERROR: code indent should never use tabs
#2824: FILE: contrib/virtiofsd/fuse_lowlevel.c:2804:
+^I^Iassert(res == tmpbuf.size);$

ERROR: code indent should never use tabs
#2826: FILE: contrib/virtiofsd/fuse_lowlevel.c:2806:
+^I} else {$

ERROR: code indent should never use tabs
#2827: FILE: contrib/virtiofsd/fuse_lowlevel.c:2807:
+^I^I/* Don't overwrite buf->mem, as that would cause a leak */$

ERROR: code indent should never use tabs
#2828: FILE: contrib/virtiofsd/fuse_lowlevel.c:2808:
+^I^Ibuf->fd = tmpbuf.fd;$

ERROR: code indent should never use tabs
#2829: FILE: contrib/virtiofsd/fuse_lowlevel.c:2809:
+^I^Ibuf->flags = tmpbuf.flags;$

ERROR: code indent should never use tabs
#2830: FILE: contrib/virtiofsd/fuse_lowlevel.c:2810:
+^I}$

ERROR: code indent should never use tabs
#2831: FILE: contrib/virtiofsd/fuse_lowlevel.c:2811:
+^Ibuf->size = tmpbuf.size;$

ERROR: code indent should never use tabs
#2833: FILE: contrib/virtiofsd/fuse_lowlevel.c:2813:
+^Ireturn res;$

ERROR: code indent should never use tabs
#2837: FILE: contrib/virtiofsd/fuse_lowlevel.c:2817:
+^Iif (!buf->mem) {$

ERROR: code indent should never use tabs
#2838: FILE: contrib/virtiofsd/fuse_lowlevel.c:2818:
+^I^Ibuf->mem = malloc(se->bufsize);$

ERROR: code indent should never use tabs
#2839: FILE: contrib/virtiofsd/fuse_lowlevel.c:2819:
+^I^Iif (!buf->mem) {$

ERROR: code indent should never use tabs
#2840: FILE: contrib/virtiofsd/fuse_lowlevel.c:2820:
+^I^I^Ifuse_log(FUSE_LOG_ERR,$

ERROR: code indent should never use tabs
#2841: FILE: contrib/virtiofsd/fuse_lowlevel.c:2821:
+^I^I^I^I"fuse: failed to allocate read buffer\n");$

ERROR: code indent should never use tabs
#2842: FILE: contrib/virtiofsd/fuse_lowlevel.c:2822:
+^I^I^Ireturn -ENOMEM;$

ERROR: code indent should never use tabs
#2843: FILE: contrib/virtiofsd/fuse_lowlevel.c:2823:
+^I^I}$

ERROR: code indent should never use tabs
#2844: FILE: contrib/virtiofsd/fuse_lowlevel.c:2824:
+^I}$

ERROR: code indent should never use tabs
#2847: FILE: contrib/virtiofsd/fuse_lowlevel.c:2827:
+^Ires = read(ch ? ch->fd : se->fd, buf->mem, se->bufsize);$

ERROR: code indent should never use tabs
#2848: FILE: contrib/virtiofsd/fuse_lowlevel.c:2828:
+^Ierr = errno;$

ERROR: code indent should never use tabs
#2850: FILE: contrib/virtiofsd/fuse_lowlevel.c:2830:
+^Iif (fuse_session_exited(se))$

ERROR: braces {} are necessary for all arms of this statement
#2850: FILE: contrib/virtiofsd/fuse_lowlevel.c:2830:
+       if (fuse_session_exited(se))
[...]

ERROR: code indent should never use tabs
#2851: FILE: contrib/virtiofsd/fuse_lowlevel.c:2831:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#2852: FILE: contrib/virtiofsd/fuse_lowlevel.c:2832:
+^Iif (res == -1) {$

ERROR: code indent should never use tabs
#2853: FILE: contrib/virtiofsd/fuse_lowlevel.c:2833:
+^I^I/* ENOENT means the operation was interrupted, it's safe$

WARNING: Block comments use a leading /* on a separate line
#2853: FILE: contrib/virtiofsd/fuse_lowlevel.c:2833:
+               /* ENOENT means the operation was interrupted, it's safe

ERROR: code indent should never use tabs
#2854: FILE: contrib/virtiofsd/fuse_lowlevel.c:2834:
+^I^I   to restart */$

WARNING: Block comments use * on subsequent lines
#2854: FILE: contrib/virtiofsd/fuse_lowlevel.c:2834:
+               /* ENOENT means the operation was interrupted, it's safe
+                  to restart */

WARNING: Block comments use a trailing */ on a separate line
#2854: FILE: contrib/virtiofsd/fuse_lowlevel.c:2834:
+                  to restart */

ERROR: code indent should never use tabs
#2855: FILE: contrib/virtiofsd/fuse_lowlevel.c:2835:
+^I^Iif (err == ENOENT)$

ERROR: braces {} are necessary for all arms of this statement
#2855: FILE: contrib/virtiofsd/fuse_lowlevel.c:2835:
+               if (err == ENOENT)
[...]

ERROR: code indent should never use tabs
#2856: FILE: contrib/virtiofsd/fuse_lowlevel.c:2836:
+^I^I^Igoto restart;$

ERROR: code indent should never use tabs
#2858: FILE: contrib/virtiofsd/fuse_lowlevel.c:2838:
+^I^Iif (err == ENODEV) {$

ERROR: code indent should never use tabs
#2859: FILE: contrib/virtiofsd/fuse_lowlevel.c:2839:
+^I^I^I/* Filesystem was unmounted, or connection was aborted$

WARNING: Block comments use a leading /* on a separate line
#2859: FILE: contrib/virtiofsd/fuse_lowlevel.c:2839:
+                       /* Filesystem was unmounted, or connection was aborted

ERROR: code indent should never use tabs
#2860: FILE: contrib/virtiofsd/fuse_lowlevel.c:2840:
+^I^I^I   via /sys/fs/fuse/connections */$

WARNING: Block comments use * on subsequent lines
#2860: FILE: contrib/virtiofsd/fuse_lowlevel.c:2840:
+                       /* Filesystem was unmounted, or connection was aborted
+                          via /sys/fs/fuse/connections */

WARNING: Block comments use a trailing */ on a separate line
#2860: FILE: contrib/virtiofsd/fuse_lowlevel.c:2840:
+                          via /sys/fs/fuse/connections */

ERROR: code indent should never use tabs
#2861: FILE: contrib/virtiofsd/fuse_lowlevel.c:2841:
+^I^I^Ifuse_session_exit(se);$

ERROR: code indent should never use tabs
#2862: FILE: contrib/virtiofsd/fuse_lowlevel.c:2842:
+^I^I^Ireturn 0;$

ERROR: code indent should never use tabs
#2863: FILE: contrib/virtiofsd/fuse_lowlevel.c:2843:
+^I^I}$

ERROR: code indent should never use tabs
#2864: FILE: contrib/virtiofsd/fuse_lowlevel.c:2844:
+^I^I/* Errors occurring during normal operation: EINTR (read$

WARNING: Block comments use a leading /* on a separate line
#2864: FILE: contrib/virtiofsd/fuse_lowlevel.c:2844:
+               /* Errors occurring during normal operation: EINTR (read

ERROR: code indent should never use tabs
#2865: FILE: contrib/virtiofsd/fuse_lowlevel.c:2845:
+^I^I   interrupted), EAGAIN (nonblocking I/O), ENODEV (filesystem$

WARNING: Block comments use * on subsequent lines
#2865: FILE: contrib/virtiofsd/fuse_lowlevel.c:2845:
+               /* Errors occurring during normal operation: EINTR (read
+                  interrupted), EAGAIN (nonblocking I/O), ENODEV (filesystem

ERROR: code indent should never use tabs
#2866: FILE: contrib/virtiofsd/fuse_lowlevel.c:2846:
+^I^I   umounted) */$

WARNING: Block comments use a trailing */ on a separate line
#2866: FILE: contrib/virtiofsd/fuse_lowlevel.c:2846:
+                  umounted) */

ERROR: code indent should never use tabs
#2867: FILE: contrib/virtiofsd/fuse_lowlevel.c:2847:
+^I^Iif (err != EINTR && err != EAGAIN)$

ERROR: braces {} are necessary for all arms of this statement
#2867: FILE: contrib/virtiofsd/fuse_lowlevel.c:2847:
+               if (err != EINTR && err != EAGAIN)
[...]

ERROR: code indent should never use tabs
#2868: FILE: contrib/virtiofsd/fuse_lowlevel.c:2848:
+^I^I^Iperror("fuse: reading device");$

ERROR: code indent should never use tabs
#2869: FILE: contrib/virtiofsd/fuse_lowlevel.c:2849:
+^I^Ireturn -err;$

ERROR: code indent should never use tabs
#2870: FILE: contrib/virtiofsd/fuse_lowlevel.c:2850:
+^I}$

ERROR: code indent should never use tabs
#2871: FILE: contrib/virtiofsd/fuse_lowlevel.c:2851:
+^Iif ((size_t) res < sizeof(struct fuse_in_header)) {$

ERROR: code indent should never use tabs
#2872: FILE: contrib/virtiofsd/fuse_lowlevel.c:2852:
+^I^Ifuse_log(FUSE_LOG_ERR, "short read on fuse device\n");$

ERROR: code indent should never use tabs
#2873: FILE: contrib/virtiofsd/fuse_lowlevel.c:2853:
+^I^Ireturn -EIO;$

ERROR: code indent should never use tabs
#2874: FILE: contrib/virtiofsd/fuse_lowlevel.c:2854:
+^I}$

ERROR: code indent should never use tabs
#2876: FILE: contrib/virtiofsd/fuse_lowlevel.c:2856:
+^Ibuf->size = res;$

ERROR: code indent should never use tabs
#2878: FILE: contrib/virtiofsd/fuse_lowlevel.c:2858:
+^Ireturn res;$

ERROR: code indent should never use tabs
#2882: FILE: contrib/virtiofsd/fuse_lowlevel.c:2862:
+^I^I^I^I      const struct fuse_lowlevel_ops *op,$

ERROR: code indent should never use tabs
#2883: FILE: contrib/virtiofsd/fuse_lowlevel.c:2863:
+^I^I^I^I      size_t op_size, void *userdata)$

ERROR: code indent should never use tabs
#2885: FILE: contrib/virtiofsd/fuse_lowlevel.c:2865:
+^Iint err;$

ERROR: code indent should never use tabs
#2886: FILE: contrib/virtiofsd/fuse_lowlevel.c:2866:
+^Istruct fuse_session *se;$

ERROR: code indent should never use tabs
#2887: FILE: contrib/virtiofsd/fuse_lowlevel.c:2867:
+^Istruct mount_opts *mo;$

ERROR: code indent should never use tabs
#2889: FILE: contrib/virtiofsd/fuse_lowlevel.c:2869:
+^Iif (sizeof(struct fuse_lowlevel_ops) < op_size) {$

ERROR: line over 90 characters
#2890: FILE: contrib/virtiofsd/fuse_lowlevel.c:2870:
+               fuse_log(FUSE_LOG_ERR, "fuse: warning: library too old, some operations may not work\n");

ERROR: code indent should never use tabs
#2890: FILE: contrib/virtiofsd/fuse_lowlevel.c:2870:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: warning: library too old, some operations may not work\n");$

ERROR: code indent should never use tabs
#2891: FILE: contrib/virtiofsd/fuse_lowlevel.c:2871:
+^I^Iop_size = sizeof(struct fuse_lowlevel_ops);$

ERROR: code indent should never use tabs
#2892: FILE: contrib/virtiofsd/fuse_lowlevel.c:2872:
+^I}$

ERROR: code indent should never use tabs
#2894: FILE: contrib/virtiofsd/fuse_lowlevel.c:2874:
+^Iif (args->argc == 0) {$

ERROR: line over 90 characters
#2895: FILE: contrib/virtiofsd/fuse_lowlevel.c:2875:
+               fuse_log(FUSE_LOG_ERR, "fuse: empty argv passed to fuse_session_new().\n");

ERROR: code indent should never use tabs
#2895: FILE: contrib/virtiofsd/fuse_lowlevel.c:2875:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: empty argv passed to fuse_session_new().\n");$

ERROR: code indent should never use tabs
#2896: FILE: contrib/virtiofsd/fuse_lowlevel.c:2876:
+^I^Ireturn NULL;$

ERROR: code indent should never use tabs
#2897: FILE: contrib/virtiofsd/fuse_lowlevel.c:2877:
+^I}$

ERROR: code indent should never use tabs
#2899: FILE: contrib/virtiofsd/fuse_lowlevel.c:2879:
+^Ise = (struct fuse_session *) calloc(1, sizeof(struct fuse_session));$

ERROR: code indent should never use tabs
#2900: FILE: contrib/virtiofsd/fuse_lowlevel.c:2880:
+^Iif (se == NULL) {$

WARNING: line over 80 characters
#2901: FILE: contrib/virtiofsd/fuse_lowlevel.c:2881:
+               fuse_log(FUSE_LOG_ERR, "fuse: failed to allocate fuse object\n");

ERROR: code indent should never use tabs
#2901: FILE: contrib/virtiofsd/fuse_lowlevel.c:2881:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: failed to allocate fuse object\n");$

ERROR: code indent should never use tabs
#2902: FILE: contrib/virtiofsd/fuse_lowlevel.c:2882:
+^I^Igoto out1;$

ERROR: code indent should never use tabs
#2903: FILE: contrib/virtiofsd/fuse_lowlevel.c:2883:
+^I}$

ERROR: code indent should never use tabs
#2904: FILE: contrib/virtiofsd/fuse_lowlevel.c:2884:
+^Ise->fd = -1;$

ERROR: code indent should never use tabs
#2905: FILE: contrib/virtiofsd/fuse_lowlevel.c:2885:
+^Ise->conn.max_write = UINT_MAX;$

ERROR: code indent should never use tabs
#2906: FILE: contrib/virtiofsd/fuse_lowlevel.c:2886:
+^Ise->conn.max_readahead = UINT_MAX;$

ERROR: code indent should never use tabs
#2908: FILE: contrib/virtiofsd/fuse_lowlevel.c:2888:
+^I/* Parse options */$

ERROR: code indent should never use tabs
#2909: FILE: contrib/virtiofsd/fuse_lowlevel.c:2889:
+^Iif(fuse_opt_parse(args, se, fuse_ll_opts, NULL) == -1)$

ERROR: space required before the open parenthesis '('
#2909: FILE: contrib/virtiofsd/fuse_lowlevel.c:2889:
+       if(fuse_opt_parse(args, se, fuse_ll_opts, NULL) == -1)

ERROR: braces {} are necessary for all arms of this statement
#2909: FILE: contrib/virtiofsd/fuse_lowlevel.c:2889:
+       if(fuse_opt_parse(args, se, fuse_ll_opts, NULL) == -1)
[...]

ERROR: code indent should never use tabs
#2910: FILE: contrib/virtiofsd/fuse_lowlevel.c:2890:
+^I^Igoto out2;$

ERROR: code indent should never use tabs
#2911: FILE: contrib/virtiofsd/fuse_lowlevel.c:2891:
+^Iif(se->deny_others) {$

ERROR: space required before the open parenthesis '('
#2911: FILE: contrib/virtiofsd/fuse_lowlevel.c:2891:
+       if(se->deny_others) {

ERROR: code indent should never use tabs
#2912: FILE: contrib/virtiofsd/fuse_lowlevel.c:2892:
+^I^I/* Allowing access only by root is done by instructing$

WARNING: Block comments use a leading /* on a separate line
#2912: FILE: contrib/virtiofsd/fuse_lowlevel.c:2892:
+               /* Allowing access only by root is done by instructing

ERROR: code indent should never use tabs
#2913: FILE: contrib/virtiofsd/fuse_lowlevel.c:2893:
+^I^I * kernel to allow access by everyone, and then restricting$

ERROR: code indent should never use tabs
#2914: FILE: contrib/virtiofsd/fuse_lowlevel.c:2894:
+^I^I * access to root and mountpoint owner in libfuse.$

ERROR: code indent should never use tabs
#2915: FILE: contrib/virtiofsd/fuse_lowlevel.c:2895:
+^I^I */$

ERROR: code indent should never use tabs
#2916: FILE: contrib/virtiofsd/fuse_lowlevel.c:2896:
+^I^I// We may be adding the option a second time, but$

ERROR: do not use C99 // comments
#2916: FILE: contrib/virtiofsd/fuse_lowlevel.c:2896:
+               // We may be adding the option a second time, but

ERROR: code indent should never use tabs
#2917: FILE: contrib/virtiofsd/fuse_lowlevel.c:2897:
+^I^I// that doesn't hurt.$

ERROR: do not use C99 // comments
#2917: FILE: contrib/virtiofsd/fuse_lowlevel.c:2897:
+               // that doesn't hurt.

ERROR: code indent should never use tabs
#2918: FILE: contrib/virtiofsd/fuse_lowlevel.c:2898:
+^I^Iif(fuse_opt_add_arg(args, "-oallow_other") == -1)$

ERROR: space required before the open parenthesis '('
#2918: FILE: contrib/virtiofsd/fuse_lowlevel.c:2898:
+               if(fuse_opt_add_arg(args, "-oallow_other") == -1)

ERROR: braces {} are necessary for all arms of this statement
#2918: FILE: contrib/virtiofsd/fuse_lowlevel.c:2898:
+               if(fuse_opt_add_arg(args, "-oallow_other") == -1)
[...]

ERROR: code indent should never use tabs
#2919: FILE: contrib/virtiofsd/fuse_lowlevel.c:2899:
+^I^I^Igoto out2;$

ERROR: code indent should never use tabs
#2920: FILE: contrib/virtiofsd/fuse_lowlevel.c:2900:
+^I}$

ERROR: code indent should never use tabs
#2921: FILE: contrib/virtiofsd/fuse_lowlevel.c:2901:
+^Imo = parse_mount_opts(args);$

ERROR: code indent should never use tabs
#2922: FILE: contrib/virtiofsd/fuse_lowlevel.c:2902:
+^Iif (mo == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#2922: FILE: contrib/virtiofsd/fuse_lowlevel.c:2902:
+       if (mo == NULL)
[...]

ERROR: code indent should never use tabs
#2923: FILE: contrib/virtiofsd/fuse_lowlevel.c:2903:
+^I^Igoto out3;$

ERROR: code indent should never use tabs
#2925: FILE: contrib/virtiofsd/fuse_lowlevel.c:2905:
+^Iif(args->argc == 1 &&$

ERROR: space required before the open parenthesis '('
#2925: FILE: contrib/virtiofsd/fuse_lowlevel.c:2905:
+       if(args->argc == 1 &&

ERROR: code indent should never use tabs
#2926: FILE: contrib/virtiofsd/fuse_lowlevel.c:2906:
+^I   args->argv[0][0] == '-') {$

WARNING: line over 80 characters
#2927: FILE: contrib/virtiofsd/fuse_lowlevel.c:2907:
+               fuse_log(FUSE_LOG_ERR, "fuse: warning: argv[0] looks like an option, but "

ERROR: code indent should never use tabs
#2927: FILE: contrib/virtiofsd/fuse_lowlevel.c:2907:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: warning: argv[0] looks like an option, but "$

ERROR: code indent should never use tabs
#2928: FILE: contrib/virtiofsd/fuse_lowlevel.c:2908:
+^I^I^I"will be ignored\n");$

ERROR: code indent should never use tabs
#2929: FILE: contrib/virtiofsd/fuse_lowlevel.c:2909:
+^I} else if (args->argc != 1) {$

ERROR: code indent should never use tabs
#2930: FILE: contrib/virtiofsd/fuse_lowlevel.c:2910:
+^I^Iint i;$

ERROR: code indent should never use tabs
#2931: FILE: contrib/virtiofsd/fuse_lowlevel.c:2911:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: unknown option(s): `");$

ERROR: code indent should never use tabs
#2932: FILE: contrib/virtiofsd/fuse_lowlevel.c:2912:
+^I^Ifor(i = 1; i < args->argc-1; i++)$

ERROR: spaces required around that '-' (ctx:VxV)
#2932: FILE: contrib/virtiofsd/fuse_lowlevel.c:2912:
+               for(i = 1; i < args->argc-1; i++)
                                         ^

ERROR: space required before the open parenthesis '('
#2932: FILE: contrib/virtiofsd/fuse_lowlevel.c:2912:
+               for(i = 1; i < args->argc-1; i++)

ERROR: braces {} are necessary for all arms of this statement
#2932: FILE: contrib/virtiofsd/fuse_lowlevel.c:2912:
+               for(i = 1; i < args->argc-1; i++)
[...]

ERROR: code indent should never use tabs
#2933: FILE: contrib/virtiofsd/fuse_lowlevel.c:2913:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "%s ", args->argv[i]);$

ERROR: code indent should never use tabs
#2934: FILE: contrib/virtiofsd/fuse_lowlevel.c:2914:
+^I^Ifuse_log(FUSE_LOG_ERR, "%s'\n", args->argv[i]);$

ERROR: code indent should never use tabs
#2935: FILE: contrib/virtiofsd/fuse_lowlevel.c:2915:
+^I^Igoto out4;$

ERROR: code indent should never use tabs
#2936: FILE: contrib/virtiofsd/fuse_lowlevel.c:2916:
+^I}$

ERROR: code indent should never use tabs
#2938: FILE: contrib/virtiofsd/fuse_lowlevel.c:2918:
+^Iif (se->debug)$

ERROR: braces {} are necessary for all arms of this statement
#2938: FILE: contrib/virtiofsd/fuse_lowlevel.c:2918:
+       if (se->debug)
[...]

WARNING: line over 80 characters
#2939: FILE: contrib/virtiofsd/fuse_lowlevel.c:2919:
+               fuse_log(FUSE_LOG_DEBUG, "FUSE library version: %s\n", PACKAGE_VERSION);

ERROR: code indent should never use tabs
#2939: FILE: contrib/virtiofsd/fuse_lowlevel.c:2919:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "FUSE library version: %s\n", PACKAGE_VERSION);$

ERROR: code indent should never use tabs
#2941: FILE: contrib/virtiofsd/fuse_lowlevel.c:2921:
+^Ise->bufsize = FUSE_MAX_MAX_PAGES * getpagesize() +$

ERROR: code indent should never use tabs
#2942: FILE: contrib/virtiofsd/fuse_lowlevel.c:2922:
+^I^IFUSE_BUFFER_HEADER_SIZE;$

ERROR: code indent should never use tabs
#2944: FILE: contrib/virtiofsd/fuse_lowlevel.c:2924:
+^Ilist_init_req(&se->list);$

ERROR: code indent should never use tabs
#2945: FILE: contrib/virtiofsd/fuse_lowlevel.c:2925:
+^Ilist_init_req(&se->interrupts);$

ERROR: code indent should never use tabs
#2946: FILE: contrib/virtiofsd/fuse_lowlevel.c:2926:
+^Ilist_init_nreq(&se->notify_list);$

ERROR: code indent should never use tabs
#2947: FILE: contrib/virtiofsd/fuse_lowlevel.c:2927:
+^Ise->notify_ctr = 1;$

ERROR: code indent should never use tabs
#2948: FILE: contrib/virtiofsd/fuse_lowlevel.c:2928:
+^Ifuse_mutex_init(&se->lock);$

ERROR: code indent should never use tabs
#2950: FILE: contrib/virtiofsd/fuse_lowlevel.c:2930:
+^Ierr = pthread_key_create(&se->pipe_key, fuse_ll_pipe_destructor);$

ERROR: code indent should never use tabs
#2951: FILE: contrib/virtiofsd/fuse_lowlevel.c:2931:
+^Iif (err) {$

WARNING: line over 80 characters
#2952: FILE: contrib/virtiofsd/fuse_lowlevel.c:2932:
+               fuse_log(FUSE_LOG_ERR, "fuse: failed to create thread specific key: %s\n",

ERROR: code indent should never use tabs
#2952: FILE: contrib/virtiofsd/fuse_lowlevel.c:2932:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: failed to create thread specific key: %s\n",$

ERROR: code indent should never use tabs
#2953: FILE: contrib/virtiofsd/fuse_lowlevel.c:2933:
+^I^I^Istrerror(err));$

ERROR: code indent should never use tabs
#2954: FILE: contrib/virtiofsd/fuse_lowlevel.c:2934:
+^I^Igoto out5;$

ERROR: code indent should never use tabs
#2955: FILE: contrib/virtiofsd/fuse_lowlevel.c:2935:
+^I}$

ERROR: code indent should never use tabs
#2957: FILE: contrib/virtiofsd/fuse_lowlevel.c:2937:
+^Imemcpy(&se->op, op, op_size);$

ERROR: code indent should never use tabs
#2958: FILE: contrib/virtiofsd/fuse_lowlevel.c:2938:
+^Ise->owner = getuid();$

ERROR: code indent should never use tabs
#2959: FILE: contrib/virtiofsd/fuse_lowlevel.c:2939:
+^Ise->userdata = userdata;$

ERROR: code indent should never use tabs
#2961: FILE: contrib/virtiofsd/fuse_lowlevel.c:2941:
+^Ise->mo = mo;$

ERROR: code indent should never use tabs
#2962: FILE: contrib/virtiofsd/fuse_lowlevel.c:2942:
+^Ireturn se;$

ERROR: code indent should never use tabs
#2965: FILE: contrib/virtiofsd/fuse_lowlevel.c:2945:
+^Ipthread_mutex_destroy(&se->lock);$

ERROR: code indent should never use tabs
#2967: FILE: contrib/virtiofsd/fuse_lowlevel.c:2947:
+^Ifuse_opt_free_args(args);$

ERROR: code indent should never use tabs
#2969: FILE: contrib/virtiofsd/fuse_lowlevel.c:2949:
+^Ifree(mo);$

ERROR: code indent should never use tabs
#2971: FILE: contrib/virtiofsd/fuse_lowlevel.c:2951:
+^Ifree(se);$

ERROR: code indent should never use tabs
#2973: FILE: contrib/virtiofsd/fuse_lowlevel.c:2953:
+^Ireturn NULL;$

ERROR: code indent should never use tabs
#2978: FILE: contrib/virtiofsd/fuse_lowlevel.c:2958:
+^Iint fd;$

ERROR: code indent should never use tabs
#2980: FILE: contrib/virtiofsd/fuse_lowlevel.c:2960:
+^I/*$

ERROR: code indent should never use tabs
#2981: FILE: contrib/virtiofsd/fuse_lowlevel.c:2961:
+^I * Make sure file descriptors 0, 1 and 2 are open, otherwise chaos$

ERROR: code indent should never use tabs
#2982: FILE: contrib/virtiofsd/fuse_lowlevel.c:2962:
+^I * would ensue.$

ERROR: code indent should never use tabs
#2983: FILE: contrib/virtiofsd/fuse_lowlevel.c:2963:
+^I */$

ERROR: code indent should never use tabs
#2984: FILE: contrib/virtiofsd/fuse_lowlevel.c:2964:
+^Ido {$

ERROR: code indent should never use tabs
#2985: FILE: contrib/virtiofsd/fuse_lowlevel.c:2965:
+^I^Ifd = open("/dev/null", O_RDWR);$

ERROR: code indent should never use tabs
#2986: FILE: contrib/virtiofsd/fuse_lowlevel.c:2966:
+^I^Iif (fd > 2)$

ERROR: braces {} are necessary for all arms of this statement
#2986: FILE: contrib/virtiofsd/fuse_lowlevel.c:2966:
+               if (fd > 2)
[...]

ERROR: code indent should never use tabs
#2987: FILE: contrib/virtiofsd/fuse_lowlevel.c:2967:
+^I^I^Iclose(fd);$

ERROR: code indent should never use tabs
#2988: FILE: contrib/virtiofsd/fuse_lowlevel.c:2968:
+^I} while (fd >= 0 && fd <= 2);$

ERROR: code indent should never use tabs
#2990: FILE: contrib/virtiofsd/fuse_lowlevel.c:2970:
+^I/*$

ERROR: code indent should never use tabs
#2991: FILE: contrib/virtiofsd/fuse_lowlevel.c:2971:
+^I * To allow FUSE daemons to run without privileges, the caller may open$

ERROR: code indent should never use tabs
#2992: FILE: contrib/virtiofsd/fuse_lowlevel.c:2972:
+^I * /dev/fuse before launching the file system and pass on the file$

ERROR: code indent should never use tabs
#2993: FILE: contrib/virtiofsd/fuse_lowlevel.c:2973:
+^I * descriptor by specifying /dev/fd/N as the mount point. Note that the$

ERROR: code indent should never use tabs
#2994: FILE: contrib/virtiofsd/fuse_lowlevel.c:2974:
+^I * parent process takes care of performing the mount in this case.$

ERROR: code indent should never use tabs
#2995: FILE: contrib/virtiofsd/fuse_lowlevel.c:2975:
+^I */$

ERROR: code indent should never use tabs
#2996: FILE: contrib/virtiofsd/fuse_lowlevel.c:2976:
+^Ifd = fuse_mnt_parse_fuse_fd(mountpoint);$

ERROR: code indent should never use tabs
#2997: FILE: contrib/virtiofsd/fuse_lowlevel.c:2977:
+^Iif (fd != -1) {$

ERROR: code indent should never use tabs
#2998: FILE: contrib/virtiofsd/fuse_lowlevel.c:2978:
+^I^Iif (fcntl(fd, F_GETFD) == -1) {$

ERROR: code indent should never use tabs
#2999: FILE: contrib/virtiofsd/fuse_lowlevel.c:2979:
+^I^I^Ifuse_log(FUSE_LOG_ERR,$

ERROR: code indent should never use tabs
#3000: FILE: contrib/virtiofsd/fuse_lowlevel.c:2980:
+^I^I^I^I"fuse: Invalid file descriptor /dev/fd/%u\n",$

ERROR: code indent should never use tabs
#3001: FILE: contrib/virtiofsd/fuse_lowlevel.c:2981:
+^I^I^I^Ifd);$

ERROR: code indent should never use tabs
#3002: FILE: contrib/virtiofsd/fuse_lowlevel.c:2982:
+^I^I^Ireturn -1;$

ERROR: code indent should never use tabs
#3003: FILE: contrib/virtiofsd/fuse_lowlevel.c:2983:
+^I^I}$

ERROR: code indent should never use tabs
#3004: FILE: contrib/virtiofsd/fuse_lowlevel.c:2984:
+^I^Ise->fd = fd;$

ERROR: code indent should never use tabs
#3005: FILE: contrib/virtiofsd/fuse_lowlevel.c:2985:
+^I^Ireturn 0;$

ERROR: code indent should never use tabs
#3006: FILE: contrib/virtiofsd/fuse_lowlevel.c:2986:
+^I}$

ERROR: code indent should never use tabs
#3008: FILE: contrib/virtiofsd/fuse_lowlevel.c:2988:
+^I/* Open channel */$

ERROR: code indent should never use tabs
#3009: FILE: contrib/virtiofsd/fuse_lowlevel.c:2989:
+^Ifd = fuse_kern_mount(mountpoint, se->mo);$

ERROR: code indent should never use tabs
#3010: FILE: contrib/virtiofsd/fuse_lowlevel.c:2990:
+^Iif (fd == -1)$

ERROR: braces {} are necessary for all arms of this statement
#3010: FILE: contrib/virtiofsd/fuse_lowlevel.c:2990:
+       if (fd == -1)
[...]

ERROR: code indent should never use tabs
#3011: FILE: contrib/virtiofsd/fuse_lowlevel.c:2991:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#3012: FILE: contrib/virtiofsd/fuse_lowlevel.c:2992:
+^Ise->fd = fd;$

ERROR: code indent should never use tabs
#3014: FILE: contrib/virtiofsd/fuse_lowlevel.c:2994:
+^I/* Save mountpoint */$

ERROR: code indent should never use tabs
#3015: FILE: contrib/virtiofsd/fuse_lowlevel.c:2995:
+^Ise->mountpoint = strdup(mountpoint);$

ERROR: code indent should never use tabs
#3016: FILE: contrib/virtiofsd/fuse_lowlevel.c:2996:
+^Iif (se->mountpoint == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#3016: FILE: contrib/virtiofsd/fuse_lowlevel.c:2996:
+       if (se->mountpoint == NULL)
[...]

ERROR: code indent should never use tabs
#3017: FILE: contrib/virtiofsd/fuse_lowlevel.c:2997:
+^I^Igoto error_out;$

ERROR: code indent should never use tabs
#3019: FILE: contrib/virtiofsd/fuse_lowlevel.c:2999:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#3022: FILE: contrib/virtiofsd/fuse_lowlevel.c:3002:
+^Ifuse_kern_unmount(mountpoint, fd);$

ERROR: code indent should never use tabs
#3023: FILE: contrib/virtiofsd/fuse_lowlevel.c:3003:
+^Ireturn -1;$

ERROR: code indent should never use tabs
#3028: FILE: contrib/virtiofsd/fuse_lowlevel.c:3008:
+^Ireturn se->fd;$

ERROR: code indent should never use tabs
#3033: FILE: contrib/virtiofsd/fuse_lowlevel.c:3013:
+^Iif (se->mountpoint != NULL) {$

ERROR: code indent should never use tabs
#3034: FILE: contrib/virtiofsd/fuse_lowlevel.c:3014:
+^I^Ifuse_kern_unmount(se->mountpoint, se->fd);$

ERROR: code indent should never use tabs
#3035: FILE: contrib/virtiofsd/fuse_lowlevel.c:3015:
+^I^Ifree(se->mountpoint);$

ERROR: code indent should never use tabs
#3036: FILE: contrib/virtiofsd/fuse_lowlevel.c:3016:
+^I^Ise->mountpoint = NULL;$

ERROR: code indent should never use tabs
#3037: FILE: contrib/virtiofsd/fuse_lowlevel.c:3017:
+^I}$

ERROR: code indent should never use tabs
#3043: FILE: contrib/virtiofsd/fuse_lowlevel.c:3023:
+^Ichar *buf;$

ERROR: code indent should never use tabs
#3044: FILE: contrib/virtiofsd/fuse_lowlevel.c:3024:
+^Isize_t bufsize = 1024;$

ERROR: code indent should never use tabs
#3045: FILE: contrib/virtiofsd/fuse_lowlevel.c:3025:
+^Ichar path[128];$

ERROR: code indent should never use tabs
#3046: FILE: contrib/virtiofsd/fuse_lowlevel.c:3026:
+^Iint ret;$

ERROR: code indent should never use tabs
#3047: FILE: contrib/virtiofsd/fuse_lowlevel.c:3027:
+^Iint fd;$

ERROR: code indent should never use tabs
#3048: FILE: contrib/virtiofsd/fuse_lowlevel.c:3028:
+^Iunsigned long pid = req->ctx.pid;$

ERROR: code indent should never use tabs
#3049: FILE: contrib/virtiofsd/fuse_lowlevel.c:3029:
+^Ichar *s;$

ERROR: code indent should never use tabs
#3051: FILE: contrib/virtiofsd/fuse_lowlevel.c:3031:
+^Isprintf(path, "/proc/%lu/task/%lu/status", pid, pid);$

ERROR: code indent should never use tabs
#3054: FILE: contrib/virtiofsd/fuse_lowlevel.c:3034:
+^Ibuf = malloc(bufsize);$

ERROR: code indent should never use tabs
#3055: FILE: contrib/virtiofsd/fuse_lowlevel.c:3035:
+^Iif (buf == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#3055: FILE: contrib/virtiofsd/fuse_lowlevel.c:3035:
+       if (buf == NULL)
[...]

ERROR: code indent should never use tabs
#3056: FILE: contrib/virtiofsd/fuse_lowlevel.c:3036:
+^I^Ireturn -ENOMEM;$

ERROR: code indent should never use tabs
#3058: FILE: contrib/virtiofsd/fuse_lowlevel.c:3038:
+^Iret = -EIO;$

ERROR: code indent should never use tabs
#3059: FILE: contrib/virtiofsd/fuse_lowlevel.c:3039:
+^Ifd = open(path, O_RDONLY);$

ERROR: code indent should never use tabs
#3060: FILE: contrib/virtiofsd/fuse_lowlevel.c:3040:
+^Iif (fd == -1)$

ERROR: braces {} are necessary for all arms of this statement
#3060: FILE: contrib/virtiofsd/fuse_lowlevel.c:3040:
+       if (fd == -1)
[...]

ERROR: code indent should never use tabs
#3061: FILE: contrib/virtiofsd/fuse_lowlevel.c:3041:
+^I^Igoto out_free;$

ERROR: code indent should never use tabs
#3063: FILE: contrib/virtiofsd/fuse_lowlevel.c:3043:
+^Iret = read(fd, buf, bufsize);$

ERROR: code indent should never use tabs
#3064: FILE: contrib/virtiofsd/fuse_lowlevel.c:3044:
+^Iclose(fd);$

ERROR: code indent should never use tabs
#3065: FILE: contrib/virtiofsd/fuse_lowlevel.c:3045:
+^Iif (ret < 0) {$

ERROR: code indent should never use tabs
#3066: FILE: contrib/virtiofsd/fuse_lowlevel.c:3046:
+^I^Iret = -EIO;$

ERROR: code indent should never use tabs
#3067: FILE: contrib/virtiofsd/fuse_lowlevel.c:3047:
+^I^Igoto out_free;$

ERROR: code indent should never use tabs
#3068: FILE: contrib/virtiofsd/fuse_lowlevel.c:3048:
+^I}$

ERROR: code indent should never use tabs
#3070: FILE: contrib/virtiofsd/fuse_lowlevel.c:3050:
+^Iif ((size_t)ret == bufsize) {$

ERROR: code indent should never use tabs
#3071: FILE: contrib/virtiofsd/fuse_lowlevel.c:3051:
+^I^Ifree(buf);$

ERROR: code indent should never use tabs
#3072: FILE: contrib/virtiofsd/fuse_lowlevel.c:3052:
+^I^Ibufsize *= 4;$

ERROR: code indent should never use tabs
#3073: FILE: contrib/virtiofsd/fuse_lowlevel.c:3053:
+^I^Igoto retry;$

ERROR: code indent should never use tabs
#3074: FILE: contrib/virtiofsd/fuse_lowlevel.c:3054:
+^I}$

ERROR: code indent should never use tabs
#3076: FILE: contrib/virtiofsd/fuse_lowlevel.c:3056:
+^Iret = -EIO;$

ERROR: code indent should never use tabs
#3077: FILE: contrib/virtiofsd/fuse_lowlevel.c:3057:
+^Is = strstr(buf, "\nGroups:");$

ERROR: code indent should never use tabs
#3078: FILE: contrib/virtiofsd/fuse_lowlevel.c:3058:
+^Iif (s == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#3078: FILE: contrib/virtiofsd/fuse_lowlevel.c:3058:
+       if (s == NULL)
[...]

ERROR: code indent should never use tabs
#3079: FILE: contrib/virtiofsd/fuse_lowlevel.c:3059:
+^I^Igoto out_free;$

ERROR: code indent should never use tabs
#3081: FILE: contrib/virtiofsd/fuse_lowlevel.c:3061:
+^Is += 8;$

ERROR: code indent should never use tabs
#3082: FILE: contrib/virtiofsd/fuse_lowlevel.c:3062:
+^Iret = 0;$

ERROR: code indent should never use tabs
#3083: FILE: contrib/virtiofsd/fuse_lowlevel.c:3063:
+^Iwhile (1) {$

ERROR: code indent should never use tabs
#3084: FILE: contrib/virtiofsd/fuse_lowlevel.c:3064:
+^I^Ichar *end;$

ERROR: code indent should never use tabs
#3085: FILE: contrib/virtiofsd/fuse_lowlevel.c:3065:
+^I^Iunsigned long val = strtoul(s, &end, 0);$

ERROR: consider using qemu_strtoul in preference to strtoul
#3085: FILE: contrib/virtiofsd/fuse_lowlevel.c:3065:
+               unsigned long val = strtoul(s, &end, 0);

ERROR: code indent should never use tabs
#3086: FILE: contrib/virtiofsd/fuse_lowlevel.c:3066:
+^I^Iif (end == s)$

ERROR: braces {} are necessary for all arms of this statement
#3086: FILE: contrib/virtiofsd/fuse_lowlevel.c:3066:
+               if (end == s)
[...]

ERROR: code indent should never use tabs
#3087: FILE: contrib/virtiofsd/fuse_lowlevel.c:3067:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#3089: FILE: contrib/virtiofsd/fuse_lowlevel.c:3069:
+^I^Is = end;$

ERROR: code indent should never use tabs
#3090: FILE: contrib/virtiofsd/fuse_lowlevel.c:3070:
+^I^Iif (ret < size)$

ERROR: braces {} are necessary for all arms of this statement
#3090: FILE: contrib/virtiofsd/fuse_lowlevel.c:3070:
+               if (ret < size)
[...]

ERROR: code indent should never use tabs
#3091: FILE: contrib/virtiofsd/fuse_lowlevel.c:3071:
+^I^I^Ilist[ret] = val;$

ERROR: code indent should never use tabs
#3092: FILE: contrib/virtiofsd/fuse_lowlevel.c:3072:
+^I^Iret++;$

ERROR: code indent should never use tabs
#3093: FILE: contrib/virtiofsd/fuse_lowlevel.c:3073:
+^I}$

ERROR: code indent should never use tabs
#3096: FILE: contrib/virtiofsd/fuse_lowlevel.c:3076:
+^Ifree(buf);$

ERROR: code indent should never use tabs
#3097: FILE: contrib/virtiofsd/fuse_lowlevel.c:3077:
+^Ireturn ret;$

ERROR: code indent should never use tabs
#3105: FILE: contrib/virtiofsd/fuse_lowlevel.c:3085:
+^I(void) req; (void) size; (void) list;$

ERROR: code indent should never use tabs
#3106: FILE: contrib/virtiofsd/fuse_lowlevel.c:3086:
+^Ireturn -ENOSYS;$

ERROR: code indent should never use tabs
#3112: FILE: contrib/virtiofsd/fuse_lowlevel.c:3092:
+^Ise->exited = 1;$

ERROR: code indent should never use tabs
#3117: FILE: contrib/virtiofsd/fuse_lowlevel.c:3097:
+^Ise->exited = 0;$

ERROR: code indent should never use tabs
#3118: FILE: contrib/virtiofsd/fuse_lowlevel.c:3098:
+^Ise->error = 0;$

ERROR: code indent should never use tabs
#3123: FILE: contrib/virtiofsd/fuse_lowlevel.c:3103:
+^Ireturn se->exited;$

total: 2320 errors, 57 warnings, 3104 lines checked

Patch 4/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

5/30 Checking commit 2b860d555b1c (virtiofsd: Add passthrough_ll)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#18: 
new file mode 100644

WARNING: Block comments use * on subsequent lines
#24: FILE: contrib/virtiofsd/passthrough_ll.c:2:
+/*
+  FUSE: Filesystem in Userspace

WARNING: Block comments use a leading /* on a separate line
#31: FILE: contrib/virtiofsd/passthrough_ll.c:9:
+/** @file

WARNING: line over 80 characters
#53: FILE: contrib/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
#82: FILE: contrib/virtiofsd/passthrough_ll.c:60:
+/* We are re-using pointers to our `struct lo_inode` and `struct

WARNING: Block comments use * on subsequent lines
#83: FILE: contrib/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
#85: FILE: contrib/virtiofsd/passthrough_ll.c:63:
+   incantation checks this condition at compile time. */

ERROR: line over 90 characters
#86: FILE: contrib/virtiofsd/passthrough_ll.c:64:
+#if defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 6) && !defined __cplusplus

WARNING: architecture specific defines should be avoided
#86: FILE: contrib/virtiofsd/passthrough_ll.c:64:
+#if defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 6) && !defined __cplusplus

ERROR: code indent should never use tabs
#88: FILE: contrib/virtiofsd/passthrough_ll.c:66:
+^I       "fuse_ino_t too small to hold uintptr_t values!");$

ERROR: code indent should never use tabs
#91: FILE: contrib/virtiofsd/passthrough_ll.c:69:
+^I{ unsigned _uintptr_to_must_hold_fuse_ino_t:$

ERROR: code indent should never use tabs
#92: FILE: contrib/virtiofsd/passthrough_ll.c:70:
+^I^I^I((sizeof(fuse_ino_t) >= sizeof(uintptr_t)) ? 1 : -1); };$

ERROR: code indent should never use tabs
#96: FILE: contrib/virtiofsd/passthrough_ll.c:74:
+^Istruct lo_inode *next; /* protected by lo->mutex */$

ERROR: code indent should never use tabs
#97: FILE: contrib/virtiofsd/passthrough_ll.c:75:
+^Istruct lo_inode *prev; /* protected by lo->mutex */$

ERROR: code indent should never use tabs
#98: FILE: contrib/virtiofsd/passthrough_ll.c:76:
+^Iint fd;$

ERROR: code indent should never use tabs
#99: FILE: contrib/virtiofsd/passthrough_ll.c:77:
+^Ibool is_symlink;$

ERROR: code indent should never use tabs
#100: FILE: contrib/virtiofsd/passthrough_ll.c:78:
+^Iino_t ino;$

ERROR: code indent should never use tabs
#101: FILE: contrib/virtiofsd/passthrough_ll.c:79:
+^Idev_t dev;$

ERROR: code indent should never use tabs
#102: FILE: contrib/virtiofsd/passthrough_ll.c:80:
+^Iuint64_t refcount; /* protected by lo->mutex */$

ERROR: code indent should never use tabs
#106: FILE: contrib/virtiofsd/passthrough_ll.c:84:
+^ICACHE_NEVER,$

ERROR: code indent should never use tabs
#107: FILE: contrib/virtiofsd/passthrough_ll.c:85:
+^ICACHE_NORMAL,$

ERROR: code indent should never use tabs
#108: FILE: contrib/virtiofsd/passthrough_ll.c:86:
+^ICACHE_ALWAYS,$

ERROR: code indent should never use tabs
#112: FILE: contrib/virtiofsd/passthrough_ll.c:90:
+^Ipthread_mutex_t mutex;$

ERROR: code indent should never use tabs
#113: FILE: contrib/virtiofsd/passthrough_ll.c:91:
+^Iint debug;$

ERROR: code indent should never use tabs
#114: FILE: contrib/virtiofsd/passthrough_ll.c:92:
+^Iint writeback;$

ERROR: code indent should never use tabs
#115: FILE: contrib/virtiofsd/passthrough_ll.c:93:
+^Iint flock;$

ERROR: code indent should never use tabs
#116: FILE: contrib/virtiofsd/passthrough_ll.c:94:
+^Iint xattr;$

ERROR: code indent should never use tabs
#117: FILE: contrib/virtiofsd/passthrough_ll.c:95:
+^Iconst char *source;$

ERROR: code indent should never use tabs
#118: FILE: contrib/virtiofsd/passthrough_ll.c:96:
+^Idouble timeout;$

ERROR: code indent should never use tabs
#119: FILE: contrib/virtiofsd/passthrough_ll.c:97:
+^Iint cache;$

ERROR: code indent should never use tabs
#120: FILE: contrib/virtiofsd/passthrough_ll.c:98:
+^Iint timeout_set;$

ERROR: code indent should never use tabs
#121: FILE: contrib/virtiofsd/passthrough_ll.c:99:
+^Istruct lo_inode root; /* protected by lo->mutex */$

ERROR: code indent should never use tabs
#125: FILE: contrib/virtiofsd/passthrough_ll.c:103:
+^I{ "writeback",$

ERROR: code indent should never use tabs
#126: FILE: contrib/virtiofsd/passthrough_ll.c:104:
+^I  offsetof(struct lo_data, writeback), 1 },$

ERROR: code indent should never use tabs
#127: FILE: contrib/virtiofsd/passthrough_ll.c:105:
+^I{ "no_writeback",$

ERROR: code indent should never use tabs
#128: FILE: contrib/virtiofsd/passthrough_ll.c:106:
+^I  offsetof(struct lo_data, writeback), 0 },$

ERROR: code indent should never use tabs
#129: FILE: contrib/virtiofsd/passthrough_ll.c:107:
+^I{ "source=%s",$

ERROR: code indent should never use tabs
#130: FILE: contrib/virtiofsd/passthrough_ll.c:108:
+^I  offsetof(struct lo_data, source), 0 },$

ERROR: code indent should never use tabs
#131: FILE: contrib/virtiofsd/passthrough_ll.c:109:
+^I{ "flock",$

ERROR: code indent should never use tabs
#132: FILE: contrib/virtiofsd/passthrough_ll.c:110:
+^I  offsetof(struct lo_data, flock), 1 },$

ERROR: code indent should never use tabs
#133: FILE: contrib/virtiofsd/passthrough_ll.c:111:
+^I{ "no_flock",$

ERROR: code indent should never use tabs
#134: FILE: contrib/virtiofsd/passthrough_ll.c:112:
+^I  offsetof(struct lo_data, flock), 0 },$

ERROR: code indent should never use tabs
#135: FILE: contrib/virtiofsd/passthrough_ll.c:113:
+^I{ "xattr",$

ERROR: code indent should never use tabs
#136: FILE: contrib/virtiofsd/passthrough_ll.c:114:
+^I  offsetof(struct lo_data, xattr), 1 },$

ERROR: code indent should never use tabs
#137: FILE: contrib/virtiofsd/passthrough_ll.c:115:
+^I{ "no_xattr",$

ERROR: code indent should never use tabs
#138: FILE: contrib/virtiofsd/passthrough_ll.c:116:
+^I  offsetof(struct lo_data, xattr), 0 },$

ERROR: code indent should never use tabs
#139: FILE: contrib/virtiofsd/passthrough_ll.c:117:
+^I{ "timeout=%lf",$

ERROR: code indent should never use tabs
#140: FILE: contrib/virtiofsd/passthrough_ll.c:118:
+^I  offsetof(struct lo_data, timeout), 0 },$

ERROR: code indent should never use tabs
#141: FILE: contrib/virtiofsd/passthrough_ll.c:119:
+^I{ "timeout=",$

ERROR: code indent should never use tabs
#142: FILE: contrib/virtiofsd/passthrough_ll.c:120:
+^I  offsetof(struct lo_data, timeout_set), 1 },$

ERROR: code indent should never use tabs
#143: FILE: contrib/virtiofsd/passthrough_ll.c:121:
+^I{ "cache=never",$

ERROR: code indent should never use tabs
#144: FILE: contrib/virtiofsd/passthrough_ll.c:122:
+^I  offsetof(struct lo_data, cache), CACHE_NEVER },$

ERROR: code indent should never use tabs
#145: FILE: contrib/virtiofsd/passthrough_ll.c:123:
+^I{ "cache=auto",$

ERROR: code indent should never use tabs
#146: FILE: contrib/virtiofsd/passthrough_ll.c:124:
+^I  offsetof(struct lo_data, cache), CACHE_NORMAL },$

ERROR: code indent should never use tabs
#147: FILE: contrib/virtiofsd/passthrough_ll.c:125:
+^I{ "cache=always",$

ERROR: code indent should never use tabs
#148: FILE: contrib/virtiofsd/passthrough_ll.c:126:
+^I  offsetof(struct lo_data, cache), CACHE_ALWAYS },$

ERROR: code indent should never use tabs
#150: FILE: contrib/virtiofsd/passthrough_ll.c:128:
+^IFUSE_OPT_END$

ERROR: code indent should never use tabs
#155: FILE: contrib/virtiofsd/passthrough_ll.c:133:
+^Ireturn (struct lo_data *) fuse_req_userdata(req);$

ERROR: code indent should never use tabs
#160: FILE: contrib/virtiofsd/passthrough_ll.c:138:
+^Iif (ino == FUSE_ROOT_ID)$

ERROR: braces {} are necessary for all arms of this statement
#160: FILE: contrib/virtiofsd/passthrough_ll.c:138:
+       if (ino == FUSE_ROOT_ID)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#161: FILE: contrib/virtiofsd/passthrough_ll.c:139:
+^I^Ireturn &lo_data(req)->root;$

ERROR: code indent should never use tabs
#162: FILE: contrib/virtiofsd/passthrough_ll.c:140:
+^Ielse$

ERROR: code indent should never use tabs
#163: FILE: contrib/virtiofsd/passthrough_ll.c:141:
+^I^Ireturn (struct lo_inode *) (uintptr_t) ino;$

ERROR: code indent should never use tabs
#168: FILE: contrib/virtiofsd/passthrough_ll.c:146:
+^Ireturn lo_inode(req, ino)->fd;$

ERROR: code indent should never use tabs
#173: FILE: contrib/virtiofsd/passthrough_ll.c:151:
+^Ireturn lo_data(req)->debug != 0;$

ERROR: code indent should never use tabs
#177: FILE: contrib/virtiofsd/passthrough_ll.c:155:
+^I^I    struct fuse_conn_info *conn)$

ERROR: code indent should never use tabs
#179: FILE: contrib/virtiofsd/passthrough_ll.c:157:
+^Istruct lo_data *lo = (struct lo_data*) userdata;$

ERROR: "(foo*)" should be "(foo *)"
#179: FILE: contrib/virtiofsd/passthrough_ll.c:157:
+       struct lo_data *lo = (struct lo_data*) userdata;

ERROR: code indent should never use tabs
#181: FILE: contrib/virtiofsd/passthrough_ll.c:159:
+^Iif(conn->capable & FUSE_CAP_EXPORT_SUPPORT)$

ERROR: space required before the open parenthesis '('
#181: FILE: contrib/virtiofsd/passthrough_ll.c:159:
+       if(conn->capable & FUSE_CAP_EXPORT_SUPPORT)

ERROR: braces {} are necessary for all arms of this statement
#181: FILE: contrib/virtiofsd/passthrough_ll.c:159:
+       if(conn->capable & FUSE_CAP_EXPORT_SUPPORT)
[...]

ERROR: code indent should never use tabs
#182: FILE: contrib/virtiofsd/passthrough_ll.c:160:
+^I^Iconn->want |= FUSE_CAP_EXPORT_SUPPORT;$

ERROR: code indent should never use tabs
#184: FILE: contrib/virtiofsd/passthrough_ll.c:162:
+^Iif (lo->writeback &&$

ERROR: code indent should never use tabs
#185: FILE: contrib/virtiofsd/passthrough_ll.c:163:
+^I    conn->capable & FUSE_CAP_WRITEBACK_CACHE) {$

ERROR: code indent should never use tabs
#186: FILE: contrib/virtiofsd/passthrough_ll.c:164:
+^I^Iif (lo->debug)$

ERROR: braces {} are necessary for all arms of this statement
#186: FILE: contrib/virtiofsd/passthrough_ll.c:164:
+               if (lo->debug)
[...]

WARNING: line over 80 characters
#187: FILE: contrib/virtiofsd/passthrough_ll.c:165:
+                       fuse_log(FUSE_LOG_DEBUG, "lo_init: activating writeback\n");

ERROR: code indent should never use tabs
#187: FILE: contrib/virtiofsd/passthrough_ll.c:165:
+^I^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_init: activating writeback\n");$

ERROR: code indent should never use tabs
#188: FILE: contrib/virtiofsd/passthrough_ll.c:166:
+^I^Iconn->want |= FUSE_CAP_WRITEBACK_CACHE;$

ERROR: code indent should never use tabs
#189: FILE: contrib/virtiofsd/passthrough_ll.c:167:
+^I}$

ERROR: code indent should never use tabs
#190: FILE: contrib/virtiofsd/passthrough_ll.c:168:
+^Iif (lo->flock && conn->capable & FUSE_CAP_FLOCK_LOCKS) {$

ERROR: code indent should never use tabs
#191: FILE: contrib/virtiofsd/passthrough_ll.c:169:
+^I^Iif (lo->debug)$

ERROR: braces {} are necessary for all arms of this statement
#191: FILE: contrib/virtiofsd/passthrough_ll.c:169:
+               if (lo->debug)
[...]

WARNING: line over 80 characters
#192: FILE: contrib/virtiofsd/passthrough_ll.c:170:
+                       fuse_log(FUSE_LOG_DEBUG, "lo_init: activating flock locks\n");

ERROR: code indent should never use tabs
#192: FILE: contrib/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
#193: FILE: contrib/virtiofsd/passthrough_ll.c:171:
+^I^Iconn->want |= FUSE_CAP_FLOCK_LOCKS;$

ERROR: code indent should never use tabs
#194: FILE: contrib/virtiofsd/passthrough_ll.c:172:
+^I}$

ERROR: code indent should never use tabs
#198: FILE: contrib/virtiofsd/passthrough_ll.c:176:
+^I^I^I     struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#200: FILE: contrib/virtiofsd/passthrough_ll.c:178:
+^Iint res;$

ERROR: code indent should never use tabs
#201: FILE: contrib/virtiofsd/passthrough_ll.c:179:
+^Istruct stat buf;$

ERROR: code indent should never use tabs
#202: FILE: contrib/virtiofsd/passthrough_ll.c:180:
+^Istruct lo_data *lo = lo_data(req);$

ERROR: code indent should never use tabs
#204: FILE: contrib/virtiofsd/passthrough_ll.c:182:
+^I(void) fi;$

WARNING: line over 80 characters
#206: FILE: contrib/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
#206: FILE: contrib/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
#207: FILE: contrib/virtiofsd/passthrough_ll.c:185:
+^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#207: FILE: contrib/virtiofsd/passthrough_ll.c:185:
+       if (res == -1)
[...]

ERROR: code indent should never use tabs
#208: FILE: contrib/virtiofsd/passthrough_ll.c:186:
+^I^Ireturn (void) fuse_reply_err(req, errno);$

ERROR: code indent should never use tabs
#210: FILE: contrib/virtiofsd/passthrough_ll.c:188:
+^Ifuse_reply_attr(req, &buf, lo->timeout);$

ERROR: code indent should never use tabs
#214: FILE: contrib/virtiofsd/passthrough_ll.c:192:
+^I^I^I^I    const struct timespec *tv)$

ERROR: code indent should never use tabs
#216: FILE: contrib/virtiofsd/passthrough_ll.c:194:
+^Iint res;$

ERROR: code indent should never use tabs
#217: FILE: contrib/virtiofsd/passthrough_ll.c:195:
+^Ichar procname[64];$

ERROR: code indent should never use tabs
#219: FILE: contrib/virtiofsd/passthrough_ll.c:197:
+^Iif (inode->is_symlink) {$

ERROR: code indent should never use tabs
#220: FILE: contrib/virtiofsd/passthrough_ll.c:198:
+^I^Ires = utimensat(inode->fd, "", tv,$

ERROR: code indent should never use tabs
#221: FILE: contrib/virtiofsd/passthrough_ll.c:199:
+^I^I^I^IAT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW);$

ERROR: code indent should never use tabs
#222: FILE: contrib/virtiofsd/passthrough_ll.c:200:
+^I^Iif (res == -1 && errno == EINVAL) {$

ERROR: code indent should never use tabs
#223: FILE: contrib/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
#224: FILE: contrib/virtiofsd/passthrough_ll.c:202:
+^I^I^Ierrno = EPERM;$

ERROR: code indent should never use tabs
#225: FILE: contrib/virtiofsd/passthrough_ll.c:203:
+^I^I}$

ERROR: code indent should never use tabs
#226: FILE: contrib/virtiofsd/passthrough_ll.c:204:
+^I^Ireturn res;$

ERROR: code indent should never use tabs
#227: FILE: contrib/virtiofsd/passthrough_ll.c:205:
+^I}$

ERROR: code indent should never use tabs
#228: FILE: contrib/virtiofsd/passthrough_ll.c:206:
+^Isprintf(procname, "/proc/self/fd/%i", inode->fd);$

ERROR: code indent should never use tabs
#230: FILE: contrib/virtiofsd/passthrough_ll.c:208:
+^Ireturn utimensat(AT_FDCWD, procname, tv, 0);$

ERROR: code indent should never use tabs
#234: FILE: contrib/virtiofsd/passthrough_ll.c:212:
+^I^I       int valid, struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#236: FILE: contrib/virtiofsd/passthrough_ll.c:214:
+^Iint saverr;$

ERROR: code indent should never use tabs
#237: FILE: contrib/virtiofsd/passthrough_ll.c:215:
+^Ichar procname[64];$

ERROR: code indent should never use tabs
#238: FILE: contrib/virtiofsd/passthrough_ll.c:216:
+^Istruct lo_inode *inode = lo_inode(req, ino);$

ERROR: code indent should never use tabs
#239: FILE: contrib/virtiofsd/passthrough_ll.c:217:
+^Iint ifd = inode->fd;$

ERROR: code indent should never use tabs
#240: FILE: contrib/virtiofsd/passthrough_ll.c:218:
+^Iint res;$

ERROR: code indent should never use tabs
#242: FILE: contrib/virtiofsd/passthrough_ll.c:220:
+^Iif (valid & FUSE_SET_ATTR_MODE) {$

ERROR: code indent should never use tabs
#243: FILE: contrib/virtiofsd/passthrough_ll.c:221:
+^I^Iif (fi) {$

ERROR: code indent should never use tabs
#244: FILE: contrib/virtiofsd/passthrough_ll.c:222:
+^I^I^Ires = fchmod(fi->fh, attr->st_mode);$

ERROR: code indent should never use tabs
#245: FILE: contrib/virtiofsd/passthrough_ll.c:223:
+^I^I} else {$

ERROR: code indent should never use tabs
#246: FILE: contrib/virtiofsd/passthrough_ll.c:224:
+^I^I^Isprintf(procname, "/proc/self/fd/%i", ifd);$

ERROR: code indent should never use tabs
#247: FILE: contrib/virtiofsd/passthrough_ll.c:225:
+^I^I^Ires = chmod(procname, attr->st_mode);$

ERROR: code indent should never use tabs
#248: FILE: contrib/virtiofsd/passthrough_ll.c:226:
+^I^I}$

ERROR: code indent should never use tabs
#249: FILE: contrib/virtiofsd/passthrough_ll.c:227:
+^I^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#249: FILE: contrib/virtiofsd/passthrough_ll.c:227:
+               if (res == -1)
[...]

ERROR: code indent should never use tabs
#250: FILE: contrib/virtiofsd/passthrough_ll.c:228:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#251: FILE: contrib/virtiofsd/passthrough_ll.c:229:
+^I}$

ERROR: code indent should never use tabs
#252: FILE: contrib/virtiofsd/passthrough_ll.c:230:
+^Iif (valid & (FUSE_SET_ATTR_UID | FUSE_SET_ATTR_GID)) {$

ERROR: code indent should never use tabs
#253: FILE: contrib/virtiofsd/passthrough_ll.c:231:
+^I^Iuid_t uid = (valid & FUSE_SET_ATTR_UID) ?$

ERROR: code indent should never use tabs
#254: FILE: contrib/virtiofsd/passthrough_ll.c:232:
+^I^I^Iattr->st_uid : (uid_t) -1;$

ERROR: code indent should never use tabs
#255: FILE: contrib/virtiofsd/passthrough_ll.c:233:
+^I^Igid_t gid = (valid & FUSE_SET_ATTR_GID) ?$

ERROR: code indent should never use tabs
#256: FILE: contrib/virtiofsd/passthrough_ll.c:234:
+^I^I^Iattr->st_gid : (gid_t) -1;$

ERROR: code indent should never use tabs
#258: FILE: contrib/virtiofsd/passthrough_ll.c:236:
+^I^Ires = fchownat(ifd, "", uid, gid,$

ERROR: code indent should never use tabs
#259: FILE: contrib/virtiofsd/passthrough_ll.c:237:
+^I^I^I       AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW);$

ERROR: code indent should never use tabs
#260: FILE: contrib/virtiofsd/passthrough_ll.c:238:
+^I^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#260: FILE: contrib/virtiofsd/passthrough_ll.c:238:
+               if (res == -1)
[...]

ERROR: code indent should never use tabs
#261: FILE: contrib/virtiofsd/passthrough_ll.c:239:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#262: FILE: contrib/virtiofsd/passthrough_ll.c:240:
+^I}$

ERROR: code indent should never use tabs
#263: FILE: contrib/virtiofsd/passthrough_ll.c:241:
+^Iif (valid & FUSE_SET_ATTR_SIZE) {$

ERROR: code indent should never use tabs
#264: FILE: contrib/virtiofsd/passthrough_ll.c:242:
+^I^Iif (fi) {$

ERROR: code indent should never use tabs
#265: FILE: contrib/virtiofsd/passthrough_ll.c:243:
+^I^I^Ires = ftruncate(fi->fh, attr->st_size);$

ERROR: code indent should never use tabs
#266: FILE: contrib/virtiofsd/passthrough_ll.c:244:
+^I^I} else {$

ERROR: code indent should never use tabs
#267: FILE: contrib/virtiofsd/passthrough_ll.c:245:
+^I^I^Isprintf(procname, "/proc/self/fd/%i", ifd);$

ERROR: code indent should never use tabs
#268: FILE: contrib/virtiofsd/passthrough_ll.c:246:
+^I^I^Ires = truncate(procname, attr->st_size);$

ERROR: code indent should never use tabs
#269: FILE: contrib/virtiofsd/passthrough_ll.c:247:
+^I^I}$

ERROR: code indent should never use tabs
#270: FILE: contrib/virtiofsd/passthrough_ll.c:248:
+^I^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#270: FILE: contrib/virtiofsd/passthrough_ll.c:248:
+               if (res == -1)
[...]

ERROR: code indent should never use tabs
#271: FILE: contrib/virtiofsd/passthrough_ll.c:249:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#272: FILE: contrib/virtiofsd/passthrough_ll.c:250:
+^I}$

ERROR: code indent should never use tabs
#273: FILE: contrib/virtiofsd/passthrough_ll.c:251:
+^Iif (valid & (FUSE_SET_ATTR_ATIME | FUSE_SET_ATTR_MTIME)) {$

ERROR: code indent should never use tabs
#274: FILE: contrib/virtiofsd/passthrough_ll.c:252:
+^I^Istruct timespec tv[2];$

ERROR: code indent should never use tabs
#276: FILE: contrib/virtiofsd/passthrough_ll.c:254:
+^I^Itv[0].tv_sec = 0;$

ERROR: code indent should never use tabs
#277: FILE: contrib/virtiofsd/passthrough_ll.c:255:
+^I^Itv[1].tv_sec = 0;$

ERROR: code indent should never use tabs
#278: FILE: contrib/virtiofsd/passthrough_ll.c:256:
+^I^Itv[0].tv_nsec = UTIME_OMIT;$

ERROR: code indent should never use tabs
#279: FILE: contrib/virtiofsd/passthrough_ll.c:257:
+^I^Itv[1].tv_nsec = UTIME_OMIT;$

ERROR: code indent should never use tabs
#281: FILE: contrib/virtiofsd/passthrough_ll.c:259:
+^I^Iif (valid & FUSE_SET_ATTR_ATIME_NOW)$

ERROR: braces {} are necessary for all arms of this statement
#281: FILE: contrib/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
#282: FILE: contrib/virtiofsd/passthrough_ll.c:260:
+^I^I^Itv[0].tv_nsec = UTIME_NOW;$

ERROR: code indent should never use tabs
#283: FILE: contrib/virtiofsd/passthrough_ll.c:261:
+^I^Ielse if (valid & FUSE_SET_ATTR_ATIME)$

ERROR: braces {} are necessary for all arms of this statement
#283: FILE: contrib/virtiofsd/passthrough_ll.c:261:
+               else if (valid & FUSE_SET_ATTR_ATIME)
[...]

ERROR: code indent should never use tabs
#284: FILE: contrib/virtiofsd/passthrough_ll.c:262:
+^I^I^Itv[0] = attr->st_atim;$

ERROR: code indent should never use tabs
#286: FILE: contrib/virtiofsd/passthrough_ll.c:264:
+^I^Iif (valid & FUSE_SET_ATTR_MTIME_NOW)$

ERROR: braces {} are necessary for all arms of this statement
#286: FILE: contrib/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
#287: FILE: contrib/virtiofsd/passthrough_ll.c:265:
+^I^I^Itv[1].tv_nsec = UTIME_NOW;$

ERROR: code indent should never use tabs
#288: FILE: contrib/virtiofsd/passthrough_ll.c:266:
+^I^Ielse if (valid & FUSE_SET_ATTR_MTIME)$

ERROR: braces {} are necessary for all arms of this statement
#288: FILE: contrib/virtiofsd/passthrough_ll.c:266:
+               else if (valid & FUSE_SET_ATTR_MTIME)
[...]

ERROR: code indent should never use tabs
#289: FILE: contrib/virtiofsd/passthrough_ll.c:267:
+^I^I^Itv[1] = attr->st_mtim;$

ERROR: code indent should never use tabs
#291: FILE: contrib/virtiofsd/passthrough_ll.c:269:
+^I^Iif (fi)$

ERROR: braces {} are necessary for all arms of this statement
#291: FILE: contrib/virtiofsd/passthrough_ll.c:269:
+               if (fi)
[...]
+               else
[...]

ERROR: code indent should never use tabs
#292: FILE: contrib/virtiofsd/passthrough_ll.c:270:
+^I^I^Ires = futimens(fi->fh, tv);$

ERROR: code indent should never use tabs
#293: FILE: contrib/virtiofsd/passthrough_ll.c:271:
+^I^Ielse$

ERROR: code indent should never use tabs
#294: FILE: contrib/virtiofsd/passthrough_ll.c:272:
+^I^I^Ires = utimensat_empty_nofollow(inode, tv);$

ERROR: code indent should never use tabs
#295: FILE: contrib/virtiofsd/passthrough_ll.c:273:
+^I^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#295: FILE: contrib/virtiofsd/passthrough_ll.c:273:
+               if (res == -1)
[...]

ERROR: code indent should never use tabs
#296: FILE: contrib/virtiofsd/passthrough_ll.c:274:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#297: FILE: contrib/virtiofsd/passthrough_ll.c:275:
+^I}$

ERROR: code indent should never use tabs
#299: FILE: contrib/virtiofsd/passthrough_ll.c:277:
+^Ireturn lo_getattr(req, ino, fi);$

ERROR: code indent should never use tabs
#302: FILE: contrib/virtiofsd/passthrough_ll.c:280:
+^Isaverr = errno;$

ERROR: code indent should never use tabs
#303: FILE: contrib/virtiofsd/passthrough_ll.c:281:
+^Ifuse_reply_err(req, saverr);$

ERROR: code indent should never use tabs
#308: FILE: contrib/virtiofsd/passthrough_ll.c:286:
+^Istruct lo_inode *p;$

ERROR: code indent should never use tabs
#309: FILE: contrib/virtiofsd/passthrough_ll.c:287:
+^Istruct lo_inode *ret = NULL;$

ERROR: code indent should never use tabs
#311: FILE: contrib/virtiofsd/passthrough_ll.c:289:
+^Ipthread_mutex_lock(&lo->mutex);$

ERROR: code indent should never use tabs
#312: FILE: contrib/virtiofsd/passthrough_ll.c:290:
+^Ifor (p = lo->root.next; p != &lo->root; p = p->next) {$

ERROR: code indent should never use tabs
#313: FILE: contrib/virtiofsd/passthrough_ll.c:291:
+^I^Iif (p->ino == st->st_ino && p->dev == st->st_dev) {$

ERROR: code indent should never use tabs
#314: FILE: contrib/virtiofsd/passthrough_ll.c:292:
+^I^I^Iassert(p->refcount > 0);$

ERROR: code indent should never use tabs
#315: FILE: contrib/virtiofsd/passthrough_ll.c:293:
+^I^I^Iret = p;$

ERROR: code indent should never use tabs
#316: FILE: contrib/virtiofsd/passthrough_ll.c:294:
+^I^I^Iret->refcount++;$

ERROR: code indent should never use tabs
#317: FILE: contrib/virtiofsd/passthrough_ll.c:295:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#318: FILE: contrib/virtiofsd/passthrough_ll.c:296:
+^I^I}$

ERROR: code indent should never use tabs
#319: FILE: contrib/virtiofsd/passthrough_ll.c:297:
+^I}$

ERROR: code indent should never use tabs
#320: FILE: contrib/virtiofsd/passthrough_ll.c:298:
+^Ipthread_mutex_unlock(&lo->mutex);$

ERROR: code indent should never use tabs
#321: FILE: contrib/virtiofsd/passthrough_ll.c:299:
+^Ireturn ret;$

ERROR: code indent should never use tabs
#325: FILE: contrib/virtiofsd/passthrough_ll.c:303:
+^I^I^I struct fuse_entry_param *e)$

ERROR: code indent should never use tabs
#327: FILE: contrib/virtiofsd/passthrough_ll.c:305:
+^Iint newfd;$

ERROR: code indent should never use tabs
#328: FILE: contrib/virtiofsd/passthrough_ll.c:306:
+^Iint res;$

ERROR: code indent should never use tabs
#329: FILE: contrib/virtiofsd/passthrough_ll.c:307:
+^Iint saverr;$

ERROR: code indent should never use tabs
#330: FILE: contrib/virtiofsd/passthrough_ll.c:308:
+^Istruct lo_data *lo = lo_data(req);$

ERROR: code indent should never use tabs
#331: FILE: contrib/virtiofsd/passthrough_ll.c:309:
+^Istruct lo_inode *inode;$

ERROR: code indent should never use tabs
#333: FILE: contrib/virtiofsd/passthrough_ll.c:311:
+^Imemset(e, 0, sizeof(*e));$

ERROR: code indent should never use tabs
#334: FILE: contrib/virtiofsd/passthrough_ll.c:312:
+^Ie->attr_timeout = lo->timeout;$

ERROR: code indent should never use tabs
#335: FILE: contrib/virtiofsd/passthrough_ll.c:313:
+^Ie->entry_timeout = lo->timeout;$

ERROR: code indent should never use tabs
#337: FILE: contrib/virtiofsd/passthrough_ll.c:315:
+^Inewfd = openat(lo_fd(req, parent), name, O_PATH | O_NOFOLLOW);$

ERROR: code indent should never use tabs
#338: FILE: contrib/virtiofsd/passthrough_ll.c:316:
+^Iif (newfd == -1)$

ERROR: braces {} are necessary for all arms of this statement
#338: FILE: contrib/virtiofsd/passthrough_ll.c:316:
+       if (newfd == -1)
[...]

ERROR: code indent should never use tabs
#339: FILE: contrib/virtiofsd/passthrough_ll.c:317:
+^I^Igoto out_err;$

ERROR: code indent should never use tabs
#341: FILE: contrib/virtiofsd/passthrough_ll.c:319:
+^Ires = fstatat(newfd, "", &e->attr, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW);$

ERROR: code indent should never use tabs
#342: FILE: contrib/virtiofsd/passthrough_ll.c:320:
+^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#342: FILE: contrib/virtiofsd/passthrough_ll.c:320:
+       if (res == -1)
[...]

ERROR: code indent should never use tabs
#343: FILE: contrib/virtiofsd/passthrough_ll.c:321:
+^I^Igoto out_err;$

ERROR: code indent should never use tabs
#345: FILE: contrib/virtiofsd/passthrough_ll.c:323:
+^Iinode = lo_find(lo_data(req), &e->attr);$

ERROR: code indent should never use tabs
#346: FILE: contrib/virtiofsd/passthrough_ll.c:324:
+^Iif (inode) {$

ERROR: code indent should never use tabs
#347: FILE: contrib/virtiofsd/passthrough_ll.c:325:
+^I^Iclose(newfd);$

ERROR: code indent should never use tabs
#348: FILE: contrib/virtiofsd/passthrough_ll.c:326:
+^I^Inewfd = -1;$

ERROR: code indent should never use tabs
#349: FILE: contrib/virtiofsd/passthrough_ll.c:327:
+^I} else {$

ERROR: code indent should never use tabs
#350: FILE: contrib/virtiofsd/passthrough_ll.c:328:
+^I^Istruct lo_inode *prev, *next;$

ERROR: code indent should never use tabs
#352: FILE: contrib/virtiofsd/passthrough_ll.c:330:
+^I^Isaverr = ENOMEM;$

ERROR: code indent should never use tabs
#353: FILE: contrib/virtiofsd/passthrough_ll.c:331:
+^I^Iinode = calloc(1, sizeof(struct lo_inode));$

ERROR: code indent should never use tabs
#354: FILE: contrib/virtiofsd/passthrough_ll.c:332:
+^I^Iif (!inode)$

ERROR: braces {} are necessary for all arms of this statement
#354: FILE: contrib/virtiofsd/passthrough_ll.c:332:
+               if (!inode)
[...]

ERROR: code indent should never use tabs
#355: FILE: contrib/virtiofsd/passthrough_ll.c:333:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#357: FILE: contrib/virtiofsd/passthrough_ll.c:335:
+^I^Iinode->is_symlink = S_ISLNK(e->attr.st_mode);$

ERROR: code indent should never use tabs
#358: FILE: contrib/virtiofsd/passthrough_ll.c:336:
+^I^Iinode->refcount = 1;$

ERROR: code indent should never use tabs
#359: FILE: contrib/virtiofsd/passthrough_ll.c:337:
+^I^Iinode->fd = newfd;$

ERROR: code indent should never use tabs
#360: FILE: contrib/virtiofsd/passthrough_ll.c:338:
+^I^Iinode->ino = e->attr.st_ino;$

ERROR: code indent should never use tabs
#361: FILE: contrib/virtiofsd/passthrough_ll.c:339:
+^I^Iinode->dev = e->attr.st_dev;$

ERROR: code indent should never use tabs
#363: FILE: contrib/virtiofsd/passthrough_ll.c:341:
+^I^Ipthread_mutex_lock(&lo->mutex);$

ERROR: code indent should never use tabs
#364: FILE: contrib/virtiofsd/passthrough_ll.c:342:
+^I^Iprev = &lo->root;$

ERROR: code indent should never use tabs
#365: FILE: contrib/virtiofsd/passthrough_ll.c:343:
+^I^Inext = prev->next;$

ERROR: code indent should never use tabs
#366: FILE: contrib/virtiofsd/passthrough_ll.c:344:
+^I^Inext->prev = inode;$

ERROR: code indent should never use tabs
#367: FILE: contrib/virtiofsd/passthrough_ll.c:345:
+^I^Iinode->next = next;$

ERROR: code indent should never use tabs
#368: FILE: contrib/virtiofsd/passthrough_ll.c:346:
+^I^Iinode->prev = prev;$

ERROR: code indent should never use tabs
#369: FILE: contrib/virtiofsd/passthrough_ll.c:347:
+^I^Iprev->next = inode;$

ERROR: code indent should never use tabs
#370: FILE: contrib/virtiofsd/passthrough_ll.c:348:
+^I^Ipthread_mutex_unlock(&lo->mutex);$

ERROR: code indent should never use tabs
#371: FILE: contrib/virtiofsd/passthrough_ll.c:349:
+^I}$

ERROR: code indent should never use tabs
#372: FILE: contrib/virtiofsd/passthrough_ll.c:350:
+^Ie->ino = (uintptr_t) inode;$

ERROR: code indent should never use tabs
#374: FILE: contrib/virtiofsd/passthrough_ll.c:352:
+^Iif (lo_debug(req))$

ERROR: code indent should never use tabs
#375: FILE: contrib/virtiofsd/passthrough_ll.c:353:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "  %lli/%s -> %lli\n",$

WARNING: line over 80 characters
#376: FILE: contrib/virtiofsd/passthrough_ll.c:354:
+                       (unsigned long long) parent, name, (unsigned long long) e->ino);

ERROR: code indent should never use tabs
#376: FILE: contrib/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
#378: FILE: contrib/virtiofsd/passthrough_ll.c:356:
+^Ireturn 0;$

ERROR: code indent should never use tabs
#381: FILE: contrib/virtiofsd/passthrough_ll.c:359:
+^Isaverr = errno;$

ERROR: code indent should never use tabs
#382: FILE: contrib/virtiofsd/passthrough_ll.c:360:
+^Iif (newfd != -1)$

ERROR: braces {} are necessary for all arms of this statement
#382: FILE: contrib/virtiofsd/passthrough_ll.c:360:
+       if (newfd != -1)
[...]

ERROR: code indent should never use tabs
#383: FILE: contrib/virtiofsd/passthrough_ll.c:361:
+^I^Iclose(newfd);$

ERROR: code indent should never use tabs
#384: FILE: contrib/virtiofsd/passthrough_ll.c:362:
+^Ireturn saverr;$

ERROR: code indent should never use tabs
#389: FILE: contrib/virtiofsd/passthrough_ll.c:367:
+^Istruct fuse_entry_param e;$

ERROR: code indent should never use tabs
#390: FILE: contrib/virtiofsd/passthrough_ll.c:368:
+^Iint err;$

ERROR: code indent should never use tabs
#392: FILE: contrib/virtiofsd/passthrough_ll.c:370:
+^Iif (lo_debug(req))$

WARNING: line over 80 characters
#393: FILE: contrib/virtiofsd/passthrough_ll.c:371:
+               fuse_log(FUSE_LOG_DEBUG, "lo_lookup(parent=%" PRIu64 ", name=%s)\n",

ERROR: code indent should never use tabs
#393: FILE: contrib/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
#394: FILE: contrib/virtiofsd/passthrough_ll.c:372:
+^I^I^Iparent, name);$

ERROR: code indent should never use tabs
#396: FILE: contrib/virtiofsd/passthrough_ll.c:374:
+^Ierr = lo_do_lookup(req, parent, name, &e);$

ERROR: code indent should never use tabs
#397: FILE: contrib/virtiofsd/passthrough_ll.c:375:
+^Iif (err)$

ERROR: braces {} are necessary for all arms of this statement
#397: FILE: contrib/virtiofsd/passthrough_ll.c:375:
+       if (err)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#398: FILE: contrib/virtiofsd/passthrough_ll.c:376:
+^I^Ifuse_reply_err(req, err);$

ERROR: code indent should never use tabs
#399: FILE: contrib/virtiofsd/passthrough_ll.c:377:
+^Ielse$

ERROR: code indent should never use tabs
#400: FILE: contrib/virtiofsd/passthrough_ll.c:378:
+^I^Ifuse_reply_entry(req, &e);$

ERROR: code indent should never use tabs
#404: FILE: contrib/virtiofsd/passthrough_ll.c:382:
+^I^I^I     const char *name, mode_t mode, dev_t rdev,$

ERROR: code indent should never use tabs
#405: FILE: contrib/virtiofsd/passthrough_ll.c:383:
+^I^I^I     const char *link)$

ERROR: code indent should never use tabs
#407: FILE: contrib/virtiofsd/passthrough_ll.c:385:
+^Iint res;$

ERROR: code indent should never use tabs
#408: FILE: contrib/virtiofsd/passthrough_ll.c:386:
+^Iint saverr;$

ERROR: code indent should never use tabs
#409: FILE: contrib/virtiofsd/passthrough_ll.c:387:
+^Istruct lo_inode *dir = lo_inode(req, parent);$

ERROR: code indent should never use tabs
#410: FILE: contrib/virtiofsd/passthrough_ll.c:388:
+^Istruct fuse_entry_param e;$

ERROR: code indent should never use tabs
#412: FILE: contrib/virtiofsd/passthrough_ll.c:390:
+^Isaverr = ENOMEM;$

ERROR: code indent should never use tabs
#414: FILE: contrib/virtiofsd/passthrough_ll.c:392:
+^Ires = mknod_wrapper(dir->fd, name, link, mode, rdev);$

ERROR: code indent should never use tabs
#416: FILE: contrib/virtiofsd/passthrough_ll.c:394:
+^Isaverr = errno;$

ERROR: code indent should never use tabs
#417: FILE: contrib/virtiofsd/passthrough_ll.c:395:
+^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#417: FILE: contrib/virtiofsd/passthrough_ll.c:395:
+       if (res == -1)
[...]

ERROR: code indent should never use tabs
#418: FILE: contrib/virtiofsd/passthrough_ll.c:396:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#420: FILE: contrib/virtiofsd/passthrough_ll.c:398:
+^Isaverr = lo_do_lookup(req, parent, name, &e);$

ERROR: code indent should never use tabs
#421: FILE: contrib/virtiofsd/passthrough_ll.c:399:
+^Iif (saverr)$

ERROR: braces {} are necessary for all arms of this statement
#421: FILE: contrib/virtiofsd/passthrough_ll.c:399:
+       if (saverr)
[...]

ERROR: code indent should never use tabs
#422: FILE: contrib/virtiofsd/passthrough_ll.c:400:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#424: FILE: contrib/virtiofsd/passthrough_ll.c:402:
+^Iif (lo_debug(req))$

ERROR: code indent should never use tabs
#425: FILE: contrib/virtiofsd/passthrough_ll.c:403:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "  %lli/%s -> %lli\n",$

WARNING: line over 80 characters
#426: FILE: contrib/virtiofsd/passthrough_ll.c:404:
+                       (unsigned long long) parent, name, (unsigned long long) e.ino);

ERROR: code indent should never use tabs
#426: FILE: contrib/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
#428: FILE: contrib/virtiofsd/passthrough_ll.c:406:
+^Ifuse_reply_entry(req, &e);$

ERROR: code indent should never use tabs
#429: FILE: contrib/virtiofsd/passthrough_ll.c:407:
+^Ireturn;$

ERROR: code indent should never use tabs
#432: FILE: contrib/virtiofsd/passthrough_ll.c:410:
+^Ifuse_reply_err(req, saverr);$

ERROR: code indent should never use tabs
#436: FILE: contrib/virtiofsd/passthrough_ll.c:414:
+^I^I     const char *name, mode_t mode, dev_t rdev)$

ERROR: code indent should never use tabs
#438: FILE: contrib/virtiofsd/passthrough_ll.c:416:
+^Ilo_mknod_symlink(req, parent, name, mode, rdev, NULL);$

ERROR: code indent should never use tabs
#442: FILE: contrib/virtiofsd/passthrough_ll.c:420:
+^I^I     mode_t mode)$

ERROR: code indent should never use tabs
#444: FILE: contrib/virtiofsd/passthrough_ll.c:422:
+^Ilo_mknod_symlink(req, parent, name, S_IFDIR | mode, 0, NULL);$

ERROR: code indent should never use tabs
#448: FILE: contrib/virtiofsd/passthrough_ll.c:426:
+^I^I       fuse_ino_t parent, const char *name)$

ERROR: code indent should never use tabs
#450: FILE: contrib/virtiofsd/passthrough_ll.c:428:
+^Ilo_mknod_symlink(req, parent, name, S_IFLNK, 0, link);$

ERROR: code indent should never use tabs
#454: FILE: contrib/virtiofsd/passthrough_ll.c:432:
+^I^I^I^I const char *name)$

ERROR: code indent should never use tabs
#456: FILE: contrib/virtiofsd/passthrough_ll.c:434:
+^Iint res;$

ERROR: code indent should never use tabs
#457: FILE: contrib/virtiofsd/passthrough_ll.c:435:
+^Ichar procname[64];$

ERROR: code indent should never use tabs
#459: FILE: contrib/virtiofsd/passthrough_ll.c:437:
+^Iif (inode->is_symlink) {$

ERROR: code indent should never use tabs
#460: FILE: contrib/virtiofsd/passthrough_ll.c:438:
+^I^Ires = linkat(inode->fd, "", dfd, name, AT_EMPTY_PATH);$

ERROR: code indent should never use tabs
#461: FILE: contrib/virtiofsd/passthrough_ll.c:439:
+^I^Iif (res == -1 && (errno == ENOENT || errno == EINVAL)) {$

ERROR: code indent should never use tabs
#462: FILE: contrib/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
#463: FILE: contrib/virtiofsd/passthrough_ll.c:441:
+^I^I^Ierrno = EPERM;$

ERROR: code indent should never use tabs
#464: FILE: contrib/virtiofsd/passthrough_ll.c:442:
+^I^I}$

ERROR: code indent should never use tabs
#465: FILE: contrib/virtiofsd/passthrough_ll.c:443:
+^I^Ireturn res;$

ERROR: code indent should never use tabs
#466: FILE: contrib/virtiofsd/passthrough_ll.c:444:
+^I}$

ERROR: code indent should never use tabs
#468: FILE: contrib/virtiofsd/passthrough_ll.c:446:
+^Isprintf(procname, "/proc/self/fd/%i", inode->fd);$

ERROR: code indent should never use tabs
#470: FILE: contrib/virtiofsd/passthrough_ll.c:448:
+^Ireturn linkat(AT_FDCWD, procname, dfd, name, AT_SYMLINK_FOLLOW);$

ERROR: code indent should never use tabs
#474: FILE: contrib/virtiofsd/passthrough_ll.c:452:
+^I^I    const char *name)$

ERROR: code indent should never use tabs
#476: FILE: contrib/virtiofsd/passthrough_ll.c:454:
+^Iint res;$

ERROR: code indent should never use tabs
#477: FILE: contrib/virtiofsd/passthrough_ll.c:455:
+^Istruct lo_data *lo = lo_data(req);$

ERROR: code indent should never use tabs
#478: FILE: contrib/virtiofsd/passthrough_ll.c:456:
+^Istruct lo_inode *inode = lo_inode(req, ino);$

ERROR: code indent should never use tabs
#479: FILE: contrib/virtiofsd/passthrough_ll.c:457:
+^Istruct fuse_entry_param e;$

ERROR: code indent should never use tabs
#480: FILE: contrib/virtiofsd/passthrough_ll.c:458:
+^Iint saverr;$

ERROR: code indent should never use tabs
#482: FILE: contrib/virtiofsd/passthrough_ll.c:460:
+^Imemset(&e, 0, sizeof(struct fuse_entry_param));$

ERROR: code indent should never use tabs
#483: FILE: contrib/virtiofsd/passthrough_ll.c:461:
+^Ie.attr_timeout = lo->timeout;$

ERROR: code indent should never use tabs
#484: FILE: contrib/virtiofsd/passthrough_ll.c:462:
+^Ie.entry_timeout = lo->timeout;$

ERROR: code indent should never use tabs
#486: FILE: contrib/virtiofsd/passthrough_ll.c:464:
+^Ires = linkat_empty_nofollow(inode, lo_fd(req, parent), name);$

ERROR: code indent should never use tabs
#487: FILE: contrib/virtiofsd/passthrough_ll.c:465:
+^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#487: FILE: contrib/virtiofsd/passthrough_ll.c:465:
+       if (res == -1)
[...]

ERROR: code indent should never use tabs
#488: FILE: contrib/virtiofsd/passthrough_ll.c:466:
+^I^Igoto out_err;$

WARNING: line over 80 characters
#490: FILE: contrib/virtiofsd/passthrough_ll.c:468:
+       res = fstatat(inode->fd, "", &e.attr, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW);

ERROR: code indent should never use tabs
#490: FILE: contrib/virtiofsd/passthrough_ll.c:468:
+^Ires = fstatat(inode->fd, "", &e.attr, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW);$

ERROR: code indent should never use tabs
#491: FILE: contrib/virtiofsd/passthrough_ll.c:469:
+^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#491: FILE: contrib/virtiofsd/passthrough_ll.c:469:
+       if (res == -1)
[...]

ERROR: code indent should never use tabs
#492: FILE: contrib/virtiofsd/passthrough_ll.c:470:
+^I^Igoto out_err;$

ERROR: code indent should never use tabs
#494: FILE: contrib/virtiofsd/passthrough_ll.c:472:
+^Ipthread_mutex_lock(&lo->mutex);$

ERROR: code indent should never use tabs
#495: FILE: contrib/virtiofsd/passthrough_ll.c:473:
+^Iinode->refcount++;$

ERROR: code indent should never use tabs
#496: FILE: contrib/virtiofsd/passthrough_ll.c:474:
+^Ipthread_mutex_unlock(&lo->mutex);$

ERROR: code indent should never use tabs
#497: FILE: contrib/virtiofsd/passthrough_ll.c:475:
+^Ie.ino = (uintptr_t) inode;$

ERROR: code indent should never use tabs
#499: FILE: contrib/virtiofsd/passthrough_ll.c:477:
+^Iif (lo_debug(req))$

ERROR: code indent should never use tabs
#500: FILE: contrib/virtiofsd/passthrough_ll.c:478:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "  %lli/%s -> %lli\n",$

ERROR: code indent should never use tabs
#501: FILE: contrib/virtiofsd/passthrough_ll.c:479:
+^I^I^I(unsigned long long) parent, name,$

ERROR: code indent should never use tabs
#502: FILE: contrib/virtiofsd/passthrough_ll.c:480:
+^I^I^I(unsigned long long) e.ino);$

ERROR: code indent should never use tabs
#504: FILE: contrib/virtiofsd/passthrough_ll.c:482:
+^Ifuse_reply_entry(req, &e);$

ERROR: code indent should never use tabs
#505: FILE: contrib/virtiofsd/passthrough_ll.c:483:
+^Ireturn;$

ERROR: code indent should never use tabs
#508: FILE: contrib/virtiofsd/passthrough_ll.c:486:
+^Isaverr = errno;$

ERROR: code indent should never use tabs
#509: FILE: contrib/virtiofsd/passthrough_ll.c:487:
+^Ifuse_reply_err(req, saverr);$

ERROR: code indent should never use tabs
#514: FILE: contrib/virtiofsd/passthrough_ll.c:492:
+^Iint res;$

ERROR: code indent should never use tabs
#516: FILE: contrib/virtiofsd/passthrough_ll.c:494:
+^Ires = unlinkat(lo_fd(req, parent), name, AT_REMOVEDIR);$

ERROR: code indent should never use tabs
#518: FILE: contrib/virtiofsd/passthrough_ll.c:496:
+^Ifuse_reply_err(req, res == -1 ? errno : 0);$

ERROR: code indent should never use tabs
#522: FILE: contrib/virtiofsd/passthrough_ll.c:500:
+^I^I      fuse_ino_t newparent, const char *newname,$

ERROR: code indent should never use tabs
#523: FILE: contrib/virtiofsd/passthrough_ll.c:501:
+^I^I      unsigned int flags)$

ERROR: code indent should never use tabs
#525: FILE: contrib/virtiofsd/passthrough_ll.c:503:
+^Iint res;$

ERROR: code indent should never use tabs
#527: FILE: contrib/virtiofsd/passthrough_ll.c:505:
+^Iif (flags) {$

ERROR: code indent should never use tabs
#528: FILE: contrib/virtiofsd/passthrough_ll.c:506:
+^I^Ifuse_reply_err(req, EINVAL);$

ERROR: code indent should never use tabs
#529: FILE: contrib/virtiofsd/passthrough_ll.c:507:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#530: FILE: contrib/virtiofsd/passthrough_ll.c:508:
+^I}$

ERROR: code indent should never use tabs
#532: FILE: contrib/virtiofsd/passthrough_ll.c:510:
+^Ires = renameat(lo_fd(req, parent), name,$

ERROR: code indent should never use tabs
#533: FILE: contrib/virtiofsd/passthrough_ll.c:511:
+^I^I^Ilo_fd(req, newparent), newname);$

ERROR: code indent should never use tabs
#535: FILE: contrib/virtiofsd/passthrough_ll.c:513:
+^Ifuse_reply_err(req, res == -1 ? errno : 0);$

ERROR: code indent should never use tabs
#540: FILE: contrib/virtiofsd/passthrough_ll.c:518:
+^Iint res;$

ERROR: code indent should never use tabs
#542: FILE: contrib/virtiofsd/passthrough_ll.c:520:
+^Ires = unlinkat(lo_fd(req, parent), name, 0);$

ERROR: code indent should never use tabs
#544: FILE: contrib/virtiofsd/passthrough_ll.c:522:
+^Ifuse_reply_err(req, res == -1 ? errno : 0);$

ERROR: code indent should never use tabs
#549: FILE: contrib/virtiofsd/passthrough_ll.c:527:
+^Iif (!inode)$

ERROR: braces {} are necessary for all arms of this statement
#549: FILE: contrib/virtiofsd/passthrough_ll.c:527:
+       if (!inode)
[...]

ERROR: code indent should never use tabs
#550: FILE: contrib/virtiofsd/passthrough_ll.c:528:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#552: FILE: contrib/virtiofsd/passthrough_ll.c:530:
+^Ipthread_mutex_lock(&lo->mutex);$

ERROR: code indent should never use tabs
#553: FILE: contrib/virtiofsd/passthrough_ll.c:531:
+^Iassert(inode->refcount >= n);$

ERROR: code indent should never use tabs
#554: FILE: contrib/virtiofsd/passthrough_ll.c:532:
+^Iinode->refcount -= n;$

ERROR: code indent should never use tabs
#555: FILE: contrib/virtiofsd/passthrough_ll.c:533:
+^Iif (!inode->refcount) {$

ERROR: code indent should never use tabs
#556: FILE: contrib/virtiofsd/passthrough_ll.c:534:
+^I^Istruct lo_inode *prev, *next;$

ERROR: code indent should never use tabs
#558: FILE: contrib/virtiofsd/passthrough_ll.c:536:
+^I^Iprev = inode->prev;$

ERROR: code indent should never use tabs
#559: FILE: contrib/virtiofsd/passthrough_ll.c:537:
+^I^Inext = inode->next;$

ERROR: code indent should never use tabs
#560: FILE: contrib/virtiofsd/passthrough_ll.c:538:
+^I^Inext->prev = prev;$

ERROR: code indent should never use tabs
#561: FILE: contrib/virtiofsd/passthrough_ll.c:539:
+^I^Iprev->next = next;$

ERROR: code indent should never use tabs
#563: FILE: contrib/virtiofsd/passthrough_ll.c:541:
+^I^Ipthread_mutex_unlock(&lo->mutex);$

ERROR: code indent should never use tabs
#564: FILE: contrib/virtiofsd/passthrough_ll.c:542:
+^I^Iclose(inode->fd);$

ERROR: code indent should never use tabs
#565: FILE: contrib/virtiofsd/passthrough_ll.c:543:
+^I^Ifree(inode);$

ERROR: code indent should never use tabs
#567: FILE: contrib/virtiofsd/passthrough_ll.c:545:
+^I} else {$

ERROR: code indent should never use tabs
#568: FILE: contrib/virtiofsd/passthrough_ll.c:546:
+^I^Ipthread_mutex_unlock(&lo->mutex);$

ERROR: code indent should never use tabs
#569: FILE: contrib/virtiofsd/passthrough_ll.c:547:
+^I}$

ERROR: code indent should never use tabs
#574: FILE: contrib/virtiofsd/passthrough_ll.c:552:
+^Istruct lo_data *lo = lo_data(req);$

ERROR: code indent should never use tabs
#575: FILE: contrib/virtiofsd/passthrough_ll.c:553:
+^Istruct lo_inode *inode = lo_inode(req, ino);$

ERROR: code indent should never use tabs
#577: FILE: contrib/virtiofsd/passthrough_ll.c:555:
+^Iif (lo_debug(req)) {$

ERROR: code indent should never use tabs
#578: FILE: contrib/virtiofsd/passthrough_ll.c:556:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "  forget %lli %lli -%lli\n",$

ERROR: code indent should never use tabs
#579: FILE: contrib/virtiofsd/passthrough_ll.c:557:
+^I^I^I(unsigned long long) ino,$

ERROR: code indent should never use tabs
#580: FILE: contrib/virtiofsd/passthrough_ll.c:558:
+^I^I^I(unsigned long long) inode->refcount,$

ERROR: code indent should never use tabs
#581: FILE: contrib/virtiofsd/passthrough_ll.c:559:
+^I^I^I(unsigned long long) nlookup);$

ERROR: code indent should never use tabs
#582: FILE: contrib/virtiofsd/passthrough_ll.c:560:
+^I}$

ERROR: code indent should never use tabs
#584: FILE: contrib/virtiofsd/passthrough_ll.c:562:
+^Iunref_inode(lo, inode, nlookup);$

ERROR: code indent should never use tabs
#589: FILE: contrib/virtiofsd/passthrough_ll.c:567:
+^Ilo_forget_one(req, ino, nlookup);$

ERROR: code indent should never use tabs
#590: FILE: contrib/virtiofsd/passthrough_ll.c:568:
+^Ifuse_reply_none(req);$

ERROR: code indent should never use tabs
#594: FILE: contrib/virtiofsd/passthrough_ll.c:572:
+^I^I^I^Istruct fuse_forget_data *forgets)$

ERROR: code indent should never use tabs
#596: FILE: contrib/virtiofsd/passthrough_ll.c:574:
+^Iint i;$

ERROR: code indent should never use tabs
#598: FILE: contrib/virtiofsd/passthrough_ll.c:576:
+^Ifor (i = 0; i < count; i++)$

ERROR: braces {} are necessary for all arms of this statement
#598: FILE: contrib/virtiofsd/passthrough_ll.c:576:
+       for (i = 0; i < count; i++)
[...]

ERROR: code indent should never use tabs
#599: FILE: contrib/virtiofsd/passthrough_ll.c:577:
+^I^Ilo_forget_one(req, forgets[i].ino, forgets[i].nlookup);$

ERROR: code indent should never use tabs
#600: FILE: contrib/virtiofsd/passthrough_ll.c:578:
+^Ifuse_reply_none(req);$

ERROR: code indent should never use tabs
#605: FILE: contrib/virtiofsd/passthrough_ll.c:583:
+^Ichar buf[PATH_MAX + 1];$

ERROR: code indent should never use tabs
#606: FILE: contrib/virtiofsd/passthrough_ll.c:584:
+^Iint res;$

ERROR: code indent should never use tabs
#608: FILE: contrib/virtiofsd/passthrough_ll.c:586:
+^Ires = readlinkat(lo_fd(req, ino), "", buf, sizeof(buf));$

ERROR: code indent should never use tabs
#609: FILE: contrib/virtiofsd/passthrough_ll.c:587:
+^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#609: FILE: contrib/virtiofsd/passthrough_ll.c:587:
+       if (res == -1)
[...]

ERROR: code indent should never use tabs
#610: FILE: contrib/virtiofsd/passthrough_ll.c:588:
+^I^Ireturn (void) fuse_reply_err(req, errno);$

ERROR: code indent should never use tabs
#612: FILE: contrib/virtiofsd/passthrough_ll.c:590:
+^Iif (res == sizeof(buf))$

ERROR: braces {} are necessary for all arms of this statement
#612: FILE: contrib/virtiofsd/passthrough_ll.c:590:
+       if (res == sizeof(buf))
[...]

ERROR: code indent should never use tabs
#613: FILE: contrib/virtiofsd/passthrough_ll.c:591:
+^I^Ireturn (void) fuse_reply_err(req, ENAMETOOLONG);$

ERROR: code indent should never use tabs
#615: FILE: contrib/virtiofsd/passthrough_ll.c:593:
+^Ibuf[res] = '\0';$

ERROR: code indent should never use tabs
#617: FILE: contrib/virtiofsd/passthrough_ll.c:595:
+^Ifuse_reply_readlink(req, buf);$

ERROR: code indent should never use tabs
#621: FILE: contrib/virtiofsd/passthrough_ll.c:599:
+^Iint fd;$

ERROR: code indent should never use tabs
#622: FILE: contrib/virtiofsd/passthrough_ll.c:600:
+^IDIR *dp;$

ERROR: code indent should never use tabs
#623: FILE: contrib/virtiofsd/passthrough_ll.c:601:
+^Istruct dirent *entry;$

ERROR: code indent should never use tabs
#624: FILE: contrib/virtiofsd/passthrough_ll.c:602:
+^Ioff_t offset;$

ERROR: code indent should never use tabs
#629: FILE: contrib/virtiofsd/passthrough_ll.c:607:
+^Ireturn (struct lo_dirp *) (uintptr_t) fi->fh;$

WARNING: line over 80 characters
#632: FILE: contrib/virtiofsd/passthrough_ll.c:610:
+static void lo_opendir(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)

ERROR: code indent should never use tabs
#634: FILE: contrib/virtiofsd/passthrough_ll.c:612:
+^Iint error = ENOMEM;$

ERROR: code indent should never use tabs
#635: FILE: contrib/virtiofsd/passthrough_ll.c:613:
+^Istruct lo_data *lo = lo_data(req);$

ERROR: code indent should never use tabs
#636: FILE: contrib/virtiofsd/passthrough_ll.c:614:
+^Istruct lo_dirp *d = calloc(1, sizeof(struct lo_dirp));$

ERROR: code indent should never use tabs
#637: FILE: contrib/virtiofsd/passthrough_ll.c:615:
+^Iif (d == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#637: FILE: contrib/virtiofsd/passthrough_ll.c:615:
+       if (d == NULL)
[...]

ERROR: code indent should never use tabs
#638: FILE: contrib/virtiofsd/passthrough_ll.c:616:
+^I^Igoto out_err;$

ERROR: code indent should never use tabs
#640: FILE: contrib/virtiofsd/passthrough_ll.c:618:
+^Id->fd = openat(lo_fd(req, ino), ".", O_RDONLY);$

ERROR: code indent should never use tabs
#641: FILE: contrib/virtiofsd/passthrough_ll.c:619:
+^Iif (d->fd == -1)$

ERROR: braces {} are necessary for all arms of this statement
#641: FILE: contrib/virtiofsd/passthrough_ll.c:619:
+       if (d->fd == -1)
[...]

ERROR: code indent should never use tabs
#642: FILE: contrib/virtiofsd/passthrough_ll.c:620:
+^I^Igoto out_errno;$

ERROR: code indent should never use tabs
#644: FILE: contrib/virtiofsd/passthrough_ll.c:622:
+^Id->dp = fdopendir(d->fd);$

ERROR: code indent should never use tabs
#645: FILE: contrib/virtiofsd/passthrough_ll.c:623:
+^Iif (d->dp == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#645: FILE: contrib/virtiofsd/passthrough_ll.c:623:
+       if (d->dp == NULL)
[...]

ERROR: code indent should never use tabs
#646: FILE: contrib/virtiofsd/passthrough_ll.c:624:
+^I^Igoto out_errno;$

ERROR: code indent should never use tabs
#648: FILE: contrib/virtiofsd/passthrough_ll.c:626:
+^Id->offset = 0;$

ERROR: code indent should never use tabs
#649: FILE: contrib/virtiofsd/passthrough_ll.c:627:
+^Id->entry = NULL;$

ERROR: code indent should never use tabs
#651: FILE: contrib/virtiofsd/passthrough_ll.c:629:
+^Ifi->fh = (uintptr_t) d;$

ERROR: code indent should never use tabs
#652: FILE: contrib/virtiofsd/passthrough_ll.c:630:
+^Iif (lo->cache == CACHE_ALWAYS)$

ERROR: braces {} are necessary for all arms of this statement
#652: FILE: contrib/virtiofsd/passthrough_ll.c:630:
+       if (lo->cache == CACHE_ALWAYS)
[...]

ERROR: code indent should never use tabs
#653: FILE: contrib/virtiofsd/passthrough_ll.c:631:
+^I^Ifi->keep_cache = 1;$

ERROR: code indent should never use tabs
#654: FILE: contrib/virtiofsd/passthrough_ll.c:632:
+^Ifuse_reply_open(req, fi);$

ERROR: code indent should never use tabs
#655: FILE: contrib/virtiofsd/passthrough_ll.c:633:
+^Ireturn;$

ERROR: code indent should never use tabs
#658: FILE: contrib/virtiofsd/passthrough_ll.c:636:
+^Ierror = errno;$

ERROR: code indent should never use tabs
#660: FILE: contrib/virtiofsd/passthrough_ll.c:638:
+^Iif (d) {$

ERROR: code indent should never use tabs
#661: FILE: contrib/virtiofsd/passthrough_ll.c:639:
+^I^Iif (d->fd != -1)$

ERROR: braces {} are necessary for all arms of this statement
#661: FILE: contrib/virtiofsd/passthrough_ll.c:639:
+               if (d->fd != -1)
[...]

ERROR: code indent should never use tabs
#662: FILE: contrib/virtiofsd/passthrough_ll.c:640:
+^I^I^Iclose(d->fd);$

ERROR: code indent should never use tabs
#663: FILE: contrib/virtiofsd/passthrough_ll.c:641:
+^I^Ifree(d);$

ERROR: code indent should never use tabs
#664: FILE: contrib/virtiofsd/passthrough_ll.c:642:
+^I}$

ERROR: code indent should never use tabs
#665: FILE: contrib/virtiofsd/passthrough_ll.c:643:
+^Ifuse_reply_err(req, error);$

ERROR: code indent should never use tabs
#670: FILE: contrib/virtiofsd/passthrough_ll.c:648:
+^Ireturn name[0] == '.' && (name[1] == '\0' ||$

ERROR: code indent should never use tabs
#671: FILE: contrib/virtiofsd/passthrough_ll.c:649:
+^I^I^I^I  (name[1] == '.' && name[2] == '\0'));$

ERROR: code indent should never use tabs
#675: FILE: contrib/virtiofsd/passthrough_ll.c:653:
+^I^I^I  off_t offset, struct fuse_file_info *fi, int plus)$

ERROR: code indent should never use tabs
#677: FILE: contrib/virtiofsd/passthrough_ll.c:655:
+^Istruct lo_dirp *d = lo_dirp(fi);$

ERROR: code indent should never use tabs
#678: FILE: contrib/virtiofsd/passthrough_ll.c:656:
+^Ichar *buf;$

ERROR: code indent should never use tabs
#679: FILE: contrib/virtiofsd/passthrough_ll.c:657:
+^Ichar *p;$

ERROR: code indent should never use tabs
#680: FILE: contrib/virtiofsd/passthrough_ll.c:658:
+^Isize_t rem = size;$

ERROR: code indent should never use tabs
#681: FILE: contrib/virtiofsd/passthrough_ll.c:659:
+^Iint err;$

ERROR: code indent should never use tabs
#683: FILE: contrib/virtiofsd/passthrough_ll.c:661:
+^I(void) ino;$

ERROR: code indent should never use tabs
#685: FILE: contrib/virtiofsd/passthrough_ll.c:663:
+^Ibuf = calloc(1, size);$

ERROR: code indent should never use tabs
#686: FILE: contrib/virtiofsd/passthrough_ll.c:664:
+^Iif (!buf) {$

ERROR: code indent should never use tabs
#687: FILE: contrib/virtiofsd/passthrough_ll.c:665:
+^I^Ierr = ENOMEM;$

ERROR: code indent should never use tabs
#688: FILE: contrib/virtiofsd/passthrough_ll.c:666:
+^I^Igoto error;$

ERROR: code indent should never use tabs
#689: FILE: contrib/virtiofsd/passthrough_ll.c:667:
+^I}$

ERROR: code indent should never use tabs
#690: FILE: contrib/virtiofsd/passthrough_ll.c:668:
+^Ip = buf;$

ERROR: code indent should never use tabs
#692: FILE: contrib/virtiofsd/passthrough_ll.c:670:
+^Iif (offset != d->offset) {$

ERROR: code indent should never use tabs
#693: FILE: contrib/virtiofsd/passthrough_ll.c:671:
+^I^Iseekdir(d->dp, offset);$

ERROR: code indent should never use tabs
#694: FILE: contrib/virtiofsd/passthrough_ll.c:672:
+^I^Id->entry = NULL;$

ERROR: code indent should never use tabs
#695: FILE: contrib/virtiofsd/passthrough_ll.c:673:
+^I^Id->offset = offset;$

ERROR: code indent should never use tabs
#696: FILE: contrib/virtiofsd/passthrough_ll.c:674:
+^I}$

ERROR: code indent should never use tabs
#697: FILE: contrib/virtiofsd/passthrough_ll.c:675:
+^Iwhile (1) {$

ERROR: code indent should never use tabs
#698: FILE: contrib/virtiofsd/passthrough_ll.c:676:
+^I^Isize_t entsize;$

ERROR: code indent should never use tabs
#699: FILE: contrib/virtiofsd/passthrough_ll.c:677:
+^I^Ioff_t nextoff;$

ERROR: code indent should never use tabs
#700: FILE: contrib/virtiofsd/passthrough_ll.c:678:
+^I^Iconst char *name;$

ERROR: code indent should never use tabs
#702: FILE: contrib/virtiofsd/passthrough_ll.c:680:
+^I^Iif (!d->entry) {$

ERROR: code indent should never use tabs
#703: FILE: contrib/virtiofsd/passthrough_ll.c:681:
+^I^I^Ierrno = 0;$

ERROR: code indent should never use tabs
#704: FILE: contrib/virtiofsd/passthrough_ll.c:682:
+^I^I^Id->entry = readdir(d->dp);$

ERROR: code indent should never use tabs
#705: FILE: contrib/virtiofsd/passthrough_ll.c:683:
+^I^I^Iif (!d->entry) {$

ERROR: code indent should never use tabs
#706: FILE: contrib/virtiofsd/passthrough_ll.c:684:
+^I^I^I^Iif (errno) {  // Error$

ERROR: do not use C99 // comments
#706: FILE: contrib/virtiofsd/passthrough_ll.c:684:
+                               if (errno) {  // Error

ERROR: trailing statements should be on next line
#706: FILE: contrib/virtiofsd/passthrough_ll.c:684:
+                               if (errno) {  // Error

ERROR: code indent should never use tabs
#707: FILE: contrib/virtiofsd/passthrough_ll.c:685:
+^I^I^I^I^Ierr = errno;$

ERROR: code indent should never use tabs
#708: FILE: contrib/virtiofsd/passthrough_ll.c:686:
+^I^I^I^I^Igoto error;$

ERROR: code indent should never use tabs
#709: FILE: contrib/virtiofsd/passthrough_ll.c:687:
+^I^I^I^I} else {  // End of stream$

ERROR: do not use C99 // comments
#709: FILE: contrib/virtiofsd/passthrough_ll.c:687:
+                               } else {  // End of stream

ERROR: trailing whitespace
#710: FILE: contrib/virtiofsd/passthrough_ll.c:688:
+^I^I^I^I^Ibreak; $

ERROR: code indent should never use tabs
#710: FILE: contrib/virtiofsd/passthrough_ll.c:688:
+^I^I^I^I^Ibreak; $

ERROR: code indent should never use tabs
#711: FILE: contrib/virtiofsd/passthrough_ll.c:689:
+^I^I^I^I}$

ERROR: code indent should never use tabs
#712: FILE: contrib/virtiofsd/passthrough_ll.c:690:
+^I^I^I}$

ERROR: code indent should never use tabs
#713: FILE: contrib/virtiofsd/passthrough_ll.c:691:
+^I^I}$

ERROR: code indent should never use tabs
#714: FILE: contrib/virtiofsd/passthrough_ll.c:692:
+^I^Inextoff = d->entry->d_off;$

ERROR: code indent should never use tabs
#715: FILE: contrib/virtiofsd/passthrough_ll.c:693:
+^I^Iname = d->entry->d_name;$

ERROR: code indent should never use tabs
#716: FILE: contrib/virtiofsd/passthrough_ll.c:694:
+^I^Ifuse_ino_t entry_ino = 0;$

ERROR: code indent should never use tabs
#717: FILE: contrib/virtiofsd/passthrough_ll.c:695:
+^I^Iif (plus) {$

ERROR: code indent should never use tabs
#718: FILE: contrib/virtiofsd/passthrough_ll.c:696:
+^I^I^Istruct fuse_entry_param e;$

ERROR: code indent should never use tabs
#719: FILE: contrib/virtiofsd/passthrough_ll.c:697:
+^I^I^Iif (is_dot_or_dotdot(name)) {$

ERROR: code indent should never use tabs
#720: FILE: contrib/virtiofsd/passthrough_ll.c:698:
+^I^I^I^Ie = (struct fuse_entry_param) {$

ERROR: code indent should never use tabs
#721: FILE: contrib/virtiofsd/passthrough_ll.c:699:
+^I^I^I^I^I.attr.st_ino = d->entry->d_ino,$

ERROR: code indent should never use tabs
#722: FILE: contrib/virtiofsd/passthrough_ll.c:700:
+^I^I^I^I^I.attr.st_mode = d->entry->d_type << 12,$

ERROR: code indent should never use tabs
#723: FILE: contrib/virtiofsd/passthrough_ll.c:701:
+^I^I^I^I};$

ERROR: code indent should never use tabs
#724: FILE: contrib/virtiofsd/passthrough_ll.c:702:
+^I^I^I} else {$

ERROR: code indent should never use tabs
#725: FILE: contrib/virtiofsd/passthrough_ll.c:703:
+^I^I^I^Ierr = lo_do_lookup(req, ino, name, &e);$

ERROR: code indent should never use tabs
#726: FILE: contrib/virtiofsd/passthrough_ll.c:704:
+^I^I^I^Iif (err)$

ERROR: braces {} are necessary for all arms of this statement
#726: FILE: contrib/virtiofsd/passthrough_ll.c:704:
+                               if (err)
[...]

ERROR: code indent should never use tabs
#727: FILE: contrib/virtiofsd/passthrough_ll.c:705:
+^I^I^I^I^Igoto error;$

ERROR: code indent should never use tabs
#728: FILE: contrib/virtiofsd/passthrough_ll.c:706:
+^I^I^I^Ientry_ino = e.ino;$

ERROR: code indent should never use tabs
#729: FILE: contrib/virtiofsd/passthrough_ll.c:707:
+^I^I^I}$

ERROR: code indent should never use tabs
#731: FILE: contrib/virtiofsd/passthrough_ll.c:709:
+^I^I^Ientsize = fuse_add_direntry_plus(req, p, rem, name,$

ERROR: code indent should never use tabs
#732: FILE: contrib/virtiofsd/passthrough_ll.c:710:
+^I^I^I^I^I^I^I &e, nextoff);$

ERROR: code indent should never use tabs
#733: FILE: contrib/virtiofsd/passthrough_ll.c:711:
+^I^I} else {$

ERROR: code indent should never use tabs
#734: FILE: contrib/virtiofsd/passthrough_ll.c:712:
+^I^I^Istruct stat st = {$

ERROR: code indent should never use tabs
#735: FILE: contrib/virtiofsd/passthrough_ll.c:713:
+^I^I^I^I.st_ino = d->entry->d_ino,$

ERROR: code indent should never use tabs
#736: FILE: contrib/virtiofsd/passthrough_ll.c:714:
+^I^I^I^I.st_mode = d->entry->d_type << 12,$

ERROR: code indent should never use tabs
#737: FILE: contrib/virtiofsd/passthrough_ll.c:715:
+^I^I^I};$

ERROR: code indent should never use tabs
#738: FILE: contrib/virtiofsd/passthrough_ll.c:716:
+^I^I^Ientsize = fuse_add_direntry(req, p, rem, name,$

ERROR: code indent should never use tabs
#739: FILE: contrib/virtiofsd/passthrough_ll.c:717:
+^I^I^I^I^I^I    &st, nextoff);$

ERROR: code indent should never use tabs
#740: FILE: contrib/virtiofsd/passthrough_ll.c:718:
+^I^I}$

ERROR: code indent should never use tabs
#741: FILE: contrib/virtiofsd/passthrough_ll.c:719:
+^I^Iif (entsize > rem) {$

ERROR: trailing whitespace
#742: FILE: contrib/virtiofsd/passthrough_ll.c:720:
+^I^I^Iif (entry_ino != 0) $

ERROR: code indent should never use tabs
#742: FILE: contrib/virtiofsd/passthrough_ll.c:720:
+^I^I^Iif (entry_ino != 0) $

ERROR: braces {} are necessary for all arms of this statement
#742: FILE: contrib/virtiofsd/passthrough_ll.c:720:
+                       if (entry_ino != 0) 
[...]

ERROR: code indent should never use tabs
#743: FILE: contrib/virtiofsd/passthrough_ll.c:721:
+^I^I^I^Ilo_forget_one(req, entry_ino, 1);$

ERROR: code indent should never use tabs
#744: FILE: contrib/virtiofsd/passthrough_ll.c:722:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#745: FILE: contrib/virtiofsd/passthrough_ll.c:723:
+^I^I}$

ERROR: trailing whitespace
#746: FILE: contrib/virtiofsd/passthrough_ll.c:724:
+^I^I$

ERROR: code indent should never use tabs
#746: FILE: contrib/virtiofsd/passthrough_ll.c:724:
+^I^I$

ERROR: code indent should never use tabs
#747: FILE: contrib/virtiofsd/passthrough_ll.c:725:
+^I^Ip += entsize;$

ERROR: code indent should never use tabs
#748: FILE: contrib/virtiofsd/passthrough_ll.c:726:
+^I^Irem -= entsize;$

ERROR: code indent should never use tabs
#750: FILE: contrib/virtiofsd/passthrough_ll.c:728:
+^I^Id->entry = NULL;$

ERROR: code indent should never use tabs
#751: FILE: contrib/virtiofsd/passthrough_ll.c:729:
+^I^Id->offset = nextoff;$

ERROR: code indent should never use tabs
#752: FILE: contrib/virtiofsd/passthrough_ll.c:730:
+^I}$

ERROR: do not use C99 // comments
#756: FILE: contrib/virtiofsd/passthrough_ll.c:734:
+    // If there's an error, we can only signal it if we haven't stored

ERROR: do not use C99 // comments
#757: FILE: contrib/virtiofsd/passthrough_ll.c:735:
+    // any entries yet - otherwise we'd end up with wrong lookup

ERROR: do not use C99 // comments
#758: FILE: contrib/virtiofsd/passthrough_ll.c:736:
+    // counts for the entries that are already in the buffer. So we

ERROR: do not use C99 // comments
#759: FILE: contrib/virtiofsd/passthrough_ll.c:737:
+    // return what we've collected until that point.

ERROR: braces {} are necessary for all arms of this statement
#760: FILE: contrib/virtiofsd/passthrough_ll.c:738:
+    if (err && rem == size)
[...]
+    else
[...]

ERROR: code indent should never use tabs
#761: FILE: contrib/virtiofsd/passthrough_ll.c:739:
+^I    fuse_reply_err(req, err);$

ERROR: code indent should never use tabs
#763: FILE: contrib/virtiofsd/passthrough_ll.c:741:
+^I    fuse_reply_buf(req, buf, size - rem);$

ERROR: code indent should never use tabs
#768: FILE: contrib/virtiofsd/passthrough_ll.c:746:
+^I^I       off_t offset, struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#770: FILE: contrib/virtiofsd/passthrough_ll.c:748:
+^Ilo_do_readdir(req, ino, size, offset, fi, 0);$

ERROR: code indent should never use tabs
#774: FILE: contrib/virtiofsd/passthrough_ll.c:752:
+^I^I^I   off_t offset, struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#776: FILE: contrib/virtiofsd/passthrough_ll.c:754:
+^Ilo_do_readdir(req, ino, size, offset, fi, 1);$

WARNING: line over 80 characters
#779: FILE: contrib/virtiofsd/passthrough_ll.c:757:
+static void lo_releasedir(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)

ERROR: code indent should never use tabs
#781: FILE: contrib/virtiofsd/passthrough_ll.c:759:
+^Istruct lo_dirp *d = lo_dirp(fi);$

ERROR: code indent should never use tabs
#782: FILE: contrib/virtiofsd/passthrough_ll.c:760:
+^I(void) ino;$

ERROR: code indent should never use tabs
#783: FILE: contrib/virtiofsd/passthrough_ll.c:761:
+^Iclosedir(d->dp);$

ERROR: code indent should never use tabs
#784: FILE: contrib/virtiofsd/passthrough_ll.c:762:
+^Ifree(d);$

ERROR: code indent should never use tabs
#785: FILE: contrib/virtiofsd/passthrough_ll.c:763:
+^Ifuse_reply_err(req, 0);$

ERROR: code indent should never use tabs
#789: FILE: contrib/virtiofsd/passthrough_ll.c:767:
+^I^I      mode_t mode, struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#791: FILE: contrib/virtiofsd/passthrough_ll.c:769:
+^Iint fd;$

ERROR: code indent should never use tabs
#792: FILE: contrib/virtiofsd/passthrough_ll.c:770:
+^Istruct lo_data *lo = lo_data(req);$

ERROR: code indent should never use tabs
#793: FILE: contrib/virtiofsd/passthrough_ll.c:771:
+^Istruct fuse_entry_param e;$

ERROR: code indent should never use tabs
#794: FILE: contrib/virtiofsd/passthrough_ll.c:772:
+^Iint err;$

ERROR: code indent should never use tabs
#796: FILE: contrib/virtiofsd/passthrough_ll.c:774:
+^Iif (lo_debug(req))$

WARNING: line over 80 characters
#797: FILE: contrib/virtiofsd/passthrough_ll.c:775:
+               fuse_log(FUSE_LOG_DEBUG, "lo_create(parent=%" PRIu64 ", name=%s)\n",

ERROR: code indent should never use tabs
#797: FILE: contrib/virtiofsd/passthrough_ll.c:775:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_create(parent=%" PRIu64 ", name=%s)\n",$

ERROR: code indent should never use tabs
#798: FILE: contrib/virtiofsd/passthrough_ll.c:776:
+^I^I^Iparent, name);$

ERROR: code indent should never use tabs
#800: FILE: contrib/virtiofsd/passthrough_ll.c:778:
+^Ifd = openat(lo_fd(req, parent), name,$

ERROR: code indent should never use tabs
#801: FILE: contrib/virtiofsd/passthrough_ll.c:779:
+^I^I    (fi->flags | O_CREAT) & ~O_NOFOLLOW, mode);$

ERROR: code indent should never use tabs
#802: FILE: contrib/virtiofsd/passthrough_ll.c:780:
+^Iif (fd == -1)$

ERROR: braces {} are necessary for all arms of this statement
#802: FILE: contrib/virtiofsd/passthrough_ll.c:780:
+       if (fd == -1)
[...]

ERROR: code indent should never use tabs
#803: FILE: contrib/virtiofsd/passthrough_ll.c:781:
+^I^Ireturn (void) fuse_reply_err(req, errno);$

ERROR: code indent should never use tabs
#805: FILE: contrib/virtiofsd/passthrough_ll.c:783:
+^Ifi->fh = fd;$

ERROR: code indent should never use tabs
#806: FILE: contrib/virtiofsd/passthrough_ll.c:784:
+^Iif (lo->cache == CACHE_NEVER)$

ERROR: braces {} are necessary for all arms of this statement
#806: FILE: contrib/virtiofsd/passthrough_ll.c:784:
+       if (lo->cache == CACHE_NEVER)
[...]
+       else if (lo->cache == CACHE_ALWAYS)
[...]

ERROR: code indent should never use tabs
#807: FILE: contrib/virtiofsd/passthrough_ll.c:785:
+^I^Ifi->direct_io = 1;$

ERROR: code indent should never use tabs
#808: FILE: contrib/virtiofsd/passthrough_ll.c:786:
+^Ielse if (lo->cache == CACHE_ALWAYS)$

ERROR: braces {} are necessary for all arms of this statement
#808: FILE: contrib/virtiofsd/passthrough_ll.c:786:
+       else if (lo->cache == CACHE_ALWAYS)
[...]

ERROR: code indent should never use tabs
#809: FILE: contrib/virtiofsd/passthrough_ll.c:787:
+^I^Ifi->keep_cache = 1;$

ERROR: code indent should never use tabs
#811: FILE: contrib/virtiofsd/passthrough_ll.c:789:
+^Ierr = lo_do_lookup(req, parent, name, &e);$

ERROR: code indent should never use tabs
#812: FILE: contrib/virtiofsd/passthrough_ll.c:790:
+^Iif (err)$

ERROR: braces {} are necessary for all arms of this statement
#812: FILE: contrib/virtiofsd/passthrough_ll.c:790:
+       if (err)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#813: FILE: contrib/virtiofsd/passthrough_ll.c:791:
+^I^Ifuse_reply_err(req, err);$

ERROR: code indent should never use tabs
#814: FILE: contrib/virtiofsd/passthrough_ll.c:792:
+^Ielse$

ERROR: code indent should never use tabs
#815: FILE: contrib/virtiofsd/passthrough_ll.c:793:
+^I^Ifuse_reply_create(req, &e, fi);$

ERROR: code indent should never use tabs
#819: FILE: contrib/virtiofsd/passthrough_ll.c:797:
+^I^I^Istruct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#821: FILE: contrib/virtiofsd/passthrough_ll.c:799:
+^Iint res;$

ERROR: code indent should never use tabs
#822: FILE: contrib/virtiofsd/passthrough_ll.c:800:
+^Iint fd = dirfd(lo_dirp(fi)->dp);$

ERROR: code indent should never use tabs
#823: FILE: contrib/virtiofsd/passthrough_ll.c:801:
+^I(void) ino;$

ERROR: code indent should never use tabs
#824: FILE: contrib/virtiofsd/passthrough_ll.c:802:
+^Iif (datasync)$

ERROR: braces {} are necessary for all arms of this statement
#824: FILE: contrib/virtiofsd/passthrough_ll.c:802:
+       if (datasync)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#825: FILE: contrib/virtiofsd/passthrough_ll.c:803:
+^I^Ires = fdatasync(fd);$

ERROR: code indent should never use tabs
#826: FILE: contrib/virtiofsd/passthrough_ll.c:804:
+^Ielse$

ERROR: code indent should never use tabs
#827: FILE: contrib/virtiofsd/passthrough_ll.c:805:
+^I^Ires = fsync(fd);$

ERROR: code indent should never use tabs
#828: FILE: contrib/virtiofsd/passthrough_ll.c:806:
+^Ifuse_reply_err(req, res == -1 ? errno : 0);$

ERROR: code indent should never use tabs
#833: FILE: contrib/virtiofsd/passthrough_ll.c:811:
+^Iint fd;$

ERROR: code indent should never use tabs
#834: FILE: contrib/virtiofsd/passthrough_ll.c:812:
+^Ichar buf[64];$

ERROR: code indent should never use tabs
#835: FILE: contrib/virtiofsd/passthrough_ll.c:813:
+^Istruct lo_data *lo = lo_data(req);$

ERROR: code indent should never use tabs
#837: FILE: contrib/virtiofsd/passthrough_ll.c:815:
+^Iif (lo_debug(req))$

ERROR: code indent should never use tabs
#838: FILE: contrib/virtiofsd/passthrough_ll.c:816:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_open(ino=%" PRIu64 ", flags=%d)\n",$

ERROR: code indent should never use tabs
#839: FILE: contrib/virtiofsd/passthrough_ll.c:817:
+^I^I^Iino, fi->flags);$

ERROR: code indent should never use tabs
#841: FILE: contrib/virtiofsd/passthrough_ll.c:819:
+^I/* With writeback cache, kernel may send read requests even$

WARNING: Block comments use a leading /* on a separate line
#841: FILE: contrib/virtiofsd/passthrough_ll.c:819:
+       /* With writeback cache, kernel may send read requests even

ERROR: code indent should never use tabs
#842: FILE: contrib/virtiofsd/passthrough_ll.c:820:
+^I   when userspace opened write-only */$

WARNING: Block comments use * on subsequent lines
#842: FILE: contrib/virtiofsd/passthrough_ll.c:820:
+       /* With writeback cache, kernel may send read requests even
+          when userspace opened write-only */

WARNING: Block comments use a trailing */ on a separate line
#842: FILE: contrib/virtiofsd/passthrough_ll.c:820:
+          when userspace opened write-only */

ERROR: code indent should never use tabs
#843: FILE: contrib/virtiofsd/passthrough_ll.c:821:
+^Iif (lo->writeback && (fi->flags & O_ACCMODE) == O_WRONLY) {$

ERROR: code indent should never use tabs
#844: FILE: contrib/virtiofsd/passthrough_ll.c:822:
+^I^Ifi->flags &= ~O_ACCMODE;$

ERROR: code indent should never use tabs
#845: FILE: contrib/virtiofsd/passthrough_ll.c:823:
+^I^Ifi->flags |= O_RDWR;$

ERROR: code indent should never use tabs
#846: FILE: contrib/virtiofsd/passthrough_ll.c:824:
+^I}$

ERROR: code indent should never use tabs
#848: FILE: contrib/virtiofsd/passthrough_ll.c:826:
+^I/* With writeback cache, O_APPEND is handled by the kernel.$

WARNING: Block comments use a leading /* on a separate line
#848: FILE: contrib/virtiofsd/passthrough_ll.c:826:
+       /* With writeback cache, O_APPEND is handled by the kernel.

ERROR: code indent should never use tabs
#849: FILE: contrib/virtiofsd/passthrough_ll.c:827:
+^I   This breaks atomicity (since the file may change in the$

WARNING: Block comments use * on subsequent lines
#849: FILE: contrib/virtiofsd/passthrough_ll.c:827:
+       /* 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
#850: FILE: contrib/virtiofsd/passthrough_ll.c:828:
+^I   underlying filesystem, so that the kernel's idea of the$

ERROR: code indent should never use tabs
#851: FILE: contrib/virtiofsd/passthrough_ll.c:829:
+^I   end of the file isn't accurate anymore). In this example,$

ERROR: code indent should never use tabs
#852: FILE: contrib/virtiofsd/passthrough_ll.c:830:
+^I   we just accept that. A more rigorous filesystem may want$

ERROR: code indent should never use tabs
#853: FILE: contrib/virtiofsd/passthrough_ll.c:831:
+^I   to return an error here */$

WARNING: Block comments use a trailing */ on a separate line
#853: FILE: contrib/virtiofsd/passthrough_ll.c:831:
+          to return an error here */

ERROR: code indent should never use tabs
#854: FILE: contrib/virtiofsd/passthrough_ll.c:832:
+^Iif (lo->writeback && (fi->flags & O_APPEND))$

ERROR: braces {} are necessary for all arms of this statement
#854: FILE: contrib/virtiofsd/passthrough_ll.c:832:
+       if (lo->writeback && (fi->flags & O_APPEND))
[...]

ERROR: code indent should never use tabs
#855: FILE: contrib/virtiofsd/passthrough_ll.c:833:
+^I^Ifi->flags &= ~O_APPEND;$

ERROR: code indent should never use tabs
#857: FILE: contrib/virtiofsd/passthrough_ll.c:835:
+^Isprintf(buf, "/proc/self/fd/%i", lo_fd(req, ino));$

ERROR: code indent should never use tabs
#858: FILE: contrib/virtiofsd/passthrough_ll.c:836:
+^Ifd = open(buf, fi->flags & ~O_NOFOLLOW);$

ERROR: code indent should never use tabs
#859: FILE: contrib/virtiofsd/passthrough_ll.c:837:
+^Iif (fd == -1)$

ERROR: braces {} are necessary for all arms of this statement
#859: FILE: contrib/virtiofsd/passthrough_ll.c:837:
+       if (fd == -1)
[...]

ERROR: code indent should never use tabs
#860: FILE: contrib/virtiofsd/passthrough_ll.c:838:
+^I^Ireturn (void) fuse_reply_err(req, errno);$

ERROR: code indent should never use tabs
#862: FILE: contrib/virtiofsd/passthrough_ll.c:840:
+^Ifi->fh = fd;$

ERROR: code indent should never use tabs
#863: FILE: contrib/virtiofsd/passthrough_ll.c:841:
+^Iif (lo->cache == CACHE_NEVER)$

ERROR: braces {} are necessary for all arms of this statement
#863: FILE: contrib/virtiofsd/passthrough_ll.c:841:
+       if (lo->cache == CACHE_NEVER)
[...]
+       else if (lo->cache == CACHE_ALWAYS)
[...]

ERROR: code indent should never use tabs
#864: FILE: contrib/virtiofsd/passthrough_ll.c:842:
+^I^Ifi->direct_io = 1;$

ERROR: code indent should never use tabs
#865: FILE: contrib/virtiofsd/passthrough_ll.c:843:
+^Ielse if (lo->cache == CACHE_ALWAYS)$

ERROR: braces {} are necessary for all arms of this statement
#865: FILE: contrib/virtiofsd/passthrough_ll.c:843:
+       else if (lo->cache == CACHE_ALWAYS)
[...]

ERROR: code indent should never use tabs
#866: FILE: contrib/virtiofsd/passthrough_ll.c:844:
+^I^Ifi->keep_cache = 1;$

ERROR: code indent should never use tabs
#867: FILE: contrib/virtiofsd/passthrough_ll.c:845:
+^Ifuse_reply_open(req, fi);$

WARNING: line over 80 characters
#870: FILE: contrib/virtiofsd/passthrough_ll.c:848:
+static void lo_release(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)

ERROR: code indent should never use tabs
#872: FILE: contrib/virtiofsd/passthrough_ll.c:850:
+^I(void) ino;$

ERROR: code indent should never use tabs
#874: FILE: contrib/virtiofsd/passthrough_ll.c:852:
+^Iclose(fi->fh);$

ERROR: code indent should never use tabs
#875: FILE: contrib/virtiofsd/passthrough_ll.c:853:
+^Ifuse_reply_err(req, 0);$

ERROR: code indent should never use tabs
#880: FILE: contrib/virtiofsd/passthrough_ll.c:858:
+^Iint res;$

ERROR: code indent should never use tabs
#881: FILE: contrib/virtiofsd/passthrough_ll.c:859:
+^I(void) ino;$

ERROR: code indent should never use tabs
#882: FILE: contrib/virtiofsd/passthrough_ll.c:860:
+^Ires = close(dup(fi->fh));$

ERROR: code indent should never use tabs
#883: FILE: contrib/virtiofsd/passthrough_ll.c:861:
+^Ifuse_reply_err(req, res == -1 ? errno : 0);$

ERROR: code indent should never use tabs
#887: FILE: contrib/virtiofsd/passthrough_ll.c:865:
+^I^I     struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#889: FILE: contrib/virtiofsd/passthrough_ll.c:867:
+^Iint res;$

ERROR: code indent should never use tabs
#890: FILE: contrib/virtiofsd/passthrough_ll.c:868:
+^I(void) ino;$

ERROR: code indent should never use tabs
#891: FILE: contrib/virtiofsd/passthrough_ll.c:869:
+^Iif (datasync)$

ERROR: braces {} are necessary for all arms of this statement
#891: FILE: contrib/virtiofsd/passthrough_ll.c:869:
+       if (datasync)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#892: FILE: contrib/virtiofsd/passthrough_ll.c:870:
+^I^Ires = fdatasync(fi->fh);$

ERROR: code indent should never use tabs
#893: FILE: contrib/virtiofsd/passthrough_ll.c:871:
+^Ielse$

ERROR: code indent should never use tabs
#894: FILE: contrib/virtiofsd/passthrough_ll.c:872:
+^I^Ires = fsync(fi->fh);$

ERROR: code indent should never use tabs
#895: FILE: contrib/virtiofsd/passthrough_ll.c:873:
+^Ifuse_reply_err(req, res == -1 ? errno : 0);$

ERROR: code indent should never use tabs
#899: FILE: contrib/virtiofsd/passthrough_ll.c:877:
+^I^I    off_t offset, struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#901: FILE: contrib/virtiofsd/passthrough_ll.c:879:
+^Istruct fuse_bufvec buf = FUSE_BUFVEC_INIT(size);$

ERROR: code indent should never use tabs
#903: FILE: contrib/virtiofsd/passthrough_ll.c:881:
+^Iif (lo_debug(req))$

ERROR: code indent should never use tabs
#904: FILE: contrib/virtiofsd/passthrough_ll.c:882:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_read(ino=%" PRIu64 ", size=%zd, "$

ERROR: code indent should never use tabs
#905: FILE: contrib/virtiofsd/passthrough_ll.c:883:
+^I^I^I"off=%lu)\n", ino, size, (unsigned long) offset);$

ERROR: code indent should never use tabs
#907: FILE: contrib/virtiofsd/passthrough_ll.c:885:
+^Ibuf.buf[0].flags = FUSE_BUF_IS_FD | FUSE_BUF_FD_SEEK;$

ERROR: code indent should never use tabs
#908: FILE: contrib/virtiofsd/passthrough_ll.c:886:
+^Ibuf.buf[0].fd = fi->fh;$

ERROR: code indent should never use tabs
#909: FILE: contrib/virtiofsd/passthrough_ll.c:887:
+^Ibuf.buf[0].pos = offset;$

ERROR: code indent should never use tabs
#911: FILE: contrib/virtiofsd/passthrough_ll.c:889:
+^Ifuse_reply_data(req, &buf, FUSE_BUF_SPLICE_MOVE);$

ERROR: code indent should never use tabs
#915: FILE: contrib/virtiofsd/passthrough_ll.c:893:
+^I^I^I struct fuse_bufvec *in_buf, off_t off,$

ERROR: code indent should never use tabs
#916: FILE: contrib/virtiofsd/passthrough_ll.c:894:
+^I^I^I struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#918: FILE: contrib/virtiofsd/passthrough_ll.c:896:
+^I(void) ino;$

ERROR: code indent should never use tabs
#919: FILE: contrib/virtiofsd/passthrough_ll.c:897:
+^Issize_t res;$

ERROR: code indent should never use tabs
#920: FILE: contrib/virtiofsd/passthrough_ll.c:898:
+^Istruct fuse_bufvec out_buf = FUSE_BUFVEC_INIT(fuse_buf_size(in_buf));$

ERROR: code indent should never use tabs
#922: FILE: contrib/virtiofsd/passthrough_ll.c:900:
+^Iout_buf.buf[0].flags = FUSE_BUF_IS_FD | FUSE_BUF_FD_SEEK;$

ERROR: code indent should never use tabs
#923: FILE: contrib/virtiofsd/passthrough_ll.c:901:
+^Iout_buf.buf[0].fd = fi->fh;$

ERROR: code indent should never use tabs
#924: FILE: contrib/virtiofsd/passthrough_ll.c:902:
+^Iout_buf.buf[0].pos = off;$

ERROR: code indent should never use tabs
#926: FILE: contrib/virtiofsd/passthrough_ll.c:904:
+^Iif (lo_debug(req))$

WARNING: line over 80 characters
#927: FILE: contrib/virtiofsd/passthrough_ll.c:905:
+               fuse_log(FUSE_LOG_DEBUG, "lo_write(ino=%" PRIu64 ", size=%zd, off=%lu)\n",

ERROR: code indent should never use tabs
#927: FILE: contrib/virtiofsd/passthrough_ll.c:905:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_write(ino=%" PRIu64 ", size=%zd, off=%lu)\n",$

ERROR: code indent should never use tabs
#928: FILE: contrib/virtiofsd/passthrough_ll.c:906:
+^I^I^Iino, out_buf.buf[0].size, (unsigned long) off);$

ERROR: code indent should never use tabs
#930: FILE: contrib/virtiofsd/passthrough_ll.c:908:
+^Ires = fuse_buf_copy(&out_buf, in_buf, 0);$

ERROR: code indent should never use tabs
#931: FILE: contrib/virtiofsd/passthrough_ll.c:909:
+^Iif(res < 0)$

ERROR: space required before the open parenthesis '('
#931: FILE: contrib/virtiofsd/passthrough_ll.c:909:
+       if(res < 0)

ERROR: braces {} are necessary for all arms of this statement
#931: FILE: contrib/virtiofsd/passthrough_ll.c:909:
+       if(res < 0)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#932: FILE: contrib/virtiofsd/passthrough_ll.c:910:
+^I^Ifuse_reply_err(req, -res);$

ERROR: code indent should never use tabs
#933: FILE: contrib/virtiofsd/passthrough_ll.c:911:
+^Ielse$

ERROR: code indent should never use tabs
#934: FILE: contrib/virtiofsd/passthrough_ll.c:912:
+^I^Ifuse_reply_write(req, (size_t) res);$

ERROR: code indent should never use tabs
#939: FILE: contrib/virtiofsd/passthrough_ll.c:917:
+^Iint res;$

ERROR: code indent should never use tabs
#940: FILE: contrib/virtiofsd/passthrough_ll.c:918:
+^Istruct statvfs stbuf;$

ERROR: code indent should never use tabs
#942: FILE: contrib/virtiofsd/passthrough_ll.c:920:
+^Ires = fstatvfs(lo_fd(req, ino), &stbuf);$

ERROR: code indent should never use tabs
#943: FILE: contrib/virtiofsd/passthrough_ll.c:921:
+^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#943: FILE: contrib/virtiofsd/passthrough_ll.c:921:
+       if (res == -1)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#944: FILE: contrib/virtiofsd/passthrough_ll.c:922:
+^I^Ifuse_reply_err(req, errno);$

ERROR: code indent should never use tabs
#945: FILE: contrib/virtiofsd/passthrough_ll.c:923:
+^Ielse$

ERROR: code indent should never use tabs
#946: FILE: contrib/virtiofsd/passthrough_ll.c:924:
+^I^Ifuse_reply_statfs(req, &stbuf);$

ERROR: code indent should never use tabs
#950: FILE: contrib/virtiofsd/passthrough_ll.c:928:
+^I^I^I off_t offset, off_t length, struct fuse_file_info *fi)$

ERROR: code indent should never use tabs
#952: FILE: contrib/virtiofsd/passthrough_ll.c:930:
+^Iint err = EOPNOTSUPP;$

ERROR: code indent should never use tabs
#953: FILE: contrib/virtiofsd/passthrough_ll.c:931:
+^I(void) ino;$

ERROR: code indent should never use tabs
#956: FILE: contrib/virtiofsd/passthrough_ll.c:934:
+^Ierr = fallocate(fi->fh, mode, offset, length);$

ERROR: code indent should never use tabs
#957: FILE: contrib/virtiofsd/passthrough_ll.c:935:
+^Iif (err < 0)$

ERROR: braces {} are necessary for all arms of this statement
#957: FILE: contrib/virtiofsd/passthrough_ll.c:935:
+       if (err < 0)
[...]

ERROR: code indent should never use tabs
#958: FILE: contrib/virtiofsd/passthrough_ll.c:936:
+^I^Ierr = errno;$

ERROR: code indent should never use tabs
#961: FILE: contrib/virtiofsd/passthrough_ll.c:939:
+^Iif (mode) {$

ERROR: code indent should never use tabs
#962: FILE: contrib/virtiofsd/passthrough_ll.c:940:
+^I^Ifuse_reply_err(req, EOPNOTSUPP);$

ERROR: code indent should never use tabs
#963: FILE: contrib/virtiofsd/passthrough_ll.c:941:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#964: FILE: contrib/virtiofsd/passthrough_ll.c:942:
+^I}$

ERROR: code indent should never use tabs
#966: FILE: contrib/virtiofsd/passthrough_ll.c:944:
+^Ierr = posix_fallocate(fi->fh, offset, length);$

ERROR: code indent should never use tabs
#969: FILE: contrib/virtiofsd/passthrough_ll.c:947:
+^Ifuse_reply_err(req, err);$

ERROR: code indent should never use tabs
#973: FILE: contrib/virtiofsd/passthrough_ll.c:951:
+^I^I     int op)$

ERROR: code indent should never use tabs
#975: FILE: contrib/virtiofsd/passthrough_ll.c:953:
+^Iint res;$

ERROR: code indent should never use tabs
#976: FILE: contrib/virtiofsd/passthrough_ll.c:954:
+^I(void) ino;$

ERROR: code indent should never use tabs
#978: FILE: contrib/virtiofsd/passthrough_ll.c:956:
+^Ires = flock(fi->fh, op);$

ERROR: code indent should never use tabs
#980: FILE: contrib/virtiofsd/passthrough_ll.c:958:
+^Ifuse_reply_err(req, res == -1 ? errno : 0);$

ERROR: code indent should never use tabs
#984: FILE: contrib/virtiofsd/passthrough_ll.c:962:
+^I^I^Isize_t size)$

ERROR: code indent should never use tabs
#986: FILE: contrib/virtiofsd/passthrough_ll.c:964:
+^Ichar *value = NULL;$

ERROR: code indent should never use tabs
#987: FILE: contrib/virtiofsd/passthrough_ll.c:965:
+^Ichar procname[64];$

ERROR: code indent should never use tabs
#988: FILE: contrib/virtiofsd/passthrough_ll.c:966:
+^Istruct lo_inode *inode = lo_inode(req, ino);$

ERROR: code indent should never use tabs
#989: FILE: contrib/virtiofsd/passthrough_ll.c:967:
+^Issize_t ret;$

ERROR: code indent should never use tabs
#990: FILE: contrib/virtiofsd/passthrough_ll.c:968:
+^Iint saverr;$

ERROR: code indent should never use tabs
#992: FILE: contrib/virtiofsd/passthrough_ll.c:970:
+^Isaverr = ENOSYS;$

ERROR: code indent should never use tabs
#993: FILE: contrib/virtiofsd/passthrough_ll.c:971:
+^Iif (!lo_data(req)->xattr)$

ERROR: braces {} are necessary for all arms of this statement
#993: FILE: contrib/virtiofsd/passthrough_ll.c:971:
+       if (!lo_data(req)->xattr)
[...]

ERROR: code indent should never use tabs
#994: FILE: contrib/virtiofsd/passthrough_ll.c:972:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#996: FILE: contrib/virtiofsd/passthrough_ll.c:974:
+^Iif (lo_debug(req)) {$

ERROR: line over 90 characters
#997: FILE: contrib/virtiofsd/passthrough_ll.c:975:
+               fuse_log(FUSE_LOG_DEBUG, "lo_getxattr(ino=%" PRIu64 ", name=%s size=%zd)\n",

ERROR: code indent should never use tabs
#997: FILE: contrib/virtiofsd/passthrough_ll.c:975:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_getxattr(ino=%" PRIu64 ", name=%s size=%zd)\n",$

ERROR: code indent should never use tabs
#998: FILE: contrib/virtiofsd/passthrough_ll.c:976:
+^I^I^Iino, name, size);$

ERROR: code indent should never use tabs
#999: FILE: contrib/virtiofsd/passthrough_ll.c:977:
+^I}$

ERROR: code indent should never use tabs
#1001: FILE: contrib/virtiofsd/passthrough_ll.c:979:
+^Iif (inode->is_symlink) {$

ERROR: code indent should never use tabs
#1002: FILE: contrib/virtiofsd/passthrough_ll.c:980:
+^I^I/* Sorry, no race free way to getxattr on symlink. */$

ERROR: code indent should never use tabs
#1003: FILE: contrib/virtiofsd/passthrough_ll.c:981:
+^I^Isaverr = EPERM;$

ERROR: code indent should never use tabs
#1004: FILE: contrib/virtiofsd/passthrough_ll.c:982:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1005: FILE: contrib/virtiofsd/passthrough_ll.c:983:
+^I}$

ERROR: code indent should never use tabs
#1007: FILE: contrib/virtiofsd/passthrough_ll.c:985:
+^Isprintf(procname, "/proc/self/fd/%i", inode->fd);$

ERROR: code indent should never use tabs
#1009: FILE: contrib/virtiofsd/passthrough_ll.c:987:
+^Iif (size) {$

ERROR: code indent should never use tabs
#1010: FILE: contrib/virtiofsd/passthrough_ll.c:988:
+^I^Ivalue = malloc(size);$

ERROR: code indent should never use tabs
#1011: FILE: contrib/virtiofsd/passthrough_ll.c:989:
+^I^Iif (!value)$

ERROR: braces {} are necessary for all arms of this statement
#1011: FILE: contrib/virtiofsd/passthrough_ll.c:989:
+               if (!value)
[...]

ERROR: code indent should never use tabs
#1012: FILE: contrib/virtiofsd/passthrough_ll.c:990:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#1014: FILE: contrib/virtiofsd/passthrough_ll.c:992:
+^I^Iret = getxattr(procname, name, value, size);$

ERROR: code indent should never use tabs
#1015: FILE: contrib/virtiofsd/passthrough_ll.c:993:
+^I^Iif (ret == -1)$

ERROR: braces {} are necessary for all arms of this statement
#1015: FILE: contrib/virtiofsd/passthrough_ll.c:993:
+               if (ret == -1)
[...]

ERROR: code indent should never use tabs
#1016: FILE: contrib/virtiofsd/passthrough_ll.c:994:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#1017: FILE: contrib/virtiofsd/passthrough_ll.c:995:
+^I^Isaverr = 0;$

ERROR: code indent should never use tabs
#1018: FILE: contrib/virtiofsd/passthrough_ll.c:996:
+^I^Iif (ret == 0)$

ERROR: braces {} are necessary for all arms of this statement
#1018: FILE: contrib/virtiofsd/passthrough_ll.c:996:
+               if (ret == 0)
[...]

ERROR: code indent should never use tabs
#1019: FILE: contrib/virtiofsd/passthrough_ll.c:997:
+^I^I^Igoto out;$

ERROR: code indent should never use tabs
#1021: FILE: contrib/virtiofsd/passthrough_ll.c:999:
+^I^Ifuse_reply_buf(req, value, ret);$

ERROR: code indent should never use tabs
#1022: FILE: contrib/virtiofsd/passthrough_ll.c:1000:
+^I} else {$

ERROR: code indent should never use tabs
#1023: FILE: contrib/virtiofsd/passthrough_ll.c:1001:
+^I^Iret = getxattr(procname, name, NULL, 0);$

ERROR: code indent should never use tabs
#1024: FILE: contrib/virtiofsd/passthrough_ll.c:1002:
+^I^Iif (ret == -1)$

ERROR: braces {} are necessary for all arms of this statement
#1024: FILE: contrib/virtiofsd/passthrough_ll.c:1002:
+               if (ret == -1)
[...]

ERROR: code indent should never use tabs
#1025: FILE: contrib/virtiofsd/passthrough_ll.c:1003:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#1027: FILE: contrib/virtiofsd/passthrough_ll.c:1005:
+^I^Ifuse_reply_xattr(req, ret);$

ERROR: code indent should never use tabs
#1028: FILE: contrib/virtiofsd/passthrough_ll.c:1006:
+^I}$

ERROR: code indent should never use tabs
#1030: FILE: contrib/virtiofsd/passthrough_ll.c:1008:
+^Ifree(value);$

ERROR: code indent should never use tabs
#1031: FILE: contrib/virtiofsd/passthrough_ll.c:1009:
+^Ireturn;$

ERROR: code indent should never use tabs
#1034: FILE: contrib/virtiofsd/passthrough_ll.c:1012:
+^Isaverr = errno;$

ERROR: code indent should never use tabs
#1036: FILE: contrib/virtiofsd/passthrough_ll.c:1014:
+^Ifuse_reply_err(req, saverr);$

ERROR: code indent should never use tabs
#1037: FILE: contrib/virtiofsd/passthrough_ll.c:1015:
+^Igoto out_free;$

ERROR: code indent should never use tabs
#1042: FILE: contrib/virtiofsd/passthrough_ll.c:1020:
+^Ichar *value = NULL;$

ERROR: code indent should never use tabs
#1043: FILE: contrib/virtiofsd/passthrough_ll.c:1021:
+^Ichar procname[64];$

ERROR: code indent should never use tabs
#1044: FILE: contrib/virtiofsd/passthrough_ll.c:1022:
+^Istruct lo_inode *inode = lo_inode(req, ino);$

ERROR: code indent should never use tabs
#1045: FILE: contrib/virtiofsd/passthrough_ll.c:1023:
+^Issize_t ret;$

ERROR: code indent should never use tabs
#1046: FILE: contrib/virtiofsd/passthrough_ll.c:1024:
+^Iint saverr;$

ERROR: code indent should never use tabs
#1048: FILE: contrib/virtiofsd/passthrough_ll.c:1026:
+^Isaverr = ENOSYS;$

ERROR: code indent should never use tabs
#1049: FILE: contrib/virtiofsd/passthrough_ll.c:1027:
+^Iif (!lo_data(req)->xattr)$

ERROR: braces {} are necessary for all arms of this statement
#1049: FILE: contrib/virtiofsd/passthrough_ll.c:1027:
+       if (!lo_data(req)->xattr)
[...]

ERROR: code indent should never use tabs
#1050: FILE: contrib/virtiofsd/passthrough_ll.c:1028:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1052: FILE: contrib/virtiofsd/passthrough_ll.c:1030:
+^Iif (lo_debug(req)) {$

WARNING: line over 80 characters
#1053: FILE: contrib/virtiofsd/passthrough_ll.c:1031:
+               fuse_log(FUSE_LOG_DEBUG, "lo_listxattr(ino=%" PRIu64 ", size=%zd)\n",

ERROR: code indent should never use tabs
#1053: FILE: contrib/virtiofsd/passthrough_ll.c:1031:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_listxattr(ino=%" PRIu64 ", size=%zd)\n",$

ERROR: code indent should never use tabs
#1054: FILE: contrib/virtiofsd/passthrough_ll.c:1032:
+^I^I^Iino, size);$

ERROR: code indent should never use tabs
#1055: FILE: contrib/virtiofsd/passthrough_ll.c:1033:
+^I}$

ERROR: code indent should never use tabs
#1057: FILE: contrib/virtiofsd/passthrough_ll.c:1035:
+^Iif (inode->is_symlink) {$

ERROR: code indent should never use tabs
#1058: FILE: contrib/virtiofsd/passthrough_ll.c:1036:
+^I^I/* Sorry, no race free way to listxattr on symlink. */$

ERROR: code indent should never use tabs
#1059: FILE: contrib/virtiofsd/passthrough_ll.c:1037:
+^I^Isaverr = EPERM;$

ERROR: code indent should never use tabs
#1060: FILE: contrib/virtiofsd/passthrough_ll.c:1038:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1061: FILE: contrib/virtiofsd/passthrough_ll.c:1039:
+^I}$

ERROR: code indent should never use tabs
#1063: FILE: contrib/virtiofsd/passthrough_ll.c:1041:
+^Isprintf(procname, "/proc/self/fd/%i", inode->fd);$

ERROR: code indent should never use tabs
#1065: FILE: contrib/virtiofsd/passthrough_ll.c:1043:
+^Iif (size) {$

ERROR: code indent should never use tabs
#1066: FILE: contrib/virtiofsd/passthrough_ll.c:1044:
+^I^Ivalue = malloc(size);$

ERROR: code indent should never use tabs
#1067: FILE: contrib/virtiofsd/passthrough_ll.c:1045:
+^I^Iif (!value)$

ERROR: braces {} are necessary for all arms of this statement
#1067: FILE: contrib/virtiofsd/passthrough_ll.c:1045:
+               if (!value)
[...]

ERROR: code indent should never use tabs
#1068: FILE: contrib/virtiofsd/passthrough_ll.c:1046:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#1070: FILE: contrib/virtiofsd/passthrough_ll.c:1048:
+^I^Iret = listxattr(procname, value, size);$

ERROR: code indent should never use tabs
#1071: FILE: contrib/virtiofsd/passthrough_ll.c:1049:
+^I^Iif (ret == -1)$

ERROR: braces {} are necessary for all arms of this statement
#1071: FILE: contrib/virtiofsd/passthrough_ll.c:1049:
+               if (ret == -1)
[...]

ERROR: code indent should never use tabs
#1072: FILE: contrib/virtiofsd/passthrough_ll.c:1050:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#1073: FILE: contrib/virtiofsd/passthrough_ll.c:1051:
+^I^Isaverr = 0;$

ERROR: code indent should never use tabs
#1074: FILE: contrib/virtiofsd/passthrough_ll.c:1052:
+^I^Iif (ret == 0)$

ERROR: braces {} are necessary for all arms of this statement
#1074: FILE: contrib/virtiofsd/passthrough_ll.c:1052:
+               if (ret == 0)
[...]

ERROR: code indent should never use tabs
#1075: FILE: contrib/virtiofsd/passthrough_ll.c:1053:
+^I^I^Igoto out;$

ERROR: code indent should never use tabs
#1077: FILE: contrib/virtiofsd/passthrough_ll.c:1055:
+^I^Ifuse_reply_buf(req, value, ret);$

ERROR: code indent should never use tabs
#1078: FILE: contrib/virtiofsd/passthrough_ll.c:1056:
+^I} else {$

ERROR: code indent should never use tabs
#1079: FILE: contrib/virtiofsd/passthrough_ll.c:1057:
+^I^Iret = listxattr(procname, NULL, 0);$

ERROR: code indent should never use tabs
#1080: FILE: contrib/virtiofsd/passthrough_ll.c:1058:
+^I^Iif (ret == -1)$

ERROR: braces {} are necessary for all arms of this statement
#1080: FILE: contrib/virtiofsd/passthrough_ll.c:1058:
+               if (ret == -1)
[...]

ERROR: code indent should never use tabs
#1081: FILE: contrib/virtiofsd/passthrough_ll.c:1059:
+^I^I^Igoto out_err;$

ERROR: code indent should never use tabs
#1083: FILE: contrib/virtiofsd/passthrough_ll.c:1061:
+^I^Ifuse_reply_xattr(req, ret);$

ERROR: code indent should never use tabs
#1084: FILE: contrib/virtiofsd/passthrough_ll.c:1062:
+^I}$

ERROR: code indent should never use tabs
#1086: FILE: contrib/virtiofsd/passthrough_ll.c:1064:
+^Ifree(value);$

ERROR: code indent should never use tabs
#1087: FILE: contrib/virtiofsd/passthrough_ll.c:1065:
+^Ireturn;$

ERROR: code indent should never use tabs
#1090: FILE: contrib/virtiofsd/passthrough_ll.c:1068:
+^Isaverr = errno;$

ERROR: code indent should never use tabs
#1092: FILE: contrib/virtiofsd/passthrough_ll.c:1070:
+^Ifuse_reply_err(req, saverr);$

ERROR: code indent should never use tabs
#1093: FILE: contrib/virtiofsd/passthrough_ll.c:1071:
+^Igoto out_free;$

ERROR: code indent should never use tabs
#1097: FILE: contrib/virtiofsd/passthrough_ll.c:1075:
+^I^I^Iconst char *value, size_t size, int flags)$

ERROR: code indent should never use tabs
#1099: FILE: contrib/virtiofsd/passthrough_ll.c:1077:
+^Ichar procname[64];$

ERROR: code indent should never use tabs
#1100: FILE: contrib/virtiofsd/passthrough_ll.c:1078:
+^Istruct lo_inode *inode = lo_inode(req, ino);$

ERROR: code indent should never use tabs
#1101: FILE: contrib/virtiofsd/passthrough_ll.c:1079:
+^Issize_t ret;$

ERROR: code indent should never use tabs
#1102: FILE: contrib/virtiofsd/passthrough_ll.c:1080:
+^Iint saverr;$

ERROR: code indent should never use tabs
#1104: FILE: contrib/virtiofsd/passthrough_ll.c:1082:
+^Isaverr = ENOSYS;$

ERROR: code indent should never use tabs
#1105: FILE: contrib/virtiofsd/passthrough_ll.c:1083:
+^Iif (!lo_data(req)->xattr)$

ERROR: braces {} are necessary for all arms of this statement
#1105: FILE: contrib/virtiofsd/passthrough_ll.c:1083:
+       if (!lo_data(req)->xattr)
[...]

ERROR: code indent should never use tabs
#1106: FILE: contrib/virtiofsd/passthrough_ll.c:1084:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1108: FILE: contrib/virtiofsd/passthrough_ll.c:1086:
+^Iif (lo_debug(req)) {$

ERROR: line over 90 characters
#1109: FILE: contrib/virtiofsd/passthrough_ll.c:1087:
+               fuse_log(FUSE_LOG_DEBUG, "lo_setxattr(ino=%" PRIu64 ", name=%s value=%s size=%zd)\n",

ERROR: code indent should never use tabs
#1109: FILE: contrib/virtiofsd/passthrough_ll.c:1087:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_setxattr(ino=%" PRIu64 ", name=%s value=%s size=%zd)\n",$

ERROR: code indent should never use tabs
#1110: FILE: contrib/virtiofsd/passthrough_ll.c:1088:
+^I^I^Iino, name, value, size);$

ERROR: code indent should never use tabs
#1111: FILE: contrib/virtiofsd/passthrough_ll.c:1089:
+^I}$

ERROR: code indent should never use tabs
#1113: FILE: contrib/virtiofsd/passthrough_ll.c:1091:
+^Iif (inode->is_symlink) {$

ERROR: code indent should never use tabs
#1114: FILE: contrib/virtiofsd/passthrough_ll.c:1092:
+^I^I/* Sorry, no race free way to setxattr on symlink. */$

ERROR: code indent should never use tabs
#1115: FILE: contrib/virtiofsd/passthrough_ll.c:1093:
+^I^Isaverr = EPERM;$

ERROR: code indent should never use tabs
#1116: FILE: contrib/virtiofsd/passthrough_ll.c:1094:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1117: FILE: contrib/virtiofsd/passthrough_ll.c:1095:
+^I}$

ERROR: code indent should never use tabs
#1119: FILE: contrib/virtiofsd/passthrough_ll.c:1097:
+^Isprintf(procname, "/proc/self/fd/%i", inode->fd);$

ERROR: code indent should never use tabs
#1121: FILE: contrib/virtiofsd/passthrough_ll.c:1099:
+^Iret = setxattr(procname, name, value, size, flags);$

ERROR: code indent should never use tabs
#1122: FILE: contrib/virtiofsd/passthrough_ll.c:1100:
+^Isaverr = ret == -1 ? errno : 0;$

ERROR: code indent should never use tabs
#1125: FILE: contrib/virtiofsd/passthrough_ll.c:1103:
+^Ifuse_reply_err(req, saverr);$

ERROR: code indent should never use tabs
#1130: FILE: contrib/virtiofsd/passthrough_ll.c:1108:
+^Ichar procname[64];$

ERROR: code indent should never use tabs
#1131: FILE: contrib/virtiofsd/passthrough_ll.c:1109:
+^Istruct lo_inode *inode = lo_inode(req, ino);$

ERROR: code indent should never use tabs
#1132: FILE: contrib/virtiofsd/passthrough_ll.c:1110:
+^Issize_t ret;$

ERROR: code indent should never use tabs
#1133: FILE: contrib/virtiofsd/passthrough_ll.c:1111:
+^Iint saverr;$

ERROR: code indent should never use tabs
#1135: FILE: contrib/virtiofsd/passthrough_ll.c:1113:
+^Isaverr = ENOSYS;$

ERROR: code indent should never use tabs
#1136: FILE: contrib/virtiofsd/passthrough_ll.c:1114:
+^Iif (!lo_data(req)->xattr)$

ERROR: braces {} are necessary for all arms of this statement
#1136: FILE: contrib/virtiofsd/passthrough_ll.c:1114:
+       if (!lo_data(req)->xattr)
[...]

ERROR: code indent should never use tabs
#1137: FILE: contrib/virtiofsd/passthrough_ll.c:1115:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1139: FILE: contrib/virtiofsd/passthrough_ll.c:1117:
+^Iif (lo_debug(req)) {$

WARNING: line over 80 characters
#1140: FILE: contrib/virtiofsd/passthrough_ll.c:1118:
+               fuse_log(FUSE_LOG_DEBUG, "lo_removexattr(ino=%" PRIu64 ", name=%s)\n",

ERROR: code indent should never use tabs
#1140: FILE: contrib/virtiofsd/passthrough_ll.c:1118:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_removexattr(ino=%" PRIu64 ", name=%s)\n",$

ERROR: code indent should never use tabs
#1141: FILE: contrib/virtiofsd/passthrough_ll.c:1119:
+^I^I^Iino, name);$

ERROR: code indent should never use tabs
#1142: FILE: contrib/virtiofsd/passthrough_ll.c:1120:
+^I}$

ERROR: code indent should never use tabs
#1144: FILE: contrib/virtiofsd/passthrough_ll.c:1122:
+^Iif (inode->is_symlink) {$

ERROR: code indent should never use tabs
#1145: FILE: contrib/virtiofsd/passthrough_ll.c:1123:
+^I^I/* Sorry, no race free way to setxattr on symlink. */$

ERROR: code indent should never use tabs
#1146: FILE: contrib/virtiofsd/passthrough_ll.c:1124:
+^I^Isaverr = EPERM;$

ERROR: code indent should never use tabs
#1147: FILE: contrib/virtiofsd/passthrough_ll.c:1125:
+^I^Igoto out;$

ERROR: code indent should never use tabs
#1148: FILE: contrib/virtiofsd/passthrough_ll.c:1126:
+^I}$

ERROR: code indent should never use tabs
#1150: FILE: contrib/virtiofsd/passthrough_ll.c:1128:
+^Isprintf(procname, "/proc/self/fd/%i", inode->fd);$

ERROR: code indent should never use tabs
#1152: FILE: contrib/virtiofsd/passthrough_ll.c:1130:
+^Iret = removexattr(procname, name);$

ERROR: code indent should never use tabs
#1153: FILE: contrib/virtiofsd/passthrough_ll.c:1131:
+^Isaverr = ret == -1 ? errno : 0;$

ERROR: code indent should never use tabs
#1156: FILE: contrib/virtiofsd/passthrough_ll.c:1134:
+^Ifuse_reply_err(req, saverr);$

ERROR: code indent should never use tabs
#1161: FILE: contrib/virtiofsd/passthrough_ll.c:1139:
+^I^I^I       struct fuse_file_info *fi_in,$

ERROR: code indent should never use tabs
#1162: FILE: contrib/virtiofsd/passthrough_ll.c:1140:
+^I^I^I       fuse_ino_t ino_out, off_t off_out,$

ERROR: code indent should never use tabs
#1163: FILE: contrib/virtiofsd/passthrough_ll.c:1141:
+^I^I^I       struct fuse_file_info *fi_out, size_t len,$

ERROR: code indent should never use tabs
#1164: FILE: contrib/virtiofsd/passthrough_ll.c:1142:
+^I^I^I       int flags)$

ERROR: code indent should never use tabs
#1166: FILE: contrib/virtiofsd/passthrough_ll.c:1144:
+^Issize_t res;$

ERROR: code indent should never use tabs
#1168: FILE: contrib/virtiofsd/passthrough_ll.c:1146:
+^Iif (lo_debug(req))$

WARNING: line over 80 characters
#1169: FILE: contrib/virtiofsd/passthrough_ll.c:1147:
+               fuse_log(FUSE_LOG_DEBUG, "lo_copy_file_range(ino=%" PRIu64 "/fd=%lu, "

ERROR: code indent should never use tabs
#1169: FILE: contrib/virtiofsd/passthrough_ll.c:1147:
+^I^Ifuse_log(FUSE_LOG_DEBUG, "lo_copy_file_range(ino=%" PRIu64 "/fd=%lu, "$

ERROR: code indent should never use tabs
#1170: FILE: contrib/virtiofsd/passthrough_ll.c:1148:
+^I^I^I^I"off=%lu, ino=%" PRIu64 "/fd=%lu, "$

ERROR: code indent should never use tabs
#1171: FILE: contrib/virtiofsd/passthrough_ll.c:1149:
+^I^I^I^I"off=%lu, size=%zd, flags=0x%x)\n",$

ERROR: code indent should never use tabs
#1172: FILE: contrib/virtiofsd/passthrough_ll.c:1150:
+^I^I^Iino_in, fi_in->fh, off_in, ino_out, fi_out->fh, off_out,$

ERROR: code indent should never use tabs
#1173: FILE: contrib/virtiofsd/passthrough_ll.c:1151:
+^I^I^Ilen, flags);$

ERROR: code indent should never use tabs
#1175: FILE: contrib/virtiofsd/passthrough_ll.c:1153:
+^Ires = copy_file_range(fi_in->fh, &off_in, fi_out->fh, &off_out, len,$

ERROR: code indent should never use tabs
#1176: FILE: contrib/virtiofsd/passthrough_ll.c:1154:
+^I^I^I      flags);$

ERROR: code indent should never use tabs
#1177: FILE: contrib/virtiofsd/passthrough_ll.c:1155:
+^Iif (res < 0)$

ERROR: braces {} are necessary for all arms of this statement
#1177: FILE: contrib/virtiofsd/passthrough_ll.c:1155:
+       if (res < 0)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1178: FILE: contrib/virtiofsd/passthrough_ll.c:1156:
+^I^Ifuse_reply_err(req, -errno);$

ERROR: code indent should never use tabs
#1179: FILE: contrib/virtiofsd/passthrough_ll.c:1157:
+^Ielse$

ERROR: code indent should never use tabs
#1180: FILE: contrib/virtiofsd/passthrough_ll.c:1158:
+^I^Ifuse_reply_write(req, res);$

ERROR: code indent should never use tabs
#1185: FILE: contrib/virtiofsd/passthrough_ll.c:1163:
+^I.init^I^I= lo_init,$

ERROR: code indent should never use tabs
#1186: FILE: contrib/virtiofsd/passthrough_ll.c:1164:
+^I.lookup^I^I= lo_lookup,$

ERROR: code indent should never use tabs
#1187: FILE: contrib/virtiofsd/passthrough_ll.c:1165:
+^I.mkdir^I^I= lo_mkdir,$

ERROR: code indent should never use tabs
#1188: FILE: contrib/virtiofsd/passthrough_ll.c:1166:
+^I.mknod^I^I= lo_mknod,$

ERROR: code indent should never use tabs
#1189: FILE: contrib/virtiofsd/passthrough_ll.c:1167:
+^I.symlink^I= lo_symlink,$

ERROR: code indent should never use tabs
#1190: FILE: contrib/virtiofsd/passthrough_ll.c:1168:
+^I.link^I^I= lo_link,$

ERROR: code indent should never use tabs
#1191: FILE: contrib/virtiofsd/passthrough_ll.c:1169:
+^I.unlink^I^I= lo_unlink,$

ERROR: code indent should never use tabs
#1192: FILE: contrib/virtiofsd/passthrough_ll.c:1170:
+^I.rmdir^I^I= lo_rmdir,$

ERROR: code indent should never use tabs
#1193: FILE: contrib/virtiofsd/passthrough_ll.c:1171:
+^I.rename^I^I= lo_rename,$

ERROR: code indent should never use tabs
#1194: FILE: contrib/virtiofsd/passthrough_ll.c:1172:
+^I.forget^I^I= lo_forget,$

ERROR: code indent should never use tabs
#1195: FILE: contrib/virtiofsd/passthrough_ll.c:1173:
+^I.forget_multi^I= lo_forget_multi,$

ERROR: code indent should never use tabs
#1196: FILE: contrib/virtiofsd/passthrough_ll.c:1174:
+^I.getattr^I= lo_getattr,$

ERROR: code indent should never use tabs
#1197: FILE: contrib/virtiofsd/passthrough_ll.c:1175:
+^I.setattr^I= lo_setattr,$

ERROR: code indent should never use tabs
#1198: FILE: contrib/virtiofsd/passthrough_ll.c:1176:
+^I.readlink^I= lo_readlink,$

ERROR: code indent should never use tabs
#1199: FILE: contrib/virtiofsd/passthrough_ll.c:1177:
+^I.opendir^I= lo_opendir,$

ERROR: code indent should never use tabs
#1200: FILE: contrib/virtiofsd/passthrough_ll.c:1178:
+^I.readdir^I= lo_readdir,$

ERROR: code indent should never use tabs
#1201: FILE: contrib/virtiofsd/passthrough_ll.c:1179:
+^I.readdirplus^I= lo_readdirplus,$

ERROR: code indent should never use tabs
#1202: FILE: contrib/virtiofsd/passthrough_ll.c:1180:
+^I.releasedir^I= lo_releasedir,$

ERROR: code indent should never use tabs
#1203: FILE: contrib/virtiofsd/passthrough_ll.c:1181:
+^I.fsyncdir^I= lo_fsyncdir,$

ERROR: code indent should never use tabs
#1204: FILE: contrib/virtiofsd/passthrough_ll.c:1182:
+^I.create^I^I= lo_create,$

ERROR: code indent should never use tabs
#1205: FILE: contrib/virtiofsd/passthrough_ll.c:1183:
+^I.open^I^I= lo_open,$

ERROR: code indent should never use tabs
#1206: FILE: contrib/virtiofsd/passthrough_ll.c:1184:
+^I.release^I= lo_release,$

ERROR: code indent should never use tabs
#1207: FILE: contrib/virtiofsd/passthrough_ll.c:1185:
+^I.flush^I^I= lo_flush,$

ERROR: code indent should never use tabs
#1208: FILE: contrib/virtiofsd/passthrough_ll.c:1186:
+^I.fsync^I^I= lo_fsync,$

ERROR: code indent should never use tabs
#1209: FILE: contrib/virtiofsd/passthrough_ll.c:1187:
+^I.read^I^I= lo_read,$

ERROR: code indent should never use tabs
#1210: FILE: contrib/virtiofsd/passthrough_ll.c:1188:
+^I.write_buf      = lo_write_buf,$

ERROR: code indent should never use tabs
#1211: FILE: contrib/virtiofsd/passthrough_ll.c:1189:
+^I.statfs^I^I= lo_statfs,$

ERROR: code indent should never use tabs
#1212: FILE: contrib/virtiofsd/passthrough_ll.c:1190:
+^I.fallocate^I= lo_fallocate,$

ERROR: code indent should never use tabs
#1213: FILE: contrib/virtiofsd/passthrough_ll.c:1191:
+^I.flock^I^I= lo_flock,$

ERROR: code indent should never use tabs
#1214: FILE: contrib/virtiofsd/passthrough_ll.c:1192:
+^I.getxattr^I= lo_getxattr,$

ERROR: code indent should never use tabs
#1215: FILE: contrib/virtiofsd/passthrough_ll.c:1193:
+^I.listxattr^I= lo_listxattr,$

ERROR: code indent should never use tabs
#1216: FILE: contrib/virtiofsd/passthrough_ll.c:1194:
+^I.setxattr^I= lo_setxattr,$

ERROR: code indent should never use tabs
#1217: FILE: contrib/virtiofsd/passthrough_ll.c:1195:
+^I.removexattr^I= lo_removexattr,$

ERROR: code indent should never use tabs
#1219: FILE: contrib/virtiofsd/passthrough_ll.c:1197:
+^I.copy_file_range = lo_copy_file_range,$

ERROR: code indent should never use tabs
#1225: FILE: contrib/virtiofsd/passthrough_ll.c:1203:
+^Istruct fuse_args args = FUSE_ARGS_INIT(argc, argv);$

ERROR: code indent should never use tabs
#1226: FILE: contrib/virtiofsd/passthrough_ll.c:1204:
+^Istruct fuse_session *se;$

ERROR: code indent should never use tabs
#1227: FILE: contrib/virtiofsd/passthrough_ll.c:1205:
+^Istruct fuse_cmdline_opts opts;$

ERROR: code indent should never use tabs
#1228: FILE: contrib/virtiofsd/passthrough_ll.c:1206:
+^Istruct lo_data lo = { .debug = 0,$

ERROR: code indent should never use tabs
#1229: FILE: contrib/virtiofsd/passthrough_ll.c:1207:
+^I                      .writeback = 0 };$

ERROR: code indent should never use tabs
#1230: FILE: contrib/virtiofsd/passthrough_ll.c:1208:
+^Iint ret = -1;$

ERROR: code indent should never use tabs
#1232: FILE: contrib/virtiofsd/passthrough_ll.c:1210:
+^I/* Don't mask creation mode, kernel already did that */$

ERROR: code indent should never use tabs
#1233: FILE: contrib/virtiofsd/passthrough_ll.c:1211:
+^Iumask(0);$

ERROR: code indent should never use tabs
#1235: FILE: contrib/virtiofsd/passthrough_ll.c:1213:
+^Ipthread_mutex_init(&lo.mutex, NULL);$

ERROR: code indent should never use tabs
#1236: FILE: contrib/virtiofsd/passthrough_ll.c:1214:
+^Ilo.root.next = lo.root.prev = &lo.root;$

ERROR: code indent should never use tabs
#1237: FILE: contrib/virtiofsd/passthrough_ll.c:1215:
+^Ilo.root.fd = -1;$

ERROR: code indent should never use tabs
#1238: FILE: contrib/virtiofsd/passthrough_ll.c:1216:
+^Ilo.cache = CACHE_NORMAL;$

ERROR: code indent should never use tabs
#1240: FILE: contrib/virtiofsd/passthrough_ll.c:1218:
+^Iif (fuse_parse_cmdline(&args, &opts) != 0)$

ERROR: braces {} are necessary for all arms of this statement
#1240: FILE: contrib/virtiofsd/passthrough_ll.c:1218:
+       if (fuse_parse_cmdline(&args, &opts) != 0)
[...]

ERROR: code indent should never use tabs
#1241: FILE: contrib/virtiofsd/passthrough_ll.c:1219:
+^I^Ireturn 1;$

ERROR: code indent should never use tabs
#1242: FILE: contrib/virtiofsd/passthrough_ll.c:1220:
+^Iif (opts.show_help) {$

ERROR: code indent should never use tabs
#1243: FILE: contrib/virtiofsd/passthrough_ll.c:1221:
+^I^Iprintf("usage: %s [options] <mountpoint>\n\n", argv[0]);$

ERROR: code indent should never use tabs
#1244: FILE: contrib/virtiofsd/passthrough_ll.c:1222:
+^I^Ifuse_cmdline_help();$

ERROR: code indent should never use tabs
#1245: FILE: contrib/virtiofsd/passthrough_ll.c:1223:
+^I^Ifuse_lowlevel_help();$

ERROR: code indent should never use tabs
#1246: FILE: contrib/virtiofsd/passthrough_ll.c:1224:
+^I^Iret = 0;$

ERROR: code indent should never use tabs
#1247: FILE: contrib/virtiofsd/passthrough_ll.c:1225:
+^I^Igoto err_out1;$

ERROR: code indent should never use tabs
#1248: FILE: contrib/virtiofsd/passthrough_ll.c:1226:
+^I} else if (opts.show_version) {$

ERROR: code indent should never use tabs
#1249: FILE: contrib/virtiofsd/passthrough_ll.c:1227:
+^I^Iprintf("FUSE library version %s\n", fuse_pkgversion());$

ERROR: code indent should never use tabs
#1250: FILE: contrib/virtiofsd/passthrough_ll.c:1228:
+^I^Ifuse_lowlevel_version();$

ERROR: code indent should never use tabs
#1251: FILE: contrib/virtiofsd/passthrough_ll.c:1229:
+^I^Iret = 0;$

ERROR: code indent should never use tabs
#1252: FILE: contrib/virtiofsd/passthrough_ll.c:1230:
+^I^Igoto err_out1;$

ERROR: code indent should never use tabs
#1253: FILE: contrib/virtiofsd/passthrough_ll.c:1231:
+^I}$

ERROR: code indent should never use tabs
#1255: FILE: contrib/virtiofsd/passthrough_ll.c:1233:
+^Iif(opts.mountpoint == NULL) {$

ERROR: space required before the open parenthesis '('
#1255: FILE: contrib/virtiofsd/passthrough_ll.c:1233:
+       if(opts.mountpoint == NULL) {

ERROR: code indent should never use tabs
#1256: FILE: contrib/virtiofsd/passthrough_ll.c:1234:
+^I^Iprintf("usage: %s [options] <mountpoint>\n", argv[0]);$

ERROR: code indent should never use tabs
#1257: FILE: contrib/virtiofsd/passthrough_ll.c:1235:
+^I^Iprintf("       %s --help\n", argv[0]);$

ERROR: code indent should never use tabs
#1258: FILE: contrib/virtiofsd/passthrough_ll.c:1236:
+^I^Iret = 1;$

ERROR: code indent should never use tabs
#1259: FILE: contrib/virtiofsd/passthrough_ll.c:1237:
+^I^Igoto err_out1;$

ERROR: code indent should never use tabs
#1260: FILE: contrib/virtiofsd/passthrough_ll.c:1238:
+^I}$

ERROR: code indent should never use tabs
#1262: FILE: contrib/virtiofsd/passthrough_ll.c:1240:
+^Iif (fuse_opt_parse(&args, &lo, lo_opts, NULL)== -1)$

ERROR: spaces required around that '==' (ctx:VxW)
#1262: FILE: contrib/virtiofsd/passthrough_ll.c:1240:
+       if (fuse_opt_parse(&args, &lo, lo_opts, NULL)== -1)
                                                     ^

ERROR: braces {} are necessary for all arms of this statement
#1262: FILE: contrib/virtiofsd/passthrough_ll.c:1240:
+       if (fuse_opt_parse(&args, &lo, lo_opts, NULL)== -1)
[...]

ERROR: code indent should never use tabs
#1263: FILE: contrib/virtiofsd/passthrough_ll.c:1241:
+^I^Ireturn 1;$

ERROR: code indent should never use tabs
#1265: FILE: contrib/virtiofsd/passthrough_ll.c:1243:
+^Ilo.debug = opts.debug;$

ERROR: code indent should never use tabs
#1266: FILE: contrib/virtiofsd/passthrough_ll.c:1244:
+^Ilo.root.refcount = 2;$

ERROR: code indent should never use tabs
#1267: FILE: contrib/virtiofsd/passthrough_ll.c:1245:
+^Iif (lo.source) {$

ERROR: code indent should never use tabs
#1268: FILE: contrib/virtiofsd/passthrough_ll.c:1246:
+^I^Istruct stat stat;$

ERROR: code indent should never use tabs
#1269: FILE: contrib/virtiofsd/passthrough_ll.c:1247:
+^I^Iint res;$

ERROR: code indent should never use tabs
#1271: FILE: contrib/virtiofsd/passthrough_ll.c:1249:
+^I^Ires = lstat(lo.source, &stat);$

ERROR: code indent should never use tabs
#1272: FILE: contrib/virtiofsd/passthrough_ll.c:1250:
+^I^Iif (res == -1) {$

WARNING: line over 80 characters
#1273: FILE: contrib/virtiofsd/passthrough_ll.c:1251:
+                       fuse_log(FUSE_LOG_ERR, "failed to stat source (\"%s\"): %m\n",

ERROR: code indent should never use tabs
#1273: FILE: contrib/virtiofsd/passthrough_ll.c:1251:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "failed to stat source (\"%s\"): %m\n",$

ERROR: code indent should never use tabs
#1274: FILE: contrib/virtiofsd/passthrough_ll.c:1252:
+^I^I^I^I lo.source);$

ERROR: code indent should never use tabs
#1275: FILE: contrib/virtiofsd/passthrough_ll.c:1253:
+^I^I^Iexit(1);$

ERROR: code indent should never use tabs
#1276: FILE: contrib/virtiofsd/passthrough_ll.c:1254:
+^I^I}$

ERROR: code indent should never use tabs
#1277: FILE: contrib/virtiofsd/passthrough_ll.c:1255:
+^I^Iif (!S_ISDIR(stat.st_mode)) {$

ERROR: code indent should never use tabs
#1278: FILE: contrib/virtiofsd/passthrough_ll.c:1256:
+^I^I^Ifuse_log(FUSE_LOG_ERR, "source is not a directory\n");$

ERROR: code indent should never use tabs
#1279: FILE: contrib/virtiofsd/passthrough_ll.c:1257:
+^I^I^Iexit(1);$

ERROR: code indent should never use tabs
#1280: FILE: contrib/virtiofsd/passthrough_ll.c:1258:
+^I^I}$

ERROR: code indent should never use tabs
#1282: FILE: contrib/virtiofsd/passthrough_ll.c:1260:
+^I} else {$

ERROR: code indent should never use tabs
#1283: FILE: contrib/virtiofsd/passthrough_ll.c:1261:
+^I^Ilo.source = "/";$

ERROR: code indent should never use tabs
#1284: FILE: contrib/virtiofsd/passthrough_ll.c:1262:
+^I}$

ERROR: code indent should never use tabs
#1285: FILE: contrib/virtiofsd/passthrough_ll.c:1263:
+^Ilo.root.is_symlink = false;$

ERROR: code indent should never use tabs
#1286: FILE: contrib/virtiofsd/passthrough_ll.c:1264:
+^Iif (!lo.timeout_set) {$

ERROR: code indent should never use tabs
#1287: FILE: contrib/virtiofsd/passthrough_ll.c:1265:
+^I^Iswitch (lo.cache) {$

ERROR: code indent should never use tabs
#1288: FILE: contrib/virtiofsd/passthrough_ll.c:1266:
+^I^Icase CACHE_NEVER:$

ERROR: code indent should never use tabs
#1289: FILE: contrib/virtiofsd/passthrough_ll.c:1267:
+^I^I^Ilo.timeout = 0.0;$

ERROR: code indent should never use tabs
#1290: FILE: contrib/virtiofsd/passthrough_ll.c:1268:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#1292: FILE: contrib/virtiofsd/passthrough_ll.c:1270:
+^I^Icase CACHE_NORMAL:$

ERROR: code indent should never use tabs
#1293: FILE: contrib/virtiofsd/passthrough_ll.c:1271:
+^I^I^Ilo.timeout = 1.0;$

ERROR: code indent should never use tabs
#1294: FILE: contrib/virtiofsd/passthrough_ll.c:1272:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#1296: FILE: contrib/virtiofsd/passthrough_ll.c:1274:
+^I^Icase CACHE_ALWAYS:$

ERROR: code indent should never use tabs
#1297: FILE: contrib/virtiofsd/passthrough_ll.c:1275:
+^I^I^Ilo.timeout = 86400.0;$

ERROR: code indent should never use tabs
#1298: FILE: contrib/virtiofsd/passthrough_ll.c:1276:
+^I^I^Ibreak;$

ERROR: code indent should never use tabs
#1299: FILE: contrib/virtiofsd/passthrough_ll.c:1277:
+^I^I}$

ERROR: code indent should never use tabs
#1300: FILE: contrib/virtiofsd/passthrough_ll.c:1278:
+^I} else if (lo.timeout < 0) {$

ERROR: code indent should never use tabs
#1301: FILE: contrib/virtiofsd/passthrough_ll.c:1279:
+^I^Ifuse_log(FUSE_LOG_ERR, "timeout is negative (%lf)\n",$

ERROR: code indent should never use tabs
#1302: FILE: contrib/virtiofsd/passthrough_ll.c:1280:
+^I^I^I lo.timeout);$

ERROR: code indent should never use tabs
#1303: FILE: contrib/virtiofsd/passthrough_ll.c:1281:
+^I^Iexit(1);$

ERROR: code indent should never use tabs
#1304: FILE: contrib/virtiofsd/passthrough_ll.c:1282:
+^I}$

ERROR: code indent should never use tabs
#1306: FILE: contrib/virtiofsd/passthrough_ll.c:1284:
+^Ilo.root.fd = open(lo.source, O_PATH);$

ERROR: code indent should never use tabs
#1307: FILE: contrib/virtiofsd/passthrough_ll.c:1285:
+^Iif (lo.root.fd == -1) {$

ERROR: code indent should never use tabs
#1308: FILE: contrib/virtiofsd/passthrough_ll.c:1286:
+^I^Ifuse_log(FUSE_LOG_ERR, "open(\"%s\", O_PATH): %m\n",$

ERROR: code indent should never use tabs
#1309: FILE: contrib/virtiofsd/passthrough_ll.c:1287:
+^I^I^I lo.source);$

ERROR: code indent should never use tabs
#1310: FILE: contrib/virtiofsd/passthrough_ll.c:1288:
+^I^Iexit(1);$

ERROR: code indent should never use tabs
#1311: FILE: contrib/virtiofsd/passthrough_ll.c:1289:
+^I}$

ERROR: code indent should never use tabs
#1313: FILE: contrib/virtiofsd/passthrough_ll.c:1291:
+^Ise = fuse_session_new(&args, &lo_oper, sizeof(lo_oper), &lo);$

ERROR: code indent should never use tabs
#1314: FILE: contrib/virtiofsd/passthrough_ll.c:1292:
+^Iif (se == NULL)$

ERROR: braces {} are necessary for all arms of this statement
#1314: FILE: contrib/virtiofsd/passthrough_ll.c:1292:
+       if (se == NULL)
[...]

ERROR: code indent should never use tabs
#1315: FILE: contrib/virtiofsd/passthrough_ll.c:1293:
+^I    goto err_out1;$

ERROR: code indent should never use tabs
#1317: FILE: contrib/virtiofsd/passthrough_ll.c:1295:
+^Iif (fuse_set_signal_handlers(se) != 0)$

ERROR: braces {} are necessary for all arms of this statement
#1317: FILE: contrib/virtiofsd/passthrough_ll.c:1295:
+       if (fuse_set_signal_handlers(se) != 0)
[...]

ERROR: code indent should never use tabs
#1318: FILE: contrib/virtiofsd/passthrough_ll.c:1296:
+^I    goto err_out2;$

ERROR: code indent should never use tabs
#1320: FILE: contrib/virtiofsd/passthrough_ll.c:1298:
+^Iif (fuse_session_mount(se, opts.mountpoint) != 0)$

ERROR: braces {} are necessary for all arms of this statement
#1320: FILE: contrib/virtiofsd/passthrough_ll.c:1298:
+       if (fuse_session_mount(se, opts.mountpoint) != 0)
[...]

ERROR: code indent should never use tabs
#1321: FILE: contrib/virtiofsd/passthrough_ll.c:1299:
+^I    goto err_out3;$

ERROR: code indent should never use tabs
#1323: FILE: contrib/virtiofsd/passthrough_ll.c:1301:
+^Ifuse_daemonize(opts.foreground);$

ERROR: code indent should never use tabs
#1325: FILE: contrib/virtiofsd/passthrough_ll.c:1303:
+^I/* Block until ctrl+c or fusermount -u */$

ERROR: code indent should never use tabs
#1326: FILE: contrib/virtiofsd/passthrough_ll.c:1304:
+^Iif (opts.singlethread)$

ERROR: braces {} are necessary for all arms of this statement
#1326: FILE: contrib/virtiofsd/passthrough_ll.c:1304:
+       if (opts.singlethread)
[...]
+       else
[...]

ERROR: code indent should never use tabs
#1327: FILE: contrib/virtiofsd/passthrough_ll.c:1305:
+^I^Iret = fuse_session_loop(se);$

ERROR: code indent should never use tabs
#1328: FILE: contrib/virtiofsd/passthrough_ll.c:1306:
+^Ielse$

ERROR: code indent should never use tabs
#1329: FILE: contrib/virtiofsd/passthrough_ll.c:1307:
+^I^Iret = fuse_session_loop_mt(se, opts.clone_fd);$

ERROR: code indent should never use tabs
#1331: FILE: contrib/virtiofsd/passthrough_ll.c:1309:
+^Ifuse_session_unmount(se);$

ERROR: code indent should never use tabs
#1333: FILE: contrib/virtiofsd/passthrough_ll.c:1311:
+^Ifuse_remove_signal_handlers(se);$

ERROR: code indent should never use tabs
#1335: FILE: contrib/virtiofsd/passthrough_ll.c:1313:
+^Ifuse_session_destroy(se);$

ERROR: code indent should never use tabs
#1337: FILE: contrib/virtiofsd/passthrough_ll.c:1315:
+^Ifree(opts.mountpoint);$

ERROR: code indent should never use tabs
#1338: FILE: contrib/virtiofsd/passthrough_ll.c:1316:
+^Ifuse_opt_free_args(&args);$

ERROR: code indent should never use tabs
#1340: FILE: contrib/virtiofsd/passthrough_ll.c:1318:
+^Iif (lo.root.fd >= 0)$

ERROR: braces {} are necessary for all arms of this statement
#1340: FILE: contrib/virtiofsd/passthrough_ll.c:1318:
+       if (lo.root.fd >= 0)
[...]

ERROR: code indent should never use tabs
#1341: FILE: contrib/virtiofsd/passthrough_ll.c:1319:
+^I^Iclose(lo.root.fd);$

ERROR: code indent should never use tabs
#1343: FILE: contrib/virtiofsd/passthrough_ll.c:1321:
+^Ireturn ret ? 1 : 0;$

total: 943 errors, 30 warnings, 1322 lines checked

Patch 5/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

6/30 Checking commit b24b5b3794cd (virtiofsd: Trim down imported files)
ERROR: code indent should never use tabs
#433: FILE: contrib/virtiofsd/fuse_lowlevel.c:181:
+^Iabort(); /* virtio should have taken it before here */$

ERROR: code indent should never use tabs
#564: FILE: contrib/virtiofsd/fuse_lowlevel.c:477:
+^Iabort(); /* Will have taken vhost path */$

ERROR: code indent should never use tabs
#813: FILE: contrib/virtiofsd/fuse_lowlevel.c:1038:
+^I^Ireturn;$

ERROR: code indent should never use tabs
#909: FILE: contrib/virtiofsd/fuse_lowlevel.c:2120:
+^Iin = buf->mem;$

ERROR: code indent should never use tabs
#918: FILE: contrib/virtiofsd/fuse_lowlevel.c:2142:
+^I^Ireturn;$

total: 5 errors, 0 warnings, 1041 lines checked

Patch 6/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

7/30 Checking commit 2a772bbfcf95 (virtiofsd: remove mountpoint dummy argument)
ERROR: code indent should never use tabs
#64: FILE: contrib/virtiofsd/helper.c:145:
+^I(void) data;$

ERROR: code indent should never use tabs
#87: FILE: contrib/virtiofsd/helper.c:150:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: invalid argument `%s'\n", arg);$

ERROR: code indent should never use tabs
#88: FILE: contrib/virtiofsd/helper.c:151:
+^I^Ireturn -1;$

ERROR: code indent should never use tabs
#101: FILE: contrib/virtiofsd/passthrough_ll.c:1221:
+^I^Iprintf("usage: %s [options]\n\n", argv[0]);$

ERROR: code indent should never use tabs
#124: FILE: contrib/virtiofsd/passthrough_ll.c:1291:
+^Iif (fuse_session_mount(se) != 0)$

ERROR: braces {} are necessary for all arms of this statement
#124: FILE: contrib/virtiofsd/passthrough_ll.c:1291:
+       if (fuse_session_mount(se) != 0)
[...]

total: 6 errors, 0 warnings, 95 lines checked

Patch 7/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

8/30 Checking commit 790e71aea939 (virtiofsd: remove unused notify reply support)
ERROR: code indent should never use tabs
#180: FILE: contrib/virtiofsd/fuse_lowlevel.c:1952:
+^I[FUSE_NOTIFY_REPLY] = { NULL,    "NOTIFY_REPLY" },$

total: 1 errors, 0 warnings, 237 lines checked

Patch 8/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

9/30 Checking commit a59d6ab3b875 (virtiofsd: Fix fuse_daemonize ignored return values)
ERROR: code indent should never use tabs
#35: FILE: contrib/virtiofsd/helper.c:174:
+^Iint ret = 0, rett;$

ERROR: code indent should never use tabs
#45: FILE: contrib/virtiofsd/helper.c:196:
+^I^I^I_exit( read(waiter[0], &completed, sizeof(completed) !=$

ERROR: space prohibited after that open parenthesis '('
#45: FILE: contrib/virtiofsd/helper.c:196:
+                       _exit( read(waiter[0], &completed, sizeof(completed) !=

ERROR: code indent should never use tabs
#55: FILE: contrib/virtiofsd/helper.c:205:
+^I^Iret = chdir("/");$

ERROR: code indent should never use tabs
#62: FILE: contrib/virtiofsd/helper.c:209:
+^I^I^Irett = dup2(nullfd, 0);$

ERROR: code indent should never use tabs
#63: FILE: contrib/virtiofsd/helper.c:210:
+^I^I^Iif (!ret) ret = rett;$

ERROR: trailing statements should be on next line
#63: FILE: contrib/virtiofsd/helper.c:210:
+                       if (!ret) ret = rett;

ERROR: braces {} are necessary for all arms of this statement
#63: FILE: contrib/virtiofsd/helper.c:210:
+                       if (!ret) ret = rett;
[...]

ERROR: code indent should never use tabs
#64: FILE: contrib/virtiofsd/helper.c:211:
+^I^I^Irett = dup2(nullfd, 1);$

ERROR: code indent should never use tabs
#65: FILE: contrib/virtiofsd/helper.c:212:
+^I^I^Iif (!ret) ret = rett;$

ERROR: trailing statements should be on next line
#65: FILE: contrib/virtiofsd/helper.c:212:
+                       if (!ret) ret = rett;

ERROR: braces {} are necessary for all arms of this statement
#65: FILE: contrib/virtiofsd/helper.c:212:
+                       if (!ret) ret = rett;
[...]

ERROR: code indent should never use tabs
#66: FILE: contrib/virtiofsd/helper.c:213:
+^I^I^Irett = dup2(nullfd, 2);$

ERROR: code indent should never use tabs
#67: FILE: contrib/virtiofsd/helper.c:214:
+^I^I^Iif (!ret) ret = rett;$

ERROR: trailing statements should be on next line
#67: FILE: contrib/virtiofsd/helper.c:214:
+                       if (!ret) ret = rett;

ERROR: braces {} are necessary for all arms of this statement
#67: FILE: contrib/virtiofsd/helper.c:214:
+                       if (!ret) ret = rett;
[...]

ERROR: code indent should never use tabs
#75: FILE: contrib/virtiofsd/helper.c:221:
+^I^Irett = write(waiter[1], &completed, sizeof(completed));$

ERROR: code indent should never use tabs
#76: FILE: contrib/virtiofsd/helper.c:222:
+^I^Iif (!ret) ret = rett;$

ERROR: trailing statements should be on next line
#76: FILE: contrib/virtiofsd/helper.c:222:
+               if (!ret) ret = rett;

ERROR: braces {} are necessary for all arms of this statement
#76: FILE: contrib/virtiofsd/helper.c:222:
+               if (!ret) ret = rett;
[...]

ERROR: code indent should never use tabs
#81: FILE: contrib/virtiofsd/helper.c:226:
+^I^Iret = chdir("/");$

ERROR: code indent should never use tabs
#84: FILE: contrib/virtiofsd/helper.c:228:
+^Ireturn ret;$

total: 22 errors, 0 warnings, 66 lines checked

Patch 9/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

10/30 Checking commit e06fecf26522 (virtiofsd: Fix common header and define for QEMU builds)
11/30 Checking commit 0a8ba93875b9 (virtiofsd: fuse: Make iov_length usable outside fuse_lowlevel.c)
12/30 Checking commit c57ea314c552 (virtiofsd: Make fsync work even if only inode is passed in)
ERROR: code indent should never use tabs
#26: FILE: contrib/virtiofsd/fuse_lowlevel.c:1086:
+^Iif (req->se->op.fsync) {$

ERROR: code indent should never use tabs
#27: FILE: contrib/virtiofsd/fuse_lowlevel.c:1087:
+^I^Iif (fi.fh == (uint64_t)-1)$

ERROR: braces {} are necessary for all arms of this statement
#27: FILE: contrib/virtiofsd/fuse_lowlevel.c:1087:
+               if (fi.fh == (uint64_t)-1)
[...]
+               else
[...]

ERROR: code indent should never use tabs
#28: FILE: contrib/virtiofsd/fuse_lowlevel.c:1088:
+^I^I^Ireq->se->op.fsync(req, nodeid, datasync, NULL);$

ERROR: code indent should never use tabs
#29: FILE: contrib/virtiofsd/fuse_lowlevel.c:1089:
+^I^Ielse$

ERROR: code indent should never use tabs
#30: FILE: contrib/virtiofsd/fuse_lowlevel.c:1090:
+^I^I^Ireq->se->op.fsync(req, nodeid, datasync, &fi);$

ERROR: code indent should never use tabs
#31: FILE: contrib/virtiofsd/fuse_lowlevel.c:1091:
+^I} else$

ERROR: code indent should never use tabs
#43: FILE: contrib/virtiofsd/passthrough_ll.c:866:
+^Iint fd;$

ERROR: code indent should never use tabs
#44: FILE: contrib/virtiofsd/passthrough_ll.c:867:
+^Ichar *buf;$

ERROR: code indent should never use tabs
#46: FILE: contrib/virtiofsd/passthrough_ll.c:869:
+^Ifuse_log(FUSE_LOG_DEBUG, "lo_fsync(ino=%" PRIu64 ", fi=0x%p)\n", ino,$

ERROR: code indent should never use tabs
#47: FILE: contrib/virtiofsd/passthrough_ll.c:870:
+^I^I (void *)fi);$

ERROR: code indent should never use tabs
#49: FILE: contrib/virtiofsd/passthrough_ll.c:872:
+^Iif (!fi) {$

ERROR: code indent should never use tabs
#50: FILE: contrib/virtiofsd/passthrough_ll.c:873:
+^I^Ires = asprintf(&buf, "/proc/self/fd/%i", lo_fd(req, ino));$

ERROR: code indent should never use tabs
#51: FILE: contrib/virtiofsd/passthrough_ll.c:874:
+^I^Iif (res == -1)$

ERROR: braces {} are necessary for all arms of this statement
#51: FILE: contrib/virtiofsd/passthrough_ll.c:874:
+               if (res == -1)
[...]

ERROR: code indent should never use tabs
#52: FILE: contrib/virtiofsd/passthrough_ll.c:875:
+^I^I^Ireturn (void) fuse_reply_err(req, errno);$

ERROR: code indent should never use tabs
#54: FILE: contrib/virtiofsd/passthrough_ll.c:877:
+^I^Ifd = open(buf, O_RDWR);$

ERROR: code indent should never use tabs
#55: FILE: contrib/virtiofsd/passthrough_ll.c:878:
+^I^Ifree(buf);$

ERROR: code indent should never use tabs
#56: FILE: contrib/virtiofsd/passthrough_ll.c:879:
+^I^Iif (fd == -1)$

ERROR: braces {} are necessary for all arms of this statement
#56: FILE: contrib/virtiofsd/passthrough_ll.c:879:
+               if (fd == -1)
[...]

ERROR: code indent should never use tabs
#57: FILE: contrib/virtiofsd/passthrough_ll.c:880:
+^I^I^Ireturn (void) fuse_reply_err(req, errno);$

ERROR: code indent should never use tabs
#58: FILE: contrib/virtiofsd/passthrough_ll.c:881:
+^I} else$

ERROR: code indent should never use tabs
#59: FILE: contrib/virtiofsd/passthrough_ll.c:882:
+^I^Ifd = fi->fh;$

ERROR: code indent should never use tabs
#63: FILE: contrib/virtiofsd/passthrough_ll.c:885:
+^I^Ires = fdatasync(fd);$

ERROR: code indent should never use tabs
#66: FILE: contrib/virtiofsd/passthrough_ll.c:887:
+^I^Ires = fsync(fd);$

ERROR: code indent should never use tabs
#67: FILE: contrib/virtiofsd/passthrough_ll.c:888:
+^Iif (!fi)$

ERROR: braces {} are necessary for all arms of this statement
#67: FILE: contrib/virtiofsd/passthrough_ll.c:888:
+       if (!fi)
[...]

ERROR: code indent should never use tabs
#68: FILE: contrib/virtiofsd/passthrough_ll.c:889:
+^I^Iclose(fd);$

total: 28 errors, 0 warnings, 47 lines checked

Patch 12/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

13/30 Checking commit 86db5bf67419 (virtiofsd: Add options for virtio)
ERROR: code indent should never use tabs
#22: FILE: contrib/virtiofsd/fuse_i.h:66:
+^Ichar *vu_socket_path;$

ERROR: code indent should never use tabs
#34: FILE: contrib/virtiofsd/fuse_lowlevel.c:2067:
+^ILL_OPTION("--socket-path=%s", vu_socket_path, 0),$

ERROR: code indent should never use tabs
#35: FILE: contrib/virtiofsd/fuse_lowlevel.c:2068:
+^ILL_OPTION("vhost_user_socket=%s", vu_socket_path, 0),$

ERROR: code indent should never use tabs
#71: FILE: contrib/virtiofsd/helper.c:129:
+^Iprintf("    -h   --help                print help\n"$

ERROR: code indent should never use tabs
#72: FILE: contrib/virtiofsd/helper.c:130:
+^I       "    -V   --version             print version\n"$

ERROR: code indent should never use tabs
#73: FILE: contrib/virtiofsd/helper.c:131:
+^I       "    -d   -o debug              enable debug output (implies -f)\n"$

ERROR: code indent should never use tabs
#74: FILE: contrib/virtiofsd/helper.c:132:
+^I       "    -f                         foreground operation\n"$

ERROR: code indent should never use tabs
#75: FILE: contrib/virtiofsd/helper.c:133:
+^I       "    -s                         disable multi-threaded operation\n"$

ERROR: code indent should never use tabs
#76: FILE: contrib/virtiofsd/helper.c:134:
+^I       "    -o clone_fd                use separate fuse device fd for each thread\n"$

ERROR: code indent should never use tabs
#77: FILE: contrib/virtiofsd/helper.c:135:
+^I       "                               (may improve performance)\n"$

ERROR: code indent should never use tabs
#78: FILE: contrib/virtiofsd/helper.c:136:
+^I       "    -o max_idle_threads        the maximum number of idle worker threads\n"$

ERROR: code indent should never use tabs
#79: FILE: contrib/virtiofsd/helper.c:137:
+^I       "                               allowed (default: 10)\n");$

total: 12 errors, 0 warnings, 53 lines checked

Patch 13/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

14/30 Checking commit 617a6aae960c (virtiofsd: add -o source=PATH to help output)
WARNING: line over 80 characters
#21: FILE: contrib/virtiofsd/passthrough_ll.c:1240:
+               printf("    -o source=PATH             shared directory tree\n");

ERROR: code indent should never use tabs
#21: FILE: contrib/virtiofsd/passthrough_ll.c:1240:
+^I^Iprintf("    -o source=PATH             shared directory tree\n");$

total: 1 errors, 1 warnings, 7 lines checked

Patch 14/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

15/30 Checking commit bcdf0f7c5d52 (virtiofsd: Open vhost connection instead of mounting)
ERROR: code indent should never use tabs
#52: FILE: contrib/virtiofsd/fuse_lowlevel.c:2156:
+^Iif (!se->vu_socket_path) {$

ERROR: code indent should never use tabs
#53: FILE: contrib/virtiofsd/fuse_lowlevel.c:2157:
+^I^Ifprintf(stderr, "fuse: missing -o vhost_user_socket option\n");$

ERROR: code indent should never use tabs
#54: FILE: contrib/virtiofsd/fuse_lowlevel.c:2158:
+^I^Igoto out4;$

ERROR: code indent should never use tabs
#55: FILE: contrib/virtiofsd/fuse_lowlevel.c:2159:
+^I}$

ERROR: code indent should never use tabs
#110: FILE: contrib/virtiofsd/fuse_lowlevel.c:2184:
+^Ireturn virtio_session_mount(se);$

WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#115: 
new file mode 100644

WARNING: Block comments use * on subsequent lines
#202: FILE: contrib/virtiofsd/fuse_virtio.h:2:
+/*
+  virtio-fs glue for FUSE

total: 5 errors, 2 warnings, 186 lines checked

Patch 15/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

16/30 Checking commit 5325e1c9130c (virtiofsd: Start wiring up vhost-user)
ERROR: code indent should never use tabs
#31: FILE: contrib/virtiofsd/fuse_i.h:70:
+^Iint   vu_socketfd;$

ERROR: code indent should never use tabs
#32: FILE: contrib/virtiofsd/fuse_i.h:71:
+^Istruct fv_VuDev *virtio_dev;$

ERROR: code indent should never use tabs
#58: FILE: contrib/virtiofsd/fuse_lowlevel.c:2198:
+^Ireturn se->vu_socket_path != NULL;$

ERROR: code indent should never use tabs
#222: FILE: contrib/virtiofsd/passthrough_ll.c:1315:
+^Iret = virtio_loop(se);$

total: 4 errors, 0 warnings, 174 lines checked

Patch 16/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

17/30 Checking commit 2c2af207a385 (virtiofsd: Add main virtio loop)
18/30 Checking commit 305c8794f5dc (virtiofsd: get/set features callbacks)
19/30 Checking commit d9a9f1aba179 (virtiofsd: Start queue threads)
20/30 Checking commit a007c290c3b6 (virtiofsd: Poll kick_fd for queue)
21/30 Checking commit 3b4e1b5f3144 (virtiofsd: Start reading commands from queue)
ERROR: code indent should never use tabs
#37: FILE: contrib/virtiofsd/fuse_i.h:79:
+^Istruct fv_QueueInfo *qi;$

total: 1 errors, 0 warnings, 137 lines checked

Patch 21/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

22/30 Checking commit 453d82c9a4c3 (virtiofsd: Send replies to messages)
ERROR: code indent should never use tabs
#21: FILE: contrib/virtiofsd/fuse_lowlevel.c:174:
+^Iif (fuse_lowlevel_is_virtio(se)) {$

ERROR: code indent should never use tabs
#22: FILE: contrib/virtiofsd/fuse_lowlevel.c:175:
+^I^Ireturn virtio_send_msg(se, ch, iov, count);$

ERROR: code indent should never use tabs
#23: FILE: contrib/virtiofsd/fuse_lowlevel.c:176:
+^I}$

total: 3 errors, 0 warnings, 146 lines checked

Patch 22/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

23/30 Checking commit 6e4b2d00b2dd (virtiofsd: Keep track of replies)
24/30 Checking commit f16f5a687247 (virtiofsd: Add Makefile wiring for virtiofsd contrib)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#65: 
new file mode 100644

total: 0 errors, 1 warnings, 43 lines checked

Patch 24/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
25/30 Checking commit 339d057933d0 (virtiofsd: Fast path for virtio read)
ERROR: code indent should never use tabs
#22: FILE: contrib/virtiofsd/fuse_lowlevel.c:474:
+^Iif (fuse_lowlevel_is_virtio(se) && buf->count==1 &&$

ERROR: spaces required around that '==' (ctx:VxV)
#22: FILE: contrib/virtiofsd/fuse_lowlevel.c:474:
+       if (fuse_lowlevel_is_virtio(se) && buf->count==1 &&
                                                     ^

ERROR: code indent should never use tabs
#23: FILE: contrib/virtiofsd/fuse_lowlevel.c:475:
+^I    buf->buf[0].flags == (FUSE_BUF_IS_FD | FUSE_BUF_FD_SEEK)) {$

ERROR: code indent should never use tabs
#24: FILE: contrib/virtiofsd/fuse_lowlevel.c:476:
+^I^Ireturn virtio_send_data_iov(se, ch, iov, iov_count,$

ERROR: code indent should never use tabs
#25: FILE: contrib/virtiofsd/fuse_lowlevel.c:477:
+^I^I^I^I^I    buf, len);$

ERROR: code indent should never use tabs
#26: FILE: contrib/virtiofsd/fuse_lowlevel.c:478:
+^I}$

total: 6 errors, 0 warnings, 185 lines checked

Patch 25/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

26/30 Checking commit d79775c7852f (virtiofsd: add --fd=FDNUM fd passing option)
ERROR: code indent should never use tabs
#25: FILE: contrib/virtiofsd/fuse_i.h:71:
+^Iint   vu_listen_fd;$

ERROR: code indent should never use tabs
#37: FILE: contrib/virtiofsd/fuse_lowlevel.c:2080:
+^ILL_OPTION("--fd=%d", vu_listen_fd, 0),$

ERROR: code indent should never use tabs
#53: FILE: contrib/virtiofsd/fuse_lowlevel.c:2139:
+^Ise->vu_listen_fd = -1;$

ERROR: code indent should never use tabs
#63: FILE: contrib/virtiofsd/fuse_lowlevel.c:2169:
+^Iif (!se->vu_socket_path && se->vu_listen_fd < 0) {$

WARNING: line over 80 characters
#64: FILE: contrib/virtiofsd/fuse_lowlevel.c:2170:
+               fuse_log(FUSE_LOG_ERR, "fuse: missing --socket-path or --fd option\n");

ERROR: code indent should never use tabs
#64: FILE: contrib/virtiofsd/fuse_lowlevel.c:2170:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: missing --socket-path or --fd option\n");$

ERROR: code indent should never use tabs
#65: FILE: contrib/virtiofsd/fuse_lowlevel.c:2171:
+^I^Igoto out4;$

ERROR: code indent should never use tabs
#66: FILE: contrib/virtiofsd/fuse_lowlevel.c:2172:
+^I}$

ERROR: code indent should never use tabs
#67: FILE: contrib/virtiofsd/fuse_lowlevel.c:2173:
+^Iif (se->vu_socket_path && se->vu_listen_fd >= 0) {$

ERROR: line over 90 characters
#68: FILE: contrib/virtiofsd/fuse_lowlevel.c:2174:
+               fuse_log(FUSE_LOG_ERR, "fuse: --socket-path and --fd cannot be given together\n");

ERROR: code indent should never use tabs
#68: FILE: contrib/virtiofsd/fuse_lowlevel.c:2174:
+^I^Ifuse_log(FUSE_LOG_ERR, "fuse: --socket-path and --fd cannot be given together\n");$

ERROR: code indent should never use tabs
#77: FILE: contrib/virtiofsd/fuse_lowlevel.c:2215:
+^Ireturn !!se->virtio_dev;$

total: 11 errors, 1 warnings, 116 lines checked

Patch 26/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

27/30 Checking commit e5c89d566cae (virtiofsd: make -f (foreground) the default)
ERROR: code indent should never use tabs
#24: FILE: contrib/virtiofsd/helper.c:30:
+^I{ t, offsetof(struct fuse_cmdline_opts, p), v }$

ERROR: code indent should never use tabs
#33: FILE: contrib/virtiofsd/helper.c:45:
+^IFUSE_HELPER_OPT_VALUE("--daemonize", foreground, 0),$

ERROR: code indent should never use tabs
#41: FILE: contrib/virtiofsd/helper.c:137:
+^I       "    --daemonize                run in background\n"$

ERROR: code indent should never use tabs
#49: FILE: contrib/virtiofsd/helper.c:168:
+^Iopts->foreground = 1;$

total: 4 errors, 0 warnings, 30 lines checked

Patch 27/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

28/30 Checking commit 6c37d731148b (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 28/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
29/30 Checking commit 21065c6d7948 (virtiofsd: add --print-capabilities option)
ERROR: code indent should never use tabs
#22: FILE: contrib/virtiofsd/fuse_lowlevel.h:1799:
+^Iint print_capabilities;$

ERROR: code indent should never use tabs
#34: FILE: contrib/virtiofsd/helper.c:38:
+^IFUSE_HELPER_OPT("--print-capabilities", print_capabilities),$

ERROR: code indent should never use tabs
#42: FILE: contrib/virtiofsd/helper.c:136:
+^I       "    --print-capabilities       print vhost-user.json\n"$

ERROR: code indent should never use tabs
#57: FILE: contrib/virtiofsd/passthrough_ll.c:1222:
+^Iprintf("{\n");$

ERROR: code indent should never use tabs
#58: FILE: contrib/virtiofsd/passthrough_ll.c:1223:
+^Iprintf("  \"type\": \"fs\"\n");$

ERROR: code indent should never use tabs
#59: FILE: contrib/virtiofsd/passthrough_ll.c:1224:
+^Iprintf("}\n");$

ERROR: code indent should never use tabs
#69: FILE: contrib/virtiofsd/passthrough_ll.c:1257:
+^I} else if (opts.print_capabilities) {$

ERROR: code indent should never use tabs
#70: FILE: contrib/virtiofsd/passthrough_ll.c:1258:
+^I^Iprint_capabilities();$

ERROR: code indent should never use tabs
#71: FILE: contrib/virtiofsd/passthrough_ll.c:1259:
+^I^Iret = 0;$

ERROR: code indent should never use tabs
#72: FILE: contrib/virtiofsd/passthrough_ll.c:1260:
+^I^Igoto err_out1;$

total: 10 errors, 0 warnings, 61 lines checked

Patch 29/30 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

30/30 Checking commit ddce75fb3d79 (virtiofs: Add maintainers entry)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20191021105832.36574-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
Dr. David Alan Gilbert Oct. 21, 2019, 2:33 p.m. UTC | #2
* no-reply@patchew.org (no-reply@patchew.org) wrote:
> Patchew URL: https://patchew.org/QEMU/20191021105832.36574-1-dgilbert@redhat.com/
> 
> 
> 
> Hi,
> 
> This series seems to have some coding style problems. See output below for
> more information:
> 
> Subject: [PATCH 00/30] virtiofs daemon (base)
> Type: series
> Message-id: 20191021105832.36574-1-dgilbert@redhat.com
> 
> === 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..

Expecting checkpatch to be broken here; most of the files
follow FUSE's formatting.

Dave
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Michael S. Tsirkin Oct. 24, 2019, 10:59 a.m. UTC | #3
On Mon, Oct 21, 2019 at 03:33:57PM +0100, Dr. David Alan Gilbert wrote:
> * no-reply@patchew.org (no-reply@patchew.org) wrote:
> > Patchew URL: https://patchew.org/QEMU/20191021105832.36574-1-dgilbert@redhat.com/
> > 
> > 
> > 
> > Hi,
> > 
> > This series seems to have some coding style problems. See output below for
> > more information:
> > 
> > Subject: [PATCH 00/30] virtiofs daemon (base)
> > Type: series
> > Message-id: 20191021105832.36574-1-dgilbert@redhat.com
> > 
> > === 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..
> 
> Expecting checkpatch to be broken here; most of the files
> follow FUSE's formatting.
> 
> Dave

I wonder what do others think about this.
One problem with such inconsistencies is that people tend to copy code
around, which tends to result in a mess.

> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Dr. David Alan Gilbert Oct. 24, 2019, 11:02 a.m. UTC | #4
* Michael S. Tsirkin (mst@redhat.com) wrote:
> On Mon, Oct 21, 2019 at 03:33:57PM +0100, Dr. David Alan Gilbert wrote:
> > * no-reply@patchew.org (no-reply@patchew.org) wrote:
> > > Patchew URL: https://patchew.org/QEMU/20191021105832.36574-1-dgilbert@redhat.com/
> > > 
> > > 
> > > 
> > > Hi,
> > > 
> > > This series seems to have some coding style problems. See output below for
> > > more information:
> > > 
> > > Subject: [PATCH 00/30] virtiofs daemon (base)
> > > Type: series
> > > Message-id: 20191021105832.36574-1-dgilbert@redhat.com
> > > 
> > > === 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..
> > 
> > Expecting checkpatch to be broken here; most of the files
> > follow FUSE's formatting.
> > 
> > Dave
> 
> I wonder what do others think about this.
> One problem with such inconsistencies is that people tend to copy code
> around, which tends to result in a mess.

Converting them is not entirely trivial; so shout now if you'd like it!
I've got an evil combination of indent and clang-tidy that does a
reasonablish job of getting close to qemu's coding standard - but it
does need some hand holding; so is a few days work.
(I applied it to fuse_virtio.c which had a mix of styles).

Dave

> > --
> > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Daniel P. Berrangé Oct. 24, 2019, 11:07 a.m. UTC | #5
On Thu, Oct 24, 2019 at 06:59:33AM -0400, Michael S. Tsirkin wrote:
> On Mon, Oct 21, 2019 at 03:33:57PM +0100, Dr. David Alan Gilbert wrote:
> > * no-reply@patchew.org (no-reply@patchew.org) wrote:
> > > Patchew URL: https://patchew.org/QEMU/20191021105832.36574-1-dgilbert@redhat.com/
> > > 
> > > 
> > > 
> > > Hi,
> > > 
> > > This series seems to have some coding style problems. See output below for
> > > more information:
> > > 
> > > Subject: [PATCH 00/30] virtiofs daemon (base)
> > > Type: series
> > > Message-id: 20191021105832.36574-1-dgilbert@redhat.com
> > > 
> > > === 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..
> > 
> > Expecting checkpatch to be broken here; most of the files
> > follow FUSE's formatting.
> > 
> > Dave
> 
> I wonder what do others think about this.
> One problem with such inconsistencies is that people tend to copy code
> around, which tends to result in a mess.

IIUC, most of this code is simpy copied as-is from the fuse or linux
git repos. I'm wondering what the intention is for it long term ?

For header files, I would have expected us to be able to compile against
the -devel package provided by the kernel or fuse packages. I can
understand if we want to import the headers if the VSOCK additions to
them are not yet widely available in distros though. If this is the case
we should put a time limit on how long we'd keep these copied headers
around for before dropping them. It would be fine to violate QEMU coding
style in this case as its not code QEMU would "maintain" long term - just
a read-only import.

The source files though, we appear to then be modifying locally, which
suggests they'll live in our repo forever. In this case I'd expect to
have compliance with QEMU coding standards.

I'm surprised we need to copy so much in from fuse though. Is there a
case to be made for fuse to provide a library of APIs for people who
are building fuse daemons to link against, instead of copy & fork ?

Regards,
Daniel
Michael S. Tsirkin Oct. 24, 2019, 11:14 a.m. UTC | #6
On Mon, Oct 21, 2019 at 11:58:02AM +0100, Dr. David Alan Gilbert (git) wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> 
> Hi,
>   This is the 1st set for the virtiofsd - a daemon
> that implements the user space side of virtiofs.
> 
>   The kernel and qemu device parts recently went in,
> so the daemon is the only thing missing to have a working
> set.
> 
>   This set is the absolute minimal base set of patches;
> it's not yet safe to use (from security or correctness);
> 
> I'll follow up with ~3 more series in the next few days
> with:
> 
>     a) Security patches that add sandboxing and checking
>        compared with normal fuse - that makes it safe.
>     b) Performance improvements including threading
>     c) Other fixes, including correctness.
> 
> but, this is a good start and gets things rolling.
> 
> 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.
> 
> For new files I've formatted the code according to qemu
> standards; for files that are from upstream libfuse
> I've kept with their standards for ease of future updating.

Thinking of future updates, have you given any thought to
automating them? Something along the lines of
update-linux-headers maybe?


> We can't just link with libfuse, since we have to make ABI incompatible
> changes for the new transport.
> 
> Running this daemon is typically done with:
> 
>    ./virtiofsd -o vhost_user_socket=/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
> 
> Dave
> 
> 
> Dr. David Alan Gilbert (22):
>   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: Fix fuse_daemonize ignored return values
>   virtiofsd: Fix common header and define for QEMU builds
>   virtiofsd: fuse: Make iov_length usable outside fuse_lowlevel.c
>   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
> 
> Stefan Hajnoczi (7):
>   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
> 
> Vivek Goyal (1):
>   virtiofsd: Make fsync work even if only inode is passed in
> 
>  .gitignore                                  |    1 +
>  MAINTAINERS                                 |    8 +
>  Makefile                                    |    9 +
>  Makefile.objs                               |    1 +
>  contrib/virtiofsd/50-qemu-virtiofsd.json.in |    5 +
>  contrib/virtiofsd/Makefile.objs             |   10 +
>  contrib/virtiofsd/buffer.c                  |  318 +++
>  contrib/virtiofsd/fuse.h                    | 1268 ++++++++++
>  contrib/virtiofsd/fuse_common.h             |  823 +++++++
>  contrib/virtiofsd/fuse_i.h                  |  131 ++
>  contrib/virtiofsd/fuse_kernel.h             |  858 +++++++
>  contrib/virtiofsd/fuse_log.c                |   40 +
>  contrib/virtiofsd/fuse_log.h                |   82 +
>  contrib/virtiofsd/fuse_loop_mt.c            |   54 +
>  contrib/virtiofsd/fuse_lowlevel.c           | 2302 +++++++++++++++++++
>  contrib/virtiofsd/fuse_lowlevel.h           | 2024 ++++++++++++++++
>  contrib/virtiofsd/fuse_misc.h               |   59 +
>  contrib/virtiofsd/fuse_opt.c                |  422 ++++
>  contrib/virtiofsd/fuse_opt.h                |  271 +++
>  contrib/virtiofsd/fuse_signals.c            |   90 +
>  contrib/virtiofsd/fuse_virtio.c             |  717 ++++++
>  contrib/virtiofsd/fuse_virtio.h             |   33 +
>  contrib/virtiofsd/helper.c                  |  300 +++
>  contrib/virtiofsd/passthrough_helpers.h     |   76 +
>  contrib/virtiofsd/passthrough_ll.c          | 1341 +++++++++++
>  docs/interop/vhost-user.json                |    4 +-
>  26 files changed, 11246 insertions(+), 1 deletion(-)
>  create mode 100644 contrib/virtiofsd/50-qemu-virtiofsd.json.in
>  create mode 100644 contrib/virtiofsd/Makefile.objs
>  create mode 100644 contrib/virtiofsd/buffer.c
>  create mode 100644 contrib/virtiofsd/fuse.h
>  create mode 100644 contrib/virtiofsd/fuse_common.h
>  create mode 100644 contrib/virtiofsd/fuse_i.h
>  create mode 100644 contrib/virtiofsd/fuse_kernel.h
>  create mode 100644 contrib/virtiofsd/fuse_log.c
>  create mode 100644 contrib/virtiofsd/fuse_log.h
>  create mode 100644 contrib/virtiofsd/fuse_loop_mt.c
>  create mode 100644 contrib/virtiofsd/fuse_lowlevel.c
>  create mode 100644 contrib/virtiofsd/fuse_lowlevel.h
>  create mode 100644 contrib/virtiofsd/fuse_misc.h
>  create mode 100644 contrib/virtiofsd/fuse_opt.c
>  create mode 100644 contrib/virtiofsd/fuse_opt.h
>  create mode 100644 contrib/virtiofsd/fuse_signals.c
>  create mode 100644 contrib/virtiofsd/fuse_virtio.c
>  create mode 100644 contrib/virtiofsd/fuse_virtio.h
>  create mode 100644 contrib/virtiofsd/helper.c
>  create mode 100644 contrib/virtiofsd/passthrough_helpers.h
>  create mode 100644 contrib/virtiofsd/passthrough_ll.c
> 
> -- 
> 2.23.0
Dr. David Alan Gilbert Oct. 24, 2019, 11:14 a.m. UTC | #7
* Daniel P. Berrangé (berrange@redhat.com) wrote:
> On Thu, Oct 24, 2019 at 06:59:33AM -0400, Michael S. Tsirkin wrote:
> > On Mon, Oct 21, 2019 at 03:33:57PM +0100, Dr. David Alan Gilbert wrote:
> > > * no-reply@patchew.org (no-reply@patchew.org) wrote:
> > > > Patchew URL: https://patchew.org/QEMU/20191021105832.36574-1-dgilbert@redhat.com/
> > > > 
> > > > 
> > > > 
> > > > Hi,
> > > > 
> > > > This series seems to have some coding style problems. See output below for
> > > > more information:
> > > > 
> > > > Subject: [PATCH 00/30] virtiofs daemon (base)
> > > > Type: series
> > > > Message-id: 20191021105832.36574-1-dgilbert@redhat.com
> > > > 
> > > > === 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..
> > > 
> > > Expecting checkpatch to be broken here; most of the files
> > > follow FUSE's formatting.
> > > 
> > > Dave
> > 
> > I wonder what do others think about this.
> > One problem with such inconsistencies is that people tend to copy code
> > around, which tends to result in a mess.
> 
> IIUC, most of this code is simpy copied as-is from the fuse or linux
> git repos. I'm wondering what the intention is for it long term ?
> 
> For header files, I would have expected us to be able to compile against
> the -devel package provided by the kernel or fuse packages. I can
> understand if we want to import the headers if the VSOCK additions to
> them are not yet widely available in distros though. If this is the case
> we should put a time limit on how long we'd keep these copied headers
> around for before dropping them. It would be fine to violate QEMU coding
> style in this case as its not code QEMU would "maintain" long term - just
> a read-only import.

The headers are really two types;  one are external definitions, the
other are internal parts of libfuse.  I'd expect to keep the internal
parts long term; teh external parts hmm; where would we pull them in
externally from?

> The source files though, we appear to then be modifying locally, which
> suggests they'll live in our repo forever. In this case I'd expect to
> have compliance with QEMU coding standards.

OK.

> I'm surprised we need to copy so much in from fuse though. Is there a
> case to be made for fuse to provide a library of APIs for people who
> are building fuse daemons to link against, instead of copy & fork ?

libfuse *is* such a library; but it preserves ABI compliance; it's
intention is to be used to build filesystem implementations on top of -
and that's got a fairly good separation;  however changing the fuse
transport, and security models is much more invasive than it was
designed for.

Dave

> Regards,
> Daniel
> -- 
> |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Michael S. Tsirkin Oct. 24, 2019, 11:19 a.m. UTC | #8
On Thu, Oct 24, 2019 at 12:14:39PM +0100, Dr. David Alan Gilbert wrote:
> * Daniel P. Berrangé (berrange@redhat.com) wrote:
> > On Thu, Oct 24, 2019 at 06:59:33AM -0400, Michael S. Tsirkin wrote:
> > > On Mon, Oct 21, 2019 at 03:33:57PM +0100, Dr. David Alan Gilbert wrote:
> > > > * no-reply@patchew.org (no-reply@patchew.org) wrote:
> > > > > Patchew URL: https://patchew.org/QEMU/20191021105832.36574-1-dgilbert@redhat.com/
> > > > > 
> > > > > 
> > > > > 
> > > > > Hi,
> > > > > 
> > > > > This series seems to have some coding style problems. See output below for
> > > > > more information:
> > > > > 
> > > > > Subject: [PATCH 00/30] virtiofs daemon (base)
> > > > > Type: series
> > > > > Message-id: 20191021105832.36574-1-dgilbert@redhat.com
> > > > > 
> > > > > === 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..
> > > > 
> > > > Expecting checkpatch to be broken here; most of the files
> > > > follow FUSE's formatting.
> > > > 
> > > > Dave
> > > 
> > > I wonder what do others think about this.
> > > One problem with such inconsistencies is that people tend to copy code
> > > around, which tends to result in a mess.
> > 
> > IIUC, most of this code is simpy copied as-is from the fuse or linux
> > git repos. I'm wondering what the intention is for it long term ?
> > 
> > For header files, I would have expected us to be able to compile against
> > the -devel package provided by the kernel or fuse packages. I can
> > understand if we want to import the headers if the VSOCK additions to
> > them are not yet widely available in distros though. If this is the case
> > we should put a time limit on how long we'd keep these copied headers
> > around for before dropping them. It would be fine to violate QEMU coding
> > style in this case as its not code QEMU would "maintain" long term - just
> > a read-only import.
> 
> The headers are really two types;  one are external definitions, the
> other are internal parts of libfuse.  I'd expect to keep the internal
> parts long term; teh external parts hmm; where would we pull them in
> externally from?
> 
> > The source files though, we appear to then be modifying locally, which
> > suggests they'll live in our repo forever. In this case I'd expect to
> > have compliance with QEMU coding standards.
> 
> OK.
> 
> > I'm surprised we need to copy so much in from fuse though. Is there a
> > case to be made for fuse to provide a library of APIs for people who
> > are building fuse daemons to link against, instead of copy & fork ?
> 
> libfuse *is* such a library; but it preserves ABI compliance; it's
> intention is to be used to build filesystem implementations on top of -
> and that's got a fairly good separation;  however changing the fuse
> transport, and security models is much more invasive than it was
> designed for.
> 
> Dave


I guess you did try to propose adding the functionality to the libfuse
maintainer and got rejected? If not it's worth asking.



> > Regards,
> > Daniel
> > -- 
> > |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> > |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> > |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Daniel P. Berrangé Oct. 24, 2019, 11:25 a.m. UTC | #9
On Thu, Oct 24, 2019 at 12:14:39PM +0100, Dr. David Alan Gilbert wrote:
> * Daniel P. Berrangé (berrange@redhat.com) wrote:
> > On Thu, Oct 24, 2019 at 06:59:33AM -0400, Michael S. Tsirkin wrote:
> > > On Mon, Oct 21, 2019 at 03:33:57PM +0100, Dr. David Alan Gilbert wrote:
> > > > * no-reply@patchew.org (no-reply@patchew.org) wrote:
> > > > > Patchew URL: https://patchew.org/QEMU/20191021105832.36574-1-dgilbert@redhat.com/
> > > > > 
> > > > > 
> > > > > 
> > > > > Hi,
> > > > > 
> > > > > This series seems to have some coding style problems. See output below for
> > > > > more information:
> > > > > 
> > > > > Subject: [PATCH 00/30] virtiofs daemon (base)
> > > > > Type: series
> > > > > Message-id: 20191021105832.36574-1-dgilbert@redhat.com
> > > > > 
> > > > > === 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..
> > > > 
> > > > Expecting checkpatch to be broken here; most of the files
> > > > follow FUSE's formatting.
> > > > 
> > > > Dave
> > > 
> > > I wonder what do others think about this.
> > > One problem with such inconsistencies is that people tend to copy code
> > > around, which tends to result in a mess.
> > 
> > IIUC, most of this code is simpy copied as-is from the fuse or linux
> > git repos. I'm wondering what the intention is for it long term ?
> > 
> > For header files, I would have expected us to be able to compile against
> > the -devel package provided by the kernel or fuse packages. I can
> > understand if we want to import the headers if the VSOCK additions to
> > them are not yet widely available in distros though. If this is the case
> > we should put a time limit on how long we'd keep these copied headers
> > around for before dropping them. It would be fine to violate QEMU coding
> > style in this case as its not code QEMU would "maintain" long term - just
> > a read-only import.
> 
> The headers are really two types;  one are external definitions, the
> other are internal parts of libfuse.  I'd expect to keep the internal
> parts long term; teh external parts hmm; where would we pull them in
> externally from?

The fuse3-devel RPM on Fedora has some, but not all, of the fuse headers
the patches copy in. Not sure if that's enough though.

The kernel-devel RPM has fuse.h which seems to match fuse_kernel.h header
being imported.

Obviously that would mean a configure check to see if the required
headers exist or not & are new enough for VSOCK

Regards,
Daniel
Dr. David Alan Gilbert Oct. 24, 2019, 12:54 p.m. UTC | #10
* Michael S. Tsirkin (mst@redhat.com) wrote:
> On Thu, Oct 24, 2019 at 12:14:39PM +0100, Dr. David Alan Gilbert wrote:
> > * Daniel P. Berrangé (berrange@redhat.com) wrote:
> > > On Thu, Oct 24, 2019 at 06:59:33AM -0400, Michael S. Tsirkin wrote:
> > > > On Mon, Oct 21, 2019 at 03:33:57PM +0100, Dr. David Alan Gilbert wrote:
> > > > > * no-reply@patchew.org (no-reply@patchew.org) wrote:
> > > > > > Patchew URL: https://patchew.org/QEMU/20191021105832.36574-1-dgilbert@redhat.com/
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > Hi,
> > > > > > 
> > > > > > This series seems to have some coding style problems. See output below for
> > > > > > more information:
> > > > > > 
> > > > > > Subject: [PATCH 00/30] virtiofs daemon (base)
> > > > > > Type: series
> > > > > > Message-id: 20191021105832.36574-1-dgilbert@redhat.com
> > > > > > 
> > > > > > === 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..
> > > > > 
> > > > > Expecting checkpatch to be broken here; most of the files
> > > > > follow FUSE's formatting.
> > > > > 
> > > > > Dave
> > > > 
> > > > I wonder what do others think about this.
> > > > One problem with such inconsistencies is that people tend to copy code
> > > > around, which tends to result in a mess.
> > > 
> > > IIUC, most of this code is simpy copied as-is from the fuse or linux
> > > git repos. I'm wondering what the intention is for it long term ?
> > > 
> > > For header files, I would have expected us to be able to compile against
> > > the -devel package provided by the kernel or fuse packages. I can
> > > understand if we want to import the headers if the VSOCK additions to
> > > them are not yet widely available in distros though. If this is the case
> > > we should put a time limit on how long we'd keep these copied headers
> > > around for before dropping them. It would be fine to violate QEMU coding
> > > style in this case as its not code QEMU would "maintain" long term - just
> > > a read-only import.
> > 
> > The headers are really two types;  one are external definitions, the
> > other are internal parts of libfuse.  I'd expect to keep the internal
> > parts long term; teh external parts hmm; where would we pull them in
> > externally from?
> > 
> > > The source files though, we appear to then be modifying locally, which
> > > suggests they'll live in our repo forever. In this case I'd expect to
> > > have compliance with QEMU coding standards.
> > 
> > OK.
> > 
> > > I'm surprised we need to copy so much in from fuse though. Is there a
> > > case to be made for fuse to provide a library of APIs for people who
> > > are building fuse daemons to link against, instead of copy & fork ?
> > 
> > libfuse *is* such a library; but it preserves ABI compliance; it's
> > intention is to be used to build filesystem implementations on top of -
> > and that's got a fairly good separation;  however changing the fuse
> > transport, and security models is much more invasive than it was
> > designed for.
> > 
> > Dave
> 
> 
> I guess you did try to propose adding the functionality to the libfuse
> maintainer and got rejected? If not it's worth asking.

I looked at it; we started off thinking we'd merge much of it up there -
but there's at least two problems:

  a) Our libvhost-user isn't a separable library either - so we'd need
to copy it into libfuse which is just as big a problem.
  b) It's not additional interfaces, it's changes to existing APIs that
break A*B*I compatibility that are very hard to avoid when you're
changing the transport.

Also, we're not just changing the transport - if you look at the
security patchset we're inverting the security model and there's a bunch
of threading changes that you haven't got yet.

Dave

> 
> 
> > > Regards,
> > > Daniel
> > > -- 
> > > |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> > > |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> > > |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
> > --
> > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Dr. David Alan Gilbert Oct. 24, 2019, 1:36 p.m. UTC | #11
* Daniel P. Berrangé (berrange@redhat.com) wrote:
> On Thu, Oct 24, 2019 at 12:14:39PM +0100, Dr. David Alan Gilbert wrote:
> > * Daniel P. Berrangé (berrange@redhat.com) wrote:
> > > On Thu, Oct 24, 2019 at 06:59:33AM -0400, Michael S. Tsirkin wrote:
> > > > On Mon, Oct 21, 2019 at 03:33:57PM +0100, Dr. David Alan Gilbert wrote:
> > > > > * no-reply@patchew.org (no-reply@patchew.org) wrote:
> > > > > > Patchew URL: https://patchew.org/QEMU/20191021105832.36574-1-dgilbert@redhat.com/
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > Hi,
> > > > > > 
> > > > > > This series seems to have some coding style problems. See output below for
> > > > > > more information:
> > > > > > 
> > > > > > Subject: [PATCH 00/30] virtiofs daemon (base)
> > > > > > Type: series
> > > > > > Message-id: 20191021105832.36574-1-dgilbert@redhat.com
> > > > > > 
> > > > > > === 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..
> > > > > 
> > > > > Expecting checkpatch to be broken here; most of the files
> > > > > follow FUSE's formatting.
> > > > > 
> > > > > Dave
> > > > 
> > > > I wonder what do others think about this.
> > > > One problem with such inconsistencies is that people tend to copy code
> > > > around, which tends to result in a mess.
> > > 
> > > IIUC, most of this code is simpy copied as-is from the fuse or linux
> > > git repos. I'm wondering what the intention is for it long term ?
> > > 
> > > For header files, I would have expected us to be able to compile against
> > > the -devel package provided by the kernel or fuse packages. I can
> > > understand if we want to import the headers if the VSOCK additions to
> > > them are not yet widely available in distros though. If this is the case
> > > we should put a time limit on how long we'd keep these copied headers
> > > around for before dropping them. It would be fine to violate QEMU coding
> > > style in this case as its not code QEMU would "maintain" long term - just
> > > a read-only import.
> > 
> > The headers are really two types;  one are external definitions, the
> > other are internal parts of libfuse.  I'd expect to keep the internal
> > parts long term; teh external parts hmm; where would we pull them in
> > externally from?
> 
> The fuse3-devel RPM on Fedora has some, but not all, of the fuse headers
> the patches copy in. Not sure if that's enough though.

No, that's the public API, not the internals which we're poking at.

> The kernel-devel RPM has fuse.h which seems to match fuse_kernel.h header
> being imported.

We do require that we have one that's new enough, so in future it might
be possible; but we're currently using very new parts of fuse.
(It's also not obvious whether the kernel or libfuse owns the 'newest'
version of that header; we think it's probably the kernel).

> Obviously that would mean a configure check to see if the required
> headers exist or not & are new enough for VSOCK

Dave

> 
> Regards,
> Daniel
> -- 
> |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Dr. David Alan Gilbert Oct. 24, 2019, 4:19 p.m. UTC | #12
* Michael S. Tsirkin (mst@redhat.com) wrote:
> On Mon, Oct 21, 2019 at 11:58:02AM +0100, Dr. David Alan Gilbert (git) wrote:
> > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> > 
> > Hi,
> >   This is the 1st set for the virtiofsd - a daemon
> > that implements the user space side of virtiofs.
> > 
> >   The kernel and qemu device parts recently went in,
> > so the daemon is the only thing missing to have a working
> > set.
> > 
> >   This set is the absolute minimal base set of patches;
> > it's not yet safe to use (from security or correctness);
> > 
> > I'll follow up with ~3 more series in the next few days
> > with:
> > 
> >     a) Security patches that add sandboxing and checking
> >        compared with normal fuse - that makes it safe.
> >     b) Performance improvements including threading
> >     c) Other fixes, including correctness.
> > 
> > but, this is a good start and gets things rolling.
> > 
> > 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.
> > 
> > For new files I've formatted the code according to qemu
> > standards; for files that are from upstream libfuse
> > I've kept with their standards for ease of future updating.
> 
> Thinking of future updates, have you given any thought to
> automating them? Something along the lines of
> update-linux-headers maybe?

The problem is we're changing the code in some of them;
libfuse changes slowly enough that rebasing on a new libfuse isn't too
bad; but once committed, just copying new versions in like update-linux-headers
does isn't going to work because we have to merge in our changes.
I expect to have to cherry-pick changes.  Libfuse has had 75 patches in
the last year; so it doesn't worry me too much.

Dave

> 
> > We can't just link with libfuse, since we have to make ABI incompatible
> > changes for the new transport.
> > 
> > Running this daemon is typically done with:
> > 
> >    ./virtiofsd -o vhost_user_socket=/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
> > 
> > Dave
> > 
> > 
> > Dr. David Alan Gilbert (22):
> >   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: Fix fuse_daemonize ignored return values
> >   virtiofsd: Fix common header and define for QEMU builds
> >   virtiofsd: fuse: Make iov_length usable outside fuse_lowlevel.c
> >   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
> > 
> > Stefan Hajnoczi (7):
> >   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
> > 
> > Vivek Goyal (1):
> >   virtiofsd: Make fsync work even if only inode is passed in
> > 
> >  .gitignore                                  |    1 +
> >  MAINTAINERS                                 |    8 +
> >  Makefile                                    |    9 +
> >  Makefile.objs                               |    1 +
> >  contrib/virtiofsd/50-qemu-virtiofsd.json.in |    5 +
> >  contrib/virtiofsd/Makefile.objs             |   10 +
> >  contrib/virtiofsd/buffer.c                  |  318 +++
> >  contrib/virtiofsd/fuse.h                    | 1268 ++++++++++
> >  contrib/virtiofsd/fuse_common.h             |  823 +++++++
> >  contrib/virtiofsd/fuse_i.h                  |  131 ++
> >  contrib/virtiofsd/fuse_kernel.h             |  858 +++++++
> >  contrib/virtiofsd/fuse_log.c                |   40 +
> >  contrib/virtiofsd/fuse_log.h                |   82 +
> >  contrib/virtiofsd/fuse_loop_mt.c            |   54 +
> >  contrib/virtiofsd/fuse_lowlevel.c           | 2302 +++++++++++++++++++
> >  contrib/virtiofsd/fuse_lowlevel.h           | 2024 ++++++++++++++++
> >  contrib/virtiofsd/fuse_misc.h               |   59 +
> >  contrib/virtiofsd/fuse_opt.c                |  422 ++++
> >  contrib/virtiofsd/fuse_opt.h                |  271 +++
> >  contrib/virtiofsd/fuse_signals.c            |   90 +
> >  contrib/virtiofsd/fuse_virtio.c             |  717 ++++++
> >  contrib/virtiofsd/fuse_virtio.h             |   33 +
> >  contrib/virtiofsd/helper.c                  |  300 +++
> >  contrib/virtiofsd/passthrough_helpers.h     |   76 +
> >  contrib/virtiofsd/passthrough_ll.c          | 1341 +++++++++++
> >  docs/interop/vhost-user.json                |    4 +-
> >  26 files changed, 11246 insertions(+), 1 deletion(-)
> >  create mode 100644 contrib/virtiofsd/50-qemu-virtiofsd.json.in
> >  create mode 100644 contrib/virtiofsd/Makefile.objs
> >  create mode 100644 contrib/virtiofsd/buffer.c
> >  create mode 100644 contrib/virtiofsd/fuse.h
> >  create mode 100644 contrib/virtiofsd/fuse_common.h
> >  create mode 100644 contrib/virtiofsd/fuse_i.h
> >  create mode 100644 contrib/virtiofsd/fuse_kernel.h
> >  create mode 100644 contrib/virtiofsd/fuse_log.c
> >  create mode 100644 contrib/virtiofsd/fuse_log.h
> >  create mode 100644 contrib/virtiofsd/fuse_loop_mt.c
> >  create mode 100644 contrib/virtiofsd/fuse_lowlevel.c
> >  create mode 100644 contrib/virtiofsd/fuse_lowlevel.h
> >  create mode 100644 contrib/virtiofsd/fuse_misc.h
> >  create mode 100644 contrib/virtiofsd/fuse_opt.c
> >  create mode 100644 contrib/virtiofsd/fuse_opt.h
> >  create mode 100644 contrib/virtiofsd/fuse_signals.c
> >  create mode 100644 contrib/virtiofsd/fuse_virtio.c
> >  create mode 100644 contrib/virtiofsd/fuse_virtio.h
> >  create mode 100644 contrib/virtiofsd/helper.c
> >  create mode 100644 contrib/virtiofsd/passthrough_helpers.h
> >  create mode 100644 contrib/virtiofsd/passthrough_ll.c
> > 
> > -- 
> > 2.23.0
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Michael S. Tsirkin Oct. 27, 2019, 1:11 p.m. UTC | #13
On Mon, Oct 21, 2019 at 11:58:02AM +0100, Dr. David Alan Gilbert (git) wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> 
> Hi,
>   This is the 1st set for the virtiofsd - a daemon
> that implements the user space side of virtiofs.
> 
>   The kernel and qemu device parts recently went in,
> so the daemon is the only thing missing to have a working
> set.
> 
>   This set is the absolute minimal base set of patches;
> it's not yet safe to use (from security or correctness);

So based on this I'm guessing we don't want to rush this in
before the soft freeze.
If you have a different opinion, let me know pls.
Dr. David Alan Gilbert Oct. 28, 2019, 1:24 p.m. UTC | #14
* Michael S. Tsirkin (mst@redhat.com) wrote:
> On Mon, Oct 21, 2019 at 11:58:02AM +0100, Dr. David Alan Gilbert (git) wrote:
> > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> > 
> > Hi,
> >   This is the 1st set for the virtiofsd - a daemon
> > that implements the user space side of virtiofs.
> > 
> >   The kernel and qemu device parts recently went in,
> > so the daemon is the only thing missing to have a working
> > set.
> > 
> >   This set is the absolute minimal base set of patches;
> > it's not yet safe to use (from security or correctness);
> 
> So based on this I'm guessing we don't want to rush this in
> before the soft freeze.
> If you have a different opinion, let me know pls.

With the 2nd set that I posted on thursday, the '(security)' set
it becomes safe - with full sandboxing and path verification.
Now, we do have a pile of separate small fixes, and threading code
stuff; but we cna leave those off.

Dave

> -- 
> MST
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Michael S. Tsirkin Oct. 29, 2019, 10:50 p.m. UTC | #15
On Mon, Oct 21, 2019 at 11:58:02AM +0100, Dr. David Alan Gilbert (git) wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> 
> Hi,
>   This is the 1st set for the virtiofsd - a daemon
> that implements the user space side of virtiofs.
> 
>   The kernel and qemu device parts recently went in,
> so the daemon is the only thing missing to have a working
> set.


So I went back and forth on this but this is huge
and there's not a lot of time for review.
So I parked it + the security patches on a next branch in my tree.
I will rebase once after rc1 is out, and then stop.


>   This set is the absolute minimal base set of patches;
> it's not yet safe to use (from security or correctness);
> 
> I'll follow up with ~3 more series in the next few days
> with:
> 
>     a) Security patches that add sandboxing and checking
>        compared with normal fuse - that makes it safe.
>     b) Performance improvements including threading
>     c) Other fixes, including correctness.
> 
> but, this is a good start and gets things rolling.
> 
> 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.
> 
> For new files I've formatted the code according to qemu
> standards; for files that are from upstream libfuse
> I've kept with their standards for ease of future updating.
> 
> We can't just link with libfuse, since we have to make ABI incompatible
> changes for the new transport.
> 
> Running this daemon is typically done with:
> 
>    ./virtiofsd -o vhost_user_socket=/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
> 
> Dave
> 
> 
> Dr. David Alan Gilbert (22):
>   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: Fix fuse_daemonize ignored return values
>   virtiofsd: Fix common header and define for QEMU builds
>   virtiofsd: fuse: Make iov_length usable outside fuse_lowlevel.c
>   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
> 
> Stefan Hajnoczi (7):
>   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
> 
> Vivek Goyal (1):
>   virtiofsd: Make fsync work even if only inode is passed in
> 
>  .gitignore                                  |    1 +
>  MAINTAINERS                                 |    8 +
>  Makefile                                    |    9 +
>  Makefile.objs                               |    1 +
>  contrib/virtiofsd/50-qemu-virtiofsd.json.in |    5 +
>  contrib/virtiofsd/Makefile.objs             |   10 +
>  contrib/virtiofsd/buffer.c                  |  318 +++
>  contrib/virtiofsd/fuse.h                    | 1268 ++++++++++
>  contrib/virtiofsd/fuse_common.h             |  823 +++++++
>  contrib/virtiofsd/fuse_i.h                  |  131 ++
>  contrib/virtiofsd/fuse_kernel.h             |  858 +++++++
>  contrib/virtiofsd/fuse_log.c                |   40 +
>  contrib/virtiofsd/fuse_log.h                |   82 +
>  contrib/virtiofsd/fuse_loop_mt.c            |   54 +
>  contrib/virtiofsd/fuse_lowlevel.c           | 2302 +++++++++++++++++++
>  contrib/virtiofsd/fuse_lowlevel.h           | 2024 ++++++++++++++++
>  contrib/virtiofsd/fuse_misc.h               |   59 +
>  contrib/virtiofsd/fuse_opt.c                |  422 ++++
>  contrib/virtiofsd/fuse_opt.h                |  271 +++
>  contrib/virtiofsd/fuse_signals.c            |   90 +
>  contrib/virtiofsd/fuse_virtio.c             |  717 ++++++
>  contrib/virtiofsd/fuse_virtio.h             |   33 +
>  contrib/virtiofsd/helper.c                  |  300 +++
>  contrib/virtiofsd/passthrough_helpers.h     |   76 +
>  contrib/virtiofsd/passthrough_ll.c          | 1341 +++++++++++
>  docs/interop/vhost-user.json                |    4 +-
>  26 files changed, 11246 insertions(+), 1 deletion(-)
>  create mode 100644 contrib/virtiofsd/50-qemu-virtiofsd.json.in
>  create mode 100644 contrib/virtiofsd/Makefile.objs
>  create mode 100644 contrib/virtiofsd/buffer.c
>  create mode 100644 contrib/virtiofsd/fuse.h
>  create mode 100644 contrib/virtiofsd/fuse_common.h
>  create mode 100644 contrib/virtiofsd/fuse_i.h
>  create mode 100644 contrib/virtiofsd/fuse_kernel.h
>  create mode 100644 contrib/virtiofsd/fuse_log.c
>  create mode 100644 contrib/virtiofsd/fuse_log.h
>  create mode 100644 contrib/virtiofsd/fuse_loop_mt.c
>  create mode 100644 contrib/virtiofsd/fuse_lowlevel.c
>  create mode 100644 contrib/virtiofsd/fuse_lowlevel.h
>  create mode 100644 contrib/virtiofsd/fuse_misc.h
>  create mode 100644 contrib/virtiofsd/fuse_opt.c
>  create mode 100644 contrib/virtiofsd/fuse_opt.h
>  create mode 100644 contrib/virtiofsd/fuse_signals.c
>  create mode 100644 contrib/virtiofsd/fuse_virtio.c
>  create mode 100644 contrib/virtiofsd/fuse_virtio.h
>  create mode 100644 contrib/virtiofsd/helper.c
>  create mode 100644 contrib/virtiofsd/passthrough_helpers.h
>  create mode 100644 contrib/virtiofsd/passthrough_ll.c
> 
> -- 
> 2.23.0
Dr. David Alan Gilbert Oct. 30, 2019, 10:47 a.m. UTC | #16
* Michael S. Tsirkin (mst@redhat.com) wrote:
> On Mon, Oct 21, 2019 at 11:58:02AM +0100, Dr. David Alan Gilbert (git) wrote:
> > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> > 
> > Hi,
> >   This is the 1st set for the virtiofsd - a daemon
> > that implements the user space side of virtiofs.
> > 
> >   The kernel and qemu device parts recently went in,
> > so the daemon is the only thing missing to have a working
> > set.
> 
> 
> So I went back and forth on this but this is huge
> and there's not a lot of time for review.
> So I parked it + the security patches on a next branch in my tree.
> I will rebase once after rc1 is out, and then stop.

Thanks; I'll work on the extra sets that can go later (the
threading and cleanups+fixes).

Dave

> 
> >   This set is the absolute minimal base set of patches;
> > it's not yet safe to use (from security or correctness);
> > 
> > I'll follow up with ~3 more series in the next few days
> > with:
> > 
> >     a) Security patches that add sandboxing and checking
> >        compared with normal fuse - that makes it safe.
> >     b) Performance improvements including threading
> >     c) Other fixes, including correctness.
> > 
> > but, this is a good start and gets things rolling.
> > 
> > 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.
> > 
> > For new files I've formatted the code according to qemu
> > standards; for files that are from upstream libfuse
> > I've kept with their standards for ease of future updating.
> > 
> > We can't just link with libfuse, since we have to make ABI incompatible
> > changes for the new transport.
> > 
> > Running this daemon is typically done with:
> > 
> >    ./virtiofsd -o vhost_user_socket=/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
> > 
> > Dave
> > 
> > 
> > Dr. David Alan Gilbert (22):
> >   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: Fix fuse_daemonize ignored return values
> >   virtiofsd: Fix common header and define for QEMU builds
> >   virtiofsd: fuse: Make iov_length usable outside fuse_lowlevel.c
> >   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
> > 
> > Stefan Hajnoczi (7):
> >   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
> > 
> > Vivek Goyal (1):
> >   virtiofsd: Make fsync work even if only inode is passed in
> > 
> >  .gitignore                                  |    1 +
> >  MAINTAINERS                                 |    8 +
> >  Makefile                                    |    9 +
> >  Makefile.objs                               |    1 +
> >  contrib/virtiofsd/50-qemu-virtiofsd.json.in |    5 +
> >  contrib/virtiofsd/Makefile.objs             |   10 +
> >  contrib/virtiofsd/buffer.c                  |  318 +++
> >  contrib/virtiofsd/fuse.h                    | 1268 ++++++++++
> >  contrib/virtiofsd/fuse_common.h             |  823 +++++++
> >  contrib/virtiofsd/fuse_i.h                  |  131 ++
> >  contrib/virtiofsd/fuse_kernel.h             |  858 +++++++
> >  contrib/virtiofsd/fuse_log.c                |   40 +
> >  contrib/virtiofsd/fuse_log.h                |   82 +
> >  contrib/virtiofsd/fuse_loop_mt.c            |   54 +
> >  contrib/virtiofsd/fuse_lowlevel.c           | 2302 +++++++++++++++++++
> >  contrib/virtiofsd/fuse_lowlevel.h           | 2024 ++++++++++++++++
> >  contrib/virtiofsd/fuse_misc.h               |   59 +
> >  contrib/virtiofsd/fuse_opt.c                |  422 ++++
> >  contrib/virtiofsd/fuse_opt.h                |  271 +++
> >  contrib/virtiofsd/fuse_signals.c            |   90 +
> >  contrib/virtiofsd/fuse_virtio.c             |  717 ++++++
> >  contrib/virtiofsd/fuse_virtio.h             |   33 +
> >  contrib/virtiofsd/helper.c                  |  300 +++
> >  contrib/virtiofsd/passthrough_helpers.h     |   76 +
> >  contrib/virtiofsd/passthrough_ll.c          | 1341 +++++++++++
> >  docs/interop/vhost-user.json                |    4 +-
> >  26 files changed, 11246 insertions(+), 1 deletion(-)
> >  create mode 100644 contrib/virtiofsd/50-qemu-virtiofsd.json.in
> >  create mode 100644 contrib/virtiofsd/Makefile.objs
> >  create mode 100644 contrib/virtiofsd/buffer.c
> >  create mode 100644 contrib/virtiofsd/fuse.h
> >  create mode 100644 contrib/virtiofsd/fuse_common.h
> >  create mode 100644 contrib/virtiofsd/fuse_i.h
> >  create mode 100644 contrib/virtiofsd/fuse_kernel.h
> >  create mode 100644 contrib/virtiofsd/fuse_log.c
> >  create mode 100644 contrib/virtiofsd/fuse_log.h
> >  create mode 100644 contrib/virtiofsd/fuse_loop_mt.c
> >  create mode 100644 contrib/virtiofsd/fuse_lowlevel.c
> >  create mode 100644 contrib/virtiofsd/fuse_lowlevel.h
> >  create mode 100644 contrib/virtiofsd/fuse_misc.h
> >  create mode 100644 contrib/virtiofsd/fuse_opt.c
> >  create mode 100644 contrib/virtiofsd/fuse_opt.h
> >  create mode 100644 contrib/virtiofsd/fuse_signals.c
> >  create mode 100644 contrib/virtiofsd/fuse_virtio.c
> >  create mode 100644 contrib/virtiofsd/fuse_virtio.h
> >  create mode 100644 contrib/virtiofsd/helper.c
> >  create mode 100644 contrib/virtiofsd/passthrough_helpers.h
> >  create mode 100644 contrib/virtiofsd/passthrough_ll.c
> > 
> > -- 
> > 2.23.0
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Michael S. Tsirkin Oct. 31, 2019, 12:34 a.m. UTC | #17
On Wed, Oct 30, 2019 at 10:47:00AM +0000, Dr. David Alan Gilbert wrote:
> * Michael S. Tsirkin (mst@redhat.com) wrote:
> > On Mon, Oct 21, 2019 at 11:58:02AM +0100, Dr. David Alan Gilbert (git) wrote:
> > > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> > > 
> > > Hi,
> > >   This is the 1st set for the virtiofsd - a daemon
> > > that implements the user space side of virtiofs.
> > > 
> > >   The kernel and qemu device parts recently went in,
> > > so the daemon is the only thing missing to have a working
> > > set.
> > 
> > 
> > So I went back and forth on this but this is huge
> > and there's not a lot of time for review.
> > So I parked it + the security patches on a next branch in my tree.
> > I will rebase once after rc1 is out, and then stop.
> 
> Thanks; I'll work on the extra sets that can go later (the
> threading and cleanups+fixes).
> 
> Dave


Apropos I would really like to figure out
a better way to know that we did not miss
anything when adding the security patchset.


> > 
> > >   This set is the absolute minimal base set of patches;
> > > it's not yet safe to use (from security or correctness);
> > > 
> > > I'll follow up with ~3 more series in the next few days
> > > with:
> > > 
> > >     a) Security patches that add sandboxing and checking
> > >        compared with normal fuse - that makes it safe.
> > >     b) Performance improvements including threading
> > >     c) Other fixes, including correctness.
> > > 
> > > but, this is a good start and gets things rolling.
> > > 
> > > 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.
> > > 
> > > For new files I've formatted the code according to qemu
> > > standards; for files that are from upstream libfuse
> > > I've kept with their standards for ease of future updating.
> > > 
> > > We can't just link with libfuse, since we have to make ABI incompatible
> > > changes for the new transport.
> > > 
> > > Running this daemon is typically done with:
> > > 
> > >    ./virtiofsd -o vhost_user_socket=/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
> > > 
> > > Dave
> > > 
> > > 
> > > Dr. David Alan Gilbert (22):
> > >   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: Fix fuse_daemonize ignored return values
> > >   virtiofsd: Fix common header and define for QEMU builds
> > >   virtiofsd: fuse: Make iov_length usable outside fuse_lowlevel.c
> > >   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
> > > 
> > > Stefan Hajnoczi (7):
> > >   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
> > > 
> > > Vivek Goyal (1):
> > >   virtiofsd: Make fsync work even if only inode is passed in
> > > 
> > >  .gitignore                                  |    1 +
> > >  MAINTAINERS                                 |    8 +
> > >  Makefile                                    |    9 +
> > >  Makefile.objs                               |    1 +
> > >  contrib/virtiofsd/50-qemu-virtiofsd.json.in |    5 +
> > >  contrib/virtiofsd/Makefile.objs             |   10 +
> > >  contrib/virtiofsd/buffer.c                  |  318 +++
> > >  contrib/virtiofsd/fuse.h                    | 1268 ++++++++++
> > >  contrib/virtiofsd/fuse_common.h             |  823 +++++++
> > >  contrib/virtiofsd/fuse_i.h                  |  131 ++
> > >  contrib/virtiofsd/fuse_kernel.h             |  858 +++++++
> > >  contrib/virtiofsd/fuse_log.c                |   40 +
> > >  contrib/virtiofsd/fuse_log.h                |   82 +
> > >  contrib/virtiofsd/fuse_loop_mt.c            |   54 +
> > >  contrib/virtiofsd/fuse_lowlevel.c           | 2302 +++++++++++++++++++
> > >  contrib/virtiofsd/fuse_lowlevel.h           | 2024 ++++++++++++++++
> > >  contrib/virtiofsd/fuse_misc.h               |   59 +
> > >  contrib/virtiofsd/fuse_opt.c                |  422 ++++
> > >  contrib/virtiofsd/fuse_opt.h                |  271 +++
> > >  contrib/virtiofsd/fuse_signals.c            |   90 +
> > >  contrib/virtiofsd/fuse_virtio.c             |  717 ++++++
> > >  contrib/virtiofsd/fuse_virtio.h             |   33 +
> > >  contrib/virtiofsd/helper.c                  |  300 +++
> > >  contrib/virtiofsd/passthrough_helpers.h     |   76 +
> > >  contrib/virtiofsd/passthrough_ll.c          | 1341 +++++++++++
> > >  docs/interop/vhost-user.json                |    4 +-
> > >  26 files changed, 11246 insertions(+), 1 deletion(-)
> > >  create mode 100644 contrib/virtiofsd/50-qemu-virtiofsd.json.in
> > >  create mode 100644 contrib/virtiofsd/Makefile.objs
> > >  create mode 100644 contrib/virtiofsd/buffer.c
> > >  create mode 100644 contrib/virtiofsd/fuse.h
> > >  create mode 100644 contrib/virtiofsd/fuse_common.h
> > >  create mode 100644 contrib/virtiofsd/fuse_i.h
> > >  create mode 100644 contrib/virtiofsd/fuse_kernel.h
> > >  create mode 100644 contrib/virtiofsd/fuse_log.c
> > >  create mode 100644 contrib/virtiofsd/fuse_log.h
> > >  create mode 100644 contrib/virtiofsd/fuse_loop_mt.c
> > >  create mode 100644 contrib/virtiofsd/fuse_lowlevel.c
> > >  create mode 100644 contrib/virtiofsd/fuse_lowlevel.h
> > >  create mode 100644 contrib/virtiofsd/fuse_misc.h
> > >  create mode 100644 contrib/virtiofsd/fuse_opt.c
> > >  create mode 100644 contrib/virtiofsd/fuse_opt.h
> > >  create mode 100644 contrib/virtiofsd/fuse_signals.c
> > >  create mode 100644 contrib/virtiofsd/fuse_virtio.c
> > >  create mode 100644 contrib/virtiofsd/fuse_virtio.h
> > >  create mode 100644 contrib/virtiofsd/helper.c
> > >  create mode 100644 contrib/virtiofsd/passthrough_helpers.h
> > >  create mode 100644 contrib/virtiofsd/passthrough_ll.c
> > > 
> > > -- 
> > > 2.23.0
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Dr. David Alan Gilbert Oct. 31, 2019, 1:20 p.m. UTC | #18
* Michael S. Tsirkin (mst@redhat.com) wrote:
> On Wed, Oct 30, 2019 at 10:47:00AM +0000, Dr. David Alan Gilbert wrote:
> > * Michael S. Tsirkin (mst@redhat.com) wrote:
> > > On Mon, Oct 21, 2019 at 11:58:02AM +0100, Dr. David Alan Gilbert (git) wrote:
> > > > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> > > > 
> > > > Hi,
> > > >   This is the 1st set for the virtiofsd - a daemon
> > > > that implements the user space side of virtiofs.
> > > > 
> > > >   The kernel and qemu device parts recently went in,
> > > > so the daemon is the only thing missing to have a working
> > > > set.
> > > 
> > > 
> > > So I went back and forth on this but this is huge
> > > and there's not a lot of time for review.
> > > So I parked it + the security patches on a next branch in my tree.
> > > I will rebase once after rc1 is out, and then stop.
> > 
> > Thanks; I'll work on the extra sets that can go later (the
> > threading and cleanups+fixes).
> > 
> > Dave
> 
> 
> Apropos I would really like to figure out
> a better way to know that we did not miss
> anything when adding the security patchset.

Yep, it's worth at least having a lot of eyes on it, and better
finding some more automation for the path checking.

Dave

> 
> > > 
> > > >   This set is the absolute minimal base set of patches;
> > > > it's not yet safe to use (from security or correctness);
> > > > 
> > > > I'll follow up with ~3 more series in the next few days
> > > > with:
> > > > 
> > > >     a) Security patches that add sandboxing and checking
> > > >        compared with normal fuse - that makes it safe.
> > > >     b) Performance improvements including threading
> > > >     c) Other fixes, including correctness.
> > > > 
> > > > but, this is a good start and gets things rolling.
> > > > 
> > > > 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.
> > > > 
> > > > For new files I've formatted the code according to qemu
> > > > standards; for files that are from upstream libfuse
> > > > I've kept with their standards for ease of future updating.
> > > > 
> > > > We can't just link with libfuse, since we have to make ABI incompatible
> > > > changes for the new transport.
> > > > 
> > > > Running this daemon is typically done with:
> > > > 
> > > >    ./virtiofsd -o vhost_user_socket=/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
> > > > 
> > > > Dave
> > > > 
> > > > 
> > > > Dr. David Alan Gilbert (22):
> > > >   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: Fix fuse_daemonize ignored return values
> > > >   virtiofsd: Fix common header and define for QEMU builds
> > > >   virtiofsd: fuse: Make iov_length usable outside fuse_lowlevel.c
> > > >   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
> > > > 
> > > > Stefan Hajnoczi (7):
> > > >   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
> > > > 
> > > > Vivek Goyal (1):
> > > >   virtiofsd: Make fsync work even if only inode is passed in
> > > > 
> > > >  .gitignore                                  |    1 +
> > > >  MAINTAINERS                                 |    8 +
> > > >  Makefile                                    |    9 +
> > > >  Makefile.objs                               |    1 +
> > > >  contrib/virtiofsd/50-qemu-virtiofsd.json.in |    5 +
> > > >  contrib/virtiofsd/Makefile.objs             |   10 +
> > > >  contrib/virtiofsd/buffer.c                  |  318 +++
> > > >  contrib/virtiofsd/fuse.h                    | 1268 ++++++++++
> > > >  contrib/virtiofsd/fuse_common.h             |  823 +++++++
> > > >  contrib/virtiofsd/fuse_i.h                  |  131 ++
> > > >  contrib/virtiofsd/fuse_kernel.h             |  858 +++++++
> > > >  contrib/virtiofsd/fuse_log.c                |   40 +
> > > >  contrib/virtiofsd/fuse_log.h                |   82 +
> > > >  contrib/virtiofsd/fuse_loop_mt.c            |   54 +
> > > >  contrib/virtiofsd/fuse_lowlevel.c           | 2302 +++++++++++++++++++
> > > >  contrib/virtiofsd/fuse_lowlevel.h           | 2024 ++++++++++++++++
> > > >  contrib/virtiofsd/fuse_misc.h               |   59 +
> > > >  contrib/virtiofsd/fuse_opt.c                |  422 ++++
> > > >  contrib/virtiofsd/fuse_opt.h                |  271 +++
> > > >  contrib/virtiofsd/fuse_signals.c            |   90 +
> > > >  contrib/virtiofsd/fuse_virtio.c             |  717 ++++++
> > > >  contrib/virtiofsd/fuse_virtio.h             |   33 +
> > > >  contrib/virtiofsd/helper.c                  |  300 +++
> > > >  contrib/virtiofsd/passthrough_helpers.h     |   76 +
> > > >  contrib/virtiofsd/passthrough_ll.c          | 1341 +++++++++++
> > > >  docs/interop/vhost-user.json                |    4 +-
> > > >  26 files changed, 11246 insertions(+), 1 deletion(-)
> > > >  create mode 100644 contrib/virtiofsd/50-qemu-virtiofsd.json.in
> > > >  create mode 100644 contrib/virtiofsd/Makefile.objs
> > > >  create mode 100644 contrib/virtiofsd/buffer.c
> > > >  create mode 100644 contrib/virtiofsd/fuse.h
> > > >  create mode 100644 contrib/virtiofsd/fuse_common.h
> > > >  create mode 100644 contrib/virtiofsd/fuse_i.h
> > > >  create mode 100644 contrib/virtiofsd/fuse_kernel.h
> > > >  create mode 100644 contrib/virtiofsd/fuse_log.c
> > > >  create mode 100644 contrib/virtiofsd/fuse_log.h
> > > >  create mode 100644 contrib/virtiofsd/fuse_loop_mt.c
> > > >  create mode 100644 contrib/virtiofsd/fuse_lowlevel.c
> > > >  create mode 100644 contrib/virtiofsd/fuse_lowlevel.h
> > > >  create mode 100644 contrib/virtiofsd/fuse_misc.h
> > > >  create mode 100644 contrib/virtiofsd/fuse_opt.c
> > > >  create mode 100644 contrib/virtiofsd/fuse_opt.h
> > > >  create mode 100644 contrib/virtiofsd/fuse_signals.c
> > > >  create mode 100644 contrib/virtiofsd/fuse_virtio.c
> > > >  create mode 100644 contrib/virtiofsd/fuse_virtio.h
> > > >  create mode 100644 contrib/virtiofsd/helper.c
> > > >  create mode 100644 contrib/virtiofsd/passthrough_helpers.h
> > > >  create mode 100644 contrib/virtiofsd/passthrough_ll.c
> > > > 
> > > > -- 
> > > > 2.23.0
> > --
> > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK