)]}'
{
  "log": [
    {
      "commit": "e1ad7468c77ddb94b0615d5f50fa255525fde0f0",
      "tree": "856be1a028fece7e1fa10b7b585096839913fe2e",
      "parents": [
        "83f5d1266926c75890f1bc4678e49d79483cb573"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Thu May 10 22:23:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:36 2007 -0700"
      },
      "message": "signal/timer/event: eventfd core\n\nThis is a very simple and light file descriptor, that can be used as event\nwait/dispatch by userspace (both wait and dispatch) and by the kernel\n(dispatch only).  It can be used instead of pipe(2) in all cases where those\nwould simply be used to signal events.  Their kernel overhead is much lower\nthan pipes, and they do not consume two fds.  When used in the kernel, it can\noffer an fd-bridge to enable, for example, functionalities like KAIO or\nsyslets/threadlets to signal to an fd the completion of certain operations.\nBut more in general, an eventfd can be used by the kernel to signal readiness,\nin a POSIX poll/select way, of interfaces that would otherwise be incompatible\nwith it.  The API is:\n\nint eventfd(unsigned int count);\n\nThe eventfd API accepts an initial \"count\" parameter, and returns an eventfd\nfd.  It supports poll(2) (POLLIN, POLLOUT, POLLERR), read(2) and write(2).\n\nThe POLLIN flag is raised when the internal counter is greater than zero.\n\nThe POLLOUT flag is raised when at least a value of \"1\" can be written to the\ninternal counter.\n\nThe POLLERR flag is raised when an overflow in the counter value is detected.\n\nThe write(2) operation can never overflow the counter, since it blocks (unless\nO_NONBLOCK is set, in which case -EAGAIN is returned).\n\nBut the eventfd_signal() function can do it, since it\u0027s supposed to not sleep\nduring its operation.\n\nThe read(2) function reads the __u64 counter value, and reset the internal\nvalue to zero.  If the value read is equal to (__u64) -1, an overflow happened\non the internal counter (due to 2^64 eventfd_signal() posts that has never\nbeen retired - unlickely, but possible).\n\nThe write(2) call writes an __u64 count value, and adds it to the current\ncounter.  The eventfd fd supports O_NONBLOCK also.\n\nOn the kernel side, we have:\n\nstruct file *eventfd_fget(int fd);\nint eventfd_signal(struct file *file, unsigned int n);\n\nThe eventfd_fget() should be called to get a struct file* from an eventfd fd\n(this is an fget() + check of f_op being an eventfd fops pointer).\n\nThe kernel can then call eventfd_signal() every time it wants to post an event\nto userspace.  The eventfd_signal() function can be called from any context.\nAn eventfd() simple test and bench is available here:\n\nhttp://www.xmailserver.org/eventfd-bench.c\n\nThis is the eventfd-based version of pipetest-4 (pipe(2) based):\n\nhttp://www.xmailserver.org/pipetest-4.c\n\nNot that performance matters much in the eventfd case, but eventfd-bench\nshows almost as double as performance than pipetest-4.\n\n[akpm@linux-foundation.org: fix i386 build]\n[akpm@linux-foundation.org: add sys_eventfd to sys_ni.c]\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b215e283992899650c4271e7385c79e26fb9a88e",
      "tree": "3f950814510422606821f1b0b373d65e4d9ed303",
      "parents": [
        "6d18c9220965b437287c3a7e803725c24992ceac"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Thu May 10 22:23:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:36 2007 -0700"
      },
      "message": "signal/timer/event: timerfd core\n\nThis patch introduces a new system call for timers events delivered though\nfile descriptors.  This allows timer event to be used with standard POSIX\npoll(2), select(2) and read(2).  As a consequence of supporting the Linux\nf_op-\u003epoll subsystem, they can be used with epoll(2) too.\n\nThe system call is defined as:\n\nint timerfd(int ufd, int clockid, int flags, const struct itimerspec *utmr);\n\nThe \"ufd\" parameter allows for re-use (re-programming) of an existing timerfd\nw/out going through the close/open cycle (same as signalfd).  If \"ufd\" is -1,\ns new file descriptor will be created, otherwise the existing \"ufd\" will be\nre-programmed.\n\nThe \"clockid\" parameter is either CLOCK_MONOTONIC or CLOCK_REALTIME.  The time\nspecified in the \"utmr-\u003eit_value\" parameter is the expiry time for the timer.\n\nIf the TFD_TIMER_ABSTIME flag is set in \"flags\", this is an absolute time,\notherwise it\u0027s a relative time.\n\nIf the time specified in the \"utmr-\u003eit_interval\" is not zero (.tv_sec \u003d\u003d 0,\ntv_nsec \u003d\u003d 0), this is the period at which the following ticks should be\ngenerated.\n\nThe \"utmr-\u003eit_interval\" should be set to zero if only one tick is requested.\nSetting the \"utmr-\u003eit_value\" to zero will disable the timer, or will create a\ntimerfd without the timer enabled.\n\nThe function returns the new (or same, in case \"ufd\" is a valid timerfd\ndescriptor) file, or -1 in case of error.\n\nAs stated before, the timerfd file descriptor supports poll(2), select(2) and\nepoll(2).  When a timer event happened on the timerfd, a POLLIN mask will be\nreturned.\n\nThe read(2) call can be used, and it will return a u32 variable holding the\nnumber of \"ticks\" that happened on the interface since the last call to\nread(2).  The read(2) call supportes the O_NONBLOCK flag too, and EAGAIN will\nbe returned if no ticks happened.\n\nA quick test program, shows timerfd working correctly on my amd64 box:\n\nhttp://www.xmailserver.org/timerfd-test.c\n\n[akpm@linux-foundation.org: add sys_timerfd to sys_ni.c]\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fba2afaaec790dc5ab4ae8827972f342211bbb86",
      "tree": "2694d4cd8c6b7d69a5569b92151d61a3d4af39b7",
      "parents": [
        "5dc8bf8132d59c03fe2562bce165c2f03f021687"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Thu May 10 22:23:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:36 2007 -0700"
      },
      "message": "signal/timer/event: signalfd core\n\nThis patch series implements the new signalfd() system call.\n\nI took part of the original Linus code (and you know how badly it can be\nbroken :), and I added even more breakage ;) Signals are fetched from the same\nsignal queue used by the process, so signalfd will compete with standard\nkernel delivery in dequeue_signal().  If you want to reliably fetch signals on\nthe signalfd file, you need to block them with sigprocmask(SIG_BLOCK).  This\nseems to be working fine on my Dual Opteron machine.  I made a quick test\nprogram for it:\n\nhttp://www.xmailserver.org/signafd-test.c\n\nThe signalfd() system call implements signal delivery into a file descriptor\nreceiver.  The signalfd file descriptor if created with the following API:\n\nint signalfd(int ufd, const sigset_t *mask, size_t masksize);\n\nThe \"ufd\" parameter allows to change an existing signalfd sigmask, w/out going\nto close/create cycle (Linus idea).  Use \"ufd\" \u003d\u003d -1 if you want a brand new\nsignalfd file.\n\nThe \"mask\" allows to specify the signal mask of signals that we are interested\nin.  The \"masksize\" parameter is the size of \"mask\".\n\nThe signalfd fd supports the poll(2) and read(2) system calls.  The poll(2)\nwill return POLLIN when signals are available to be dequeued.  As a direct\nconsequence of supporting the Linux poll subsystem, the signalfd fd can use\nused together with epoll(2) too.\n\nThe read(2) system call will return a \"struct signalfd_siginfo\" structure in\nthe userspace supplied buffer.  The return value is the number of bytes copied\nin the supplied buffer, or -1 in case of error.  The read(2) call can also\nreturn 0, in case the sighand structure to which the signalfd was attached,\nhas been orphaned.  The O_NONBLOCK flag is also supported, and read(2) will\nreturn -EAGAIN in case no signal is available.\n\nIf the size of the buffer passed to read(2) is lower than sizeof(struct\nsignalfd_siginfo), -EINVAL is returned.  A read from the signalfd can also\nreturn -ERESTARTSYS in case a signal hits the process.  The format of the\nstruct signalfd_siginfo is, and the valid fields depends of the (-\u003ecode \u0026\n__SI_MASK) value, in the same way a struct siginfo would:\n\nstruct signalfd_siginfo {\n\t__u32 signo;\t/* si_signo */\n\t__s32 err;\t/* si_errno */\n\t__s32 code;\t/* si_code */\n\t__u32 pid;\t/* si_pid */\n\t__u32 uid;\t/* si_uid */\n\t__s32 fd;\t/* si_fd */\n\t__u32 tid;\t/* si_fd */\n\t__u32 band;\t/* si_band */\n\t__u32 overrun;\t/* si_overrun */\n\t__u32 trapno;\t/* si_trapno */\n\t__s32 status;\t/* si_status */\n\t__s32 svint;\t/* si_int */\n\t__u64 svptr;\t/* si_ptr */\n\t__u64 utime;\t/* si_utime */\n\t__u64 stime;\t/* si_stime */\n\t__u64 addr;\t/* si_addr */\n};\n\n[akpm@linux-foundation.org: fix signalfd_copyinfo() on i386]\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5dc8bf8132d59c03fe2562bce165c2f03f021687",
      "tree": "308e2acb2264c21c93d57b3fb9fb4869e162aa85",
      "parents": [
        "325aa33da784e5997c756a151bc46e9cc9b79db2"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Thu May 10 22:23:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:36 2007 -0700"
      },
      "message": "signal/timer/event fds: anonymous inode source\n\nThis patch add an anonymous inode source, to be used for files that need\nand inode only in order to create a file*. We do not care of having an\ninode for each file, and we do not even care of having different names in\nthe associated dentries (dentry names will be same for classes of file*).\nThis allow code reuse, and will be used by epoll, signalfd and timerfd\n(and whatever else there\u0027ll be).\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "419ee448ff76aef13526a99c2dc39ba3ae1f0970",
      "tree": "b475ef43632700d5d7eab3e9e9f1a80159aad73d",
      "parents": [
        "8a03d9a498eaf02c8a118752050a5154852c13bf"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Feb 17 16:10:59 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Feb 17 16:10:59 2007 -0500"
      },
      "message": "Remove JFFS (version 1), as scheduled.\n\nUnmaintained for years, few if any users.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "42cf11939becc717bd125d121a1a23415106a099",
      "tree": "d9c0c66e3f01287fd7da6315c1a4df7c3fd9d05b",
      "parents": [
        "17b3cff079721bbc45e9d6de2fa3edb73561e27d"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:40 2006 -0800"
      },
      "message": "[PATCH] fsstack: Introduce fsstack_copy_{attr,inode}_*\n\nIntroduce several fsstack_copy_* functions which allow stackable filesystems\n(such as eCryptfs and Unionfs) to easily copy over (currently only) inode\nattributes.  This prevents code duplication and allows for code reuse.\n\n[akpm@osdl.org: Remove unneeded wrapper]\n[bunk@stusta.de: fs/stack.c should #include \u003clinux/fs_stack.h\u003e]\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dab291af8d6307a3075c3d67d0cc8f98e646cb94",
      "tree": "a2207ab3e2e00472e5e3c969ad0dd211fb9e4151",
      "parents": [
        "a920e9416b3469994860ab552dfd7fd5a5aff162"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Wed Oct 11 01:21:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:16 2006 -0700"
      },
      "message": "[PATCH] jbd2: enable building of jbd2 and have ext4 use it rather than jbd\n\nReworked from a patch by Mingming Cao and Randy Dunlap\n\nSigned-off-By: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "02ea2104c55b625cf5b5d9ba8586a4fc17920f5c",
      "tree": "fc7b380eb0f77307902379436c3a9cfca9330737",
      "parents": [
        "617ba13b31fbf505cc21799826639ef24ed94af0"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Wed Oct 11 01:20:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:15 2006 -0700"
      },
      "message": "[PATCH] ext4: enable building of ext4\n\nOriginally part of a patch from Mingming Cao and Randy Dunlap.  Reorganized\nby Shaggy.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Mingming Cao\u003ccmm@us.ibm.com\u003e\nSigned-off-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4a61f17378c2cdd9bd8f34ef8bd7422861d0c1f1",
      "tree": "a2054556900af8c16fd9f5419f012dcf1ee2995a",
      "parents": [
        "d002ec481c24f325ed6cfcb7810d317c015dd1b5",
        "7ecdb70a0ea436c06540140242bfac6ac3babfc0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 09:06:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 09:06:16 2006 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6: (292 commits)\n  [GFS2] Fix endian bug for de_type\n  [GFS2] Initialize SELinux extended attributes at inode creation time.\n  [GFS2] Move logging code into log.c (mostly)\n  [GFS2] Mark nlink cleared so VFS sees it happen\n  [GFS2] Two redundant casts removed\n  [GFS2] Remove uneeded endian conversion\n  [GFS2] Remove duplicate sb reading code\n  [GFS2] Mark metadata reads for blktrace\n  [GFS2] Remove iflags.h, use FS_\n  [GFS2] Fix code style/indent in ops_file.c\n  [GFS2] streamline-generic_file_-interfaces-and-filemap gfs fix\n  [GFS2] Remove readv/writev methods and use aio_read/aio_write instead (gfs bits)\n  [GFS2] inode-diet: Eliminate i_blksize from the inode structure\n  [GFS2] inode_diet: Replace inode.u.generic_ip with inode.i_private (gfs)\n  [GFS2] Fix typo in last patch\n  [GFS2] Fix direct i/o logic in filemap.c\n  [GFS2] Fix bug in Makefiles for lock modules\n  [GFS2] Remove (extra) fs_subsys declaration\n  [GFS2/DLM] Fix trailing whitespace\n  [GFS2] Tidy up meta_io code\n  ...\n"
    },
    {
      "commit": "237fead619984cc48818fe12ee0ceada3f55b012",
      "tree": "40c6cacf2331191139e847988882b168d111c12e",
      "parents": [
        "f7aa2638f288f4c67acdb55947472740bd27d27a"
      ],
      "author": {
        "name": "Michael Halcrow",
        "email": "mhalcrow@us.ibm.com",
        "time": "Wed Oct 04 02:16:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:24 2006 -0700"
      },
      "message": "[PATCH] ecryptfs: fs/Makefile and fs/Kconfig\n\neCryptfs is a stacked cryptographic filesystem for Linux.  It is derived from\nErez Zadok\u0027s Cryptfs, implemented through the FiST framework for generating\nstacked filesystems.  eCryptfs extends Cryptfs to provide advanced key\nmanagement and policy features.  eCryptfs stores cryptographic metadata in the\nheader of each file written, so that encrypted files can be copied between\nhosts; the file will be decryptable with the proper key, and there is no need\nto keep track of any additional information aside from what is already in the\nencrypted file itself.\n\n[akpm@osdl.org: updates for ongoing API changes]\n[bunk@stusta.de: cleanups]\n[akpm@osdl.org: alpha build fix]\n[akpm@osdl.org: cleanups]\n[tytso@mit.edu: inode-diet updates]\n[pbadari@us.ibm.com: generic_file_*_read/write() interface updates]\n[rdunlap@xenotime.net: printk format fixes]\n[akpm@osdl.org: make slab creation and teardown table-driven]\nSigned-off-by: Phillip Hellewell \u003cphillip@hellewell.homeip.net\u003e\nSigned-off-by: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nSigned-off-by: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Stephan Mueller \u003csmueller@chronox.de\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "59458f40e25915a355d8b1d701425fe9f4f9ea23",
      "tree": "f1c9a2934df686e36d75f759ab7313b6f0e0e5f9",
      "parents": [
        "825f9075d74028d11d7f5932f04e1b5db3022b51",
        "d834c16516d1ebec4766fc58c059bf01311e6045"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 02 08:45:08 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 02 08:45:08 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027 into gfs2\n"
    },
    {
      "commit": "82b0547cfae1fb2ee26cad588f6d49a347d24740",
      "tree": "67575452152d0e51a573f66053c29c2028f3701e",
      "parents": [
        "52978be636374c4bfb61220b37fa12f55a071c46"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Sep 30 23:27:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:19 2006 -0700"
      },
      "message": "[PATCH] Create fs/utimes.c\n\n* fs/open.c is getting bit crowdy\n* preparation to lutimes(2)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9361401eb7619c033e2394e4f9f6d410d6719ac7",
      "tree": "04b94a71f2366988c17740d1c16cfbdec41d5d2e",
      "parents": [
        "d366e40a1cabd453be6e2609caa7e12f9ca17b1f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sat Sep 30 20:45:40 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:52:31 2006 +0200"
      },
      "message": "[PATCH] BLOCK: Make it possible to disable the block layer [try #6]\n\nMake it possible to disable the block layer.  Not all embedded devices require\nit, some can make do with just JFFS2, NFS, ramfs, etc - none of which require\nthe block layer to be present.\n\nThis patch does the following:\n\n (*) Introduces CONFIG_BLOCK to disable the block layer, buffering and blockdev\n     support.\n\n (*) Adds dependencies on CONFIG_BLOCK to any configuration item that controls\n     an item that uses the block layer.  This includes:\n\n     (*) Block I/O tracing.\n\n     (*) Disk partition code.\n\n     (*) All filesystems that are block based, eg: Ext3, ReiserFS, ISOFS.\n\n     (*) The SCSI layer.  As far as I can tell, even SCSI chardevs use the\n     \t block layer to do scheduling.  Some drivers that use SCSI facilities -\n     \t such as USB storage - end up disabled indirectly from this.\n\n     (*) Various block-based device drivers, such as IDE and the old CDROM\n     \t drivers.\n\n     (*) MTD blockdev handling and FTL.\n\n     (*) JFFS - which uses set_bdev_super(), something it could avoid doing by\n     \t taking a leaf out of JFFS2\u0027s book.\n\n (*) Makes most of the contents of linux/blkdev.h, linux/buffer_head.h and\n     linux/elevator.h contingent on CONFIG_BLOCK being set.  sector_div() is,\n     however, still used in places, and so is still available.\n\n (*) Also made contingent are the contents of linux/mpage.h, linux/genhd.h and\n     parts of linux/fs.h.\n\n (*) Makes a number of files in fs/ contingent on CONFIG_BLOCK.\n\n (*) Makes mm/bounce.c (bounce buffering) contingent on CONFIG_BLOCK.\n\n (*) set_page_dirty() doesn\u0027t call __set_page_dirty_buffers() if CONFIG_BLOCK\n     is not enabled.\n\n (*) fs/no-block.c is created to hold out-of-line stubs and things that are\n     required when CONFIG_BLOCK is not set:\n\n     (*) Default blockdev file operations (to give error ENODEV on opening).\n\n (*) Makes some /proc changes:\n\n     (*) /proc/devices does not list any blockdevs.\n\n     (*) /proc/diskstats and /proc/partitions are contingent on CONFIG_BLOCK.\n\n (*) Makes some compat ioctl handling contingent on CONFIG_BLOCK.\n\n (*) If CONFIG_BLOCK is not defined, makes sys_quotactl() return -ENODEV if\n     given command other than Q_SYNC or if a special device is specified.\n\n (*) In init/do_mounts.c, no reference is made to the blockdev routines if\n     CONFIG_BLOCK is not defined.  This does not prohibit NFS roots or JFFS2.\n\n (*) The bdflush, ioprio_set and ioprio_get syscalls can now be absent (return\n     error ENOSYS by way of cond_syscall if so).\n\n (*) The seclvl_bd_claim() and seclvl_bd_release() security calls do nothing if\n     CONFIG_BLOCK is not set, since they can\u0027t then happen.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "f0c8bd164e1a0585d7e46896553136b4f488bd19",
      "tree": "75cbeec5113da7c20c6ee9ef09bdaea82014738a",
      "parents": [
        "4e6fd33b75602ced4c5d43e99a10a1d13f33d4f4"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Fri Sep 29 02:01:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:24 2006 -0700"
      },
      "message": "[PATCH] Generic infrastructure for acls\n\nThe patches solve the following problem: We want to grant access to devices\nbased on who is logged in from where, etc.  This includes switching back and\nforth between multiple user sessions, etc.\n\nUsing ACLs to define device access for logged-in users gives us all the\nflexibility we need in order to fully solve the problem.\n\nDevice special files nowadays usually live on tmpfs, hence tmpfs ACLs.\n\nDifferent distros have come up with solutions that solve the problem to\ndifferent degrees: SUSE uses a resource manager which tracks login sessions\nand sets ACLs on device inodes as appropriate.  RedHat uses pam_console, which\nchanges the primary file ownership to the logged-in user.  Others use a set of\ngroups that users must be in in order to be granted the appropriate accesses.\n\nThe freedesktop.org project plans to implement a combination of a\nconsole-tracker and a HAL-device-list based solution to grant access to\ndevices to users, and more distros will likely follow this approach.\n\nThese patches have first been posted here on 2 February 2005, and again\non 8 January 2006. We have been shipping them in SLES9 and SLES10 with\nno problems reported.  The previous submission is archived here:\n\n   http://lkml.org/lkml/2006/1/8/229\n   http://lkml.org/lkml/2006/1/8/230\n   http://lkml.org/lkml/2006/1/8/231\n\nThis patch:\n\nAdd some infrastructure for access control lists on in-memory\nfilesystems such as tmpfs.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0a1340c185734a57fbf4775927966ad4a1347b02",
      "tree": "d9ed8f0dd809a7c542a3356601125ea5b5aaa804",
      "parents": [
        "af18ddb8864b096e3ed4732e2d4b21c956dcfe3a",
        "29454dde27d8e340bb1987bad9aa504af7081eba"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 03 10:25:08 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 03 10:25:08 2006 -0400"
      },
      "message": "Merge rsync://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tinclude/linux/kernel.h\n"
    },
    {
      "commit": "d8deac5094988c7ad1127ee61f52c59a952fcabb",
      "tree": "95285444a6e65f2e43d9bc62d13a726277cd91f2",
      "parents": [
        "5fd571cbc13db113bda26c20673e1ec54bfd26b4"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 21:15:16 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 26 12:25:05 2006 -0700"
      },
      "message": "[PATCH] devfs: Remove devfs from the kernel tree\n\nThis is the first patch in a series of patches that removes devfs\nsupport from the kernel.  This patch removes the core devfs code, and\nits private header file.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "2d9048e201bfb67ba21f05e647b1286b8a4a5667",
      "tree": "1df2ca6780d403f3209cf445f8b0b27f45098434",
      "parents": [
        "90204e0b7b51e9f2a6905adca12dc331128602c7"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Thu Jun 01 13:10:59 2006 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 20 05:25:17 2006 -0400"
      },
      "message": "[PATCH] inotify (1/5): split kernel API from userspace support\n\nThe following series of patches introduces a kernel API for inotify,\nmaking it possible for kernel modules to benefit from inotify\u0027s\nmechanism for watching inodes.  With these patches, inotify will\nmaintain for each caller a list of watches (via an embedded struct\ninotify_watch), where each inotify_watch is associated with a\ncorresponding struct inode.  The caller registers an event handler and\nspecifies for which filesystem events their event handler should be\ncalled per inotify_watch.\n\nSigned-off-by: Amy Griffis \u003camy.griffis@hp.com\u003e\nAcked-by: Robert Love \u003crml@novell.com\u003e\nAcked-by: John McCutchan \u003cjohn@johnmccutchan.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c6a756795d5ba0637aae8da89dd11bb7e3a1ee74",
      "tree": "1c19f951f2604dbb6b867a6dcdf94d20c204cc5c",
      "parents": [
        "382066da251132f768380f4852ed5afb72d88f80",
        "a8bd60705aa17a998516837d9c1e503ad4cbd7fc"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 25 12:40:08 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 25 12:40:08 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027\n"
    },
    {
      "commit": "cef0893dcf1fdf22943aa49e75ee1eb3bfffe5f5",
      "tree": "13d7116b336bf935dafe70a732395c5c1fd03be3",
      "parents": [
        "eed7a0db460595b139428d252798a83f1e1ce1d3"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 03 11:38:53 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed May 17 14:38:51 2006 -0700"
      },
      "message": "configfs: Make sure configfs_init() is called before consumers.\n\nconfigfs_init() needs to be called first to register configfs before anyconsumers try to access it.  Move up configfs in fs/Makefile to make\nsure it is initialized early.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "76467874b83835129dc454e3a7a8e5d1186101b0",
      "tree": "162129f0c36c35be4aa323cf00626db0e804c3fc",
      "parents": [
        "8628de0583504138551a05ad44ca388467f0f552",
        "6246b6128bbe34d0752f119cf7c5111c85fe481d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 03 09:08:57 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 03 09:08:57 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027\n"
    },
    {
      "commit": "86579dd06deecfa6ac88d5e84e4d63c397cd6f6d",
      "tree": "b4475d3ccde53015ad84a06e4e55e64591171b75",
      "parents": [
        "7ea9ea832212c4a755650f7c7cc1ff0b63292a41",
        "a0f067802576d4eb4c65d40b8ee7d6ea3c81dd61"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Mar 31 15:34:58 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Mar 31 15:34:58 2006 -0500"
      },
      "message": "Merge branch \u0027master\u0027\n"
    },
    {
      "commit": "f79e2abb9bd452d97295f34376dedbec9686b986",
      "tree": "56b9998caa11983556e842fb9a8143d86d765fa3",
      "parents": [
        "d6dfd1310d3562698fd7c3c086f6c239f96394ac"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 31 02:30:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:54 2006 -0800"
      },
      "message": "[PATCH] sys_sync_file_range()\n\nRemove the recently-added LINUX_FADV_ASYNC_WRITE and LINUX_FADV_WRITE_WAIT\nfadvise() additions, do it in a new sys_sync_file_range() syscall instead.\nReasons:\n\n- It\u0027s more flexible.  Things which would require two or three syscalls with\n  fadvise() can be done in a single syscall.\n\n- Using fadvise() in this manner is something not covered by POSIX.\n\nThe patch wires up the syscall for x86.\n\nThe sycall is implemented in the new fs/sync.c.  The intention is that we can\nmove sys_fsync(), sys_fdatasync() and perhaps sys_sync() into there later.\n\nDocumentation for the syscall is in fs/sync.c.\n\nA test app (sync_file_range.c) is in\nhttp://www.zip.com.au/~akpm/linux/patches/stuff/ext3-tools.tar.gz.\n\nThe available-to-GPL-modules do_sync_file_range() is for knfsd: \"A COMMIT can\nsay NFS_DATA_SYNC or NFS_FILE_SYNC.  I can skip the -\u003efsync call for\nNFS_DATA_SYNC which is hopefully the more common.\"\n\nNote: the `async\u0027 writeout mode SYNC_FILE_RANGE_WRITE will turn synchronous if\nthe queue is congested.  This is trivial to fix: add a new flag bit, set\nwbc-\u003enonblocking.  But I\u0027m not sure that we want to expose implementation\ndetails down to that level.\n\nNote: it\u0027s notable that we can sync an fd which wasn\u0027t opened for writing.\nSame with fsync() and fdatasync()).\n\nNote: the code takes some care to handle attempts to sync file contents\noutside the 16TB offset on 32-bit machines.  It makes such attempts appear to\nsucceed, for best 32-bit/64-bit compatibility.  Perhaps it should make such\nrequests fail...\n\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5274f052e7b3dbd81935772eb551dfd0325dfa9d",
      "tree": "c79f813ec513660edb6f1e4a75cb366c6b84f53f",
      "parents": [
        "5d4fe2c1ce83c3e967ccc1ba3d580c1a5603a866"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 30 15:15:30 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 30 12:28:18 2006 -0800"
      },
      "message": "[PATCH] Introduce sys_splice() system call\n\nThis adds support for the sys_splice system call. Using a pipe as a\ntransport, it can connect to files or sockets (latter as output only).\n\nFrom the splice.c comments:\n\n   \"splice\": joining two ropes together by interweaving their strands.\n\n   This is the \"extended pipe\" functionality, where a pipe is used as\n   an arbitrary in-memory buffer. Think of a pipe as a small kernel\n   buffer that you can use to transfer data from one end to the other.\n\n   The traditional unix read/write is extended with a \"splice()\" operation\n   that transfers data buffers to or from a pipe buffer.\n\n   Named by Larry McVoy, original implementation from Linus, extended by\n   Jens to support splicing to files and fixing the initial implementation\n   bugs.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b86ff981a8252d83d6a7719ae09f3a05307e3592",
      "tree": "ba8839f46cb140664e6a1ff6c7361b7424a95a7f",
      "parents": [
        "b0e6e962992b76580f4900b166a337bad7c1e81b"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 23 19:56:55 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 23 19:56:55 2006 +0100"
      },
      "message": "[PATCH] relay: migrate from relayfs to a generic relay API\n\nOriginal patch from Paul Mundt, sysfs parts removed by me since they\nwere broken.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "e7fd41792fc0ee52a05fcaac87511f118328d147",
      "tree": "eee5227088ba97daef795e385b7548d2a1cc4cb6",
      "parents": [
        "e47314207032cfd1157b8c377df162839b32ea6f"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jan 18 09:30:29 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 18 09:30:29 2006 +0000"
      },
      "message": "[DLM] The core of the DLM for GFS2/CLVM\n\nThis is the core of the distributed lock manager which is required\nto use GFS2 as a cluster filesystem. It is also used by CLVM and\ncan be used as a standalone lock manager independantly of either\nof these two projects.\n\nIt implements VAX-style locking modes.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steve Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f7825dcf8c7301cfd3724eb40c5b443cc85ab7b8",
      "tree": "1c5e8229b09cb2ac94197cf90fbfe1a9c1659257",
      "parents": [
        "fba7b940194465ac7a8f0cdf793959fb5fbb8834"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jan 16 16:43:37 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 16 16:43:37 2006 +0000"
      },
      "message": "[GFS2] Hook GFS2 into the Kbuild system\n\nAdds GFS2 into fs/Kconfig and adds a Makefile entry\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e6a6d2efcb7e7c87c5fe0395803da1453b29cbef",
      "tree": "76061b3067e22ba78cce975e5f729c6a6a37fce5",
      "parents": [
        "8262037f406dc8e0908ad51f355c3dfd4d662aba"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jan 09 20:52:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:33 2006 -0800"
      },
      "message": "[PATCH] sanitize building of fs/compat_ioctl.c\n\nNow that all these entries in the arch ioctl32.c files are gone [1], we can\nbuild fs/compat_ioctl.c as a normal object and kill tons of cruft.  We need a\nspecial do_ioctl32_pointer handler for s390 so the compat_ptr call is done.\nThis is not needed but harmless on all other architectures.  Also remove some\nsuperflous includes in fs/compat_ioctl.c\n\nTested on ppc64.\n\n[1] parisc still had it\u0027s PPP handler left, which is not fully correct\n    for ppp and besides that ppp uses the generic SIOCPRIV ioctl so it\u0027d\n    kick in for all netdevice users.  We can introduce a proper handler\n    in one of the next patch series by adding a compat_ioctl method to\n    struct net_device but for now let\u0027s just kill it - parisc doesn\u0027t\n    compile in mainline anyway and I don\u0027t want this to block this\n    patchset.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9d0243bca345d5ce25d3f4b74b7facb3a6df1232",
      "tree": "a3a0a763bf83a483282dc1c3caab587941a98fc2",
      "parents": [
        "bec6b0c89b234090681a4516e20ac5debe3e7c59"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Jan 08 01:00:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:40 2006 -0800"
      },
      "message": "[PATCH] drop-pagecache\n\nAdd /proc/sys/vm/drop_caches.  When written to, this will cause the kernel to\ndiscard as much pagecache and/or reclaimable slab objects as it can.  THis\noperation requires root permissions.\n\nIt won\u0027t drop dirty data, so the user should run `sync\u0027 first.\n\nCaveats:\n\na) Holds inode_lock for exorbitant amounts of time.\n\nb) Needs to be taught about NUMA nodes: propagate these all the way through\n   so the discarding can be controlled on a per-node basis.\n\nThis is a debugging feature: useful for getting consistent results between\nfilesystem benchmarks.  We could possibly put it under a config option, but\nit\u0027s less than 300 bytes.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b4e40a51881931bfcbc78a585e875bb2784d6d10",
      "tree": "a874485dafacc0896c3b355efa079f7e93a450fd",
      "parents": [
        "ccd979bdbce9fba8412beb3f1de68a9d0171b12c"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Dec 15 14:31:24 2005 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 03 11:45:48 2006 -0800"
      },
      "message": "[PATCH] OCFS2: The Second Oracle Cluster Filesystem\n\nLink the code into the kernel build system. OCFS2 is marked as\nexperimental.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Kurt Hackel \u003ckurt.hackel@oracle.com\u003e\n"
    },
    {
      "commit": "7063fbf2261194f72ee75afca67b3b38b554b5fa",
      "tree": "7bfe4eeab8ce784b767cf30886623d456c384718",
      "parents": [
        "88026842b0a760145aa71d69e74fbc9ec118ca44"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Dec 15 14:29:43 2005 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 03 11:45:28 2006 -0800"
      },
      "message": "[PATCH] configfs: User-driven configuration filesystem\n\nConfigfs, a file system for userspace-driven kernel object configuration.\nThe OCFS2 stack makes extensive use of this for propagation of cluster\nconfiguration information into kernel.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "07b20889e3052c7e77d6a6a54e7e83446eb1ba84",
      "tree": "616ac5b7eef3092e105d3b41e7bd2052558b064b",
      "parents": [
        "390c684367de37e1c2f9005cf92f7a746c69fdd3"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Mon Nov 07 17:19:07 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 18:18:10 2005 -0800"
      },
      "message": "[PATCH] beginning of the shared-subtree proper\n\nA private mount does not forward or receive propagation.  This patch\nprovides user the ability to convert any mount to private.\n\nSigned-off-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "04578f174f43d29b569500f01ba772afa4016330",
      "tree": "36002fab91bc72132c88ac7969d5a38a66f90e14",
      "parents": [
        "e272d50688a1cae66a12426da128483197843d9f"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Sep 09 13:10:22 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:44 2005 -0700"
      },
      "message": "[PATCH] FUSE - MAINTAINERS, Kconfig and Makefile changes\n\nThis patch adds FUSE filesystem to MAINTAINERS, fs/Kconfig and\nfs/Makefile.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "93fa58cb831337fdf5d36b3b913441100a484dae",
      "tree": "5fdc85b69eff2bb6d7d69e8bd4f97dc170e198f5",
      "parents": [
        "2822541893d88f84dd4f1525108d73effecd9d39"
      ],
      "author": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Sep 09 13:04:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:56 2005 -0700"
      },
      "message": "[PATCH] v9fs: Documentation, Makefiles, Configuration\n\nOVERVIEW\n\nV9FS is a distributed file system for Linux which provides an\nimplementation of the Plan 9 resource sharing protocol 9P.  It can be\nused to share all sorts of resources: static files, synthetic file servers\n(such as /proc or /sys), devices, and application file servers (such as\nFUSE).\n\nBACKGROUND\n\nPlan 9 (http://plan9.bell-labs.com/plan9) is a research operating\nsystem and associated applications suite developed by the Computing\nScience Research Center of AT\u0026T Bell Laboratories (now a part of\nLucent Technologies), the same group that developed UNIX , C, and C++.\nPlan 9 was initially released in 1993 to universities, and then made\ngenerally available in 1995. Its core operating systems code laid the\nfoundation for the Inferno Operating System released as a product by\nLucent Bell-Labs in 1997. The Inferno venture was the only commercial\nembodiment of Plan 9 and is currently maintained as a product by Vita\nNuova (http://www.vitanuova.com). After updated releases in 2000 and\n2002, Plan 9 was open-sourced under the OSI approved Lucent Public\nLicense in 2003.\n\nThe Plan 9 project was started by Ken Thompson and Rob Pike in 1985.\nTheir intent was to explore potential solutions to some of the\nshortcomings of UNIX in the face of the widespread use of high-speed\nnetworks to connect machines. In UNIX, networking was an afterthought\nand UNIX clusters became little more than a network of stand-alone\nsystems. Plan 9 was designed from first principles as a seamless\ndistributed system with integrated secure network resource sharing.\nApplications and services were architected in such a way as to allow\nfor implicit distribution across a cluster of systems. Configuring an\nenvironment to use remote application components or services in place\nof their local equivalent could be achieved with a few simple command\nline instructions. For the most part, application implementations\noperated independent of the location of their actual resources.\n\nCommercial operating systems haven\u0027t changed much in the 20 years\nsince Plan 9 was conceived. Network and distributed systems support is\nprovided by a patchwork of middle-ware, with an endless number of\npackages supplying pieces of the puzzle. Matters are complicated by\nthe use of different complicated protocols for individual services,\nand separate implementations for kernel and application resources.\nThe V9FS project (http://v9fs.sourceforge.net) is an attempt to bring\nPlan 9\u0027s unified approach to resource sharing to Linux and other\noperating systems via support for the 9P2000 resource sharing\nprotocol.\n\nV9FS HISTORY\n\nV9FS was originally developed by Ron Minnich and Maya Gokhale at Los\nAlamos National Labs (LANL) in 1997.  In November of 2001, Greg Watson\nsetup a SourceForge project as a public repository for the code which\nsupported the Linux 2.4 kernel.\n\nAbout a year ago, I picked up the initial attempt Ron Minnich had\nmade to provide 2.6 support and got the code integrated into a 2.6.5\nkernel.   I then went through a line-for-line re-write attempting to\nclean-up the code while more closely following the Linux Kernel style\nguidelines.  I co-authored a paper with Ron Minnich on the V9FS Linux\nsupport including performance comparisons to NFSv3 using Bonnie and\nPostMark - this paper appeared at the USENIX/FREENIX 2005\nconference in April 2005:\n( http://www.usenix.org/events/usenix05/tech/freenix/hensbergen.html ).\n\nCALL FOR PARTICIPATION/REQUEST FOR COMMENTS\n\nOur 2.6 kernel support is stabilizing and we\u0027d like to begin pursuing\nits integration into the official kernel tree.  We would appreciate any\nreview, comments, critiques, and additions from this community and are\nactively seeking people to join our project and help us produce\nsomething that would be acceptable and useful to the Linux community.\n\nSTATUS\n\nThe code is reasonably stable, although there are no doubt corner cases\nour regression tests haven\u0027t discovered yet.  It is in regular use by several\nof the developers and has been tested on x86 and PowerPC\n(32-bit and 64-bit) in both small and large (LANL cluster) deployments.\nOur current regression tests include fsx, bonnie, and postmark.\n\nIt was our intention to keep things as simple as possible for this\nrelease -- trying to focus on correctness within the core of the\nprotocol support versus a rich set of features.  For example: a more\ncomplete security model and cache layer are in the road map, but\nexcluded from this release.   Additionally, we have removed support for\nmmap operations at Al Viro\u0027s request.\n\nPERFORMANCE\n\nDetailed performance numbers and analysis are included in the FREENIX\npaper, but we show comparable performance to NFSv3 for large file\noperations based on the Bonnie benchmark, and superior performance for\nmany small file operations based on the PostMark benchmark.   Somewhat\npreliminary graphs (from the FREENIX paper) are available\n(http://v9fs.sourceforge.net/perf/index.html).\n\nRESOURCES\n\nThe source code is available in a few different forms:\n\ntarballs: http://v9fs.sf.net\nCVSweb: http://cvs.sourceforge.net/viewcvs.py/v9fs/linux-9p/\nCVS: :pserver:anonymous@cvs.sourceforge.net:/cvsroot/v9fs/linux-9p\nGit: rsync://v9fs.graverobber.org/v9fs (webgit: http://v9fs.graverobber.org)\n9P: tcp!v9fs.graverobber.org!6564\n\nThe user-level server is available from either the Plan 9 distribution\nor from http://v9fs.sf.net\nOther support applications are still being developed, but preliminary\nversion can be downloaded from sourceforge.\n\nDocumentation on the protocol has historically been the Plan 9 Man\npages (http://plan9.bell-labs.com/sys/man/5/INDEX.html), but there is\nan effort under way to write a more complete Internet-Draft style\nspecification (http://v9fs.sf.net/rfc).\n\nThere are a couple of mailing lists supporting v9fs, but the most used\nis v9fs-developer@lists.sourceforge.net -- please direct/cc your\ncomments there so the other v9fs contibutors can participate in the\nconversation.  There is also an IRC channel: irc://freenode.net/#v9fs\n\nThis part of the patch contains Documentation, Makefiles, and configuration\nfile changes.\n\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e82894f84dbba130ab46c97748c03647f8204f92",
      "tree": "dbf20825db44037f0db5d0696d43457292c546c3",
      "parents": [
        "8446f1d391f3d27e6bf9c43d4cbcdac0ca720417"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "zanussi@us.ibm.com",
        "time": "Tue Sep 06 15:16:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:18 2005 -0700"
      },
      "message": "[PATCH] relayfs\n\nHere\u0027s the latest version of relayfs, against linux-2.6.11-mm2.  I\u0027m hoping\nyou\u0027ll consider putting this version back into your tree - the previous\nrounds of comment seem to have shaken out all the API issues and the number\nof comments on the code itself have also steadily dwindled.\n\nThis patch is essentially the same as the relayfs redux part 5 patch, with\nsome minor changes based on reviewer comments.  Thanks again to Pekka\nEnberg for those.  The patch size without documentation is now a little\nsmaller at just over 40k.  Here\u0027s a detailed list of the changes:\n\n- removed the attribute_flags in relay open and changed it to a\n  boolean specifying either overwrite or no-overwrite mode, and removed\n  everything referencing the attribute flags.\n- added a check for NULL names in relayfs_create_entry()\n- got rid of the unnecessary multiple labels in relay_create_buf()\n- some minor simplification of relay_alloc_buf() which got rid of a\n  couple params\n- updated the Documentation\n\nIn addition, this version (through code contained in the relay-apps tarball\nlinked to below, not as part of the relayfs patch) tries to make it as easy\nas possible to create the cooperating kernel/user pieces of a typical and\ncommon type of logging application, one where kernel logging is kicked off\nwhen a user space data collection app starts and stops when the collection\napp exits, with the data being automatically logged to disk in between.  To\ncreate this type of application, you basically just include a header file\n(relay-app.h, included in the relay-apps tarball) in your kernel module,\ndefine a couple of callbacks and call an initialization function, and on\nthe user side call a single function that sets up and continuously monitors\nthe buffers, and writes data to files as it becomes available.  Channels\nare created when the collection app is started and destroyed when it exits,\nnot when the kernel module is inserted, so different channel buffer sizes\ncan be specified for each separate run via command-line options.  See the\nREADME in the relay-apps tarball for details.\n\nAlso included in the relay-apps tarball are a couple examples\ndemonstrating how you can use this to create quick and dirty kernel\nlogging/debugging applications.  They are:\n\n- tprintk, short for \u0027tee printk\u0027, which temporarily puts a kprobe on\n  printk() and writes a duplicate stream of printk output to a relayfs\n  channel.  This could be used anywhere there\u0027s printk() debugging code\n  in the kernel which you\u0027d like to exercise, but would rather not have\n  your system logs cluttered with debugging junk.  You\u0027d probably want\n  to kill klogd while you do this, otherwise there wouldn\u0027t be much\n  point (since putting a kprobe on printk() doesn\u0027t change the output\n  of printk()).  I\u0027ve used this method to temporarily divert the packet\n  logging output of the iptables LOG target from the system logs to\n  relayfs files instead, for instance.\n\n- klog, which just provides a printk-like formatted logging function\n  on top of relayfs.  Again, you can use this to keep stuff out of your\n  system logs if used in place of printk.\n\nThe example applications can be found here:\n\nhttp://prdownloads.sourceforge.net/dprobes/relay-apps.tar.gz?download\n\nFrom: Christoph Hellwig \u003chch@lst.de\u003e\n\n  avoid lookup_hash usage in relayfs\n\nSigned-off-by: Tom Zanussi \u003czanussi@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0eeca28300df110bd6ed54b31193c83b87921443",
      "tree": "7db42d8a18d80eca538f5b7d25e0532b8fa38b85",
      "parents": [
        "bd4c625c061c2a38568d0add3478f59172455159"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Tue Jul 12 17:06:03 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 12 20:38:38 2005 -0700"
      },
      "message": "[PATCH] inotify\n\ninotify is intended to correct the deficiencies of dnotify, particularly\nits inability to scale and its terrible user interface:\n\n        * dnotify requires the opening of one fd per each directory\n          that you intend to watch. This quickly results in too many\n          open files and pins removable media, preventing unmount.\n        * dnotify is directory-based. You only learn about changes to\n          directories. Sure, a change to a file in a directory affects\n          the directory, but you are then forced to keep a cache of\n          stat structures.\n        * dnotify\u0027s interface to user-space is awful.  Signals?\n\ninotify provides a more usable, simple, powerful solution to file change\nnotification:\n\n        * inotify\u0027s interface is a system call that returns a fd, not SIGIO.\n\t  You get a single fd, which is select()-able.\n        * inotify has an event that says \"the filesystem that the item\n          you were watching is on was unmounted.\"\n        * inotify can watch directories or files.\n\nInotify is currently used by Beagle (a desktop search infrastructure),\nGamin (a FAM replacement), and other projects.\n\nSee Documentation/filesystems/inotify.txt.\n\nSigned-off-by: Robert Love \u003crml@novell.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22e2c507c301c3dbbcf91b4948b88f78842ee6c9",
      "tree": "9a97c91d1362e69703aa286021daffb8a5456f4c",
      "parents": [
        "020f46a39eb7b99a575b9f4d105fce2b142acdf1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Mon Jun 27 10:55:12 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Jun 27 14:33:29 2005 -0700"
      },
      "message": "[PATCH] Update cfq io scheduler to time sliced design\n\nThis updates the CFQ io scheduler to the new time sliced design (cfq\nv3).  It provides full process fairness, while giving excellent\naggregate system throughput even for many competing processes.  It\nsupports io priorities, either inherited from the cpu nice value or set\ndirectly with the ioprio_get/set syscalls.  The latter closely mimic\nset/getpriority.\n\nThis import is based on my latest from -mm.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a257cdd0e2179630d3201c32ba14d7fcb3c3a055",
      "tree": "accf4139050690a65f3f2600355cbcd1a602663b",
      "parents": [
        "9ba02638e4be28dd4ff724202a640264427c62d1"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Wed Jun 22 17:16:26 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:23 2005 -0400"
      },
      "message": "[PATCH] NFSD: Add server support for NFSv3 ACLs.\n\n This adds functions for encoding and decoding POSIX ACLs for the NFSACL\n protocol extension, and the GETACL and SETACL RPCs.  The implementation is\n compatible with NFSACL in Solaris.\n\n Signed-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\n Acked-by: Olaf Kirch \u003cokir@suse.de\u003e\n Signed-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
