aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/filesystems
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/filesystems')
-rw-r--r--Documentation/filesystems/00-INDEX6
-rw-r--r--Documentation/filesystems/quota.txt59
-rw-r--r--Documentation/filesystems/ramfs-rootfs-initramfs.txt14
3 files changed, 72 insertions, 7 deletions
diff --git a/Documentation/filesystems/00-INDEX b/Documentation/filesystems/00-INDEX
index 599593a1706..1de155e2dc3 100644
--- a/Documentation/filesystems/00-INDEX
+++ b/Documentation/filesystems/00-INDEX
@@ -44,10 +44,16 @@ files.txt
44 - info on file management in the Linux kernel. 44 - info on file management in the Linux kernel.
45fuse.txt 45fuse.txt
46 - info on the Filesystem in User SpacE including mount options. 46 - info on the Filesystem in User SpacE including mount options.
47gfs2.txt
48 - info on the Global File System 2.
47hfs.txt 49hfs.txt
48 - info on the Macintosh HFS Filesystem for Linux. 50 - info on the Macintosh HFS Filesystem for Linux.
51hfsplus.txt
52 - info on the Macintosh HFSPlus Filesystem for Linux.
49hpfs.txt 53hpfs.txt
50 - info and mount options for the OS/2 HPFS. 54 - info and mount options for the OS/2 HPFS.
55inotify.txt
56 - info on the powerful yet simple file change notification system.
51isofs.txt 57isofs.txt
52 - info and mount options for the ISO 9660 (CDROM) filesystem. 58 - info and mount options for the ISO 9660 (CDROM) filesystem.
53jfs.txt 59jfs.txt
diff --git a/Documentation/filesystems/quota.txt b/Documentation/filesystems/quota.txt
new file mode 100644
index 00000000000..a590c4093ef
--- /dev/null
+++ b/Documentation/filesystems/quota.txt
@@ -0,0 +1,59 @@
1
2Quota subsystem
3===============
4
5Quota subsystem allows system administrator to set limits on used space and
6number of used inodes (inode is a filesystem structure which is associated
7with each file or directory) for users and/or groups. For both used space and
8number of used inodes there are actually two limits. The first one is called
9softlimit and the second one hardlimit. An user can never exceed a hardlimit
10for any resource. User is allowed to exceed softlimit but only for limited
11period of time. This period is called "grace period" or "grace time". When
12grace time is over, user is not able to allocate more space/inodes until he
13frees enough of them to get below softlimit.
14
15Quota limits (and amount of grace time) are set independently for each
16filesystem.
17
18For more details about quota design, see the documentation in quota-tools package
19(http://sourceforge.net/projects/linuxquota).
20
21Quota netlink interface
22=======================
23When user exceeds a softlimit, runs out of grace time or reaches hardlimit,
24quota subsystem traditionally printed a message to the controlling terminal of
25the process which caused the excess. This method has the disadvantage that
26when user is using a graphical desktop he usually cannot see the message.
27Thus quota netlink interface has been designed to pass information about
28the above events to userspace. There they can be captured by an application
29and processed accordingly.
30
31The interface uses generic netlink framework (see
32http://lwn.net/Articles/208755/ and http://people.suug.ch/~tgr/libnl/ for more
33details about this layer). The name of the quota generic netlink interface
34is "VFS_DQUOT". Definitions of constants below are in <linux/quota.h>.
35 Currently, the interface supports only one message type QUOTA_NL_C_WARNING.
36This command is used to send a notification about any of the above mentioned
37events. Each message has six attributes. These are (type of the argument is
38in parentheses):
39 QUOTA_NL_A_QTYPE (u32)
40 - type of quota being exceeded (one of USRQUOTA, GRPQUOTA)
41 QUOTA_NL_A_EXCESS_ID (u64)
42 - UID/GID (depends on quota type) of user / group whose limit
43 is being exceeded.
44 QUOTA_NL_A_CAUSED_ID (u64)
45 - UID of a user who caused the event
46 QUOTA_NL_A_WARNING (u32)
47 - what kind of limit is exceeded:
48 QUOTA_NL_IHARDWARN - inode hardlimit
49 QUOTA_NL_ISOFTLONGWARN - inode softlimit is exceeded longer
50 than given grace period
51 QUOTA_NL_ISOFTWARN - inode softlimit
52 QUOTA_NL_BHARDWARN - space (block) hardlimit
53 QUOTA_NL_BSOFTLONGWARN - space (block) softlimit is exceeded
54 longer than given grace period.
55 QUOTA_NL_BSOFTWARN - space (block) softlimit
56 QUOTA_NL_A_DEV_MAJOR (u32)
57 - major number of a device with the affected filesystem
58 QUOTA_NL_A_DEV_MINOR (u32)
59 - minor number of a device with the affected filesystem
diff --git a/Documentation/filesystems/ramfs-rootfs-initramfs.txt b/Documentation/filesystems/ramfs-rootfs-initramfs.txt
index 25981e2e51b..339c6a4f220 100644
--- a/Documentation/filesystems/ramfs-rootfs-initramfs.txt
+++ b/Documentation/filesystems/ramfs-rootfs-initramfs.txt
@@ -8,7 +8,7 @@ What is ramfs?
8 8
9Ramfs is a very simple filesystem that exports Linux's disk caching 9Ramfs is a very simple filesystem that exports Linux's disk caching
10mechanisms (the page cache and dentry cache) as a dynamically resizable 10mechanisms (the page cache and dentry cache) as a dynamically resizable
11ram-based filesystem. 11RAM-based filesystem.
12 12
13Normally all files are cached in memory by Linux. Pages of data read from 13Normally all files are cached in memory by Linux. Pages of data read from
14backing store (usually the block device the filesystem is mounted on) are kept 14backing store (usually the block device the filesystem is mounted on) are kept
@@ -34,7 +34,7 @@ ramfs and ramdisk:
34------------------ 34------------------
35 35
36The older "ram disk" mechanism created a synthetic block device out of 36The older "ram disk" mechanism created a synthetic block device out of
37an area of ram and used it as backing store for a filesystem. This block 37an area of RAM and used it as backing store for a filesystem. This block
38device was of fixed size, so the filesystem mounted on it was of fixed 38device was of fixed size, so the filesystem mounted on it was of fixed
39size. Using a ram disk also required unnecessarily copying memory from the 39size. Using a ram disk also required unnecessarily copying memory from the
40fake block device into the page cache (and copying changes back out), as well 40fake block device into the page cache (and copying changes back out), as well
@@ -46,8 +46,8 @@ unnecessary work for the CPU, and pollutes the CPU caches. (There are tricks
46to avoid this copying by playing with the page tables, but they're unpleasantly 46to avoid this copying by playing with the page tables, but they're unpleasantly
47complicated and turn out to be about as expensive as the copying anyway.) 47complicated and turn out to be about as expensive as the copying anyway.)
48More to the point, all the work ramfs is doing has to happen _anyway_, 48More to the point, all the work ramfs is doing has to happen _anyway_,
49since all file access goes through the page and dentry caches. The ram 49since all file access goes through the page and dentry caches. The RAM
50disk is simply unnecessary, ramfs is internally much simpler. 50disk is simply unnecessary; ramfs is internally much simpler.
51 51
52Another reason ramdisks are semi-obsolete is that the introduction of 52Another reason ramdisks are semi-obsolete is that the introduction of
53loopback devices offered a more flexible and convenient way to create 53loopback devices offered a more flexible and convenient way to create
@@ -103,7 +103,7 @@ All this differs from the old initrd in several ways:
103 initramfs archive is a gzipped cpio archive (like tar only simpler, 103 initramfs archive is a gzipped cpio archive (like tar only simpler,
104 see cpio(1) and Documentation/early-userspace/buffer-format.txt). The 104 see cpio(1) and Documentation/early-userspace/buffer-format.txt). The
105 kernel's cpio extraction code is not only extremely small, it's also 105 kernel's cpio extraction code is not only extremely small, it's also
106 __init data that can be discarded during the boot process. 106 __init text and data that can be discarded during the boot process.
107 107
108 - The program run by the old initrd (which was called /initrd, not /init) did 108 - The program run by the old initrd (which was called /initrd, not /init) did
109 some setup and then returned to the kernel, while the init program from 109 some setup and then returned to the kernel, while the init program from
@@ -220,7 +220,7 @@ device) but the separate packaging of initrd (which is nice if you have
220non-GPL code you'd like to run from initramfs, without conflating it with 220non-GPL code you'd like to run from initramfs, without conflating it with
221the GPL licensed Linux kernel binary). 221the GPL licensed Linux kernel binary).
222 222
223It can also be used to supplement the kernel's built-in initamfs image. The 223It can also be used to supplement the kernel's built-in initramfs image. The
224files in the external archive will overwrite any conflicting files in 224files in the external archive will overwrite any conflicting files in
225the built-in initramfs archive. Some distributors also prefer to customize 225the built-in initramfs archive. Some distributors also prefer to customize
226a single kernel image with task-specific initramfs images, without recompiling. 226a single kernel image with task-specific initramfs images, without recompiling.
@@ -339,7 +339,7 @@ smooth transition and allowing early boot functionality to gradually move to
339The move to early userspace is necessary because finding and mounting the real 339The move to early userspace is necessary because finding and mounting the real
340root device is complex. Root partitions can span multiple devices (raid or 340root device is complex. Root partitions can span multiple devices (raid or
341separate journal). They can be out on the network (requiring dhcp, setting a 341separate journal). They can be out on the network (requiring dhcp, setting a
342specific mac address, logging into a server, etc). They can live on removable 342specific MAC address, logging into a server, etc). They can live on removable
343media, with dynamically allocated major/minor numbers and persistent naming 343media, with dynamically allocated major/minor numbers and persistent naming
344issues requiring a full udev implementation to sort out. They can be 344issues requiring a full udev implementation to sort out. They can be
345compressed, encrypted, copy-on-write, loopback mounted, strangely partitioned, 345compressed, encrypted, copy-on-write, loopback mounted, strangely partitioned,