aboutsummaryrefslogtreecommitdiff
path: root/sys/fs/fuse/fuse_kernel.h
Commit message (Collapse)AuthorAgeFilesLines
* fusefs: implement FUSE_COPY_FILE_RANGE.Alan Somers2021-01-011-48/+93
| | | | | | | | | | This updates the FUSE protocol to 7.28, though most of the new features are optional and are not yet implemented. MFC after: 2 weeks Relnotes: yes Reviewed by: cem Differential Revision: https://reviews.freebsd.org/D27818
* fusefs: update FUSE protocol to 7.24 and implement FUSE_LSEEKAlan Somers2020-12-311-1/+16
| | | | | | | | | | FUSE_LSEEK reports holes on fuse file systems, and is used for example by bsdtar. MFC after: 2 weeks Relnotes: yes Reviewed by: cem Differential Revision: https://reviews.freebsd.org/D27804
* fs: clean up empty lines in .c and .h filesMateusz Guzik2020-09-011-1/+1
| | | | Notes: svn path=/head/; revision=365070
* fusefs: raise protocol level to 7.23Alan Somers2019-06-211-5/+37
| | | | | | | | | | | None of the new features are implemented yet. This commit just adds the new protocol definitions and adds backwards-compatibility code for pre 7.23 servers. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=349263
* fusefs: use standard integer types in fuse_kernel.hAlan Somers2019-06-211-223/+218
| | | | | | | | | | This is a merge of Linux revision 4c82456eeb4da081dd63dc69e91aa6deabd29e03. No functional change. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=349260
* fusefs: raise the protocol level to 7.21Alan Somers2019-06-211-6/+98
| | | | | | | | | | | Jumping from protocol 7.15 to 7.21 adds several new features. While they're all potentially useful, they're also all optional, and I'm not implementing any right now because my highest priority lies in a later version. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=349259
* fusefs: diff reduction of fuse_kernel.h vs the upstream versionAlan Somers2019-06-211-25/+25
| | | | | | | | | | | | fuse_kernel.h is based on Linux's fuse.h. In r349250 I modified fuse_kernel.h by generating a diff of two versions of Linux's fuse.h and applying it to our tree. patch succeeded, but it put one chunk in the wrong location. This commit fixes that. No functional changes. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=349258
* fusefs: raise protocol level to 7.15Alan Somers2019-06-201-1/+33
| | | | | | | | | | | | | | | This protocol level adds two new features: the ability for the server to store or retrieve data into/from the client's cache. But the messages aren't defined soundly since they identify the file only by its inode, without the generation number. So it's possible for them to modify the wrong file's cache. Also, I don't know of any file systems in ports that use these messages. So I'm not implementing them. I did add a (disabled) test for the store message, however. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=349250
* fusefs: trivially raise protocol level to 7.14Alan Somers2019-06-201-1/+4
| | | | | | | | | | The only new feature is splice(2) support on /dev/fuse, which FreeBSD can't support. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=349249
* fusefs: raise protocol level to 7.13Alan Somers2019-06-201-2/+8
| | | | | | | | | | | | This protocol version adds one new feature: the ability for the server to set the maximum number of background requests and a "congestion threshold" with ill-defined properties. I don't know of any fuse file systems in ports that use this feature, so I'm not implementing it. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=349244
* fusefs: raise protocol level to 7.12Alan Somers2019-05-291-2/+35
| | | | | | | | | | | | | | This commit raises the protocol level and adds backwards-compatibility code to handle structure size changes. It doesn't implement any new features. The new features added in protocol 7.12 are: * server-side umask processing (which FreeBSD won't do) * asynchronous inode and directory entry invalidation (which I'll do next) Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=348365
* fusefs: raise protocol level to 7.11Alan Somers2019-05-291-7/+105
| | | | | | | | | | This commit adds the definitions for protocol 7.11 but doesn't yet implement the new features. The new features are optional, so they can come later. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=348345
* fusefs: raise protocol level to 7.10Alan Somers2019-05-291-4/+6
| | | | | | | | | | | | | Protocol version 7.10 has only one new feature, and I'm choosing not to implement it, so this commit is basically a noop. The sole new feature is the FOPEN_NONSEEKABLE flag, which a fuse file system can return to indicate that a certain file handle cannot be seeked. However, I'm unaware of any file system in ports that uses this flag. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=348344
* fusefs: Upgrade FUSE protocol to version 7.9.Alan Somers2019-05-161-2/+75
| | | | | | | | | | | This commit upgrades the FUSE API to protocol 7.9 and adds unit tests for backwards compatibility with servers built for version 7.8. It doesn't implement any of 7.9's new features yet. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=347814
* fusefs: diff reduction vs the upstream sourcesAlan Somers2019-05-151-9/+9
| | | | | | | | | | | | | | | | | | fuse_kernel.h defines the structures used by the FUSE protocol. Originally it came from libfuse, but the current source of truth is the Linux kernel. This commit minimizes the diffs between our version and the Linux version as of 21f3da95d (protocol version 7.8). The flags field of struct fuse_listxattr_out and fuse_listxattr_in was an error in our header. Those fields don't exist in Linux or libfuse, and they've never been used in FreeBSD. In fact, those structs don't even exist in Linux and libfuse; those projects confusingly overload the identical fuse_getexattr_in and fuse_getxattr_out structs. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=347635
* fuse(4): add tests related to FUSE_MKNODAlan Somers2019-03-051-0/+5
| | | | | | | | PR: 236236 Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=344786
* FUSE extattrs: fix issue when neither uio nor size were not passed to VOP_*.Fedor Uporov2018-08-211-1/+11
| | | | | | | | | | | | | | The requested size was returned incorrectly in case uio == NULL from listextattr because the nameprefix/name conversion was not applied. Also, make a_size/uio returning logic more unified with other filesystems. Reviewed by: cem, pfg MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D13528 Notes: svn path=/head/; revision=338152
* sys: further adoption of SPDX licensing ID tags.Pedro F. Giffuni2017-11-201-1/+1
| | | | | | | | | | | | | | | | | Mainly focus on files that use BSD 3-Clause license. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point. Notes: svn path=/head/; revision=326023
* fuse: revert kernel_header update.Pedro F. Giffuni2013-07-241-86/+10
| | | | | | | | | | It seems to be causing problems due to the lack of the new features. Found by: bapt Pointed hat: pfg Notes: svn path=/head/; revision=253619
* fuse: revert birthtime support.Pedro F. Giffuni2013-07-201-4/+3
| | | | | | | | | | | | The creation time support breaks the data structures used in linux fuse. libfuse carries it's own header. Revert the changes for now. We will try to get an agreement with the fuse upstream maintainers to avoid having to patch the library headers all the time. Notes: svn path=/head/; revision=253498
* Adjust outsizes:Pedro F. Giffuni2013-07-201-2/+2
| | | | | | | | | | | Recalculate FUSE_COMPAT_ENTRY_OUT_SIZE and COMPAT_ATTR_OUT_SIZE. These were wrong in the previous commit. They are actually unused in FreeBSD though. Pointed out by: Jan Beich Notes: svn path=/head/; revision=253479
* Adjust outsizes:Pedro F. Giffuni2013-07-201-2/+2
| | | | | | | | | | | When birthtime was added (r253331) we missed adding the weight of the new fields in FUSE_COMPAT_ENTRY_OUT_SIZE and COMPAT_ATTR_OUT_SIZE. Adjust them accordingly. Pointed out by: Jan Beich Notes: svn path=/head/; revision=253478
* Update fuse_kernel header.Pedro F. Giffuni2013-07-151-11/+85
| | | | | | | | | | | | | | | | | | | | | Bring in the changes from the FUSE kernel interface 7.10 (available under a BSD license). After 7.10 the linux FUSE developers added support for a controversial CUSE driver and some linux especific features that are unlikely to find its way into FreeBSD. We currently don't implement any of the new features so we are *not* bumping the FUSE_KERNEL_MINOR_VERSION. The header should, nevertheless, serve as a template to add the new features in a compatible manner. While here adopt some minor cleanups from the upstream version like removing FUSE_MAJOR and FUSE_MINOR which were never used. Also add multiple inclusion header guards, Notes: svn path=/head/; revision=253344
* Add creation timestamp (birthtime) support for fuse.Pedro F. Giffuni2013-07-131-4/+1
| | | | | | | | | | | | | | I was keeping this #ifdef'd for reference with the MacFUSE change[1] but on second thought, this is a FreeBSD-only header so the SVN history should be enough. Add missing padding while here. Reference [1]: http://code.google.com/p/macfuse/source/detail?spec=svn1686&r=1360 Notes: svn path=/head/; revision=253331
* Add creation timestamp (birthtime) support for fuse.Pedro F. Giffuni2013-07-121-0/+6
| | | | | | | This is based on similar support in MacFUSE. Notes: svn path=/head/; revision=253276
* Import a FreeBSD port of the FUSE Linux module.Attilio Rao2012-10-131-0/+373
This has been developed during 2 summer of code mandates and being revived by gnn recently. The functionality in this commit mirrors entirely content of fusefs-kmod port, which doesn't need to be installed anymore for -CURRENT setups. In order to get some sparse technical notes, please refer to: http://lists.freebsd.org/pipermail/freebsd-fs/2012-March/013876.html or to the project branch: svn://svn.freebsd.org/base/projects/fuse/ which also contains granular history of changes happened during port refinements. This commit does not came from the branch reintegration itself because it seems svn is not behaving properly for this functionaly at the moment. Partly Sponsored by: Google, Summer of Code program 2005, 2011 Originally submitted by: ilya, Csaba Henk <csaba-ml AT creo DOT hu > In collabouration with: pho Tested by: flo, gnn, Gustau Perez, Kevin Oberman <rkoberman AT gmail DOT com> MFC after: 2 months Notes: svn path=/head/; revision=241519