diff options
Diffstat (limited to 'Documentation/filesystems')
-rw-r--r-- | Documentation/filesystems/00-INDEX | 6 | ||||
-rw-r--r-- | Documentation/filesystems/quota.txt | 59 | ||||
-rw-r--r-- | Documentation/filesystems/ramfs-rootfs-initramfs.txt | 14 |
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. |
45 | fuse.txt | 45 | fuse.txt |
46 | - info on the Filesystem in User SpacE including mount options. | 46 | - info on the Filesystem in User SpacE including mount options. |
47 | gfs2.txt | ||
48 | - info on the Global File System 2. | ||
47 | hfs.txt | 49 | hfs.txt |
48 | - info on the Macintosh HFS Filesystem for Linux. | 50 | - info on the Macintosh HFS Filesystem for Linux. |
51 | hfsplus.txt | ||
52 | - info on the Macintosh HFSPlus Filesystem for Linux. | ||
49 | hpfs.txt | 53 | hpfs.txt |
50 | - info and mount options for the OS/2 HPFS. | 54 | - info and mount options for the OS/2 HPFS. |
55 | inotify.txt | ||
56 | - info on the powerful yet simple file change notification system. | ||
51 | isofs.txt | 57 | isofs.txt |
52 | - info and mount options for the ISO 9660 (CDROM) filesystem. | 58 | - info and mount options for the ISO 9660 (CDROM) filesystem. |
53 | jfs.txt | 59 | jfs.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 | |||
2 | Quota subsystem | ||
3 | =============== | ||
4 | |||
5 | Quota subsystem allows system administrator to set limits on used space and | ||
6 | number of used inodes (inode is a filesystem structure which is associated | ||
7 | with each file or directory) for users and/or groups. For both used space and | ||
8 | number of used inodes there are actually two limits. The first one is called | ||
9 | softlimit and the second one hardlimit. An user can never exceed a hardlimit | ||
10 | for any resource. User is allowed to exceed softlimit but only for limited | ||
11 | period of time. This period is called "grace period" or "grace time". When | ||
12 | grace time is over, user is not able to allocate more space/inodes until he | ||
13 | frees enough of them to get below softlimit. | ||
14 | |||
15 | Quota limits (and amount of grace time) are set independently for each | ||
16 | filesystem. | ||
17 | |||
18 | For more details about quota design, see the documentation in quota-tools package | ||
19 | (http://sourceforge.net/projects/linuxquota). | ||
20 | |||
21 | Quota netlink interface | ||
22 | ======================= | ||
23 | When user exceeds a softlimit, runs out of grace time or reaches hardlimit, | ||
24 | quota subsystem traditionally printed a message to the controlling terminal of | ||
25 | the process which caused the excess. This method has the disadvantage that | ||
26 | when user is using a graphical desktop he usually cannot see the message. | ||
27 | Thus quota netlink interface has been designed to pass information about | ||
28 | the above events to userspace. There they can be captured by an application | ||
29 | and processed accordingly. | ||
30 | |||
31 | The interface uses generic netlink framework (see | ||
32 | http://lwn.net/Articles/208755/ and http://people.suug.ch/~tgr/libnl/ for more | ||
33 | details about this layer). The name of the quota generic netlink interface | ||
34 | is "VFS_DQUOT". Definitions of constants below are in <linux/quota.h>. | ||
35 | Currently, the interface supports only one message type QUOTA_NL_C_WARNING. | ||
36 | This command is used to send a notification about any of the above mentioned | ||
37 | events. Each message has six attributes. These are (type of the argument is | ||
38 | in 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 | ||
9 | Ramfs is a very simple filesystem that exports Linux's disk caching | 9 | Ramfs is a very simple filesystem that exports Linux's disk caching |
10 | mechanisms (the page cache and dentry cache) as a dynamically resizable | 10 | mechanisms (the page cache and dentry cache) as a dynamically resizable |
11 | ram-based filesystem. | 11 | RAM-based filesystem. |
12 | 12 | ||
13 | Normally all files are cached in memory by Linux. Pages of data read from | 13 | Normally all files are cached in memory by Linux. Pages of data read from |
14 | backing store (usually the block device the filesystem is mounted on) are kept | 14 | backing store (usually the block device the filesystem is mounted on) are kept |
@@ -34,7 +34,7 @@ ramfs and ramdisk: | |||
34 | ------------------ | 34 | ------------------ |
35 | 35 | ||
36 | The older "ram disk" mechanism created a synthetic block device out of | 36 | The older "ram disk" mechanism created a synthetic block device out of |
37 | an area of ram and used it as backing store for a filesystem. This block | 37 | an area of RAM and used it as backing store for a filesystem. This block |
38 | device was of fixed size, so the filesystem mounted on it was of fixed | 38 | device was of fixed size, so the filesystem mounted on it was of fixed |
39 | size. Using a ram disk also required unnecessarily copying memory from the | 39 | size. Using a ram disk also required unnecessarily copying memory from the |
40 | fake block device into the page cache (and copying changes back out), as well | 40 | fake 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 | |||
46 | to avoid this copying by playing with the page tables, but they're unpleasantly | 46 | to avoid this copying by playing with the page tables, but they're unpleasantly |
47 | complicated and turn out to be about as expensive as the copying anyway.) | 47 | complicated and turn out to be about as expensive as the copying anyway.) |
48 | More to the point, all the work ramfs is doing has to happen _anyway_, | 48 | More to the point, all the work ramfs is doing has to happen _anyway_, |
49 | since all file access goes through the page and dentry caches. The ram | 49 | since all file access goes through the page and dentry caches. The RAM |
50 | disk is simply unnecessary, ramfs is internally much simpler. | 50 | disk is simply unnecessary; ramfs is internally much simpler. |
51 | 51 | ||
52 | Another reason ramdisks are semi-obsolete is that the introduction of | 52 | Another reason ramdisks are semi-obsolete is that the introduction of |
53 | loopback devices offered a more flexible and convenient way to create | 53 | loopback 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 | |||
220 | non-GPL code you'd like to run from initramfs, without conflating it with | 220 | non-GPL code you'd like to run from initramfs, without conflating it with |
221 | the GPL licensed Linux kernel binary). | 221 | the GPL licensed Linux kernel binary). |
222 | 222 | ||
223 | It can also be used to supplement the kernel's built-in initamfs image. The | 223 | It can also be used to supplement the kernel's built-in initramfs image. The |
224 | files in the external archive will overwrite any conflicting files in | 224 | files in the external archive will overwrite any conflicting files in |
225 | the built-in initramfs archive. Some distributors also prefer to customize | 225 | the built-in initramfs archive. Some distributors also prefer to customize |
226 | a single kernel image with task-specific initramfs images, without recompiling. | 226 | a 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 | |||
339 | The move to early userspace is necessary because finding and mounting the real | 339 | The move to early userspace is necessary because finding and mounting the real |
340 | root device is complex. Root partitions can span multiple devices (raid or | 340 | root device is complex. Root partitions can span multiple devices (raid or |
341 | separate journal). They can be out on the network (requiring dhcp, setting a | 341 | separate journal). They can be out on the network (requiring dhcp, setting a |
342 | specific mac address, logging into a server, etc). They can live on removable | 342 | specific MAC address, logging into a server, etc). They can live on removable |
343 | media, with dynamically allocated major/minor numbers and persistent naming | 343 | media, with dynamically allocated major/minor numbers and persistent naming |
344 | issues requiring a full udev implementation to sort out. They can be | 344 | issues requiring a full udev implementation to sort out. They can be |
345 | compressed, encrypted, copy-on-write, loopback mounted, strangely partitioned, | 345 | compressed, encrypted, copy-on-write, loopback mounted, strangely partitioned, |