)]}'
{
  "log": [
    {
      "commit": "f5e54d6e53a20cef45af7499e86164f0e0d16bb2",
      "tree": "cb92acbb89b84796261bf5563182261ec5654127",
      "parents": [
        "a052b68b1e7a31f1e6a721290035e9deb0f6fed9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jun 28 04:26:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jun 28 14:59:04 2006 -0700"
      },
      "message": "[PATCH] mark address_space_operations const\n\nSame as with already do with the file operations: keep them in .rodata and\nprevents people from doing runtime patching.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "816724e65c72a90a44fbad0ef0b59b186c85fa90",
      "tree": "421fa29aedff988e392f92780637553e275d37a0",
      "parents": [
        "70ac4385a13f78bc478f26d317511893741b05bd",
        "d384ea691fe4ea8c2dd5b9b8d9042eb181776f18"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 08:41:41 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:07:53 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/\n\nConflicts:\n\n\tfs/nfs/inode.c\n\tfs/super.c\n\nFix conflicts between patch \u0027NFS: Split fs/nfs/inode.c\u0027 and patch\n\u0027VFS: Permit filesystem to override root dentry on mount\u0027\n"
    },
    {
      "commit": "b0904e147f7cbe4be3b4dae49ddccd627bb66f16",
      "tree": "81bb0e45d46a3bb038d953f616fd6e32d7ca5e4b",
      "parents": [
        "75e1fcc0b18df0a65ab113198e9dc0e98999a08c"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 23 02:05:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:03 2006 -0700"
      },
      "message": "[PATCH] fs/locks.c: make posix_locks_deadlock() static\n\nWe can now make posix_locks_deadlock() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "75e1fcc0b18df0a65ab113198e9dc0e98999a08c",
      "tree": "3ac0d0d3120cbca4ee9734494e2c9a4e0775ac4f",
      "parents": [
        "ff7b86b82083f24b8637dff1528c7101c18c7f39"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Jun 23 02:05:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:02 2006 -0700"
      },
      "message": "[PATCH] vfs: add lock owner argument to flush operation\n\nPass the POSIX lock owner ID to the flush operation.\n\nThis is useful for filesystems which don\u0027t want to store any locking state\nin inode-\u003ei_flock but want to handle locking/unlocking POSIX locks\ninternally.  FUSE is one such filesystem but I think it possible that some\nnetwork filesystems would need this also.\n\nAlso add a flag to indicate that a POSIX locking request was generated by\nclose(), so filesystems using the above feature won\u0027t send an extra locking\nrequest in this case.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2d1db3b1170db4e8bf0531dd636742269c2cf579",
      "tree": "1161ed614a55869c278234d7472673fd1a577887",
      "parents": [
        "c3fcf8a5daacf350f0632e1379414c01f34eeea3"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:50 2006 -0700"
      },
      "message": "[PATCH] page migration cleanup: pass \"mapping\" to migration functions\n\nChange handling of address spaces.\n\nPass a pointer to the address space in which the page is migrated to all\nmigration function.  This avoids repeatedly having to retrieve the address\nspace pointer from the page and checking it for validity.  The old page\nmapping will change once migration has gone to a certain step, so it is less\nconfusing to have the pointer always available.\n\nMove the setting of the mapping and index for the new page into\nmigrate_pages().\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "726c334223180e3c0197cc980a432681370d4baf",
      "tree": "8327b354bb3dc959a6606051ae6f8d4d035e38a2",
      "parents": [
        "454e2398be9b9fa30433fccc548db34d19aa9958"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:02:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] VFS: Permit filesystem to perform statfs with a known root dentry\n\nGive the statfs superblock operation a dentry pointer rather than a superblock\npointer.\n\nThis complements the get_sb() patch.  That reduced the significance of\nsb-\u003es_root, allowing NFS to place a fake root there.  However, NFS does\nrequire a dentry to use as a target for the statfs operation.  This permits\nthe root in the vfsmount to be used instead.\n\nlinux/mount.h has been added where necessary to make allyesconfig build\nsuccessfully.\n\nInterest has also been expressed for use with the FUSE and XFS filesystems.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "454e2398be9b9fa30433fccc548db34d19aa9958",
      "tree": "1f61cb0c3716a33b661cfc8977e9beeb480a322c",
      "parents": [
        "1ad5544098a69d7dc1fa508cbb17e13a7a952fd8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:02:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] VFS: Permit filesystem to override root dentry on mount\n\nExtend the get_sb() filesystem operation to take an extra argument that\npermits the VFS to pass in the target vfsmount that defines the mountpoint.\n\nThe filesystem is then required to manually set the superblock and root dentry\npointers.  For most filesystems, this should be done with simple_set_mnt()\nwhich will set the superblock pointer and then set the root dentry to the\nsuperblock\u0027s s_root (as per the old default behaviour).\n\nThe get_sb() op now returns an integer as there\u0027s now no need to return the\nsuperblock pointer.\n\nThis patch permits a superblock to be implicitly shared amongst several mount\npoints, such as can be done with NFS to avoid potential inode aliasing.  In\nsuch a case, simple_set_mnt() would not be called, and instead the mnt_root\nand mnt_sb would be set directly.\n\nThe patch also makes the following changes:\n\n (*) the get_sb_*() convenience functions in the core kernel now take a vfsmount\n     pointer argument and return an integer, so most filesystems have to change\n     very little.\n\n (*) If one of the convenience function is not used, then get_sb() should\n     normally call simple_set_mnt() to instantiate the vfsmount. This will\n     always return 0, and so can be tail-called from get_sb().\n\n (*) generic_shutdown_super() now calls shrink_dcache_sb() to clean up the\n     dcache upon superblock destruction rather than shrink_dcache_anon().\n\n     This is required because the superblock may now have multiple trees that\n     aren\u0027t actually bound to s_root, but that still need to be cleaned up. The\n     currently called functions assume that the whole tree is rooted at s_root,\n     and that anonymous dentries are not the roots of trees which results in\n     dentries being left unculled.\n\n     However, with the way NFS superblock sharing are currently set to be\n     implemented, these assumptions are violated: the root of the filesystem is\n     simply a dummy dentry and inode (the real inode for \u0027/\u0027 may well be\n     inaccessible), and all the vfsmounts are rooted on anonymous[*] dentries\n     with child trees.\n\n     [*] Anonymous until discovered from another tree.\n\n (*) The documentation has been adjusted, including the additional bit of\n     changing ext2_* into foo_* in the documentation.\n\n[akpm@osdl.org: convert ipath_fs, do other stuff]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c89681ed7d0e4a61d35bdc12c06c6733b718b2cb",
      "tree": "170d7c54d578480ba231dd690243aa21067ca253",
      "parents": [
        "09d967c6f32b35eab15b45862ae16e4f06259d8e"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Thu Jun 22 14:47:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jun 22 15:05:57 2006 -0700"
      },
      "message": "[PATCH] remove steal_locks()\n\nThis patch removes the steal_locks() function.\n\nsteal_locks() doesn\u0027t work correctly with any filesystem that does it\u0027s own\nlock management, including NFS, CIFS, etc.\n\nIn addition it has weird semantics on local filesystems in case tasks\nsharing file-descriptor tables are doing POSIX locking operations in\nparallel to execve().\n\nThe steal_locks() function has an effect on applications doing:\n\nclone(CLONE_FILES)\n  /* in child */\n  lock\n  execve\n  lock\n\nPOSIX locks acquired before execve (by \"child\", \"parent\" or any further\ntask sharing files_struct) will after the execve be owned exclusively by\n\"child\".\n\nAccording to Chris Wright some LSB/LTP kind of suite triggers without the\nstealing behavior, but there\u0027s no known real-world application that would\nalso fail.\n\nApps using NPTL are not affected, since all other threads are killed before\nexecve.\n\nApps using LinuxThreads are only affected if they\n\n  - have multiple threads during exec (LinuxThreads doesn\u0027t kill other\n    threads, the app may do it with pthread_kill_other_threads_np())\n  - rely on POSIX locks being inherited across exec\n\nBoth conditions are documented, but not their interaction.\n\nApps using clone() natively are affected if they\n\n  - use clone(CLONE_FILES)\n  - rely on POSIX locks being inherited across exec\n\nThe above scenarios are unlikely, but possible.\n\nIf the patch is vetoed, there\u0027s a plan B, that involves mostly keeping the\nweird stealing semantics, but changing the way lock ownership is handled so\nthat network and local filesystems work consistently.\n\nThat would add more complexity though, so this solution seems to be\npreferred by most people.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "70ac4385a13f78bc478f26d317511893741b05bd",
      "tree": "dafc7f3018295fc4ee00339889e4f35d5b9d7743",
      "parents": [
        "d59bf96cdde5b874a57bfd1425faa45da915d0b7",
        "077e98945db7e54a9865b5f29a1f02f531eca414"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 20 20:46:21 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 20 20:46:21 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/\n\nConflicts:\n\n\tinclude/linux/nfs_fs.h\n\nFixed up conflict with kernel header updates.\n"
    },
    {
      "commit": "8b512d9a88875affe584bb3d2a7a235f84343b9e",
      "tree": "80c46a675aeffaedd8d18e2bb6361768f4f4845a",
      "parents": [
        "5528f911b4c43a5de5da34bcbd7e3f2a62503617"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:18 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:18 2006 -0400"
      },
      "message": "VFS: Remove dependency of -\u003eumount_begin() call on MNT_FORCE\n\nAllow filesystems to decide to perform pre-umount processing whether or not\nMNT_FORCE is set.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1f5ce9e93aa96a867f195ed45f6f77935175f12e",
      "tree": "caa9b6635990f69d47c1729524bd127e968b23f5",
      "parents": [
        "bb4a58bf46473e3e83d84054bbc110db3a0f85e4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:16 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:16 2006 -0400"
      },
      "message": "VFS: Unexport do_kern_mount() and clean up simple_pin_fs()\n\nReplace all module uses with the new vfs_kern_mount() interface, and fix up\nsimple_pin_fs().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "66643de455c27973ac31ad6de9f859d399916842",
      "tree": "7ebed7f051879007d4b11d6aaa9e65a1bcb0b08f",
      "parents": [
        "2c23d62abb820e19c54012520f08a198c2233a85",
        "387e2b0439026aa738a9edca15a57e5c0bcb4dfc"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed May 24 09:22:21 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed May 24 09:22:21 2006 +0100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tinclude/asm-powerpc/unistd.h\n\tinclude/asm-sparc/unistd.h\n\tinclude/asm-sparc64/unistd.h\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "e46e490368f87032a6e54969194413339b35a385",
      "tree": "eeb2daa75b5a900bd9920da6ffc2969d05e12b4a",
      "parents": [
        "353b28bafd1b962359a866ff263a7fad833d29a1"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon May 22 22:35:24 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue May 23 10:35:31 2006 -0700"
      },
      "message": "[PATCH] sys_sync_file_range(): move exported flags outside __KERNEL__\n\nThese flags are needed by userspace - move them outside __KERNEL__\n\n(Pointed out by dwmw2)\n\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "cbb7e577e732f576b9f399bc2600bdc0626c68dc",
      "tree": "55e3d65c9d9fb5b0ee25d0ccabf951de6da2db7b",
      "parents": [
        "2514395ef88b46e895726a8d40966cb83de7940c"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Apr 11 14:57:50 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Tue Apr 11 15:47:07 2006 +0200"
      },
      "message": "[PATCH] splice: pass offset around for -\u003esplice_read() and -\u003esplice_write()\n\nWe need not use -\u003ef_pos as the offset for the file input/output. If the\nuser passed an offset pointer in through sys_splice(), just use that and\nleave -\u003ef_pos alone.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "88dd9c16cecbd105bbe7711b6120333f6f7b5474",
      "tree": "9632e5988abeaa7e4d20350305edc4e4652b56d1",
      "parents": [
        "6dde432553551ae036aae12c2b940677d36c9a5b",
        "d1195c516a9acd767cb541f914be2c6ddcafcfc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:34:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:34:02 2006 -0700"
      },
      "message": "Merge branch \u0027splice\u0027 of git://brick.kernel.dk/data/git/linux-2.6-block\n\n* \u0027splice\u0027 of git://brick.kernel.dk/data/git/linux-2.6-block:\n  [PATCH] vfs: add splice_write and splice_read to documentation\n  [PATCH] Remove sys_ prefix of new syscalls from __NR_sys_*\n  [PATCH] splice: warning fix\n  [PATCH] another round of fs/pipe.c cleanups\n  [PATCH] splice: comment styles\n  [PATCH] splice: add Ingo as addition copyright holder\n  [PATCH] splice: unlikely() optimizations\n  [PATCH] splice: speedups and optimizations\n  [PATCH] pipe.c/fifo.c code cleanups\n  [PATCH] get rid of the PIPE_*() macros\n  [PATCH] splice: speedup __generic_file_splice_read\n  [PATCH] splice: add direct fd \u003c-\u003e fd splicing support\n  [PATCH] splice: add optional input and output offsets\n  [PATCH] introduce a \"kernel-internal pipe object\" abstraction\n  [PATCH] splice: be smarter about calling do_page_cache_readahead()\n  [PATCH] splice: optimize the splice buffer mapping\n  [PATCH] splice: cleanup __generic_file_splice_read()\n  [PATCH] splice: only call wake_up_interruptible() when we really have to\n  [PATCH] splice: potential !page dereference\n  [PATCH] splice: mark the io page as accessed\n"
    },
    {
      "commit": "5246d0503130fa58904c8beb987fcf93b96d8ab6",
      "tree": "c807f1bba6a1d5abf0b3a9f221bc3e49ca5810c8",
      "parents": [
        "8833d328caf009f8da58337e17a2cf5d52993a7c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Apr 10 22:53:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:40 2006 -0700"
      },
      "message": "[PATCH] sync_file_range(): use unsigned for flags\n\nUlrich suggested that the `flags\u0027 arg to sync_file_range() become unsigned.\n\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "88e6faefaeed40a162041d85689e94595756d4c3",
      "tree": "78724ca8f0b7a5d0cf6071e5615e2e6eee3ab7f4",
      "parents": [
        "341b446bc5aa36d1d5b8159c1e66716b5d89024d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Apr 11 13:59:36 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Apr 11 13:59:36 2006 +0200"
      },
      "message": "[PATCH] splice: warning fix\n\nFrom: Andrew Morton \u003cakpm@osdl.org\u003e\n\nnet/socket.c:148: warning: initialization from incompatible pointer type\n\nextern declarations in .c files!  Bad boy.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "b92ce55893745e011edae70830b8bc863be881f9",
      "tree": "e2afd62d2e63d74157905140f5907d07bdfe31b9",
      "parents": [
        "529565dcb1581c9a1e3f6df1c1763ca3e0f0d512"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Apr 11 13:52:07 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Apr 11 13:52:07 2006 +0200"
      },
      "message": "[PATCH] splice: add direct fd \u003c-\u003e fd splicing support\n\nIt\u0027s more efficient for sendfile() emulation. Basically we cache an\ninternal private pipe and just use that as the intermediate area for\npages. Direct splicing is not available from sys_splice(), it is only\nmeant to be used for sendfile() emulation.\n\nAdditional patch from Ingo Molnar to avoid the PIPE_BUFFERS loop at\nexit for the normal fast path.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "3a326a2ce88e71d00ac0d133e314a3342a7709f8",
      "tree": "3a3cf55be19311c04d195e37baec9f49c4015b18",
      "parents": [
        "0b749ce3802428007a37870eb51ba3c0bdf90857"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 10 15:18:35 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Mon Apr 10 15:18:35 2006 +0200"
      },
      "message": "[PATCH] introduce a \"kernel-internal pipe object\" abstraction\n\nseparate out the \u0027internal pipe object\u0027 abstraction, and make it\nusable to splice. This cleans up and fixes several aspects of the\ninternal splice APIs and the pipe code:\n\n - pipes: the allocation and freeing of pipe_inode_info is now more symmetric\n   and more streamlined with existing kernel practices.\n\n - splice: small micro-optimization: less pointer dereferencing in splice\n   methods\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\nUpdate XFS for the -\u003esplice_read/-\u003esplice_write changes.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "8ba8e95ed14a2771bbcb43300feda094f298853e",
      "tree": "8f487c4f31175eea531fbf7305c91819eca17bec",
      "parents": [
        "36a891b67f95fd5e1442fc0f7f953809b94b3fbc"
      ],
      "author": {
        "name": "Kalin KOZHUHAROV",
        "email": "kalin@thinrope.net",
        "time": "Sat Apr 01 01:41:22 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Apr 01 01:41:22 2006 +0200"
      },
      "message": "Fix comments: s/granuality/granularity/\n\nI was grepping through the code and some `grep ganularity -R .` didn\u0027t\ncatch what I thought. Then looking closer I saw the term \"granuality\"\nused in only four places (in comments) and granularity in many more\nplaces describing the same idea. Some other facts:\n\ndictionary.com does not know such a word\ndefine:granuality on google is not found (and pages for granuality are\nmostly related to patches to the kernel)\nit has not been discussed as a term on LKML, AFAICS (\u003dCan Search)\n\nTo be consistent, I think granularity should be used everywhere.\n\nSigned-off-by: Kalin KOZHUHAROV \u003ckalin@thinrope.net\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\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": "68eef3b4791572ecb70249c7fb145bb3742dd899",
      "tree": "1f61fce839cec8d672ae06a423d46f0a6fcd924d",
      "parents": [
        "a2c348fe0117adced11e374329a5ea3f7c43cb41"
      ],
      "author": {
        "name": "Joe Korty",
        "email": "joe.korty@ccur.com",
        "time": "Fri Mar 31 02:30:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:53 2006 -0800"
      },
      "message": "[PATCH] Simplify proc/devices and fix early termination regression\n\nMake baby-simple the code for /proc/devices.  Based on the proven design\nfor /proc/interrupts.\n\nThis also fixes the early-termination regression 2.6.16 introduced, as\ndemonstrated by:\n\n    # dd if\u003d/proc/devices bs\u003d1\n    Character devices:\n      1 mem\n    27+0 records in\n    27+0 records out\n\nThis should also work (but is untested) when /proc/devices \u003e4096 bytes,\nwhich I believe is what the original 2.6.16 rewrite fixed.\n\n[akpm@osdl.org: cleanups, simplifications]\nSigned-off-by: Joe Korty \u003cjoe.korty@ccur.com\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\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": "4b6f5d20b04dcbc3d888555522b90ba6d36c4106",
      "tree": "420f271eaef7d3def7d4433b151c3cb6d7a54770",
      "parents": [
        "99ac48f54a91d02140c497edc31dc57d4bc5c85d"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Tue Mar 28 01:56:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:06 2006 -0800"
      },
      "message": "[PATCH] Make most file operations structs in fs/ const\n\nThis is a conversion to make the various file_operations structs in fs/\nconst.  Basically a regexp job, with a few manual fixups\n\nThe goal is both to increase correctness (harder to accidentally write to\nshared datastructures) and reducing the false sharing of cachelines with\nthings that get dirty in .data (while .rodata is nicely read only and thus\ncache clean)\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "99ac48f54a91d02140c497edc31dc57d4bc5c85d",
      "tree": "68719391694a6914191bdf73d2071875f7653f6f",
      "parents": [
        "ec1b9466cb4f6ae6d950bd67055d9410d1056d2a"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Tue Mar 28 01:56:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:05 2006 -0800"
      },
      "message": "[PATCH] mark f_ops const in the inode\n\nMark the f_ops members of inodes as const, as well as fix the\nripple-through this causes by places that copy this f_ops and then \"do\nstuff\" with it.\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\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": "641dc636b0475582e48584340b774bd1e90d40d9",
      "tree": "75c839cebd81a8ec4fae6c0cc35a387da160cfbe",
      "parents": [
        "100873687d81d4ce7b1299b447d33e87ba1e9583"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Mon Mar 27 01:17:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:00 2006 -0800"
      },
      "message": "[PATCH] dm/md dependency tree in sysfs: bd_claim_by_kobject\n\nAdding bd_claim_by_kobject() function which takes kobject as additional\nsignature of holder device and creates sysfs symlinks between holder device\nand claimed device.  bd_release_from_kobject() is a counterpart of\nbd_claim_by_kobject.\n\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1d8fa7a2b9a39d18727acc5c468e870df606c852",
      "tree": "41537fe9ea5478f3243e3301184dc13980f8201f",
      "parents": [
        "fa30bd058b746c0e2318a77ff8b4977faa924c2c"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Sun Mar 26 01:38:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:01 2006 -0800"
      },
      "message": "[PATCH] remove -\u003eget_blocks() support\n\nNow that get_block() can handle mapping multiple disk blocks, no need to have\n-\u003eget_blocks().  This patch removes fs specific -\u003eget_blocks() added for DIO\nand makes it users use get_block() instead.\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a0f62ac6362c168754cccb36f196b3dfbddc3bc3",
      "tree": "079d525cfbf9851e2cb30acda77d180388d03c69",
      "parents": [
        "abcb6c9fd13fc2ad7757b818924dc8109a0e3775"
      ],
      "author": {
        "name": "Takashi Sato",
        "email": "sho@tnes.nec.co.jp",
        "time": "Sun Mar 26 01:37:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:00 2006 -0800"
      },
      "message": "[PATCH] 2TB files: add blkcnt_t\n\nAdd blkcnt_t as the type of inode.i_blocks.  This enables you to make the size\nof blkcnt_t either 4 bytes or 8 bytes on 32 bits architecture with CONFIG_LSF.\n\n- CONFIG_LSF\n  Add new configuration parameter.\n- blkcnt_t\n  On h8300, i386, mips, powerpc, s390 and sh that define sector_t,\n  blkcnt_t is defined as u64 if CONFIG_LSF is enabled; otherwise it is\n  defined as unsigned long.\n  On other architectures, it is defined as unsigned long.\n- inode.i_blocks\n  Change the type from sector_t to blkcnt_t.\n\nSigned-off-by: Takashi Sato \u003csho@tnes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "abcb6c9fd13fc2ad7757b818924dc8109a0e3775",
      "tree": "39a1d5660d2bd92cffa8eef09d489b241e4072a1",
      "parents": [
        "93d2341c750cda0df48a6cc67b35fe25f1ec47df"
      ],
      "author": {
        "name": "Takashi Sato",
        "email": "sho@tnes.nec.co.jp",
        "time": "Sun Mar 26 01:37:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:00 2006 -0800"
      },
      "message": "[PATCH] 2TB files: st_blocks is invalid when calling stat64\n\nThis patch series fixes the following problems on 32 bits architecture.\n\no stat64 returns the lower 32 bits of blocks, although userland st_blocks\n  has 64 bits, because i_blocks has only 32 bits.  The ioctl with FIOQSIZE has\n  the same problem.\n\no As Dave Kleikamp said, making \u003e2TB file on JFS results in writing an\n  invalid block number to disk inode.  The cause is the same as above too.\n\no In generic quota code dquot_transfer(), the file usage is calculated from\n  i_blocks via inode_get_bytes().  If the file is over 2TB, the change of\n  usage is less than expected.  The cause is the same as above too.\n\no As Trond Myklebust said, statfs64\u0027s entries related to blocks are invalid\n  on statfs64 for a network filesystem which has more than 2^32-1 blocks with\n  CONFIG_LBD disabled.  [PATCH 3/3]\n\nWe made patches to fix problems that occur when handling a large filesystem\nand a large file.  It was discussed on the mails titled \"stat64 for over 2TB\nfile returned invalid st_blocks\".\n\nSigned-off-by: Takashi Sato \u003csho@tnes.nec.co.jp\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5842add2f3b519111b6401f3a35862bd00a3aa7e",
      "tree": "299e5653ec2b7dfc9fa565920d7320bbf1c9c07e",
      "parents": [
        "6dc0fe8f8b40854982929e4f24d8c65115769b60"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@citi.umich.edu",
        "time": "Sun Mar 26 01:37:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:56 2006 -0800"
      },
      "message": "[PATCH] VFS,fs/locks.c,NFSD4: add race_free posix_lock_file_conf() interface\n\nLockd and the NFSv4 server both exercise a race condition where\nposix_test_lock() is called either before or after posix_lock_file() to\ndeal with a denied lock request due to a conflicting lock.\n\nRemove the race condition for the NFSv4 server by adding a new conflicting\nlock parameter to __posix_lock_file() , changing the name to\n__posix_lock_file_conf().\n\nKeep posix_lock_file() interface, add posix_lock_conf() interface, both\ncall __posix_lock_file_conf().\n\n[akpm@osdl.org: Put the EXPORT_SYMBOL() where it belongs]\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2ff28e22bdb8727fbc7d7889807bc5a73aae56c5",
      "tree": "f7418aa963d729bf9fe8bd44d6c9b6e424a6c6bf",
      "parents": [
        "3978d7179d3849848df8a37dd0a5acc20bcb8750"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Mar 26 01:37:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:55 2006 -0800"
      },
      "message": "[PATCH] Make address_space_operations-\u003einvalidatepage return void\n\nThe return value of this function is never used, so let\u0027s be honest and\ndeclare it as void.\n\nSome places where invalidatepage returned 0, I have inserted comments\nsuggesting a BUG_ON.\n\n[akpm@osdl.org: JBD BUG fix]\n[akpm@osdl.org: rework for git-nfs]\n[akpm@osdl.org: don\u0027t go BUG in block_invalidate_page()]\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-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": "3978d7179d3849848df8a37dd0a5acc20bcb8750",
      "tree": "f6a60c588d54ffc482764e7846aabf7ba6135aa4",
      "parents": [
        "5f921ae96f1529a55966f25cd5c70fab11d38be7"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Mar 26 01:37:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:55 2006 -0800"
      },
      "message": "[PATCH] Make address_space_operations-\u003esync_page return void\n\nThe only user ignores the return value, and the only instanace\n(block_sync_page) always returns 0...\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "53846a21c1766326bb14ce8ab6e997a0c120675d",
      "tree": "37b04485e29844b4e734479181276a2f4d2447e4",
      "parents": [
        "2e9abdd9bad485970b37cd53a82f92702054984c",
        "1ebbe2b20091d306453a5cf480a87e6cd28ae76f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:18:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:18:27 2006 -0800"
      },
      "message": "Merge git://git.linux-nfs.org/pub/linux/nfs-2.6\n\n* git://git.linux-nfs.org/pub/linux/nfs-2.6: (103 commits)\n  SUNRPC,RPCSEC_GSS: spkm3--fix config dependencies\n  SUNRPC,RPCSEC_GSS: spkm3: import contexts using NID_cast5_cbc\n  LOCKD: Make nlmsvc_traverse_shares return void\n  LOCKD: nlmsvc_traverse_blocks return is unused\n  SUNRPC,RPCSEC_GSS: fix krb5 sequence numbers.\n  NFSv4: Dont list system.nfs4_acl for filesystems that don\u0027t support it.\n  SUNRPC,RPCSEC_GSS: remove unnecessary kmalloc of a checksum\n  SUNRPC: Ensure rpc_call_async() always calls tk_ops-\u003erpc_release()\n  SUNRPC: Fix memory barriers for req-\u003erq_received\n  NFS: Fix a race in nfs_sync_inode()\n  NFS: Clean up nfs_flush_list()\n  NFS: Fix a race with PG_private and nfs_release_page()\n  NFSv4: Ensure the callback daemon flushes signals\n  SUNRPC: Fix a \u0027Busy inodes\u0027 error in rpc_pipefs\n  NFS, NLM: Allow blocking locks to respect signals\n  NFS: Make nfs_fhget() return appropriate error values\n  NFSv4: Fix an oops in nfs4_fill_super\n  lockd: blocks should hold a reference to the nlm_file\n  NFSv4: SETCLIENTID_CONFIRM should handle NFS4ERR_DELAY/NFS4ERR_RESOURCE\n  NFSv4: Send the delegation stateid for SETATTR calls\n  ...\n"
    },
    {
      "commit": "b500531e6f5f234ed267bd7060ee06d144faf0ca",
      "tree": "6d7c311c917dc9ee7d4cd57ef4a6519ea46a0c11",
      "parents": [
        "619d5d8a2b3f800ea3a0301a58ede570684956b0"
      ],
      "author": {
        "name": "Oleg Drokin",
        "email": "green@linuxhacker.ru",
        "time": "Sat Mar 25 03:07:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:51 2006 -0800"
      },
      "message": "[PATCH] Introduce FMODE_EXEC file flag\n\nIntroduce FMODE_EXEC file flag, to indicate that file is being opened for\nexecution.  This is useful for distributed filesystems to maintain\nconsistent behavior for returning ETXTBUSY when opening for write and\nexecution happens on different nodes.\n\nakpm:\n\n  Needed by Lustre at present.  I assume their objective to to work towards\n  being able to install Lustre on an unmodified distro kernel, which seems\n  sane.  It should have zero runtime cost.\n\n  Trond and Chuck indicate that NFS4 can probably use this too, for the same\n  thing.\n\n  Steven says it\u0027s also on the GFS todo list.\n\nSigned-off-by: Oleg Drokin \u003cgreen@linuxhacker.ru\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Chuck Lever \u003ccel@citi.umich.edu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bdfc326614b90e7bc47ee4a8fed05988555f0169",
      "tree": "d23575e690979c29c07a4c749e49150fe9aadf65",
      "parents": [
        "ca5734db60630f7c5564a61a5b9034c1bb369c3d"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Mar 25 03:06:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:51 2006 -0800"
      },
      "message": "[PATCH] fs/inode.c: make iprune_mutex static\n\nThere\u0027s no reason for iprune_mutex being global.\n\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": "18e79b40ed9c5223b88771f805c69f5993fc131b",
      "tree": "cc628524d4bfe3166bbe9d8d7217a1cb009ea209",
      "parents": [
        "676758bdb7bfca8413a85203921746f446e237be"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 24 03:18:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:27 2006 -0800"
      },
      "message": "[PATCH] fsync: extract internal code\n\nPull the guts out of do_fsync() - we can use it elsewhere.\n\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4741c9fd36b3bcadd37238321c469049da94a4b9",
      "tree": "4b3031b04cdbf2d3c5a4fcc1965ed857f1cf0ce4",
      "parents": [
        "fa5a734e406b53761fcc5ee22366006f71112c2d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 24 03:18:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:26 2006 -0800"
      },
      "message": "[PATCH] set_page_dirty() return value fixes\n\nWe need set_page_dirty() to return true if it actually transitioned the page\nfrom a clean to dirty state.  This wasn\u0027t right in a couple of places.  Do a\nkernel-wide audit, fix things up.\n\nThis leaves open the possibility of returning a negative errno from\nset_page_dirty() sometime in the future.  But we don\u0027t do that at present.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ebcf28e1c7a295f3321249dd235ad2e45938fdd9",
      "tree": "fdd2e131e627af55d3741a7fafad0edaa61410c1",
      "parents": [
        "469eb4d03878b676418f853011ebfb54ccf83a5e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 24 03:18:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:25 2006 -0800"
      },
      "message": "[PATCH] fadvise(): write commands\n\nAdd two new linux-specific fadvise extensions():\n\nLINUX_FADV_ASYNC_WRITE: start async writeout of any dirty pages between file\noffsets `offset\u0027 and `offset+len\u0027.  Any pages which are currently under\nwriteout are skipped, whether or not they are dirty.\n\nLINUX_FADV_WRITE_WAIT: wait upon writeout of any dirty pages between file\noffsets `offset\u0027 and `offset+len\u0027.\n\nBy combining these two operations the application may do several things:\n\nLINUX_FADV_ASYNC_WRITE: push some or all of the dirty pages at the disk.\n\nLINUX_FADV_WRITE_WAIT, LINUX_FADV_ASYNC_WRITE: push all of the currently dirty\npages at the disk.\n\nLINUX_FADV_WRITE_WAIT, LINUX_FADV_ASYNC_WRITE, LINUX_FADV_WRITE_WAIT: push all\nof the currently dirty pages at the disk, wait until they have been written.\n\nIt should be noted that none of these operations write out the file\u0027s\nmetadata.  So unless the application is strictly performing overwrites of\nalready-instantiated disk blocks, there are no guarantees here that the data\nwill be available after a crash.\n\nTo complete this suite of operations I guess we should have a \"sync file\nmetadata only\" operation.  This gives applications access to all the building\nblocks needed for all sorts of sync operations.  But sync-metadata doesn\u0027t fit\nwell with the fadvise() interface.  Probably it should be a new syscall:\nsys_fmetadatasync().\n\nThe patch also diddles with the meaning of `endbyte\u0027 in sys_fadvise64_64().\nIt is made to represent that last affected byte in the file (ie: it is\ninclusive).  Generally, all these byterange and pagerange functions are\ninclusive so we can easily represent EOF with -1.\n\nAs Ulrich notes, these two functions are somewhat abusive of the fadvise()\nconcept, which appears to be \"set the future policy for this fd\".\n\nBut these commands are a perfect fit with the fadvise() impementation, and\nseveral of the existing fadvise() commands are synchronous and don\u0027t affect\nfuture policy either.   I think we can live with the slight incongruity.\n\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9b04c997b1120feefa1e6ee8e2902270bc055cd2",
      "tree": "09376b68d11ccce2a1ef53bac25a41a763ad36d0",
      "parents": [
        "6961ec8267d08e21011457b05d2263ec06bdcfe1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 24 03:15:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:15 2006 -0800"
      },
      "message": "[PATCH] vfs: MS_VERBOSE should be MS_SILENT\n\nThe meaning of MS_VERBOSE is backwards; if the bit is set, it really means,\n\"don\u0027t be verbose\".  This is confusing and counter-intuitive.\n\nIn addition, there is also no way to set the MS_VERBOSE flag in the\nmount(8) program in util-linux, but interesting, it does define options\nwhich would do the right thing if MS_SILENT were defined, which\nunfortunately we do not:\n\n#ifdef MS_SILENT\n  { \"quiet\",    0, 0, MS_SILENT    },   /* be quiet  */\n  { \"loud\",     0, 1, MS_SILENT    },   /* print out messages. */\n#endif\n\nSo the obvious fix is to deprecate the use of MS_VERBOSE and replace it\nwith MS_SILENT.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1ebbe2b20091d306453a5cf480a87e6cd28ae76f",
      "tree": "f5cd7a0fa69b8b1938cb5a0faed2e7b0628072a5",
      "parents": [
        "ac58c9059da8886b5e8cde012a80266b18ca146e",
        "674a396c6d2ba0341ebdd7c1c9950f32f018e2dd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 23 23:44:19 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 23 23:44:19 2006 -0500"
      },
      "message": "Merge branch \u0027linus\u0027\n"
    },
    {
      "commit": "2056a782f8e7e65fd4bfd027506b4ce1c5e9ccd4",
      "tree": "d4fe59a7ca0c110690937085548936a4535c39db",
      "parents": [
        "6dac40a7ce2483a47b54af07afebeb84131c7228"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 23 20:00:26 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 23 20:00:26 2006 +0100"
      },
      "message": "[PATCH] Block queue IO tracing support (blktrace) as of 2006-03-23\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "66d2173053f64121f8dc69a1cf85972e37e1ee75",
      "tree": "43b67d02627e22c05e607eb9c04d03ce89751121",
      "parents": [
        "a7ccf007189aa4401695e3105b00d9429f836b46"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Mar 23 03:00:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:15 2006 -0800"
      },
      "message": "[PATCH] Extract inode_inc_link_count(), inode_dec_link_count()\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": "f24075bd0c1cd1cc2cf86d394f960aa0401de573",
      "tree": "609ad9884e43a8bb1ba5834996955a06bef66fa2",
      "parents": [
        "a11f3a0574a5734db3e5de38922430d005d35118"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 23 03:00:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:12 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: iprune\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a11f3a0574a5734db3e5de38922430d005d35118",
      "tree": "2f332f623463c5909dc37d20cbf44421854f775a",
      "parents": [
        "144efe3e3e5ad57af549bf800fa4560d7c74e9fe"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Thu Mar 23 03:00:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:12 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: vfs_rename_mutex\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\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": "d4f9af9dac4ecb75818f909168f87b441cc95653",
      "tree": "c5b0ccf7705b6ef0739fd5af64cf48c092760013",
      "parents": [
        "d3be915fc5e7d19a2283ad9b0fe0782a74675d0a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 23 03:00:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:11 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: inotify\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nAcked-by: Robert Love \u003crml@novell.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c039e3134ae62863bbc8e8429b29e3c43cf21b2a",
      "tree": "b9bbf4fda0844e3173bf10a5bffbaaec94fb4246",
      "parents": [
        "6f87f0deebaff2716a3ce9232f948d702690562a"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Thu Mar 23 03:00:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:11 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: blockdev #2\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "26bcbf965f857c710adafd16cf424f043006b5dd",
      "tree": "fa3c1e4ba07ab3d1e4e61b27c7579c57fd2d5c65",
      "parents": [
        "04266473ecf5cdca242201d9f1ed890afe070fb6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 20 13:44:40 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:40 2006 -0500"
      },
      "message": "lockd: stop abusing file_lock_list\n\nCurrently lockd directly access the file_lock_list from fs/locks.c.\nIt does so to mark locks granted or reclaimable.  This is very\nsuboptimal, because a) lockd needs to poke into locks.c internals, and\nb) it needs to iterate over all locks in the system for marking locks\ngranted or reclaimable.\n\nThis patch adds lists for granted and reclaimable locks to the nlm_host\nstructure instead, and adds locks to those.\n\nnlmclnt_lock:\n\tnow adds the lock to h_granted instead of setting the\n\tNFS_LCK_GRANTED, still O(1)\n\nnlmclnt_mark_reclaim:\n\tgoes away completely, replaced by a list_splice_init.\n\tComplexity reduced from O(locks in the system) to O(1)\n\nreclaimer:\n\titerates over h_reclaim now, complexity reduced from\n\tO(locks in the system) to O(locks per nlm_host)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7117bf3dfb10b534a017260d9fc643bc1d0afd2a",
      "tree": "a7060dc3d8a5f54c5beb41885620aaf99aac42f9",
      "parents": [
        "8dc7c3115b611c00006eac3ee5b108296432aab7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "message": "lockd: Remove FL_LOCKD flag\n\nCurrently lockd identifies its own locks using the FL_LOCKD flag.  This\ndoesn\u0027t scale well to multiple lock managers--if we did this in nfsv4 too,\nfor example, we\u0027d be left with only one free flag bit.\n\nInstead, we just check whether the file manager ops (fl_lmops) set on this\nlock are our own.\n\nThe only use for this is in nlm_traverse_locks, which uses it to find locks\nthat need cleaning up when freeing a host or a file.\n\nIn the long run it might be nice to do reference counting instead of\ntraversing all the locks like this....\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8dc7c3115b611c00006eac3ee5b108296432aab7",
      "tree": "be44c59907cbdcb6fdf46d0ad9cc140af757acfc",
      "parents": [
        "2e0af86f618c697b44e2d67dff151256c58201c4"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@citi.umich.edu",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "message": "locks,lockd: fix race in nlmsvc_testlock\n\nposix_test_lock() returns a pointer to a struct file_lock which is unprotected\nand can be removed while in use by the caller.  Move the conflicting lock from\nthe return to a parameter, and copy the conflicting lock.\n\nIn most cases the caller ends up putting the copy of the conflicting lock on\nthe stack.  On i386, sizeof(struct file_lock) appears to be about 100 bytes.\nWe\u0027re assuming that\u0027s reasonable.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2e0af86f618c697b44e2d67dff151256c58201c4",
      "tree": "967c708244ca190cc00d1c943704002467546151",
      "parents": [
        "a85f193e2fb7d53e48ae6a9d9ea990bfb4cea555"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@citi.umich.edu",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "message": "locks: remove unused posix_block_lock\n\nposix_lock_file() is used to add a blocked lock to Lockd\u0027s block, so\nposix_block_lock() is no longer needed.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b4629fe2f094b719847f31be1ee5ab38300038b2",
      "tree": "158b3aabf291ef9462e3e02493fb4c45265f9e8e",
      "parents": [
        "1356b8c28d67cafd74f7e7dcfb39bf53681790a5"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:12 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:12 2006 -0500"
      },
      "message": "VFS: New /proc file /proc/self/mountstats\n\nCreate a new file under /proc/self, called mountstats, where mounted file\nsystems can export information (configuration options, performance counters,\nand so on).  Use a mechanism similar to /proc/mounts and s_ops-\u003eshow_options.\n\nThis mechanism does not violate namespace security, and is safe to use while\nother processes are unmounting file systems.\n\nThanks to Mike Waychison for his review and comments.\n\nTest-plan:\nTest concurrent mount/unmount operations while cat\u0027ing /proc/self/mountstats.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0adb25d2e71ab047423d6fc63d5d184590d0a66f",
      "tree": "0fd00ea22c07c88c3f24085cbf89f0a272f56697",
      "parents": [
        "8bd0ee93fef9733c72fef1817330b3ee2b71cf9d"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@openvz.org",
        "time": "Sat Mar 11 03:27:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 11 09:19:34 2006 -0800"
      },
      "message": "[PATCH] ext3: ext3_symlink should use GFP_NOFS allocations inside\n\nThis patch fixes illegal __GFP_FS allocation inside ext3 transaction in\next3_symlink().  Such allocation may re-enter ext3 code from\ntry_to_free_pages.  But JBD/ext3 code keeps a pointer to current journal\nhandle in task_struct and, hence, is not reentrable.\n\nThis bug led to \"Assertion failure in journal_dirty_metadata()\" messages.\n\nhttp://bugzilla.openvz.org/show_bug.cgi?id\u003d115\n\nSigned-off-by: Andrey Savochkin \u003csaw@saw.sw.com.sg\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "529bf6be5c04f2e869d07bfdb122e9fd98ade714",
      "tree": "38514bb3941c4ac2a79266e4483663b79efa2f22",
      "parents": [
        "21a1ea9eb40411d4ee29448c53b9e4c0654d6ceb"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Tue Mar 07 21:55:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 08 14:14:01 2006 -0800"
      },
      "message": "[PATCH] fix file counting\n\nI have benchmarked this on an x86_64 NUMA system and see no significant\nperformance difference on kernbench.  Tested on both x86_64 and powerpc.\n\nThe way we do file struct accounting is not very suitable for batched\nfreeing.  For scalability reasons, file accounting was\nconstructor/destructor based.  This meant that nr_files was decremented\nonly when the object was removed from the slab cache.  This is susceptible\nto slab fragmentation.  With RCU based file structure, consequent batched\nfreeing and a test program like Serge\u0027s, we just speed this up and end up\nwith a very fragmented slab -\n\nllm22:~ # cat /proc/sys/fs/file-nr\n587730  0       758844\n\nAt the same time, I see only a 2000+ objects in filp cache.  The following\npatch I fixes this problem.\n\nThis patch changes the file counting by removing the filp_count_lock.\nInstead we use a separate percpu counter, nr_files, for now and all\naccesses to it are through get_nr_files() api.  In the sysctl handler for\nnr_files, we populate files_stat.nr_files before returning to user.\n\nCounting files as an when they are created and destroyed (as opposed to\ninside slab) allows us to correctly count open files with RCU.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a19cbd4bf258840ade3b6ee9e9256006d0644e09",
      "tree": "b532fe78c5ecbe5c8e6aca8b7d6f704a24a52129",
      "parents": [
        "432e7c0dfe884b6ab1c32fd3f17c64c31d8fa7e2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 08 14:03:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 08 14:03:09 2006 -0800"
      },
      "message": "Mark the pipe file operations static\n\nThey aren\u0027t used (nor even really usable) outside of pipe.c anyway\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e965f9630c651fa4249039fd4b80c9392d07a856",
      "tree": "1353dd536d0ee549c30e462086624c21788ee9d2",
      "parents": [
        "7e2ab150d1b3b286a4c864c60a549b2601777b63"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Feb 01 03:05:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] Direct Migration V9: Avoid writeback / page_migrate() method\n\nMigrate a page with buffers without requiring writeback\n\nThis introduces a new address space operation migratepage() that may be used\nby a filesystem to implement its own version of page migration.\n\nA version is provided that migrates buffers attached to pages.  Some\nfilesystems (ext2, ext3, xfs) are modified to utilize this feature.\n\nThe swapper address space operation are modified so that a regular\nmigrate_page() will occur for anonymous pages without writeback (migrate_pages\nforces every anonymous page to have a swap entry).\n\nSigned-off-by: Mike Kravetz \u003ckravetz@us.ibm.com\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5590ff0d5528b60153c0b4e7b771472b5a95e297",
      "tree": "5fdccf2354269702f71beb8e0a2942e4167fd992",
      "parents": [
        "e2f99018eb7b29954747a2dd78e9fc0c36a60f0f"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jan 18 17:43:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:29 2006 -0800"
      },
      "message": "[PATCH] vfs: *at functions: core\n\nHere is a series of patches which introduce in total 13 new system calls\nwhich take a file descriptor/filename pair instead of a single file\nname.  These functions, openat etc, have been discussed on numerous\noccasions.  They are needed to implement race-free filesystem traversal,\nthey are necessary to implement a virtual per-thread current working\ndirectory (think multi-threaded backup software), etc.\n\nWe have in glibc today implementations of the interfaces which use the\n/proc/self/fd magic.  But this code is rather expensive.  Here are some\nresults (similar to what Jim Meyering posted before).\n\nThe test creates a deep directory hierarchy on a tmpfs filesystem.  Then\nrm -fr is used to remove all directories.  Without syscall support I get\nthis:\n\nreal    0m31.921s\nuser    0m0.688s\nsys     0m31.234s\n\nWith syscall support the results are much better:\n\nreal    0m20.699s\nuser    0m0.536s\nsys     0m20.149s\n\nThe interfaces are for obvious reasons currently not much used.  But they\u0027ll\nbe used.  coreutils (and Jeff\u0027s posixutils) are already using them.\nFurthermore, code like ftw/fts in libc (maybe even glob) will also start using\nthem.  I expect a patch to make follow soon.  Every program which is walking\nthe filesystem tree will benefit.\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f87fd4c2a0c4f3baad28057360b36a59591ef751",
      "tree": "987b4e83d617fc845e11ff1df145f1d4238af956",
      "parents": [
        "0e6e1db4ac7acfe3e38bbef9eba59233ba7f6b9a"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Mon Jan 16 22:14:23 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jan 16 23:15:29 2006 -0800"
      },
      "message": "[PATCH] add /sys/fs\n\nThis patch adds an empty /sys/fs, which filesystems can use.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7170be5f586b59bdcdab082778a5d9203ba7b667",
      "tree": "00d34a062c5bbab83315232078296567037bd3f4",
      "parents": [
        "faf3a98918aa5f14a29e0d246e194be58b9357f0"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@redhat.com",
        "time": "Sat Jan 14 13:20:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:25:19 2006 -0800"
      },
      "message": "[PATCH] convert /proc/devices to use seq_file interface\n\nA Christoph suggested that the /proc/devices file be converted to use the\nseq_file interface.  This patch does that.\n\nI\u0027ve obxerved one or two installation that had sufficiently large sans that\nthey overran the 4k limit on /proc/devices.\n\nSigned-off-by: Neil Horman \u003cnhorman@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fc33a7bb9c6dd8f6e4a014976200f8fdabb3a45c",
      "tree": "26f4d676de476075545e58057aa5d8c57618741d",
      "parents": [
        "0d456fa4261f43433287a10fe3ec04a9818fac64"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jan 09 20:52:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:34 2006 -0800"
      },
      "message": "[PATCH] per-mountpoint noatime/nodiratime\n\nTurn noatime and nodiratime into per-mount instead of per-sb flags.\n\nAfter all the preparations this is a rather trivial patch.  The mount code\nneeds to treat the two options as per-mount instead of per-superblock, and\ntouch_atime needs to be changed to check the new MNT_ flags in addition to\nthe MS_ flags that are kept for filesystems that are always\nnoatime/nodiratime but not user settable anymore.  Besides that core code\nonly nfs needed an update because it\u0027s leaving atime updates to the server\nand thus sets the S_NOATIME flag on every inode, but needs to know whether\nit\u0027s a real noatime mount for an getattr optimization.\n\nWhile we\u0027re at it I\u0027ve killed the IS_NOATIME/IS_NODIRATIME macros that were\nonly used by touch_atime.\n\nSigned-off-by: 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": "869243a0f6143f76e7c847e707eee6ece9cbf821",
      "tree": "bf14139c86988c40aa10587834141859049ec890",
      "parents": [
        "9cf6f4b3a3d24d8a41515b509b8fb6448f9201e9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jan 09 20:52:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:31 2006 -0800"
      },
      "message": "[PATCH] remove update_atime\n\nAll callers use touch_atime now which takes a vfsmount and allows us to\nimplement per-mount noatime.\n\nSigned-off-by: 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": "870f481793b585323fbda3e87c54efc116f46351",
      "tree": "08dce269f14c18ae1b1682d3cb0f149b938d40bb",
      "parents": [
        "3542c6e18f6470bad2bde1e94331e4f488a8d3f1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jan 09 20:52:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:30 2006 -0800"
      },
      "message": "[PATCH] replace inode_update_time with file_update_time\n\nTo allow various options to work per-mount instead of per-sb we need a\nstruct vfsmount when updating ctime and mtime.  This preparation patch\nreplaces the inode_update_time routine with a file_update_atime routine so\nwe can easily get at the vfsmount.  (and the file makes more sense in this\ncontext anyway).  Also get rid of the unused second argument - we always\nwant to update the ctime when calling this routine.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7892f2f48d165a34b0b8130c8a195dfd807b8cb6",
      "tree": "592b29350c168aa5758700820ab22fb56e72a567",
      "parents": [
        "1b1dcc1b57a49136f118a0f16367256ff9994a69"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 09 15:59:25 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:25 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, semaphore to mutex: VFS, sb-\u003es_lock\n\nThis patch converts the superblock-lock semaphore to a mutex, affecting\nlock_super()/unlock_super(). Tested on ext3 and XFS.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1b1dcc1b57a49136f118a0f16367256ff9994a69",
      "tree": "b0b36d4f41d28c9d6514fb309d33c1a084d6309b",
      "parents": [
        "794ee1baee1c26be40410233e6c20bceb2b03c08"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, semaphore to mutex: VFS, -\u003ei_sem\n\nThis patch converts the inode semaphore to a mutex. I have tested it on\nXFS and compiled as much as one can consider on an ia64. Anyway your\nluck with it might be different.\n\nModified-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n(finished the conversion)\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e78c9a004aadebe22306c81d1a7f1d1278dc37f9",
      "tree": "abbe82c7f8ce8d3059619c7941de14e585859aa4",
      "parents": [
        "90f2447d08a5fbddc8b58f8a6425b0513807f919"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Jan 08 01:03:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:59 2006 -0800"
      },
      "message": "[PATCH] fs: remove s_old_blocksize from struct super_block\n\nThis patch inlines the single user of struct super_block field\ns_old_blocksize and removes the field.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bf066c7db775a04bd761f8ea206f5522d0cf40ff",
      "tree": "e4bfe3bdd8d98a137eaf163a26eb1153af970dfd",
      "parents": [
        "4a0d11fae57989e24fe2ee3eff6d62d72db9716c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Sun Jan 08 01:03:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:56 2006 -0800"
      },
      "message": "[PATCH] shared mounts: cleanup\n\nSmall cleanups in shared mounts code.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.com\u003e\nCc: \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a885c8c4316e1c1d2d2c8755da3f3d14f852528d",
      "tree": "e4f4e7a7657c0944d11c259f8f17ffcd6b2da0f5",
      "parents": [
        "5b0ed2c64d8fdafb5fcfb3baabdd288628b1ff9b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Jan 08 01:02:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:54 2006 -0800"
      },
      "message": "[PATCH] Add block_device_operations.getgeo block device method\n\nHDIO_GETGEO is implemented in most block drivers, and all of them have to\nduplicate the code to copy the structure to userspace, as well as getting\nthe start sector.  This patch moves that to common code [1] and adds a\n-\u003egetgeo method to fill out the raw kernel hd_geometry structure.  For many\ndrivers this means -\u003eioctl can go away now.\n\n[1] the s390 block drivers are odd in this respect.  xpram sets -\u003estart\n    to 4 always which seems more than odd, and the dasd driver shifts\n    the start offset around, probably because of it\u0027s non-standard\n    sector size.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jens Axboe \u003caxboe@suse.de\u003e\nCc: \u003cmike.miller@hp.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cB.Zolnierkiewicz@elka.pw.edu.pl\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: Markus Lidel \u003cMarkus.Lidel@shadowconnect.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.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": "4a30131e7dbb17e5fec6958bfac9da9aff1fa29b",
      "tree": "2ff6139b393a9a413e2ea4db4dd2d15eec2201f8",
      "parents": [
        "788540141f4549637e89aadca6e25cf25eb53383"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Jan 08 01:02:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:52 2006 -0800"
      },
      "message": "[PATCH] Fix some problems with truncate and mtime semantics.\n\nSUS requires that when truncating a file to the size that it currently\nis:\n  truncate and ftruncate should NOT modify ctime or mtime\n  O_TRUNC SHOULD modify ctime and mtime.\n\nCurrently mtime and ctime are always modified on most local\nfilesystems (side effect of -\u003etruncate) or never modified (on NFS).\n\nWith this patch:\n  ATTR_CTIME|ATTR_MTIME are sent with ATTR_SIZE precisely when\n    an update of these times is required whether size changes or not\n    (via a new argument to do_truncate).  This allows NFS to do\n    the right thing for O_TRUNC.\n  inode_setattr nolonger forces ATTR_MTIME|ATTR_CTIME when the ATTR_SIZE\n    sets the size to it\u0027s current value.  This allows local filesystems\n    to do the right thing for f?truncate.\n\nAlso, the logic in inode_setattr is changed a bit so there are two return\npoints.  One returns the error from vmtruncate if it failed, the other\nreturns 0 (there can be no other failure).\n\nFinally, if vmtruncate succeeds, and ATTR_SIZE is the only change\nrequested, we now fall-through and mark_inode_dirty.  If a filesystem did\nnot have a -\u003etruncate function, then vmtruncate will have changed i_size,\nwithout marking the inode as \u0027dirty\u0027, and I think this is wrong.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "095975da26dba21698582e91e96be10f7417333f",
      "tree": "ce1ffac556d394ef56a18faa97d38f79b07f31e2",
      "parents": [
        "a57004e1afb6ee03c509f1b1ec74a000682ab93b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Jan 08 01:02:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:48 2006 -0800"
      },
      "message": "[PATCH] rcu file: use atomic primitives\n\nUse atomic_inc_not_zero for rcu files instead of special case rcuref.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "64a318ee2af9000df482d7a125c3b3e1f1007404",
      "tree": "7b39e558cccce484635dc847a016bbcb5e83abdb",
      "parents": [
        "2c5acd2e1a73cad59203a1bace21e6b03f2920a9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue Jan 03 09:55:46 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:54 2006 -0500"
      },
      "message": "NLM: Further cancel fixes\n\n If the server receives an NLM cancel call and finds no waiting lock to\n cancel, then chances are the lock has already been applied, and the client\n just hadn\u0027t yet processed the NLM granted callback before it sent the\n cancel.\n\n The Open Group text, for example, perimts a server to return either success\n (LCK_GRANTED) or failure (LCK_DENIED) in this case.  But returning an error\n seems more helpful; the client may be able to use it to recognize that a\n race has occurred and to recover from the race.\n\n So, modify the relevant functions to return an error in this case.\n\n Signed-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f6b3ec238d12c8cc6cc71490c6e3127988460349",
      "tree": "b395c1054802760b0e938199231a9de9ac2f358a",
      "parents": [
        "d7339071f6a8b50101d7ba327926b770f22d5d8b"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Fri Jan 06 00:10:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:22 2006 -0800"
      },
      "message": "[PATCH] madvise(MADV_REMOVE): remove pages from tmpfs shm backing store\n\nHere is the patch to implement madvise(MADV_REMOVE) - which frees up a\ngiven range of pages \u0026 its associated backing store.  Current\nimplementation supports only shmfs/tmpfs and other filesystems return\n-ENOSYS.\n\n\"Some app allocates large tmpfs files, then when some task quits and some\nclient disconnect, some memory can be released.  However the only way to\nrelease tmpfs-swap is to MADV_REMOVE\". - Andrea Arcangeli\n\nDatabases want to use this feature to drop a section of their bufferpool\n(shared memory segments) - without writing back to disk/swap space.\n\nThis feature is also useful for supporting hot-plug memory on UML.\n\nConcerns raised by Andrew Morton:\n\n- \"We have no plan for holepunching!  If we _do_ have such a plan (or\n  might in the future) then what would the API look like?  I think\n  sys_holepunch(fd, start, len), so we should start out with that.\"\n\n- Using madvise is very weird, because people will ask \"why do I need to\n  mmap my file before I can stick a hole in it?\"\n\n- None of the other madvise operations call into the filesystem in this\n  manner.  A broad question is: is this capability an MM operation or a\n  filesytem operation?  truncate, for example, is a filesystem operation\n  which sometimes has MM side-effects.  madvise is an mm operation and with\n  this patch, it gains FS side-effects, only they\u0027re really, really\n  significant ones.\"\n\nComments:\n\n- Andrea suggested the fs operation too but then it\u0027s more efficient to\n  have it as a mm operation with fs side effects, because they don\u0027t\n  immediatly know fd and physical offset of the range.  It\u0027s possible to\n  fixup in userland and to use the fs operation but it\u0027s more expensive,\n  the vmas are already in the kernel and we can use them.\n\nShort term plan \u0026  Future Direction:\n\n- We seem to need this interface only for shmfs/tmpfs files in the short\n  term.  We have to add hooks into the filesystem for correctness and\n  completeness.  This is what this patch does.\n\n- In the future, plan is to support both fs and mmap apis also.  This\n  also involves (other) filesystem specific functions to be implemented.\n\n- Current patch doesn\u0027t support VM_NONLINEAR - which can be addressed in\n  the future.\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "994fc28c7b1e697ac56befe4aecabf23f0689f46",
      "tree": "da36d162e9bd077e9b5be385b28e2db90475c263",
      "parents": [
        "7063fbf2261194f72ee75afca67b3b38b554b5fa"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Thu Dec 15 14:28:17 2005 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 03 11:45:42 2006 -0800"
      },
      "message": "[PATCH] add AOP_TRUNCATED_PAGE, prepend AOP_ to WRITEPAGE_ACTIVATE\n\nreadpage(), prepare_write(), and commit_write() callers are updated to\nunderstand the special return code AOP_TRUNCATED_PAGE in the style of\nwritepage() and WRITEPAGE_ACTIVATE.  AOP_TRUNCATED_PAGE tells the caller that\nthe callee has unlocked the page and that the operation should be tried again\nwith a new page.  OCFS2 uses this to detect and work around a lock inversion in\nits aop methods.  There should be no change in behaviour for methods that don\u0027t\nreturn AOP_TRUNCATED_PAGE.\n\nWRITEPAGE_ACTIVATE is also prepended with AOP_ for consistency and they are\nmade enums so that kerneldoc can be used to document their semantics.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\n"
    },
    {
      "commit": "8c744fb83da0771afa04695028e3550b798dad90",
      "tree": "670896a1c2594965099853a6c992907abb3a886f",
      "parents": [
        "e4543eddfd3bf3e0d625841377fa695a519edfd4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 08 21:35:04 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:55:59 2005 -0800"
      },
      "message": "[PATCH] add a file_permission helper\n\nA few more callers of permission() just want to check for a different access\npattern on an already open file.  This patch adds a wrapper for permission()\nthat takes a file in preparation of per-mount read-only support and to clean\nup the callers a little.  The helper is not intended for new code, everything\nwithout the interface set in stone should use vfs_permission()\n\nSigned-off-by: 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": "e4543eddfd3bf3e0d625841377fa695a519edfd4",
      "tree": "b62546cb0038529bd8cd583333c556ad799f2081",
      "parents": [
        "e4a53cbabc81f04e24a5570b4aa6a6384bdbfc67"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 08 21:35:04 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:55:58 2005 -0800"
      },
      "message": "[PATCH] add a vfs_permission helper\n\nMost permission() calls have a struct nameidata * available.  This helper\ntakes that as an argument and thus makes sure we pass it down for lookup\nintents and prepares for per-mount read-only support where we need a struct\nvfsmount for checking whether a file is writeable.\n\nSigned-off-by: 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": "9676f0c6389b62bd6b24d77d4b3abdbcfa32d0f2",
      "tree": "fd7d965c6d646cf7e4cfd35e866723927f6cfe8b",
      "parents": [
        "5afe00221389998a25d611dc7941c06580c29eb6"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Mon Nov 07 17:21:20 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 18:18:11 2005 -0800"
      },
      "message": "[PATCH] unbindable mounts\n\nAn unbindable mount does not forward or receive propagation.  Also\nunbindable mount disallows bind mounts.  The semantics is as follows.\n\nBind semantics:\n  It is invalid to bind mount an unbindable mount.\n\nMove semantics:\n  It is invalid to move an unbindable mount under shared mount.\n\nClone-namespace semantics:\n  If a mount is unbindable in the parent namespace, the corresponding\n  cloned mount in the child namespace becomes unbindable too.  Note:\n  there is subtle difference, unbindable mounts cannot be bind mounted\n  but can be cloned during clone-namespace.\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": "a58b0eb8e64b78d9315a5491955e78b1391d42e5",
      "tree": "546f77cb0338c817ef1e34d8ebbc6eaf0e5d6be9",
      "parents": [
        "a05964f3917c7c55368c229d7985f8e7c9977e97"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Mon Nov 07 17:20:48 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 18:18:11 2005 -0800"
      },
      "message": "[PATCH] introduce slave mounts\n\nA slave mount always has a master mount from which it receives\nmount/umount events.  Unlike shared mount the event propagation does not\nflow from the slave mount to the master.\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": "a05964f3917c7c55368c229d7985f8e7c9977e97",
      "tree": "7ec25550267ef050572c00ba2f37d6a4ff9c469e",
      "parents": [
        "2144440327fa01b2f3f65e355120a78211685702"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Mon Nov 07 17:20:17 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 18:18:11 2005 -0800"
      },
      "message": "[PATCH] shared mounts handling: umount\n\nAn unmount of a mount creates a umount event on the parent.  If the\nparent is a shared mount, it gets propagated to all mounts in the peer\ngroup.\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": "b90fa9ae8f51f098ee480bbaabd6867992e9fc58",
      "tree": "2ad583b3a7399face7a78730b001928413c8269e",
      "parents": [
        "03e06e68ff76294e53ffa898cb844d2a997b043e"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Mon Nov 07 17:19:50 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 18:18:11 2005 -0800"
      },
      "message": "[PATCH] shared mount handling: bind and rbind\n\nImplement handling of MS_BIND in presense of shared mounts (see\nDocumentation/sharedsubtree.txt in the end of patch series for detailed\ndescription).\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": "03e06e68ff76294e53ffa898cb844d2a997b043e",
      "tree": "df17444b2c9b89e1eed75e09d46ea36c40ebd1df",
      "parents": [
        "07b20889e3052c7e77d6a6a54e7e83446eb1ba84"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Mon Nov 07 17:19:33 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 18:18:10 2005 -0800"
      },
      "message": "[PATCH] introduce shared mounts\n\nThis creates shared mounts.  A shared mount when bind-mounted to some\nmountpoint, propagates mount/umount events to each other.  All the\nshared mounts that propagate events to each other belong to the same\npeer-group.\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": "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": "8f2709b542c96a2b1910ca5f2fe27dc9023b1225",
      "tree": "2c1b38ee2b0f203322f01e2816644d16b63a71f1",
      "parents": [
        "6c8bec6d5f24b01c53b792b06a645e78d482020d"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Mon Nov 07 01:01:05 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:55 2005 -0800"
      },
      "message": "[PATCH] kernel-doc: fix some kernel-api warnings\n\nFix various warnings in kernel-doc:\n\nWarning(linux-2614-rc4//include/linux/net.h:89): Enum value \u0027SOCK_DCCP\u0027 not described in enum \u0027sock_type\u0027\n\nusercopy.c: should use !E instead of !I for exported symbols:\nWarning(linux-2614-rc4//arch/i386/lib/usercopy.c): no structured comments found\n\nfs.h does not need to use !E since it has no exported symbols:\nWarning(linux-2614-rc4//include/linux/fs.h:1182): No description found for parameter \u0027find_exported_dentry\u0027\nWarning(linux-2614-rc4//include/linux/fs.h): no structured comments found\n\nirq/manage.c should use !E for its exported symbols:\nWarning(linux-2614-rc4//kernel/irq/manage.c): no structured comments found\n\nmacmodes.c should use !E for its exported symbols:\nWarning(linux-2614-rc4//drivers/video/macmodes.c): no structured comments found\n\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": "cc4e69dee4a080f6eae3f410daec2593f4fa6f00",
      "tree": "b9be8984a0be5f7997d836603963dcf8f2e728ff",
      "parents": [
        "481bed454247538e9f57d4ea37b153ccba24ba7b"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Mon Nov 07 00:59:49 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:42 2005 -0800"
      },
      "message": "[PATCH] VFS: pass file pointer to filesystem from ftruncate()\n\nThis patch extends the iattr structure with a file pointer memeber, and adds\nan ATTR_FILE validity flag for this member.\n\nThis is set if do_truncate() is invoked from ftruncate() or from\ndo_coredump().\n\nThe change is source and binary compatible.\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": "2f51201662b28dbf8c15fb7eb972bc51c6cc3fa5",
      "tree": "96826df796058560bc5dd1f7d8d476c5a741d7bc",
      "parents": [
        "503af334ecf23b9d65d2ff0cc759f3a0bf338290"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Oct 30 15:02:16 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:19 2005 -0800"
      },
      "message": "[PATCH] reduce sizeof(struct file)\n\nNow that RCU applied on \u0027struct file\u0027 seems stable, we can place f_rcuhead\nin a memory location that is not anymore used at call_rcu(\u0026f-\u003ef_rcuhead,\nfile_free_rcu) time, to reduce the size of this critical kernel object.\n\nThe trick I used is to move f_rcuhead and f_list in an union called f_u\n\nThe callers are changed so that f_rcuhead becomes f_u.fu_rcuhead and f_list\nbecomes f_u.f_list\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "27496a8c67bef4d789d8e3c8317ca35813a507ae",
      "tree": "fe99a34fe5a800e41af61853e7444ddddf45d014",
      "parents": [
        "7d877f3bda870ab5f001bd92528654471d5966b3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 03:20:48 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:47 2005 -0700"
      },
      "message": "[PATCH] gfp_t: fs/*\n\n - -\u003ereleasepage() annotated (s/int/gfp_t), instances updated\n - missing gfp_t in fs/* added\n - fixed misannotation from the original sweep caught by bitwise checks:\n   XFS used __nocast both for gfp_t and for flags used by XFS allocator.\n   The latter left with unsigned int __nocast; we might want to add a\n   different type for those but for now let\u0027s leave them alone.  That,\n   BTW, is a case when __nocast use had been actively confusing - it had\n   been used in the same code for two different and similar types, with\n   no way to catch misuses.  Switch of gfp_t to bitwise had caught that\n   immediately...\n\nOne tricky bit is left alone to be dealt with later - mapping-\u003eflags is\na mix of gfp_t and error indications.  Left alone for now.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5ce7852cdf07ab903fb1c72d0915ac492c6e07c7",
      "tree": "7992224cd306be5e827de0bdf6255bc87a2bf4c8",
      "parents": [
        "dd81eca83c8300c95d8a1eaf0d38f56513711535"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Sep 10 00:26:28 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:25 2005 -0700"
      },
      "message": "[PATCH] mm/filemap.c: make two functions static\n\nWith Nick Piggin \u003cnpiggin@suse.de\u003e\n\nGive some things static scope.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ab2af1f5005069321c5d130f09cce577b03f43ef",
      "tree": "73a70ba486f522cd9eeeef376ede2b5a1c1b473b",
      "parents": [
        "6e72ad2c581de121cc7e772469e2a8f6b1fd4379"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:55 2005 -0700"
      },
      "message": "[PATCH] files: files struct with RCU\n\nPatch to eliminate struct files_struct.file_lock spinlock on the reader side\nand use rcu refcounting rcuref_xxx api for the f_count refcounter.  The\nupdates to the fdtable are done by allocating a new fdtable structure and\nsetting files-\u003efdt to point to the new structure.  The fdtable structure is\nprotected by RCU thereby allowing lock-free lookup.  For fd arrays/sets that\nare vmalloced, we use keventd to free them since RCU callbacks can\u0027t sleep.  A\nglobal list of fdtable to be freed is not scalable, so we use a per-cpu list.\nIf keventd is already handling the current cpu\u0027s work, we use a timer to defer\nqueueing of that work.\n\nSince the last publication, this patch has been re-written to avoid using\nexplicit memory barriers and use rcu_assign_pointer(), rcu_dereference()\npremitives instead.  This required that the fd information is kept in a\nseparate structure (fdtable) and updated atomically.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a7662236253374012d364106b6dc9161bd929e2e",
      "tree": "59f34811d18fef8195bc3200bdb2684598175f29",
      "parents": [
        "e6c9f5c1888097c936334bf9740024520ca47b8e"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Sep 06 15:19:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:55 2005 -0700"
      },
      "message": "[PATCH] Make ll_rw_block() wait for buffer lock\n\nIntroduce new ll_rw_block() operation SWRITE meaning that block layer should\nwait for the buffer lock and write-out afterwards.  Hence data in buffers at\nthe time of call are guaranteed to be submitted to the disk.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e922efc342d565a38eed3af377ff403f52148864",
      "tree": "b9996a96ed1bbb6e387f7ba8216f8e43ca640398",
      "parents": [
        "ab8d11beb46f0bd0617e04205c01f5c1fe845b61"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Sep 06 15:18:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:43 2005 -0700"
      },
      "message": "[PATCH] remove duplicated sys_open32() code from 64bit archs\n\n64 bit architectures all implement their own compatibility sys_open(),\nwhen in fact the difference is simply not forcing the O_LARGEFILE\nflag.  So use the a common function instead.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: \u003cviro@parcelfarce.linux.theplanet.co.uk\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": "e89bbd3a0b3c054d9a94feb0db7bbae1cdb99e54",
      "tree": "2defda8463822cf21738665864fb702acb36d1ed",
      "parents": [
        "c320aa545bc3921fc2b192ab0443218d27a2738c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Sep 06 15:18:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:42 2005 -0700"
      },
      "message": "[PATCH] remove iattr.ia_attr_flags\n\nRemove unused ia_attr_flags from struct iattr, and related defines.\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": "2832e9366a1fcd6f76957a42157be041240f994e",
      "tree": "d2dd2a46f3ba7476b7db31806b5d98c4ed6a46dd",
      "parents": [
        "0730ded5be28653675ed314fdd878b8db5f88aa4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Sep 06 15:17:38 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:32 2005 -0700"
      },
      "message": "[PATCH] remove file.f_maxcount\n\nstruct file cleanup: f_maxcount has an unique value (INT_MAX).  Just use\nthe hard-wired value.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cc314eef0128a807e50fa03baf2d0abc0647952c",
      "tree": "8e38db1be28006894915273b3f3cb3beaa6efda3",
      "parents": [
        "2fb1e3086df9b454538491fba8121298da37cd23"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Aug 19 18:02:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Aug 19 18:02:56 2005 -0700"
      },
      "message": "Fix nasty ncpfs symlink handling bug.\n\nThis bug could cause oopses and page state corruption, because ncpfs\nused the generic page-cache symlink handlign functions.  But those\nfunctions only work if the page cache is guaranteed to be \"stable\", ie a\npage that was installed when the symlink walk was started has to still\nbe installed in the page cache at the end of the walk.\n\nWe could have fixed ncpfs to not use the generic helper routines, but it\nis in many ways much cleaner to instead improve on the symlink walking\nhelper routines so that they don\u0027t require that absolute stability.\n\nWe do this by allowing \"follow_link()\" to return a error-pointer as a\ncookie, which is fed back to the cleanup \"put_link()\" routine.  This\nalso simplifies NFS symlink handling.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c293621bbf678a3d85e3ed721c3921c8a670610d",
      "tree": "c72fc522cf3fd2d12f7fd716b7eb4db8d7fcaf52",
      "parents": [
        "3e5ea098446e19175fdee4c2c4ec9366b0217db4"
      ],
      "author": {
        "name": "Peter Staubach",
        "email": "staubach@redhat.com",
        "time": "Wed Jul 27 11:45:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 27 16:26:06 2005 -0700"
      },
      "message": "[PATCH] stale POSIX lock handling\n\nI believe that there is a problem with the handling of POSIX locks, which\nthe attached patch should address.\n\nThe problem appears to be a race between fcntl(2) and close(2).  A\nmultithreaded application could close a file descriptor at the same time as\nit is trying to acquire a lock using the same file descriptor.  I would\nsuggest that that multithreaded application is not providing the proper\nsynchronization for itself, but the OS should still behave correctly.\n\nSUS3 (Single UNIX Specification Version 3, read: POSIX) indicates that when\na file descriptor is closed, that all POSIX locks on the file, owned by the\nprocess which closed the file descriptor, should be released.\n\nThe trick here is when those locks are released.  The current code releases\nall locks which exist when close is processing, but any locks in progress\nare handled when the last reference to the open file is released.\n\nThere are three cases to consider.\n\nOne is the simple case, a multithreaded (mt) process has a file open and\nraces to close it and acquire a lock on it.  In this case, the close will\nrelease one reference to the open file and when the fcntl is done, it will\nrelease the other reference.  For this situation, no locks should exist on\nthe file when both the close and fcntl operations are done.  The current\nsystem will handle this case because the last reference to the open file is\nbeing released.\n\nThe second case is when the mt process has dup(2)\u0027d the file descriptor.\nThe close will release one reference to the file and the fcntl, when done,\nwill release another, but there will still be at least one more reference\nto the open file.  One could argue that the existence of a lock on the file\nafter the close has completed is okay, because it was acquired after the\nclose operation and there is still a way for the application to release the\nlock on the file, using an existing file descriptor.\n\nThe third case is when the mt process has forked, after opening the file\nand either before or after becoming an mt process.  In this case, each\nprocess would hold a reference to the open file.  For each process, this\ndegenerates to first case above.  However, the lock continues to exist\nuntil both processes have released their references to the open file.  This\nlock could block other lock requests.\n\nThe changes to release the lock when the last reference to the open file\naren\u0027t quite right because they would allow the lock to exist as long as\nthere was a reference to the open file.  This is too long.\n\nThe new proposed solution is to add support in the fcntl code path to\ndetect a race with close and then to release the lock which was just\nacquired when such as race is detected.  This causes locks to be released\nin a timely fashion and for the system to conform to the POSIX semantic\nspecification.\n\nThis was tested by instrumenting a kernel to detect the handling locks and\nthen running a program which generates case #3 above.  A dangling lock\ncould be reliably generated.  When the changes to detect the close/fcntl\nrace were added, a dangling lock could no longer be generated.\n\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "88bd5121d635136e01369141367f315665534b3c",
      "tree": "33de8dda3d77ebf7bf48864c464a36665f66497c",
      "parents": [
        "9a556e89081b0c1c2f83cee915363b15a68a6f2d"
      ],
      "author": {
        "name": "Anton Altaparmakov",
        "email": "aia21@cam.ac.uk",
        "time": "Wed Jul 13 01:10:44 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 13 11:25:24 2005 -0700"
      },
      "message": "[PATCH] Fix soft lockup due to NTFS: VFS part and explanation\n\nSomething has changed in the core kernel such that we now get concurrent\ninode write outs, one e.g via pdflush and one via sys_sync or whatever.\nThis causes a nasty deadlock in ntfs.  The only clean solution\nunfortunately requires a minor vfs api extension.\n\nFirst the deadlock analysis:\n\nPrerequisive knowledge: NTFS has a file $MFT (inode 0) loaded at mount\ntime.  The NTFS driver uses the page cache for storing the file contents as\nusual.  More interestingly this file contains the table of on-disk inodes\nas a sequence of MFT_RECORDs.  Thus NTFS driver accesses the on-disk inodes\nby accessing the MFT_RECORDs in the page cache pages of the loaded inode\n$MFT.\n\nThe situation: VFS inode X on a mounted ntfs volume is dirty.  For same\ninode X, the ntfs_inode is dirty and thus corresponding on-disk inode,\nwhich is as explained above in a dirty PAGE_CACHE_PAGE belonging to the\ntable of inodes ($MFT, inode 0).\n\nWhat happens:\n\nProcess 1: sys_sync()/umount()/whatever...  calls __sync_single_inode() for\n$MFT -\u003e do_writepages() -\u003e write_page for the dirty page containing the\non-disk inode X, the page is now locked -\u003e ntfs_write_mst_block() which\nclears PageUptodate() on the page to prevent anyone else getting hold of it\nwhilst it does the write out (this is necessary as the on-disk inode needs\n\"fixups\" applied before the write to disk which are removed again after the\nwrite and PageUptodate is then set again).  It then analyses the page\nlooking for dirty on-disk inodes and when it finds one it calls\nntfs_may_write_mft_record() to see if it is safe to write this on-disk\ninode.  This then calls ilookup5() to check if the corresponding VFS inode\nis in icache().  This in turn calls ifind() which waits on the inode lock\nvia wait_on_inode whilst holding the global inode_lock.\n\nProcess 2: pdflush results in a call to __sync_single_inode for the same\nVFS inode X on the ntfs volume.  This locks the inode (I_LOCK) then calls\nwrite-inode -\u003e ntfs_write_inode -\u003e map_mft_record() -\u003e read_cache_page() of\nthe page (in page cache of table of inodes $MFT, inode 0) containing the\non-disk inode.  This page has PageUptodate() clear because of Process 1\n(see above) so read_cache_page() blocks when tries to take the page lock\nfor the page so it can call ntfs_read_page().\n\nThus Process 1 is holding the page lock on the page containing the on-disk\ninode X and it is waiting on the inode X to be unlocked in ifind() so it\ncan write the page out and then unlock the page.\n\nAnd Process 2 is holding the inode lock on inode X and is waiting for the\npage to be unlocked so it can call ntfs_readpage() or discover that\nProcess 1 set PageUptodate() again and use the page.\n\nThus we have a deadlock due to ifind() waiting on the inode lock.\n\nThe only sensible solution: NTFS does not care whether the VFS inode is\nlocked or not when it calls ilookup5() (it doesn\u0027t use the VFS inode at\nall, it just uses it to find the corresponding ntfs_inode which is of\ncourse attached to the VFS inode (both are one single struct); and it uses\nthe ntfs_inode which is subject to its own locking so I_LOCK is irrelevant)\nhence we want a modified ilookup5_nowait() which is the same as ilookup5()\nbut it does not wait on the inode lock.\n\nWithout such functionality I would have to keep my own ntfs_inode cache in\nthe NTFS driver just so I can find ntfs_inodes independent of their VFS\ninodes which would be slow, memory and cpu cycle wasting, and incredibly\nstupid given the icache already exists in the VFS.\n\nBelow is a patch that does the ilookup5_nowait() implementation in\nfs/inode.c and exports it.\n\nilookup5_nowait.diff:\n\nIntroduce ilookup5_nowait() which is basically the same as ilookup5() but\nit does not wait on the inode\u0027s lock (i.e. it omits the wait_on_inode()\ndone in ifind()).\n\nThis is needed to avoid a nasty deadlock in NTFS.\n\nSigned-off-by: Anton Altaparmakov \u003caia21@cantab.net\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": "cb2c0233755429037462e16ea0d5497a0092738c",
      "tree": "49c5d19090986c71b59dd2fb4c57b1e1ae33062d",
      "parents": [
        "ca3f5a95b7d04eef0f88464f8d3299c1c01e8e13"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Jul 07 17:56:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:35 2005 -0700"
      },
      "message": "[PATCH] export generic_drop_inode() to modules\n\nOCFS2 wants to mark an inode which has been orphaned by another node so\nthat during final iput it takes the correct path through the VFS and can\npass through the OCFS2 delete_inode callback.  Since i_nlink can get out of\ndate with other nodes, the best way I see to accomplish this is by clearing\ni_nlink on those inodes at drop_inode time.  Other than this small amount\nof work, nothing different needs to happen, so I think it would be cleanest\nto be able to just call generic_drop_inode at the end of the OCFS2\ndrop_inode callback.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\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": "eb6fe0c388e43b02e261f0fdee60e42f6298d7f7",
      "tree": "3924bfbbbb10afc19f3bcd4963af14121f2c0553",
      "parents": [
        "6d79125bba55ee82701f1c7d4ebbc1aa20ecbe4e"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Thu Jun 23 22:05:28 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:41 2005 -0700"
      },
      "message": "[PATCH] xip: reduce code duplication\n\nThis patch reworks filemap_xip.c with the goal to reduce code duplication\nfrom mm/filemap.c.  It applies agains 2.6.12-rc6-mm1.  Instead of\nimplementing the aio functions, this one implements the synchronous\nread/write functions only.  For readv and writev, the generic fallback is\nused.  For aio, we rely on the application doing the fallback.  Since our\n\"synchronous\" function does memcpy immediately anyway, there is no\nperformance difference between using the fallbacks or implementing each\noperation.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6d79125bba55ee82701f1c7d4ebbc1aa20ecbe4e",
      "tree": "fbd7f82fea19fd89e09312fe89919774b94a6efe",
      "parents": [
        "ceffc078528befc008c6f2c2c4decda79eabd534"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Thu Jun 23 22:05:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:41 2005 -0700"
      },
      "message": "[PATCH] xip: ext2: execute in place\n\nThese are the ext2 related parts.  Ext2 now uses the xip_* file operations\nalong with the get_xip_page aop when mounted with -o xip.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ceffc078528befc008c6f2c2c4decda79eabd534",
      "tree": "a289e10162bdef0c0d9f6533f1a647b0fe1ed7a9",
      "parents": [
        "420edbcc09008342c7b2665453f6b370739aadb0"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Thu Jun 23 22:05:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:41 2005 -0700"
      },
      "message": "[PATCH] xip: fs/mm: execute in place\n\n- generic_file* file operations do no longer have a xip/non-xip split\n- filemap_xip.c implements a new set of fops that require get_xip_page\n  aop to work proper. all new fops are exported GPL-only (don\u0027t like to\n  see whatever code use those except GPL modules)\n- __xip_unmap now uses page_check_address, which is no longer static\n  in rmap.c, and defined in linux/rmap.h\n- mm/filemap.h is now much more clean, plainly having just Linus\u0027\n  inline funcs moved here from filemap.c\n- fix includes in filemap_xip to make it build cleanly on i386\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "420edbcc09008342c7b2665453f6b370739aadb0",
      "tree": "9eae7b2d378d4e280dcc5c1b6b159e18e5e5dbe0",
      "parents": [
        "3d41088fa327782b14b5659dbcfff62ec704c23c"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Thu Jun 23 22:05:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:41 2005 -0700"
      },
      "message": "[PATCH] xip: bdev: execute in place\n\nThis is the block device related part.  The block device operation\ndirect_access now has a struct block_device as first parameter.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "92198f7eaa5df3479341dd8fa20c2c81aa3b1e25"
}
