diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2008-09-02 13:58:36 +1000 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2008-09-02 13:58:36 +1000 |
commit | c1598e6a48726836f104579c898c3ce0def49ed3 (patch) | |
tree | cdd56e41fae714e7388f9423b089c8817cd2f18b /Documentation | |
parent | 84fb3d69a9dda31589e4515be8f9a304be100c7a (diff) | |
parent | 479fa18280562a9c2432fc65c692b11b14ece78c (diff) |
Merge branch 'quilt/kernel-doc'
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/00-INDEX | 2 | ||||
-rw-r--r-- | Documentation/DocBook/kernel-api.tmpl | 5 | ||||
-rw-r--r-- | Documentation/Makefile | 2 | ||||
-rw-r--r-- | Documentation/early-userspace/00-INDEX | 8 | ||||
-rw-r--r-- | Documentation/early-userspace/initrd.txt (renamed from Documentation/initrd.txt) | 6 | ||||
-rw-r--r-- | Documentation/filesystems/Makefile | 8 | ||||
-rw-r--r-- | Documentation/filesystems/dnotify.txt | 36 | ||||
-rw-r--r-- | Documentation/filesystems/dnotify_test.c | 34 | ||||
-rw-r--r-- | Documentation/filesystems/sharedsubtree.txt | 82 | ||||
-rw-r--r-- | Documentation/filesystems/smount.c | 73 |
10 files changed, 137 insertions, 119 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX index 438277800103..7b2e518c8cd6 100644 --- a/Documentation/00-INDEX +++ b/Documentation/00-INDEX @@ -175,8 +175,6 @@ ia64/ - directory with info about Linux on Intel 64 bit architecture. infiniband/ - directory with documents concerning Linux InfiniBand support. -initrd.txt - - how to use the RAM disk as an initial/temporary root filesystem. input/ - info on Linux input device support. io_ordering.txt diff --git a/Documentation/DocBook/kernel-api.tmpl b/Documentation/DocBook/kernel-api.tmpl index b7b1482f6e04..9d0058e788e5 100644 --- a/Documentation/DocBook/kernel-api.tmpl +++ b/Documentation/DocBook/kernel-api.tmpl @@ -283,6 +283,7 @@ X!Earch/x86/kernel/mca_32.c <chapter id="security"> <title>Security Framework</title> !Isecurity/security.c +!Esecurity/inode.c </chapter> <chapter id="audit"> @@ -364,6 +365,10 @@ X!Edrivers/pnp/system.c !Eblock/blk-barrier.c !Eblock/blk-tag.c !Iblock/blk-tag.c +!Eblock/blk-integrity.c +!Iblock/blktrace.c +!Iblock/genhd.c +!Eblock/genhd.c </chapter> <chapter id="chrdev"> diff --git a/Documentation/Makefile b/Documentation/Makefile index 94b945733534..c1d9dd161c21 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -1,3 +1,3 @@ obj-m := DocBook/ accounting/ auxdisplay/ connector/ \ - filesystems/configfs/ ia64/ networking/ \ + filesystems/ filesystems/configfs/ ia64/ networking/ \ pcmcia/ spi/ video4linux/ vm/ watchdog/src/ diff --git a/Documentation/early-userspace/00-INDEX b/Documentation/early-userspace/00-INDEX new file mode 100644 index 000000000000..9deb666c4fce --- /dev/null +++ b/Documentation/early-userspace/00-INDEX @@ -0,0 +1,8 @@ +00-INDEX + - this file +README + - explains what early userspace is +buffer_format.txt + - documents the initramfs buffer format +initrd.txt + - how to use the RAM disk as an initial/temporary root filesystem. diff --git a/Documentation/initrd.txt b/Documentation/early-userspace/initrd.txt index 1ba84f3584e3..772d6a307345 100644 --- a/Documentation/initrd.txt +++ b/Documentation/early-userspace/initrd.txt @@ -111,7 +111,7 @@ procedure should create the /initrd directory. If initrd will not be mounted in some cases, its content is still accessible if the following device has been created: -# mknod /dev/initrd b 1 250 +# mknod /dev/initrd b 1 250 # chmod 400 /dev/initrd Second, the kernel has to be compiled with RAM disk support and with @@ -303,7 +303,7 @@ Last not least, CD-ROM distributors may use it for better installation from CD, e.g. by using a boot floppy and bootstrapping a bigger RAM disk via initrd from CD; or by booting via a loader like LOADLIN or directly from the CD-ROM, and loading the RAM disk from CD without need of -floppies. +floppies. Obsolete root change mechanism @@ -322,7 +322,7 @@ such a directory exists on the new root file system. In order to use this mechanism, you do not have to specify the boot command options root, init, or rw. (If specified, they will affect the real root file system, not the initrd environment.) - + If /proc is mounted, the "real" root device can be changed from within linuxrc by writing the number of the new root FS device to the special file /proc/sys/kernel/real-root-dev, e.g. diff --git a/Documentation/filesystems/Makefile b/Documentation/filesystems/Makefile new file mode 100644 index 000000000000..3f19a70c0418 --- /dev/null +++ b/Documentation/filesystems/Makefile @@ -0,0 +1,8 @@ +# kbuild trick to avoid linker error. Can be omitted if a module is built. +obj- := dummy.o + +# List of programs to build +hostprogs-y := smount dnotify_test + +# Tell kbuild to always build the programs +always := $(hostprogs-y) diff --git a/Documentation/filesystems/dnotify.txt b/Documentation/filesystems/dnotify.txt index 9f5d338ddbb8..7bb77d78e0ab 100644 --- a/Documentation/filesystems/dnotify.txt +++ b/Documentation/filesystems/dnotify.txt @@ -62,38 +62,4 @@ disabled, fcntl(fd, F_NOTIFY, ...) will return -EINVAL. Example ------- - - #define _GNU_SOURCE /* needed to get the defines */ - #include <fcntl.h> /* in glibc 2.2 this has the needed - values defined */ - #include <signal.h> - #include <stdio.h> - #include <unistd.h> - - static volatile int event_fd; - - static void handler(int sig, siginfo_t *si, void *data) - { - event_fd = si->si_fd; - } - - int main(void) - { - struct sigaction act; - int fd; - - act.sa_sigaction = handler; - sigemptyset(&act.sa_mask); - act.sa_flags = SA_SIGINFO; - sigaction(SIGRTMIN + 1, &act, NULL); - - fd = open(".", O_RDONLY); - fcntl(fd, F_SETSIG, SIGRTMIN + 1); - fcntl(fd, F_NOTIFY, DN_MODIFY|DN_CREATE|DN_MULTISHOT); - /* we will now be notified if any of the files - in "." is modified or new files are created */ - while (1) { - pause(); - printf("Got event on fd=%d\n", event_fd); - } - } +See Documentation/filesystems/dnotify_test.c for an example. diff --git a/Documentation/filesystems/dnotify_test.c b/Documentation/filesystems/dnotify_test.c new file mode 100644 index 000000000000..8b37b4a1e18d --- /dev/null +++ b/Documentation/filesystems/dnotify_test.c @@ -0,0 +1,34 @@ +#define _GNU_SOURCE /* needed to get the defines */ +#include <fcntl.h> /* in glibc 2.2 this has the needed + values defined */ +#include <signal.h> +#include <stdio.h> +#include <unistd.h> + +static volatile int event_fd; + +static void handler(int sig, siginfo_t *si, void *data) +{ + event_fd = si->si_fd; +} + +int main(void) +{ + struct sigaction act; + int fd; + + act.sa_sigaction = handler; + sigemptyset(&act.sa_mask); + act.sa_flags = SA_SIGINFO; + sigaction(SIGRTMIN + 1, &act, NULL); + + fd = open(".", O_RDONLY); + fcntl(fd, F_SETSIG, SIGRTMIN + 1); + fcntl(fd, F_NOTIFY, DN_MODIFY|DN_CREATE|DN_MULTISHOT); + /* we will now be notified if any of the files + in "." is modified or new files are created */ + while (1) { + pause(); + printf("Got event on fd=%d\n", event_fd); + } +} diff --git a/Documentation/filesystems/sharedsubtree.txt b/Documentation/filesystems/sharedsubtree.txt index 736540045dc7..6e74a4ab5658 100644 --- a/Documentation/filesystems/sharedsubtree.txt +++ b/Documentation/filesystems/sharedsubtree.txt @@ -47,6 +47,7 @@ replicas continue to be exactly same. note: mount command does not yet support the --make-shared flag. I have included a small C program which does the same by executing 'smount /mnt shared' + [see Documentation/filesystems/smount.c] #mount --bind /mnt /tmp The above command replicates the mount at /mnt to the mountpoint /tmp @@ -141,87 +142,12 @@ replicas continue to be exactly same. Currently the mount command is not aware of shared subtree features. Work is in progress to add the support in mount ( util-linux package ). - Till then use the following program. + Until then use the 'smount' program that is located in + "Documentation/filesystems/smount.c" and build it like: - ------------------------------------------------------------------------ - // - //this code was developed my Miklos Szeredi <miklos@szeredi.hu> - //and modified by Ram Pai <linuxram@us.ibm.com> - // sample usage: - // smount /tmp shared - // - #include <stdio.h> - #include <stdlib.h> - #include <unistd.h> - #include <string.h> - #include <sys/mount.h> - #include <sys/fsuid.h> - - #ifndef MS_REC - #define MS_REC 0x4000 /* 16384: Recursive loopback */ - #endif - - #ifndef MS_SHARED - #define MS_SHARED 1<<20 /* Shared */ - #endif - - #ifndef MS_PRIVATE - #define MS_PRIVATE 1<<18 /* Private */ - #endif - - #ifndef MS_SLAVE - #define MS_SLAVE 1<<19 /* Slave */ - #endif - - #ifndef MS_UNBINDABLE - #define MS_UNBINDABLE 1<<17 /* Unbindable */ - #endif - - int main(int argc, char *argv[]) - { - int type; - if(argc != 3) { - fprintf(stderr, "usage: %s dir " - "<rshared|rslave|rprivate|runbindable|shared|slave" - "|private|unbindable>\n" , argv[0]); - return 1; - } - - fprintf(stdout, "%s %s %s\n", argv[0], argv[1], argv[2]); - - if (strcmp(argv[2],"rshared")==0) - type=(MS_SHARED|MS_REC); - else if (strcmp(argv[2],"rslave")==0) - type=(MS_SLAVE|MS_REC); - else if (strcmp(argv[2],"rprivate")==0) - type=(MS_PRIVATE|MS_REC); - else if (strcmp(argv[2],"runbindable")==0) - type=(MS_UNBINDABLE|MS_REC); - else if (strcmp(argv[2],"shared")==0) - type=MS_SHARED; - else if (strcmp(argv[2],"slave")==0) - type=MS_SLAVE; - else if (strcmp(argv[2],"private")==0) - type=MS_PRIVATE; - else if (strcmp(argv[2],"unbindable")==0) - type=MS_UNBINDABLE; - else { - fprintf(stderr, "invalid operation: %s\n", argv[2]); - return 1; - } - setfsuid(getuid()); - - if(mount("", argv[1], "dontcare", type, "") == -1) { - perror("mount"); - return 1; - } - return 0; - } - ----------------------------------------------------------------------- - - Copy the above code snippet into smount.c gcc -o smount smount.c + ----------------------------------------------------------------------- (i) To mark all the mounts under /mnt as shared execute the following command: diff --git a/Documentation/filesystems/smount.c b/Documentation/filesystems/smount.c new file mode 100644 index 000000000000..233d78c6f9ba --- /dev/null +++ b/Documentation/filesystems/smount.c @@ -0,0 +1,73 @@ +// +//this code was developed my Miklos Szeredi <miklos@szeredi.hu> +//and modified by Ram Pai <linuxram@us.ibm.com> +// sample usage: +// smount /tmp shared +// +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <string.h> +#include <sys/mount.h> +#include <sys/fsuid.h> + +#ifndef MS_REC +#define MS_REC 0x4000 /* 16384: Recursive loopback */ +#endif + +#ifndef MS_SHARED +#define MS_SHARED 1<<20 /* Shared */ +#endif + +#ifndef MS_PRIVATE +#define MS_PRIVATE 1<<18 /* Private */ +#endif + +#ifndef MS_SLAVE +#define MS_SLAVE 1<<19 /* Slave */ +#endif + +#ifndef MS_UNBINDABLE +#define MS_UNBINDABLE 1<<17 /* Unbindable */ +#endif + +int main(int argc, char *argv[]) +{ + int type; + if(argc != 3) { + fprintf(stderr, "usage: %s dir " + "<rshared|rslave|rprivate|runbindable|shared|slave" + "|private|unbindable>\n" , argv[0]); + return 1; + } + + fprintf(stdout, "%s %s %s\n", argv[0], argv[1], argv[2]); + + if (strcmp(argv[2],"rshared")==0) + type=(MS_SHARED|MS_REC); + else if (strcmp(argv[2],"rslave")==0) + type=(MS_SLAVE|MS_REC); + else if (strcmp(argv[2],"rprivate")==0) + type=(MS_PRIVATE|MS_REC); + else if (strcmp(argv[2],"runbindable")==0) + type=(MS_UNBINDABLE|MS_REC); + else if (strcmp(argv[2],"shared")==0) + type=MS_SHARED; + else if (strcmp(argv[2],"slave")==0) + type=MS_SLAVE; + else if (strcmp(argv[2],"private")==0) + type=MS_PRIVATE; + else if (strcmp(argv[2],"unbindable")==0) + type=MS_UNBINDABLE; + else { + fprintf(stderr, "invalid operation: %s\n", argv[2]); + return 1; + } + setfsuid(getuid()); + + if(mount("", argv[1], "dontcare", type, "") == -1) { + perror("mount"); + return 1; + } + return 0; +} |