Data Structures

llfuse.ENOATTR

This errorcode is unfortunately missing in the errno module, so it is provided by Python-LLFUSE instead.

llfuse.ROOT_INODE

The inode of the root directory, i.e. the mount point of the file system.

llfuse.default_options

This is a recommended set of options that should be passed to llfuse.init to get reasonable behavior and performance. Python-LLFUSE is compatible with any other combination of options as well, but you should only deviate from the defaults with good reason.

(The fsname=<foo> option is guaranteed never to be included in the default options, so you can always safely add it to the set).

The default options are:

  • default_permissions enables permission checking by kernel. Without this any umask (or uid/gid) would not have an effect.
  • splice_write just means to use splice if possible (i.e., if data is passed in a fd), and can be overriden using FUSE_BUF_NO_SPLICE. So it’s a good idea to always activate it.
  • splice_read means that requests are spliced from the fuse fd to a (thread-specific) intermediate pipe (this is presumably done to prevent the write handler from reading part of the next request). If splice_read is not set, fuse instead reads the whole request into memory and passes this buffer along. If we eventually read the request into a buffer anyway (as we have to if we want to create a Python object), using splice_read() is thus expected to decrease performance because of the intermediate pipe.
  • splice_move is a no-op as of Linux 2.6.21. However, it will become active as soon as some problems with the initial implementation have been solved. If active, it’s expected to improve performance because we move pages from the page instead of copying them.
  • nonempty allows mounts over non-empty file/dir.
  • big_writes enables larger than 4kB writes.

New in version 0.42.

exception llfuse.FUSEError

This exception may be raised by request handlers to indicate that the requested operation could not be carried out. The system call that resulted in the request (if any) will then fail with error code errno_.

class llfuse.RequestContext

Instances of this class are passed to some Operations methods to provide information about the caller of the syscall that initiated the request.

pid
uid
gid
umask
class llfuse.StatvfsData

Instances of this class store information about the file system. The attributes correspond to the elements of the statvfs struct, see statvfs(2) for details.

f_bsize
f_frsize
f_blocks
f_bfree
f_bavail
f_files
f_ffree
f_favail
f_namemax
class llfuse.EntryAttributes

Instances of this class store attributes of directory entries. Most of the attributes correspond to the elements of the stat C struct as returned by e.g. fstat and should be self-explanatory.

st_ino
generation

The inode generation number

entry_timeout

Validity timeout for the name/existence of the directory entry

Floating point numbers may be used. Units are seconds.

attr_timeout

Validity timeout for the attributes of the directory entry

Floating point numbers may be used. Units are seconds.

st_mode
st_uid
st_gid
st_rdev
st_size
st_blksize
st_blocks
st_atime_ns

Time of last access in (integer) nanoseconds

st_ctime_ns

Time of last inode modification in (integer) nanoseconds

st_mtime_ns

Time of last modification in (integer) nanoseconds

class llfuse.SetattrFields

SetattrFields instances are passed to the setattr handler to specify which attributes should be updated.

update_atime

If this attribute is true, it signals the Operations.setattr method that the st_atime_ns field contains an updated value.

update_mtime

If this attribute is true, it signals the Operations.setattr method that the st_mtime_ns field contains an updated value.

update_mode

If this attribute is true, it signals the Operations.setattr method that the st_mode field contains an updated value.

update_uid

If this attribute is true, it signals the Operations.setattr method that the st_uid field contains an updated value.

update_gid

If this attribute is true, it signals the Operations.setattr method that the st_gid field contains an updated value.

update_size

If this attribute is true, it signals the Operations.setattr method that the st_size field contains an updated value.