Linux Filesystems API

This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

For more details see the file COPYING in the source distribution of Linux.


Table of Contents

1. The Linux VFS
The Filesystem types
The Directory Cache
Inode Handling
Registration and Superblocks
File Locks
Other Functions
2. The proc filesystem
sysctl interface
proc filesystem interface
3. Events based on file descriptors
eventfd_signal — Adds n to the eventfd counter.
eventfd_ctx_get — Acquires a reference to the internal eventfd context.
eventfd_ctx_put — Releases a reference to the internal eventfd context.
eventfd_ctx_remove_wait_queue — Read the current counter and removes wait queue.
eventfd_ctx_read — Reads the eventfd counter or wait if it is zero.
eventfd_fget — Acquire a reference of an eventfd file descriptor.
eventfd_ctx_fdget — Acquires a reference to the internal eventfd context.
eventfd_ctx_fileget — Acquires a reference to the internal eventfd context.
4. The Filesystem for Exporting Kernel Objects
sysfs_create_file_ns — create an attribute file for an object with custom ns
sysfs_add_file_to_group — add an attribute file to a pre-existing group.
sysfs_chmod_file — update the modified mode value on an object attribute.
sysfs_remove_file_ns — remove an object attribute with a custom ns tag
sysfs_remove_file_from_group — remove an attribute file from a group.
sysfs_create_bin_file — create binary file for object.
sysfs_remove_bin_file — remove binary file for object.
sysfs_create_link — create symlink between two objects.
sysfs_remove_link — remove symlink in object's directory.
sysfs_rename_link_ns — rename symlink in object's directory.
5. The debugfs filesystem
debugfs interface
6. The Linux Journalling API
Overview
Details
Summary
Data Types
Structures
Functions
Journal Level
Transasction Level
See also
7. splice API
splice_to_pipe — fill passed data into a pipe
generic_file_splice_read — splice data from file to a pipe
splice_from_pipe_feed — feed available data from a pipe to a file
splice_from_pipe_next — wait for some data to splice from
splice_from_pipe_begin — start splicing from pipe
splice_from_pipe_end — finish splicing from pipe
__splice_from_pipe — splice data from a pipe to given actor
splice_from_pipe — splice data from a pipe to a file
iter_file_splice_write — splice data from a pipe to a file
generic_splice_sendpage — splice data from a pipe to a socket
splice_direct_to_actor — splices data directly between two non-pipes
do_splice_direct — splices data directly between two files
8. pipes API
struct pipe_buffer — a linux kernel pipe buffer
struct pipe_inode_info — a linux kernel pipe
pipe_buf_get — get a reference to a pipe_buffer
pipe_buf_release — put a reference to a pipe_buffer
pipe_buf_confirm — verify contents of the pipe buffer
pipe_buf_steal — attempt to take ownership of a pipe_buffer
generic_pipe_buf_steal — attempt to take ownership of a &pipe_buffer
generic_pipe_buf_get get a reference to a struct pipe_buffer
generic_pipe_buf_confirm — verify contents of the pipe buffer
generic_pipe_buf_release put a reference to a struct pipe_buffer