)]}'
{
  "log": [
    {
      "commit": "129a84de2347002f09721cda3155ccfd19fade40",
      "tree": "11dabc5695dbcd0eb814935b2c02ddeb01442932",
      "parents": [
        "a9deecba19b8f384d97f82c75379da48bccb2588"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Thu May 10 18:38:43 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 10 20:25:59 2007 -0700"
      },
      "message": "locks: fix F_GETLK regression (failure to find conflicts)\n\nIn 9d6a8c5c213e34c475e72b245a8eb709258e968c we changed posix_test_lock\nto modify its single file_lock argument instead of taking separate input\nand output arguments.  This makes it no longer safe to set the output\nlock\u0027s fl_type to F_UNLCK before looking for a conflict, since that\nmeans searching for a conflict against a lock with type F_UNLCK.\n\nThis fixes a regression which causes F_GETLK to incorrectly report no\nconflict on most filesystems (including any filesystem that doesn\u0027t do\nits own locking).\n\nAlso fix posix_lock_to_flock() to copy the lock type.  This isn\u0027t\nstrictly necessary, since the caller already does this; but it seems\nless likely to cause confusion in the future.\n\nThanks to Doug Chapman for the bug report.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\nAcked-by: Doug Chapman \u003cdoug.chapman@hp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9de2622bd4fd29cab4ef7db66a9f916cb38e032",
      "tree": "60bb4a5f186c776695e2c3bee6bc7dec996dfe45",
      "parents": [
        "643bd27298bdcc4e75b3e6a7ca459675eb5378c3"
      ],
      "author": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu May 10 11:51:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 10 13:34:05 2007 -0700"
      },
      "message": "Allow compat_ioctl.c to compile without CONFIG_NET\n\nA small regression appears to have been introduced in the recent patch\n\"cleanup compat ioctl handling\", which was included in Linus\u0027 tree after\n2.6.20.\n\nsiocdevprivate_ioctl() is no longer defined if CONFIG_NET is undefined,\nwhereas previously it was a dummy function in this case.\n\nThis causes compilation with CONFIG_COMPAT but without CONFIG_NET to fail.\n\nfs/compat_ioctl.c: In function `compat_sys_ioctl\u0027:\nfs/compat_ioctl.c:3571: warning: implicit declaration of function `siocdevprivate_ioctl\u0027\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c4a7f5eb5f6a02dcc3a35e47c37c3d221ebc1cc2",
      "tree": "cf83d46aedc25d01422627e315c2f8a60adb0266",
      "parents": [
        "6f076f5dd9d227cea2704061048894b00cc0d62b"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu May 10 03:15:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 10 09:26:52 2007 -0700"
      },
      "message": "ocfs2: kobject/kset foobar\n\nFix gcc warning and Oops that it causes:\n\nfs/ocfs2/cluster/masklog.c:161: warning: assignment from incompatible pointer type\n[ 2776.204120] OCFS2 Node Manager 1.3.3\n[ 2776.211729] BUG: spinlock bad magic on CPU#0, modprobe/4424\n[ 2776.214269]  lock: ffff810021c8fe18, .magic: ffffffff, .owner: /6394416, .owner_cpu: 0\n[ 2776.217864] [ 2776.217865] Call Trace:\n[ 2776.219662]  [\u003cffffffff803426c8\u003e] spin_bug+0x9e/0xe9\n[ 2776.221921]  [\u003cffffffff803427bf\u003e] _raw_spin_lock+0x23/0xf9\n[ 2776.224417]  [\u003cffffffff8051acf4\u003e] _spin_lock+0x9/0xb\n[ 2776.226676]  [\u003cffffffff8033c3b1\u003e] kobject_shadow_add+0x98/0x1ac\n[ 2776.229367]  [\u003cffffffff8033c4d0\u003e] kobject_add+0xb/0xd\n[ 2776.231665]  [\u003cffffffff8033c4df\u003e] kset_add+0xd/0xf\n[ 2776.233845]  [\u003cffffffff8033c5a6\u003e] kset_register+0x23/0x28\n[ 2776.236309]  [\u003cffffffff8808ccb7\u003e] :ocfs2_nodemanager:mlog_sys_init+0x68/0x6d\n[ 2776.239518]  [\u003cffffffff8808ccee\u003e] :ocfs2_nodemanager:o2cb_sys_init+0x32/0x4a\n[ 2776.242726]  [\u003cffffffff880b80a6\u003e] :ocfs2_nodemanager:init_o2nm+0xa6/0xd5\n[ 2776.245772]  [\u003cffffffff8025266c\u003e] sys_init_module+0x1471/0x15d2\n[ 2776.248465]  [\u003cffffffff8033f250\u003e] simple_strtoull+0x0/0xdc\n[ 2776.250959]  [\u003cffffffff8020948e\u003e] system_call+0x7e/0x83\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5bbf5d39f88af9e8173f7331a3741a8b3ff16a1c",
      "tree": "8bd516e07d2cb8b7578d9783ca45d0a23290dc23",
      "parents": [
        "b9b1f8d5930a813879278d0cbfc8c658d6a038dc"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu May 10 03:15:23 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 10 09:26:52 2007 -0700"
      },
      "message": "AFS: further write support fixes\n\nFurther fixes for AFS write support:\n\n (1) The afs_send_pages() outer loop must do an extra iteration if it ends\n     with \u0027first \u003d\u003d last\u0027 because \u0027last\u0027 is inclusive in the page set\n     otherwise it fails to send the last page and complete the RxRPC op under\n     some circumstances.\n\n (2) Similarly, the outer loop in afs_pages_written_back() must also do an\n     extra iteration if it ends with \u0027first \u003d\u003d last\u0027, otherwise it fails to\n     clear PG_writeback on the last page under some circumstances.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b9b1f8d5930a813879278d0cbfc8c658d6a038dc",
      "tree": "1879e0e70ce946e3519a205698f4dd1b34a3a7ea",
      "parents": [
        "218e180e7ea5334e1f94121940ba82cd1f0f4e58"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu May 10 03:15:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 10 09:26:52 2007 -0700"
      },
      "message": "AFS: write support fixes\n\nAFS write support fixes:\n\n (1) Support large files using the 64-bit file access operations if available\n     on the server.\n\n (2) Use kmap_atomic() rather than kmap() in afs_prepare_page().\n\n (3) Don\u0027t do stuff in afs_writepage() that\u0027s done by the caller.\n\n[akpm@linux-foundation.org: fix right shift count \u003e\u003d width of type]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a13e932281e7042a592f4f14db0b348199e7aac",
      "tree": "474245a3ed19f26528fd8b1bdda946fa9cd751d7",
      "parents": [
        "fee7f23feaf0845fdfd47d20cddc75652552fbb8"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Thu Apr 26 00:29:02 2007 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 17:58:01 2007 -0400"
      },
      "message": "NFS: Kill the obsolete NFS_PARANOIA\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fee7f23feaf0845fdfd47d20cddc75652552fbb8",
      "tree": "d5ce2fd3e86f6cf0fa61af8d4a5ecff8f149b796",
      "parents": [
        "ddce40df6e14dd474bbd9daa006dcc290dea6326"
      ],
      "author": {
        "name": "Milind Arun Choudhary",
        "email": "milindchoudhary@gmail.com",
        "time": "Thu Apr 26 00:29:03 2007 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 17:58:01 2007 -0400"
      },
      "message": "NFS: use __set_current_state()\n\nuse __set_current_state(TASK_*) instead of current-\u003estate \u003d TASK_*, in fs/nfs\n\nSigned-off-by: Milind Arun Choudhary \u003cmilindchoudhary@gmail.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e4cc6ee2e40bdd57990577b7f851fa2ca48edf47",
      "tree": "fa2515a197df6a75be707a1054a0c0f026f38ba4",
      "parents": [
        "6ce7dc940701cf3fde3c6e826a696b333092cbb1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue May 08 18:23:28 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 17:58:00 2007 -0400"
      },
      "message": "NFS: Clean up NFSv4 XDR error message\n\nMake it more useful for debugging purposes.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6ce7dc940701cf3fde3c6e826a696b333092cbb1",
      "tree": "0894788349bae7b0d1707dcab98505b5ada8a3ef",
      "parents": [
        "aa3d1faebe6e214cd96be0e587571477ff6fd9fc"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue May 08 18:23:28 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 17:58:00 2007 -0400"
      },
      "message": "NFS: NFS client underestimates how large an NFSv4 SETATTR reply can be\n\nThe maximum size of an NFSv4 SETATTR compound reply should include the\nGETATTR operation that we send.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e70c490810dc683fad39e57cf00e69d5f120c542",
      "tree": "24276f69c064376d3c69979f61e181b377560795",
      "parents": [
        "e62c2bba1fb7cf068eb78d731da46e4447a9efb1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 09:00:18 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 17:57:59 2007 -0400"
      },
      "message": "NFS: Remove redundant check in nfs_check_verifier()\n\nThe check for nfs_attribute_timeout(dir) in nfs_check_verifier is\nredundant: nfs_lookup_revalidate() will already call nfs_revalidate_inode()\non the parent dir when necessary.\n\nThe only case where this is not done is the case of a negative dentry. Fix\nthis case by moving up the revalidation code.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e62c2bba1fb7cf068eb78d731da46e4447a9efb1",
      "tree": "bce53fe724400f7cfa1ae4621aafc6aa70bd564d",
      "parents": [
        "38cb162b7585d837083b8365da1eb32687c5164c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 09:00:17 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 17:57:58 2007 -0400"
      },
      "message": "NFS: Fix a jiffie wraparound issue\n\ndentry verifiers are always set to the parent directory\u0027s\ncache_change_attribute. There is no reason to be testing for anything other\nthan equality when we\u0027re trying to find out if the dentry has been checked\nsince the last time the directory was modified.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ba7cc09c9c9e29a57045dc5bbf843ac1cfad3283",
      "tree": "7e2d39269803b53ba048f3bad11cd6a1a38b35b9",
      "parents": [
        "d84c4124c4b6611301b402e8611b7e36de3bd351",
        "b7aa48be1e7a11e36448a7db58931bbf735d2718"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 13:10:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 13:10:11 2007 -0700"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6: (21 commits)\n  [MTD] [CHIPS] Remove MTD_OBSOLETE_CHIPS (jedec, amd_flash, sharp)\n  [MTD] Delete allegedly obsolete \"bank_size\" field of mtd_info.\n  [MTD] Remove unnecessary user space check from mtd.h.\n  [MTD] [MAPS] Remove flash maps for no longer supported 405LP boards\n  [MTD] [MAPS] Fix missing printk() parameter in physmap_of.c MTD driver\n  [MTD] [NAND] platform NAND driver: add driver\n  [MTD] [NAND] platform NAND driver: update header\n  [JFFS2] Simplify and clean up jffs2_add_tn_to_tree() some more.\n  [JFFS2] Remove another bogus optimisation in jffs2_add_tn_to_tree()\n  [JFFS2] Remove broken insert_point optimisation in jffs2_add_tn_to_tree()\n  [JFFS2] Remember to calculate overlap on nodes which replace older nodes\n  [JFFS2] Don\u0027t advance c-\u003ewbuf_ofs to next eraseblock after wbuf flush\n  [MTD] [NAND] at91_nand.c: CMDLINE_PARTS support\n  [MTD] [NAND] Tidy up handling of page number in nand_block_bad()\n  [MTD] block2mtd_paramline[] mustn\u0027t be __initdata\n  [MTD] [NAND] Support multiple chips in CAFÉ driver\n  [MTD] [NAND] Rename cafe.c to cafe_nand.c and remove the multi-obj magic\n  [MTD] [NAND] Use rslib for CAFÉ ECC\n  [RSLIB] Support non-canonical GF representations\n  [JFFS2] Remove dead file histo_mips.h\n  ...\n"
    },
    {
      "commit": "9a9136e270af14da506f66bcafcc506b86a86498",
      "tree": "b4d0a6877d92635134b7a944d0032fbc43227fd2",
      "parents": [
        "3960208f9ca0cf6bdb31c21c59ac0526303f8b34",
        "7bb2acb76e8168ca5d0bde5a5a56585a11b3525a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:54:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:54:17 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial: (25 commits)\n  sound: convert \"sound\" subdirectory to UTF-8\n  MAINTAINERS: Add cxacru website/mailing list\n  include files: convert \"include\" subdirectory to UTF-8\n  general: convert \"kernel\" subdirectory to UTF-8\n  documentation: convert the Documentation directory to UTF-8\n  Convert the toplevel files CREDITS and MAINTAINERS to UTF-8.\n  remove broken URLs from net drivers\u0027 output\n  Magic number prefix consistency change to Documentation/magic-number.txt\n  trivial: s/i_sem /i_mutex/\n  fix file specification in comments\n  drivers/base/platform.c: fix small typo in doc\n  misc doc and kconfig typos\n  Remove obsolete fat_cvf help text\n  Fix occurrences of \"the the \"\n  Fix minor typoes in kernel/module.c\n  Kconfig: Remove reference to external mqueue library\n  Kconfig: A couple of grammatical fixes in arch/i386/Kconfig\n  Correct comments in genrtc.c to refer to correct /proc file.\n  Fix more \"deprecated\" spellos.\n  Fix \"deprecated\" typoes.\n  ...\n\nFix trivial comment conflict in kernel/relay.c.\n"
    },
    {
      "commit": "8bb7844286fb8c9fce6f65d8288aeb09d03a5e0d",
      "tree": "f4e305edaedbde05774bb1e4acd89a9475661d2e",
      "parents": [
        "f37bc2712b54ec641e0c0c8634f1a4b61d9956c0"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed May 09 02:35:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:56 2007 -0700"
      },
      "message": "Add suspend-related notifications for CPU hotplug\n\nSince nonboot CPUs are now disabled after tasks and devices have been\nfrozen and the CPU hotplug infrastructure is used for this purpose, we need\nspecial CPU hotplug notifications that will help the CPU-hotplug-aware\nsubsystems distinguish normal CPU hotplug events from CPU hotplug events\nrelated to a system-wide suspend or resume operation in progress.  This\npatch introduces such notifications and causes them to be used during\nsuspend and resume transitions.  It also changes all of the\nCPU-hotplug-aware subsystems to take these notifications into consideration\n(for now they are handled in the same way as the corresponding \"normal\"\nones).\n\n[oleg@tv-sign.ru: cleanups]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2fff596955867d407cc7e8e426097bd9ad2be9b",
      "tree": "68ca108b7eecef9d789fb7bf9eb2405854880575",
      "parents": [
        "0c11d7a9e9e9793219baf715048c190a84bead57"
      ],
      "author": {
        "name": "Nate Diller",
        "email": "nate.diller@gmail.com",
        "time": "Wed May 09 02:35:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:56 2007 -0700"
      },
      "message": "reiserfs: use zero_user_page\n\nUse zero_user_page() instead of open-coding it.\n\nSigned-off-by: Nate Diller \u003cnate.diller@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0c11d7a9e9e9793219baf715048c190a84bead57",
      "tree": "ba5557118502f04a6dc12b66a6afacac1144256b",
      "parents": [
        "f36dca90e674a1a62cad810f630629c0008b2128"
      ],
      "author": {
        "name": "Nate Diller",
        "email": "nate.diller@gmail.com",
        "time": "Wed May 09 02:35:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:55 2007 -0700"
      },
      "message": "ext3: use zero_user_page\n\nUse zero_user_page() instead of open-coding it.\n\nSigned-off-by: Nate Diller \u003cnate.diller@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f36dca90e674a1a62cad810f630629c0008b2128",
      "tree": "56c7d0570d63de5af08dfa64859689904d91432d",
      "parents": [
        "01f2705daf5a36208e69d7cf95db9c330f843af6"
      ],
      "author": {
        "name": "Nate Diller",
        "email": "nate.diller@gmail.com",
        "time": "Wed May 09 02:35:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:55 2007 -0700"
      },
      "message": "affs: use zero_user_page\n\nUse zero_user_page() instead of open-coding it.\n\nSigned-off-by: Nate Diller \u003cnate.diller@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01f2705daf5a36208e69d7cf95db9c330f843af6",
      "tree": "2d2c7a042c2466ed985f6e0950450c099f02725f",
      "parents": [
        "38a23e311b6cd389b9d8af2ea6c28c8cffbe581c"
      ],
      "author": {
        "name": "Nate Diller",
        "email": "nate.diller@gmail.com",
        "time": "Wed May 09 02:35:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:55 2007 -0700"
      },
      "message": "fs: convert core functions to zero_user_page\n\nIt\u0027s very common for file systems to need to zero part or all of a page,\nthe simplist way is just to use kmap_atomic() and memset().  There\u0027s\nactually a library function in include/linux/highmem.h that does exactly\nthat, but it\u0027s confusingly named memclear_highpage_flush(), which is\ndescriptive of *how* it does the work rather than what the *purpose* is.\nSo this patchset renames the function to zero_user_page(), and calls it\nfrom the various places that currently open code it.\n\nThis first patch introduces the new function call, and converts all the\ncore kernel callsites, both the open-coded ones and the old\nmemclear_highpage_flush() ones.  Following this patch is a series of\nconversions for each file system individually, per AKPM, and finally a\npatch deprecating the old call.  The diffstat below shows the entire\npatchset.\n\n[akpm@linux-foundation.org: fix a few things]\nSigned-off-by: Nate Diller \u003cnate.diller@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b41eeef14d7c73af6d16c7d02b7a939082a137ff",
      "tree": "eafe41b86a825f7effc4ba596c56507451c60367",
      "parents": [
        "072f62ed85a71bbb3429a52678500ec9f9441e0d"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 09 02:34:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:54 2007 -0700"
      },
      "message": "knfsd: avoid Oops if buggy userspace performs confusing filehandle-\u003edentry mapping\n\nWhen a lookup request arrives, nfsd uses information provided by userspace\n(mountd) to find the right filesystem.\n\nIt then assumes that the same filehandle type as the incoming filehandle can\nbe used to create an outgoing filehandle.\n\nHowever if mountd is buggy, or maybe just being creative, the filesystem may\nnot support that filesystem type, and the kernel could oops, particularly if\n\u0027ex_uuid\u0027 is NULL but a FSID_UUID* filehandle type is used.\n\nSo add some proper checking that the fsid version/type from the incoming\nfilehandle is actually supportable, and ignore that information if it isn\u0027t\nsupportable.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "072f62ed85a71bbb3429a52678500ec9f9441e0d",
      "tree": "016660b8c3de979be1d623c18306ab4c72088adb",
      "parents": [
        "f725b217b16e2cb1777c5a6e13c99f7913f1514a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 09 02:34:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:54 2007 -0700"
      },
      "message": "knfsd: various nfsd xdr cleanups\n\n1/ decode_sattr and decode_sattr3 never return NULL, so remove\n   several checks for that. ditto for xdr_decode_hyper.\n\n2/ replace some open coded XDR_QUADLEN calls with calls to\n   XDR_QUADLEN\n\n3/ in decode_writeargs, simply an \u0027if\u0027 to use a single\n   calculation.\n   .page_len is the length of that part of the packet that did\n   not fit in the first page (the head).\n   So the length of the data part is the remainder of the\n   head, plus page_len.\n\n3/ other minor cleanups.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f725b217b16e2cb1777c5a6e13c99f7913f1514a",
      "tree": "7ba67527cc570e327b6d17eac92fc9c8b44d0b4d",
      "parents": [
        "05ed690efbb28b54af79f97af8c9705e82a6fbd7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed May 09 02:34:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:54 2007 -0700"
      },
      "message": "knfsd: trivial makefile cleanup\n\nkbuild directly interprets \u003cmodulename\u003e-y as objects to build into a module,\nno need to assign it to the old foo-objs variable.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "402acd29e552cb80109d1d5c0ada53f634465d87",
      "tree": "12c86f3421d3d8679401742e1bc6569c75908ee3",
      "parents": [
        "5bd5f5812bfa753218e02cb773e06ede48055798"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 09 02:34:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:54 2007 -0700"
      },
      "message": "knfsd: avoid use of unitialised variables on error path when nfs exports\n\nWe need to zero various parts of \u0027exp\u0027 before any \u0027goto out\u0027, otherwise when\nwe go to free the contents...  we die.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd123012d99fde4759500fee611e724e4f3016e3",
      "tree": "a947c5e4210a2a51ea6619b3e127650feaa00421",
      "parents": [
        "669716433598a1498049e75a84a5aaf69c8da173"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed May 09 02:34:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:54 2007 -0700"
      },
      "message": "RPC: add wrapper for svc_reserve to account for checksum\n\nWhen the kernel calls svc_reserve to downsize the expected size of an RPC\nreply, it fails to account for the possibility of a checksum at the end of\nthe packet.  If a client mounts a NFSv2/3 with sec\u003dkrb5i/p, and does I/O\nthen you\u0027ll generally see messages similar to this in the server\u0027s ring\nbuffer:\n\nRPC request reserved 164 but used 208\n\nWhile I was never able to verify it, I suspect that this problem is also\nthe root cause of some oopses I\u0027ve seen under these conditions:\n\nhttps://bugzilla.redhat.com/bugzilla/show_bug.cgi?id\u003d227726\n\nThis is probably also a problem for other sec\u003d types and for NFSv4.  The\nlarge reserved size for NFSv4 compound packets seems to generally paper\nover the problem, however.\n\nThis patch adds a wrapper for svc_reserve that accounts for the possibility\nof a checksum.  It also fixes up the appropriate callers of svc_reserve to\ncall the wrapper.  For now, it just uses a hardcoded value that I\ndetermined via testing.  That value may need to be revised upward as things\nchange, or we may want to eventually add a new auth_op that attempts to\ncalculate this somehow.\n\nUnfortunately, there doesn\u0027t seem to be a good way to reliably determine\nthe expected checksum length prior to actually calculating it, particularly\nwith schemes like spkm3.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nAcked-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "669716433598a1498049e75a84a5aaf69c8da173",
      "tree": "6f925e6ddaaa31b485972ccc08fd725b5ea65e27",
      "parents": [
        "7ac1bea5507218da03f6005d228789da5a831c3f"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed May 09 02:34:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:54 2007 -0700"
      },
      "message": "nfsd/nfs4state: remove unnecessary daemonize call\n\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f34b95689d2ce001c157b1604289ff240b4bdee0",
      "tree": "e249e166e3c66656ad1b5ac895da6e4c207830e1",
      "parents": [
        "8842c9655b2b7f0e8e6c50a773b649e5d8a57678"
      ],
      "author": {
        "name": "Peter Staubach",
        "email": "staubach@redhat.com",
        "time": "Wed May 09 02:34:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:54 2007 -0700"
      },
      "message": "The NFSv2/NFSv3 server does not handle zero length WRITE requests correctly\n\nThe NFSv2 and NFSv3 servers do not handle WRITE requests for 0 bytes\ncorrectly.  The specifications indicate that the server should accept the\nrequest, but it should mostly turn into a no-op.  Currently, the server\nwill return an XDR decode error, which it should not.\n\nAttached is a patch which addresses this issue.  It also adds some boundary\nchecking to ensure that the request contains as much data as was requested\nto be written.  It also correctly handles an NFSv3 request which requests\nto write more data than the server has stated that it is prepared to\nhandle.  Previously, there was some support which looked like it should\nwork, but wasn\u0027t quite right.\n\nSigned-off-by: Peter Staubach \u003cstaubach@redhat.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8842c9655b2b7f0e8e6c50a773b649e5d8a57678",
      "tree": "5f5e682ee03286f33c70775fed05c4645bbeb3ae",
      "parents": [
        "6e84d644b5929789398914b0ccf447355dec6fb0"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 09 02:34:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:54 2007 -0700"
      },
      "message": "remove nfs4_acl_add_ace()\n\nnfs4_acl_add_ace() can now be removed.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nAcked-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28e53bddf814485699a4142bc056fd37d4e11dd4",
      "tree": "5182090c4cc2186eedbda3cb90ed82a2836f6ff6",
      "parents": [
        "5830c5902138f80b0a097b797200c739466beedd"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:34:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:53 2007 -0700"
      },
      "message": "unify flush_work/flush_work_keventd and rename it to cancel_work_sync\n\nflush_work(wq, work) doesn\u0027t need the first parameter, we can use cwq-\u003ewq\n(this was possible from the very beginnig, I missed this).  So we can unify\nflush_work_keventd and flush_work.\n\nAlso, rename flush_work() to cancel_work_sync() and fix all callers.\nPerhaps this is not the best name, but \"flush_work\" is really bad.\n\n(akpm: this is why the earlier patches bypassed maintainers)\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Auke Kok \u003cauke-jan.h.kok@intel.com\u003e,\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a9df62c7585e6caa1e7d2425b2b14460ec3afc20",
      "tree": "f3d291e208ca09cb0c185ed96242bb977e4e60e3",
      "parents": [
        "83c22520c51bf67529367e8237f95c03fe44e2da"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed May 09 02:33:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "aio: use flush_work()\n\nMigrate AIO over to use flush_work().\n\nCc: \"Maciej W. Rozycki\" \u003cmacro@linux-mips.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31143d5d515ece617ffccb7df5ff75e4d1dfa120",
      "tree": "db28c26930f6a26db3e85da90f6668061425463a",
      "parents": [
        "416351f28d2b31d15ff73e9aff699b2163704c95"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed May 09 02:33:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:50 2007 -0700"
      },
      "message": "AFS: implement basic file write support\n\nImplement support for writing to regular AFS files, including:\n\n (1) write\n\n (2) truncate\n\n (3) fsync, fdatasync\n\n (4) chmod, chown, chgrp, utime.\n\nAFS writeback attempts to batch writes into as chunks as large as it can manage\nup to the point that it writes back 65535 pages in one chunk or it meets a\nlocked page.\n\nFurthermore, if a page has been written to using a particular key, then should\nanother write to that page use some other key, the first write will be flushed\nbefore the second is allowed to take place.  If the first write fails due to a\nsecurity error, then the page will be scrapped and reread before the second\nwrite takes place.\n\nIf a page is dirty and the callback on it is broken by the server, then the\ndirty data is not discarded (same behaviour as NFS).\n\nShared-writable mappings are not supported by this patch.\n\n[akpm@linux-foundation.org: fix a bunch of warnings]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "416351f28d2b31d15ff73e9aff699b2163704c95",
      "tree": "4b43838415b2cb95dfc66f9bc5fdb36b0f245e6c",
      "parents": [
        "ef71c15c46a053818f7e69098ebb052b31ffa56b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed May 09 02:33:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:50 2007 -0700"
      },
      "message": "AFS: AFS fixups\n\nMake some miscellaneous changes to the AFS filesystem:\n\n (1) Assert RCU barriers on module exit to make sure RCU has finished with\n     callbacks in this module.\n\n (2) Correctly handle the AFS server returning a zero-length read.\n\n (3) Split out data zapping calls into one function (afs_zap_data).\n\n (4) Rename some afs_file_*() functions to afs_*() where they apply to\n     non-regular files too.\n\n (5) Be consistent about the presentation of volume ID:vnode ID in debugging\n     output.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2dfdd266b9a2f2d93a3fdbee89969f6ea9ec5377",
      "tree": "a3dd643401a5fa63f60759c89fd00a4ef175cda5",
      "parents": [
        "62ce39c531860aee6c12128c629b0a82f656a306"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Wed May 09 02:33:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:50 2007 -0700"
      },
      "message": "fs: use path_walk in do_path_lookup\n\nSince path_walk sets the total_link_count to 0 and calls link_path_walk, we\ncan just call path_walk directly.\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "62ce39c531860aee6c12128c629b0a82f656a306",
      "tree": "cfa57bde671ac341f46b8844a159b4b7b06a247e",
      "parents": [
        "35c35d1afa8f9afe01d922ff9668a14c5d879b02"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Wed May 09 02:33:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "fs: fix indentation in do_path_lookup\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92f4c701aad794de9e4cf7341d0a486aed027c46",
      "tree": "59a47427d43670a50409fc91d68a325e7cfa0ab7",
      "parents": [
        "884c3d751093446918c2f7a4b2c745f28cf91c39"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 09 02:33:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "use simple_read_from_buffer() in fs/\n\nCleanup using simple_read_from_buffer() in binfmt_misc, configfs, and sysfs.\n\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5886269962f94fa9185c32db3ec936c612503235",
      "tree": "2f24dabcf5791319ebb1fbdfb5dbc58284714275",
      "parents": [
        "01afd80626e98c2347bc25be92ee4a3faf314514"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "ukleinek@informatik.uni-freiburg.de",
        "time": "Wed May 09 07:51:49 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 09 08:58:16 2007 +0200"
      },
      "message": "fix file specification in comments\n\nMany files include the filename at the beginning, serveral used a wrong one.\n\nSigned-off-by: Uwe Kleine-König \u003cukleinek@informatik.uni-freiburg.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "148e423f909e14564d8af13239c5d060f7df273e",
      "tree": "09369a0e0fc425b366fe0df9aab5fedfe1419b57",
      "parents": [
        "59c51591a0ac7568824f541f57de967e88adaa07"
      ],
      "author": {
        "name": "Alexander E. Patrakov",
        "email": "patrakov@ums.usu.ru",
        "time": "Wed May 09 07:31:54 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 09 08:58:15 2007 +0200"
      },
      "message": "Remove obsolete fat_cvf help text\n\nThe text removed by the following patch refers to functionality that never\nworked, to non-existing documentation file, and to mount options marked as\nobsolete in the module.\n\nSigned-off-by: Alexander E. Patrakov \u003cpatrakov@ums.usu.ru\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "59c51591a0ac7568824f541f57de967e88adaa07",
      "tree": "243d20eb0a26b76d5d312f39ec5a1ff60e036711",
      "parents": [
        "02a3e59a088749c08b0293ee1535f5bf48f5926c"
      ],
      "author": {
        "name": "Michael Opdenacker",
        "email": "michael@free-electrons.com",
        "time": "Wed May 09 08:57:56 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 09 08:57:56 2007 +0200"
      },
      "message": "Fix occurrences of \"the the \"\n\nSigned-off-by: Michael Opdenacker \u003cmichael@free-electrons.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "beb7dd86a101263bf63a78c7c6d4da3849b35bd6",
      "tree": "9afe81ca9e92ab8aacc999ae118b27d547721f11",
      "parents": [
        "3dde6ad8fc3939d345a3768464ecff43c91d511a"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Wed May 09 07:14:03 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 09 07:14:03 2007 +0200"
      },
      "message": "Fix misspellings collected by members of KJ list.\n\nFix the misspellings of \"propogate\", \"writting\" and (oh, the shame\n:-) \"kenrel\" in the source tree.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "ccf6780dc3d228f380e17b6858b93fc48e40afd4",
      "tree": "4b905fcccab11e2016969c876d7320b0271e10aa",
      "parents": [
        "d3e6975e0f25044c4c86f5a42c9917090973636b"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Wed May 09 07:10:02 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 09 07:10:02 2007 +0200"
      },
      "message": "Style fix in fs/select.c\n\nSigned-off-by: WANG Cong  \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "0f8952c2fa981c75dbbb363ac83b320068fffa69",
      "tree": "8c95e36f92d29be514063dad755c49f0165a13fd",
      "parents": [
        "de372ecd80a42c4fb485c7232475301a18d05184"
      ],
      "author": {
        "name": "Ronni Nielsen",
        "email": "theronni@gmail.com",
        "time": "Wed May 09 06:44:57 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 09 06:44:57 2007 +0200"
      },
      "message": "fs/libfs.c: \u003e80 columns line break fix\n\nSigned-off-by: Ronni Nielsen \u003ctheronni@gmail.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "4b8df8915a6980f476e1fa8f4d156e36cb63bf76",
      "tree": "dee4cbe41aee3570b9a129a4c87dcf8ea09f8112",
      "parents": [
        "7e81ab9d3d9a22fb7b20c56f0cabc8ef51954014"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue May 08 20:27:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 20:41:14 2007 -0700"
      },
      "message": "smaps: only define clear_refs for CONFIG_MMU\n\n/proc/pid/clear_refs is only defined in the CONFIG_MMU case, so make sure we\ndon\u0027t have any references to clear_refs_smap() in generic procfs code.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b82dc0e64e93f430182f36b46b79fcee87d3532",
      "tree": "28c61be85dd899cdb096ac15c65b521b0db60ea8",
      "parents": [
        "1efd48b3ae8f89a1d04f1e36be96764d7bf43ae9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 20:10:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 20:10:00 2007 -0700"
      },
      "message": "Remove suid/sgid bits on [f]truncate()\n\n.. to match what we do on write().  This way, people who write to files\nby using [f]truncate + writable mmap have the same semantics as if they\nwere using the write() family of system calls.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60c9b2746f589b0b809582b0471cf30ad3ae439f",
      "tree": "deb0169acb7f7b5b5ef721650de1e0c6f139823c",
      "parents": [
        "4750def52cb2c21732dda9aa1d43a07db37b0186",
        "f7c66ce3f70d8417de0cfb481ca4e5430382ec5d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:59:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:59:33 2007 -0700"
      },
      "message": "Merge git://oss.sgi.com:8090/xfs/xfs-2.6\n\n* git://oss.sgi.com:8090/xfs/xfs-2.6:\n  [XFS] Add lockdep support for XFS\n  [XFS] Fix race in xfs_write() b/w dmapi callout and direct I/O checks.\n  [XFS] Get rid of redundant \"required\" in msg.\n  [XFS] Export via a function xfs_buftarg_list for use by kdb/xfsidbg.\n  [XFS] Remove unused ilen variable and references.\n  [XFS] Fix to prevent the notorious \u0027NULL files\u0027 problem after a crash.\n  [XFS] Fix race condition in xfs_write().\n  [XFS] Fix uquota and oquota enforcement problems.\n  [XFS] propogate return codes from flush routines\n  [XFS] Fix quotaon syscall failures for group enforcement requests.\n  [XFS] Invalidate quotacheck when mounting without a quota type.\n  [XFS] reducing the number of random number functions.\n  [XFS] remove more misc. unused args\n  [XFS] the \"aendp\" arg to xfs_dir2_data_freescan is always NULL, remove it.\n  [XFS] The last argument \"lsn\" of xfs_trans_commit() is always called with\n"
    },
    {
      "commit": "02a93208edec0d655c9f18613d830dc6afeda7d4",
      "tree": "3a48dbae348c02d4b108cb3fcc5f1600ad3dd53a",
      "parents": [
        "18062a91d2ddc40e19fc674afeb7cad58cfa23ab",
        "821de3a27bf33f11ec878562577c586cd5f83c64"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:34:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:34:52 2007 -0700"
      },
      "message": "Merge branch \u0027for-2.6.22\u0027 of git://git.kernel.dk/data/git/linux-2.6-block\n\n* \u0027for-2.6.22\u0027 of git://git.kernel.dk/data/git/linux-2.6-block:\n  [PATCH] ll_rw_blk: fix missing bounce in blk_rq_map_kern()\n  [PATCH] splice: always call into page_cache_readahead()\n  [PATCH] splice(): fix interaction with readahead\n"
    },
    {
      "commit": "18062a91d2ddc40e19fc674afeb7cad58cfa23ab",
      "tree": "886fe7ec99623767e38ff7fc67a078918338bb3e",
      "parents": [
        "be3478ddb8a3902b588c840b42e166a0e64a87b3",
        "05ec9e26be1f668ccba4ca54d9a4966c6208c611"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:32:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:32:30 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6:\n  JFS: Fix race waking up jfsIO kernel thread\n  JFS: use __set_current_state()\n  Copy i_flags to jfs inode flags on write\n  JFS: document uid, gid, and umask mount options in jfs.txt\n"
    },
    {
      "commit": "951744fea0aea9adbd7c8cacb3605f2d69a66f96",
      "tree": "c46aec13c4a5f3924bc5a73bced68269f275ff2b",
      "parents": [
        "31170b6ad4ebe6c43c1cc3b8112274cf59474de0"
      ],
      "author": {
        "name": "Dmitriy Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue May 08 00:35:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:22 2007 -0700"
      },
      "message": "udf: possible null pointer dereference while load_partition\n\nsb_read may return NULL, let\u0027s explicitly check it.\n\nSigned-off-by: Dmitriy Monakhov \u003cdmonakhov@openvz.org\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31170b6ad4ebe6c43c1cc3b8112274cf59474de0",
      "tree": "25e19a70a323f18757c60a658d930b63e8e45124",
      "parents": [
        "948b9b2c967c3bec6136b2dbb9e1c12f62e03efa"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 08 00:35:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:21 2007 -0700"
      },
      "message": "udf: support files larger than 1G\n\nMake UDF work correctly for files larger than 1GB.  As no extent can be\nlonger than (1\u003c\u003c30)-blocksize bytes, we have to create several extents if a\nbig hole is being created.  As a side-effect, we now don\u0027t discard\npreallocated blocks when creating a hole.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "948b9b2c967c3bec6136b2dbb9e1c12f62e03efa",
      "tree": "25a2376aef384fb05221e20b3c96f3c490c8195c",
      "parents": [
        "3bf25cb40d899eeb5a471f497e56ddfe2c96c019"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 08 00:35:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:21 2007 -0700"
      },
      "message": "udf: add assertions\n\nAdd a few assertions into udf_discard_prealloc() to check that the file is\nsane (mostly helps debugging further patches ;).\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3bf25cb40d899eeb5a471f497e56ddfe2c96c019",
      "tree": "98d425edd6392d3037218851084dde6736e7ba32",
      "parents": [
        "ff116fc8d1d43927c7651b91d5aec41eb30c4429"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 08 00:35:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:21 2007 -0700"
      },
      "message": "udf: use get_bh()\n\nMake UDF use get_bh() instead of directly accessing b_count and use\nbrelse() instead of udf_release_data() which does just brelse()...\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff116fc8d1d43927c7651b91d5aec41eb30c4429",
      "tree": "9b452298e6f070be35b2d366ce4a10e4a1384d17",
      "parents": [
        "60448b1d6db4e82946ff9a2ac88df341f5fa87a2"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 08 00:35:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:21 2007 -0700"
      },
      "message": "UDF: introduce struct extent_position\n\nIntroduce a structure extent_position to store a position of an extent and\nthe corresponding buffer_head in one place.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60448b1d6db4e82946ff9a2ac88df341f5fa87a2",
      "tree": "d0623c3dc26be55aa17319e1e9e8d0fbeea98ac4",
      "parents": [
        "277866a0e3a4f97e859f7a621f5b4f5359c9526c"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 08 00:35:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:21 2007 -0700"
      },
      "message": "udf: use sector_t and loff_t for file offsets\n\nUse sector_t and loff_t for file offsets in UDF filesystem.  Otherwise an\noverflow may occur for long files.  Also make inode_bmap() return offset in\nthe extent in number of blocks instead of number of bytes - for most\ncallers this is more convenient.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "277866a0e3a4f97e859f7a621f5b4f5359c9526c",
      "tree": "20b244f5c0c7b6a692f0290f70f0fefae9d88d5a",
      "parents": [
        "79df3c19aa601d264719b04e3a788a7b852f4859"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 08 00:35:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:21 2007 -0700"
      },
      "message": "nfs: fix congestion control: use atomic_longs\n\nChange the atomic_t in struct nfs_server to atomic_long_t in anticipation\nof machines that can handle 8+TB of (4K) pages under writeback.\n\nHowever I suspect other things in NFS will start going *bang* by then.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1c710c896eb461895d3c399e15bb5f20b39c9073",
      "tree": "862e210cc6dad50abffd7640f01d50c3e9f3d375",
      "parents": [
        "ade5fb818fb1861fd5f84619c761920ade762b5d"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Tue May 08 00:33:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:18 2007 -0700"
      },
      "message": "utimensat implementation\n\nImplement utimensat(2) which is an extension to futimesat(2) in that it\n\na) supports nano-second resolution for the timestamps\nb) allows to selectively ignore the atime/mtime value\nc) allows to selectively use the current time for either atime or mtime\nd) supports changing the atime/mtime of a symlink itself along the lines\n   of the BSD lutimes(3) functions\n\nFor this change the internally used do_utimes() functions was changed to\naccept a timespec time value and an additional flags parameter.\n\nAdditionally the sys_utime function was changed to match compat_sys_utime\nwhich already use do_utimes instead of duplicating the work.\n\nAlso, the completely missing futimensat() functionality is added.  We have\nsuch a function in glibc but we have to resort to using /proc/self/fd/* which\nnot everybody likes (chroot etc).\n\nTest application (the syscall number will need per-arch editing):\n\n#include \u003cerrno.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003ctime.h\u003e\n#include \u003csys/time.h\u003e\n#include \u003cstddef.h\u003e\n#include \u003csyscall.h\u003e\n\n#define __NR_utimensat 280\n\n#define UTIME_NOW       ((1l \u003c\u003c 30) - 1l)\n#define UTIME_OMIT      ((1l \u003c\u003c 30) - 2l)\n\nint\nmain(void)\n{\n  int status \u003d 0;\n\n  int fd \u003d open(\"ttt\", O_RDWR|O_CREAT|O_EXCL, 0666);\n  if (fd \u003d\u003d -1)\n    error (1, errno, \"failed to create test file \\\"ttt\\\"\");\n\n  struct stat64 st1;\n  if (fstat64 (fd, \u0026st1) !\u003d 0)\n    error (1, errno, \"fstat failed\");\n\n  struct timespec t[2];\n  t[0].tv_sec \u003d 0;\n  t[0].tv_nsec \u003d 0;\n  t[1].tv_sec \u003d 0;\n  t[1].tv_nsec \u003d 0;\n  if (syscall(__NR_utimensat, AT_FDCWD, \"ttt\", t, 0) !\u003d 0)\n    error (1, errno, \"utimensat failed\");\n\n  struct stat64 st2;\n  if (fstat64 (fd, \u0026st2) !\u003d 0)\n    error (1, errno, \"fstat failed\");\n\n  if (st2.st_atim.tv_sec !\u003d 0 || st2.st_atim.tv_nsec !\u003d 0)\n    {\n      puts (\"atim not reset to zero\");\n      status \u003d 1;\n    }\n  if (st2.st_mtim.tv_sec !\u003d 0 || st2.st_mtim.tv_nsec !\u003d 0)\n    {\n      puts (\"mtim not reset to zero\");\n      status \u003d 1;\n    }\n  if (status !\u003d 0)\n    goto out;\n\n  t[0] \u003d st1.st_atim;\n  t[1].tv_sec \u003d 0;\n  t[1].tv_nsec \u003d UTIME_OMIT;\n  if (syscall(__NR_utimensat, AT_FDCWD, \"ttt\", t, 0) !\u003d 0)\n    error (1, errno, \"utimensat failed\");\n\n  if (fstat64 (fd, \u0026st2) !\u003d 0)\n    error (1, errno, \"fstat failed\");\n\n  if (st2.st_atim.tv_sec !\u003d st1.st_atim.tv_sec\n      || st2.st_atim.tv_nsec !\u003d st1.st_atim.tv_nsec)\n    {\n      puts (\"atim not set\");\n      status \u003d 1;\n    }\n  if (st2.st_mtim.tv_sec !\u003d 0 || st2.st_mtim.tv_nsec !\u003d 0)\n    {\n      puts (\"mtim changed from zero\");\n      status \u003d 1;\n    }\n  if (status !\u003d 0)\n    goto out;\n\n  t[0].tv_sec \u003d 0;\n  t[0].tv_nsec \u003d UTIME_OMIT;\n  t[1] \u003d st1.st_mtim;\n  if (syscall(__NR_utimensat, AT_FDCWD, \"ttt\", t, 0) !\u003d 0)\n    error (1, errno, \"utimensat failed\");\n\n  if (fstat64 (fd, \u0026st2) !\u003d 0)\n    error (1, errno, \"fstat failed\");\n\n  if (st2.st_atim.tv_sec !\u003d st1.st_atim.tv_sec\n      || st2.st_atim.tv_nsec !\u003d st1.st_atim.tv_nsec)\n    {\n      puts (\"mtim changed from original time\");\n      status \u003d 1;\n    }\n  if (st2.st_mtim.tv_sec !\u003d st1.st_mtim.tv_sec\n      || st2.st_mtim.tv_nsec !\u003d st1.st_mtim.tv_nsec)\n    {\n      puts (\"mtim not set\");\n      status \u003d 1;\n    }\n  if (status !\u003d 0)\n    goto out;\n\n  sleep (2);\n\n  t[0].tv_sec \u003d 0;\n  t[0].tv_nsec \u003d UTIME_NOW;\n  t[1].tv_sec \u003d 0;\n  t[1].tv_nsec \u003d UTIME_NOW;\n  if (syscall(__NR_utimensat, AT_FDCWD, \"ttt\", t, 0) !\u003d 0)\n    error (1, errno, \"utimensat failed\");\n\n  if (fstat64 (fd, \u0026st2) !\u003d 0)\n    error (1, errno, \"fstat failed\");\n\n  struct timeval tv;\n  gettimeofday(\u0026tv,NULL);\n\n  if (st2.st_atim.tv_sec \u003c\u003d st1.st_atim.tv_sec\n      || st2.st_atim.tv_sec \u003e tv.tv_sec)\n    {\n      puts (\"atim not set to NOW\");\n      status \u003d 1;\n    }\n  if (st2.st_mtim.tv_sec \u003c\u003d st1.st_mtim.tv_sec\n      || st2.st_mtim.tv_sec \u003e tv.tv_sec)\n    {\n      puts (\"mtim not set to NOW\");\n      status \u003d 1;\n    }\n\n  if (symlink (\"ttt\", \"tttsym\") !\u003d 0)\n    error (1, errno, \"cannot create symlink\");\n\n  t[0].tv_sec \u003d 0;\n  t[0].tv_nsec \u003d 0;\n  t[1].tv_sec \u003d 0;\n  t[1].tv_nsec \u003d 0;\n  if (syscall(__NR_utimensat, AT_FDCWD, \"tttsym\", t, AT_SYMLINK_NOFOLLOW) !\u003d 0)\n    error (1, errno, \"utimensat failed\");\n\n  if (lstat64 (\"tttsym\", \u0026st2) !\u003d 0)\n    error (1, errno, \"lstat failed\");\n\n  if (st2.st_atim.tv_sec !\u003d 0 || st2.st_atim.tv_nsec !\u003d 0)\n    {\n      puts (\"symlink atim not reset to zero\");\n      status \u003d 1;\n    }\n  if (st2.st_mtim.tv_sec !\u003d 0 || st2.st_mtim.tv_nsec !\u003d 0)\n    {\n      puts (\"symlink mtim not reset to zero\");\n      status \u003d 1;\n    }\n  if (status !\u003d 0)\n    goto out;\n\n  t[0].tv_sec \u003d 1;\n  t[0].tv_nsec \u003d 0;\n  t[1].tv_sec \u003d 1;\n  t[1].tv_nsec \u003d 0;\n  if (syscall(__NR_utimensat, fd, NULL, t, 0) !\u003d 0)\n    error (1, errno, \"utimensat failed\");\n\n  if (fstat64 (fd, \u0026st2) !\u003d 0)\n    error (1, errno, \"fstat failed\");\n\n  if (st2.st_atim.tv_sec !\u003d 1 || st2.st_atim.tv_nsec !\u003d 0)\n    {\n      puts (\"atim not reset to one\");\n      status \u003d 1;\n    }\n  if (st2.st_mtim.tv_sec !\u003d 1 || st2.st_mtim.tv_nsec !\u003d 0)\n    {\n      puts (\"mtim not reset to one\");\n      status \u003d 1;\n    }\n\n  if (status \u003d\u003d 0)\n     puts (\"all OK\");\n\n out:\n  close (fd);\n  unlink (\"ttt\");\n  unlink (\"tttsym\");\n\n  return status;\n}\n\n[akpm@linux-foundation.org: add missing i386 syscall table entry]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@openvz.org\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a1c9bb433af252767ee90d6394d287afa30cf8b",
      "tree": "586225fc9f3ca52d60d59400a3c7d4e90ca0667e",
      "parents": [
        "866b04fccbf125cd39f2bdbcfeaa611d39a061a8"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue May 08 00:32:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:16 2007 -0700"
      },
      "message": "inode numbering: change libfs sb creation routines to avoid collisions with their root inodes\n\nThis patch makes it so that simple_fill_super and get_sb_pseudo assign their\nroot inodes to be number 1.  It also fixes up a couple of callers of\nsimple_fill_super that were passing in files arrays that had an index at\nnumber 1, and adds a warning for any caller that sends in such an array.\n\nIt would have been nice to have made it so that it wasn\u0027t possible to make\nsuch a collision, but some callers need to be able to control what inode\nnumber their entries get, so I think this is the best that can be done.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "866b04fccbf125cd39f2bdbcfeaa611d39a061a8",
      "tree": "5f59337d971bcb696b75e6fc39ca5d7d2a5a287b",
      "parents": [
        "63bd23591e6c3891d34e4c6dba7c6aa41b05caad"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue May 08 00:32:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:16 2007 -0700"
      },
      "message": "inode numbering: make static counters in new_inode and iunique be 32 bits\n\nThe problems are:\n\n- on filesystems w/o permanent inode numbers, i_ino values can be larger\n  than 32 bits, which can cause problems for some 32 bit userspace programs on\n  a 64 bit kernel.  We can\u0027t do anything for filesystems that have actual\n  \u003e32-bit inode numbers, but on filesystems that generate i_ino values on the\n  fly, we should try to have them fit in 32 bits.  We could trivially fix this\n  by making the static counters in new_inode and iunique 32 bits, but...\n\n- many filesystems call new_inode and assume that the i_ino values they are\n  given are unique.  They are not guaranteed to be so, since the static\n  counter can wrap.  This problem is exacerbated by the fix for #1.\n\n- after allocating a new inode, some filesystems call iunique to try to get\n  a unique i_ino value, but they don\u0027t actually add their inodes to the\n  hashtable, and so they\u0027re still not guaranteed to be unique if that counter\n  wraps.\n\nThis patch set takes the simpler approach of simply using iunique and hashing\nthe inodes afterward.  Christoph H.  previously mentioned that he thought that\nthis approach may slow down lookups for filesystems that currently hash their\ninodes.\n\nThe questions are:\n\n1) how much would this slow down lookups for these filesystems?\n2) is it enough to justify adding more infrastructure to avoid it?\n\nWhat might be best is to start with this approach and then only move to using\nIDR or some other scheme if these extra inodes in the hashtable prove to be\nproblematic.\n\nI\u0027ve done some cursory testing with this patch and the overhead of hashing and\nunhashing the inodes with pipefs is pretty low -- just a few seconds of system\ntime added on to the creation and destruction of 10 million pipes (very\nsimilar to the overhead that the IDR approach would add).\n\nThe hard thing to measure is what effect this has on other filesystems. I\u0027m\nopen to ways to try and gauge this.\n\nAgain, I\u0027ve only converted pipefs as an example. If this approach is\nacceptable then I\u0027ll start work on patches to convert other filesystems.\n\nWith a pretty-much-worst-case microbenchmark provided by Eric Dumazet\n\u003cdada1@cosmosbay.com\u003e:\n\nhashing patch (pipebench):\nsys     1m15.329s\nsys     1m16.249s\nsys     1m17.169s\n\nunpatched (pipebench):\nsys     1m9.836s\nsys     1m12.541s\nsys     1m14.153s\n\nWhich works out to 1.05642174294555027017.  So ~5-6% slowdown.\n\nThis patch:\n\nWhen a 32-bit program that was not compiled with large file offsets does a\nstat and gets a st_ino value back that won\u0027t fit in the 32 bit field, glibc\n(correctly) generates an EOVERFLOW error.  We can\u0027t do anything about fs\u0027s\nwith larger permanent inode numbers, but when we generate them on the fly, we\nought to try and have them fit within a 32 bit field.\n\nThis patch takes the first step toward this by making the static counters in\nthese two functions be 32 bits.\n\n[jlayton@redhat.com: mention that it\u0027s only the case for 32bit, non-LFS stat]\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b140f25108a8b11aa4903014814988549838b324",
      "tree": "466b0c1a8056a2307c8219d1dfc5c059c043f07d",
      "parents": [
        "ce0be1273d1473a5a7b57bf0b4995b40c22d6b54"
      ],
      "author": {
        "name": "Alexey Kuznetsov",
        "email": "alexey@openvz.org",
        "time": "Tue May 08 00:31:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:15 2007 -0700"
      },
      "message": "Invalid return value of execve() resulting in oopses\n\nWhen elf loader fails to map executable (due to memory shortage or because\nbinary is malformed), it can return 0.  Normally, this is invisible because\nprocess is killed with SIGKILL and it never returns to user space.\n\nBut if exec() is called from kernel thread (hotplug, whatever)\nconsequences are more interesting and vary depending on architecture.\n\ni386.   Nothing especially interesting, execve() just returns\n        with \"success\"  :-)\n\nx86_64. Fake zero frame is used on way to caller, RSP/RIP are loaded\n        with zeros, ergo... double fault.\n\nia64.   Similar to i386, but r32...r95 are corrupted. Sometimes it\n        oopses due to return to zero PC, sometimes it sees NaT in\n        rXX and oopses due to NaT consumption.\n\nSigned-off-by: Alexey Kuznetsov \u003calexey@openvz.org\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0c28f287aa57e065116731c1e44bedcbc14fd53f",
      "tree": "66fe5fc7a4f8c191a9e05e99bebeb1bc425bbb7c",
      "parents": [
        "346339938ba9bcabd34e5fc8f4b0b0665c507a22"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue May 08 00:31:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:14 2007 -0700"
      },
      "message": "procfs: use simple_read_from_buffer()\n\nCleanup using simple_read_from_buffer() in procfs.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "83ae1b79c898838e16ac8cde69b39d22d36fb035",
      "tree": "e7571f14e4167f4425b8b05ed2cf3b59c8b383b5",
      "parents": [
        "a3e0975684337738997771416535d0e5d6fa27cd"
      ],
      "author": {
        "name": "Andreas Schwab",
        "email": "schwab@suse.de",
        "time": "Tue May 08 00:31:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:14 2007 -0700"
      },
      "message": "Fix error handling in HDIO_GETGEO compat wrapper\n\nDon\u0027t clobber error from sys_ioctl in HDIO_GETGEO compat wrapper.\n\nSigned-off-by: Andreas Schwab \u003cschwab@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c007c06e3cccf6d80de7f97242da1c3146c431b2",
      "tree": "420cd93ce0dd695de99dbfcf999492b0d2ab2723",
      "parents": [
        "c483bab099cb89e92b7cad94a52fcdaf37e56657"
      ],
      "author": {
        "name": "Stephen Mollett",
        "email": "molletts@yahoo.com",
        "time": "Tue May 08 00:31:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:14 2007 -0700"
      },
      "message": "udf: decrement correct link count in udf_rmdir\n\nIt appears that a minor thinko occurred in udf_rmdir and the\n(already-cleared) link count on the directory that is being removed was\nbeing decremented instead of the link count on its parent directory.  This\ngives rise to lots of kernel messages similar to:\n\nUDF-fs warning (device loop1): udf_rmdir: empty directory has nlink !\u003d 2 (8)\n\nwhen removing directory trees.  No other ill effects have been observed but\nI guess it could theoretically result in the link count overflowing on a\nvery long-lived, much modified directory.\n\nSigned-off-by: Stephen Mollett \u003cmolletts@yahoo.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c483bab099cb89e92b7cad94a52fcdaf37e56657",
      "tree": "3cfbd483b70def6032d51029f4cd0edf49458c38",
      "parents": [
        "b247e8aaf2837715d31eb25828fa8b4eb0a659cd"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Tue May 08 00:31:28 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:14 2007 -0700"
      },
      "message": "fat: fix VFAT compat ioctls on 64-bit systems\n\nIf you compile and run the below test case in an msdos or vfat directory on\nan x86-64 system with -m32 you\u0027ll get garbage in the kernel_dirent struct\nfollowed by a SIGSEGV.\n\nThe patch fixes this.\n\nReported and initial fix by Bart Oldeman\n\n#include \u003csys/types.h\u003e\n#include \u003csys/ioctl.h\u003e\n#include \u003cdirent.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cfcntl.h\u003e\nstruct kernel_dirent {\n         long            d_ino;\n         long\t\td_off;\n         unsigned short  d_reclen;\n         char            d_name[256]; /* We must not include limits.h! */\n};\n#define VFAT_IOCTL_READDIR_BOTH  _IOR(\u0027r\u0027, 1, struct kernel_dirent [2])\n#define VFAT_IOCTL_READDIR_SHORT  _IOR(\u0027r\u0027, 2, struct kernel_dirent [2])\n\nint main(void)\n{\n         int fd \u003d open(\".\", O_RDONLY);\n         struct kernel_dirent de[2];\n\n         while (1) {\n                 int i \u003d ioctl(fd, VFAT_IOCTL_READDIR_BOTH, (long)de);\n                 if (i \u003d\u003d -1) break;\n                 if (de[0].d_reclen \u003d\u003d 0) break;\n                 printf(\"SFN: reclen\u003d%2d off\u003d%d ino\u003d%d, %-12s\",\n \t\t       de[0].d_reclen, de[0].d_off, de[0].d_ino, de[0].d_name);\n \t\tif (de[1].d_reclen)\n \t\t  printf(\"\\tLFN: reclen\u003d%2d off\u003d%d ino\u003d%d, %s\",\n \t\t    de[1].d_reclen, de[1].d_off, de[1].d_ino, de[1].d_name);\n \t\tprintf(\"\\n\");\n         }\n         return 0;\n}\n\nSigned-off-by: Bart Oldeman \u003cbartoldeman@users.sourceforge.net\u003e\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4f99ed67cc1cf5302ea18aa042d75641b61a0a1b",
      "tree": "abf64c561c22b1aa1ba03f2dfb0bdef4d156ca8a",
      "parents": [
        "28ec039c21839914389975b896160a815ffd8b83"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 08 00:31:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:13 2007 -0700"
      },
      "message": "ext3: copy i_flags to inode flags on write\n\nPropagate flags such as S_APPEND, S_IMMUTABLE, etc.  from i_flags into\next2-specific i_flags.  Hence, when someone sets these flags via a different\ninterface than ioctl, they are stored correctly.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28ec039c21839914389975b896160a815ffd8b83",
      "tree": "e6b0364c906ee7409c7bce2d8849420a46cb7c10",
      "parents": [
        "4ff773bbde87f7f7dddc0f579ad53e077a6587b9"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Tue May 08 00:31:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:13 2007 -0700"
      },
      "message": "fat: don\u0027t use free_clusters for fat32\n\nIt seems that the recent Windows changed specification, and it\u0027s\nundocumented.  Windows doesn\u0027t update -\u003efree_clusters correctly.\n\nThis patch doesn\u0027t use -\u003efree_clusters by default.  (instead, add \"usefree\"\nfor forcing to use it)\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Juergen Beisert \u003cjuergen127@kreuzholzen.de\u003e\nCc: Andreas Schwab \u003cschwab@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ab2f7e0fdd04148e08348701d6bd6a292ce2d26",
      "tree": "50de16bd03833271dad8c36f2b01964445305a66",
      "parents": [
        "35bab756b49bd148760a3bbd3c907cd74754dbb4"
      ],
      "author": {
        "name": "Milind Arun Choudhary",
        "email": "milindchoudhary@gmail.com",
        "time": "Tue May 08 00:30:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:13 2007 -0700"
      },
      "message": "reiserfs: use __set_current_state()\n\nuse __set_current_state(TASK_*) instead of current-\u003estate \u003d TASK_*, in\nfs/reiserfs\n\nSigned-off-by: Milind Arun Choudhary \u003cmilindchoudhary@gmail.com\u003e\nCc: \u003creiserfs-dev@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97f067846786d255888ccad14e2f38a1f63d8e9b",
      "tree": "ebff291172a51b25a0a0c69c85463f0c789bb2ce",
      "parents": [
        "ee6f958291e2a768fd727e7a67badfff0b67711a"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@sw.ru",
        "time": "Tue May 08 00:30:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:13 2007 -0700"
      },
      "message": "jbd: check for error returned by kthread_create on creating journal thread\n\nIf the thread failed to create the subsequent wait_event will hang forever.\n\nThis is likely to happen if kernel hits max_threads limit.\n\nWill be critical for virtualization systems that limit the number of tasks\nand kernel memory usage within the container.\n\n(akpm: JBD should be converted fully to the kthread API: kthread_should_stop()\nand kthread_stop()).\n\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee6f958291e2a768fd727e7a67badfff0b67711a",
      "tree": "1313cb3a5d50a296b1801022f904f3a5e9601de2",
      "parents": [
        "2f1a2ccb9c0de632ab07193becf5f7121794f6ae"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue May 08 00:30:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:12 2007 -0700"
      },
      "message": "check privileges before setting mount propagation\n\nThere\u0027s a missing check for CAP_SYS_ADMIN in do_change_type().\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28be5abb400e5e082f5225105fdc69337ec0c0b4",
      "tree": "e4bb3e527aac316004be68e28a25b2919e30afd4",
      "parents": [
        "9926e4c74300c4b31dee007298c6475d33369df0"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 08 00:30:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:12 2007 -0700"
      },
      "message": "ext3: copy i_flags to inode flags on write\n\nA patch that stores inode flags such as S_IMMUTABLE, S_APPEND, etc.  from\ni_flags to EXT3_I(inode)-\u003ei_flags when inode is written to disk.  The same\nthing is done on GETFLAGS ioctl.\n\nQuota code changes these flags on quota files (to make it harder for\nsysadmin to screw himself) and these changes were not correctly propagated\ninto the filesystem (especially, lsattr did not show them and users were\nwondering...).\n\nPropagate flags such as S_APPEND, S_IMMUTABLE, etc.  from i_flags into\next3-specific i_flags.  Hence, when someone sets these flags via a\ndifferent interface than ioctl, they are stored correctly.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b5e618181a927210f8be1d3d2249d31904ba358d",
      "tree": "731f1ae4ff1ba56d402bb329182b7d935bb439a1",
      "parents": [
        "db9c02fa8bd50eb104781a9f78cae923d8da1e74"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@sw.ru",
        "time": "Tue May 08 00:30:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:11 2007 -0700"
      },
      "message": "Introduce a handy list_first_entry macro\n\nThere are many places in the kernel where the construction like\n\n   foo \u003d list_entry(head-\u003enext, struct foo_struct, list);\n\nare used.\nThe code might look more descriptive and neat if using the macro\n\n   list_first_entry(head, type, member) \\\n             list_entry((head)-\u003enext, type, member)\n\nHere is the macro itself and the examples of its usage in the generic code.\n If it will turn out to be useful, I can prepare the set of patches to\ninject in into arch-specific code, drivers, networking, etc.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1bd0cf1fc78e59e1d2b4e44348a85d39b983c80d",
      "tree": "4c27d740d84fdc95c2c24b2fcc357c654d8dbc83",
      "parents": [
        "f16825bbeb9e6e0970531aa2f21b18b2e8ae9e47"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue May 08 00:30:15 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:11 2007 -0700"
      },
      "message": "smbfs: remove unnecessary allow_signal\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3361c7bebbf207f57f3dd1282cd87e1e37c082ac",
      "tree": "53c5ee74c70ed9727964996f3cf2fa4a0ff368ea",
      "parents": [
        "9d0633cfedde484d30eef869f749c04709ab3e42"
      ],
      "author": {
        "name": "Jeffrey Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue May 08 00:29:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:10 2007 -0700"
      },
      "message": "make iunique use a do/while loop rather than its obscure goto loop\n\nA while back, Christoph mentioned that he thought that iunique ought to be\ncleaned up to use a more conventional loop construct. This patch does that,\nturning the strange goto loop into a do/while.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d0633cfedde484d30eef869f749c04709ab3e42",
      "tree": "c234f06a36ba6344489597f0084a616948a419c2",
      "parents": [
        "1e8123fdeda6b2b9e96f2ec56e7bed27a303d3eb"
      ],
      "author": {
        "name": "John Johansen",
        "email": "jjohansen@suse.de",
        "time": "Tue May 08 00:29:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:10 2007 -0700"
      },
      "message": "Remove redundant check from proc_sys_setattr()\n\nnotify_change() already calls security_inode_setattr() before\ncalling iop-\u003esetattr.\n\nAlan sayeth\n\n  This is a behaviour change on all of these and limits some behaviour of\n  existing established security modules\n\n  When inode_change_ok is called it has side effects.  This includes\n  clearing the SGID bit on attribute changes caused by chmod.  If you make\n  this change the results of some rulesets may be different before or after\n  the change is made.\n\n  I\u0027m not saying the change is wrong but it does change behaviour so that\n  needs looking at closely (ditto all other attribute twiddles)\n\nSigned-off-by: Steve Beattie \u003csbeattie@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: John Johansen \u003cjjohansen@suse.de\u003e\nAcked-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e8123fdeda6b2b9e96f2ec56e7bed27a303d3eb",
      "tree": "5a969db27d16a0dd324277618c519cd98e0c7abe",
      "parents": [
        "49a4ec188f9a96c9a5567956718213d38a456a19"
      ],
      "author": {
        "name": "John Johansen",
        "email": "jjohansen@suse.de",
        "time": "Tue May 08 00:29:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:10 2007 -0700"
      },
      "message": "Remove redundant check from proc_setattr()\n\nnotify_change() already calls security_inode_setattr() before\ncalling iop-\u003esetattr.\n\nSigned-off-by: Tony Jones \u003ctonyj@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: John Johansen \u003cjjohansen@suse.de\u003e\nAcked-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09f0892ec7f8068ba1d1fcef4d1fca23ec96e0dd",
      "tree": "1ff23e62d08a673cb29fc63c33e0381564e9dab3",
      "parents": [
        "5a0c6a0d1ae97473291f479ef64573d6b2c0e2d5"
      ],
      "author": {
        "name": "Martin Peschke",
        "email": "mp3@de.ibm.com",
        "time": "Tue May 08 00:29:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:09 2007 -0700"
      },
      "message": "proc: cleanup: use seq_release_private() where appropriate\n\nWe can save some lines of code by using seq_release_private().\n\nSigned-off-by: Martin Peschke \u003cmp3@de.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6272e2667965dfb5b59199f462cd0f001fb304a6",
      "tree": "a14a4537dcd7af09863cc3a1c19a3efe386d67ab",
      "parents": [
        "039b6b3ed84e45a6f8316358dd2bfdc83d59fc45"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 08 00:29:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:09 2007 -0700"
      },
      "message": "cleanup compat ioctl handling\n\nMerge all compat ioctl handling into compat_ioctl.c instead of splitting it\nover compat.c and compat_ioctl.c.  This also allows to get rid of ioctl32.h\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nLooks-good-to: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19d0e8ce856a7628a630710aed82931ce1c7eb97",
      "tree": "f2d111b8723417ddc1b136c405923a49d4fce62a",
      "parents": [
        "e729aa16b168fb202d1a20f936028cb7c2a0278d"
      ],
      "author": {
        "name": "Philippe De Muyter",
        "email": "phdm@macqel.be",
        "time": "Tue May 08 00:29:15 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:09 2007 -0700"
      },
      "message": "partition: add support for sysv68 partitions\n\nAdd support for the Motorola sysv68 disk partition (slices in motorola\ndoc).\n\nSigned-off-by: Philippe De Muyter \u003cphdm@macqel.be\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "644fd4f5de9ca147daeb6dc5f844b44ec3d58b47",
      "tree": "d9bd9c9bc6c02077e5f2d19556377a30c31cd0c9",
      "parents": [
        "884f2810b15b6bb489c9dca5013aafbea2f19fba"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 08 00:29:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:09 2007 -0700"
      },
      "message": "merge compat_ioctl.h into compat_ioctl.c\n\nNow that there is no arch-specific compat ioctl handling left there is not\npoint in having a separate copat_ioctl.h, so merge it into compat_ioctl.c\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1525dccbc248b87568f2477f1b2d417b69d418c3",
      "tree": "172b8bb89faf202477db7a587aadb6369ad95cf6",
      "parents": [
        "022a1692444cd683ef42f637cc717db4d8fd9378"
      ],
      "author": {
        "name": "Milind Arun Choudhary",
        "email": "milindchoudhary@gmail.com",
        "time": "Tue May 08 00:29:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:09 2007 -0700"
      },
      "message": "ROUND_UP macro cleanup in fs/smbfs/request.c\n\nROUND_UP macro cleanup use ALIGN\n\nSigned-off-by: Milind Arun Choudhary \u003cmilindchoudhary@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "022a1692444cd683ef42f637cc717db4d8fd9378",
      "tree": "82d8c1360921310f90b81c147b345afad98317f7",
      "parents": [
        "10f8a59813ee8bb41fb1d72ed2ec12a1c9f66da2"
      ],
      "author": {
        "name": "Milind Arun Choudhary",
        "email": "milindchoudhary@gmail.com",
        "time": "Tue May 08 00:29:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:09 2007 -0700"
      },
      "message": "ROUND_UP macro cleanup in fs/(select|compat|readdir).c\n\nROUND_UP macro cleanup use,ALIGN or DIV_ROUND_UP where ever appropriate.\n\nSigned-off-by: Milind Arun Choudhary \u003cmilindchoudhary@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e80d0d0b64f5c00b0ac7e623d96189309c298ca",
      "tree": "748942edea32fb94fdc74c0aaee06acd3d1bffc5",
      "parents": [
        "b259d74b39595f6ac74c3627b9c3657ac90249a0"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue May 08 00:28:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "i386: sched.h inclusion from module.h is baack\n\n  linux/module.h\n  -\u003e linux/elf.h\n     -\u003e asm-i386/elf.h\n        -\u003e linux/utsname.h\n           -\u003e linux/sched.h\n\nNoticeably cut the number of files which are rebuild upon touching sched.h\nand cut down pulled junk from every module.h inclusion.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d65cb4a1718a072898c7a57a3bc61b2dc4bcd4d",
      "tree": "9e3fd1c9e61e8ed16959d115a9a3f6f7eb0bbf21",
      "parents": [
        "ffb45122766db220d0bf3d01848d575fbbcb6430"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue May 08 00:28:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "Fix race between cat /proc/*/wchan and rmmod et al\n\nkallsyms_lookup() can go iterating over modules list unprotected which is OK\nfor emergency situations (oops), but not OK for regular stuff like\n/proc/*/wchan.\n\nIntroduce lookup_symbol_name()/lookup_module_symbol_name() which copy symbol\nname into caller-supplied buffer or return -ERANGE.  All copying is done with\nmodule_mutex held, so...\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ffb45122766db220d0bf3d01848d575fbbcb6430",
      "tree": "a8fedf0518407ad12578a7c03aa2c3344f11ff3c",
      "parents": [
        "ea07890a680273b25127129fb555aac0d9324bea"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue May 08 00:28:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "Simplify kallsyms_lookup()\n\nSeveral kallsyms_lookup() pass dummy arguments but only need, say, module\u0027s\nname.  Make kallsyms_lookup() accept NULLs where possible.\n\nAlso, makes picture clearer about what interfaces are needed for all symbol\nresolving business.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "98701d1b0fe98b477b53df89114e6862547f8107",
      "tree": "4ccfe162116056c1af41563ef4ea6c93bb7067f3",
      "parents": [
        "0f95b7fc839bc3272b1bf2325d8748a649bd3534"
      ],
      "author": {
        "name": "kalash nainwal",
        "email": "kalash.nainwal@gmail.com",
        "time": "Tue May 08 00:28:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "(re)register_binfmt returns with -EBUSY\n\nWhen a binary format is unregistered and re-registered, register_binfmt\nfails with -EBUSY.  The reason is that unregister_binfmt does not set\nfmt-\u003enext to NULL, and seeing (fmt-\u003enext !\u003d NULL), register_binfmt fails\nwith -EBUSY.\n\nOne can find his way around by explicitly setting fmt-\u003enext to NULL after\nunregistering, but that is kind of unclean (one should better be using only\nthe interfaces, and not the interal members, isn\u0027t it?)\n\nAttached one-liner can fix it.\n\nSigned-off-by: Kalash Nainwal \u003ckalash.nainwal@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5f00f42f35e6f4699f105a3bd56874847cbf72f",
      "tree": "ac4e5c0a9fbafceacf5e78281bab508ba03e5044",
      "parents": [
        "c6b40d16d1cfa1a01158049bb887a9bbe48ef7ba"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue May 08 00:27:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:05 2007 -0700"
      },
      "message": "make remove_inode_dquot_ref() static\n\nremove_inode_dquot_ref() can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca509f69dec7fa564005aa7e9fcf0cd46de3f7d6",
      "tree": "75bee6e2186c6864c10e5ab46bab2d967a9fe006",
      "parents": [
        "ef51c97623b94f51e439ac91d2736aab3d1b6594"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue May 08 00:27:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:05 2007 -0700"
      },
      "message": "Protect tty drivers list with tty_mutex\n\nAdditions and removal from tty_drivers list were just done as well as\niterating on it for /proc/tty/drivers generation.\n\ntesting: modprobe/rmmod loop of simple module which does nothing but\ntty_register_driver() vs cat /proc/tty/drivers loop\n\nBUG: unable to handle kernel paging request at virtual address 6b6b6b6b\n printing eip:\nc01cefa7\n*pde \u003d 00000000\nOops: 0000 [#1]\nPREEMPT\nlast sysfs file: devices/pci0000:00/0000:00:1d.7/usb5/5-0:1.0/bInterfaceProtocol\nModules linked in: ohci_hcd af_packet e1000 ehci_hcd uhci_hcd usbcore xfs\nCPU:    0\nEIP:    0060:[\u003cc01cefa7\u003e]    Not tainted VLI\nEFLAGS: 00010297   (2.6.21-rc4-mm1 #4)\nEIP is at vsnprintf+0x3a4/0x5fc\neax: 6b6b6b6b   ebx: f6cb50f2   ecx: 6b6b6b6b   edx: fffffffe\nesi: c0354700   edi: f6cb6000   ebp: 6b6b6b6b   esp: f31f5e68\nds: 007b   es: 007b   fs: 00d8  gs: 0033  ss: 0068\nProcess cat (pid: 31864, ti\u003df31f4000 task\u003dc1998030 task.ti\u003df31f4000)\nStack: 00000000 c0103f20 c013003a c0103f20 00000000 f6cb50da 0000000a 00000f0e\n       f6cb50f2 00000010 00000014 ffffffff ffffffff 00000007 c0354753 f6cb50f2\n       f73e39dc f73e39dc 00000001 c0175416 f31f5ed8 f31f5ed4 0ee00000 f32090bc\nCall Trace:\n [\u003cc0103f20\u003e] restore_nocheck+0x12/0x15\n [\u003cc013003a\u003e] mark_held_locks+0x6d/0x86\n [\u003cc0103f20\u003e] restore_nocheck+0x12/0x15\n [\u003cc0175416\u003e] seq_printf+0x2e/0x52\n [\u003cc0192895\u003e] show_tty_range+0x35/0x1f3\n [\u003cc0175416\u003e] seq_printf+0x2e/0x52\n [\u003cc0192add\u003e] show_tty_driver+0x8a/0x1d9\n [\u003cc01758f6\u003e] seq_read+0x70/0x2ba\n [\u003cc0175886\u003e] seq_read+0x0/0x2ba\n [\u003cc018d8e6\u003e] proc_reg_read+0x63/0x9f\n [\u003cc015e764\u003e] vfs_read+0x7d/0xb5\n [\u003cc018d883\u003e] proc_reg_read+0x0/0x9f\n [\u003cc015eab1\u003e] sys_read+0x41/0x6a\n [\u003cc0103e4e\u003e] sysenter_past_esp+0x5f/0x99\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nCode: 00 8b 4d 04 e9 44 ff ff ff 8d 4d 04 89 4c 24 50 8b 6d 00 81 fd ff 0f 00 00 b8 a4 c1 35 c0 0f 46 e8 8b 54 24 2c 89 e9 89 c8 eb 06 \u003c80\u003e 38 00 74 07 40 4a 83 fa ff 75 f4 29 c8 89 c6 8b 44 24 28 89\nEIP: [\u003cc01cefa7\u003e] vsnprintf+0x3a4/0x5fc SS:ESP 0068:f31f5e68\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef51c97623b94f51e439ac91d2736aab3d1b6594",
      "tree": "5c020421f1e5a6e28b5a9f341fec32479a8ffb3a",
      "parents": [
        "524e6752912a891a396a9cf74c5d7d60fff5510a"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue May 08 00:27:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:04 2007 -0700"
      },
      "message": "Remove do_sync_file_range()\n\nRemove do_sync_file_range() and convert callers to just use\ndo_sync_mapping_range().\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "880ebdc5166aa6a0aa2a3218357a3d6e0eebcec8",
      "tree": "9c8399771750d93ac8db22d178f18b0a87d884f2",
      "parents": [
        "98a27ba485c7508ef9d9527fe06e4686f3a163dc"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:26:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:04 2007 -0700"
      },
      "message": "reiserfs: proc support requires PROC_FS\n\nREISER_FS /proc option needs to depend on PROC_FS.\n\nfs/reiserfs/procfs.c: In function \u0027show_super\u0027:\nfs/reiserfs/procfs.c:134: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027max_hash_collisions\u0027\nfs/reiserfs/procfs.c:134: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027breads\u0027\nfs/reiserfs/procfs.c:135: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027bread_miss\u0027\nfs/reiserfs/procfs.c:135: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027search_by_key\u0027\nfs/reiserfs/procfs.c:136: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027search_by_key_fs_changed\u0027\nfs/reiserfs/procfs.c:136: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027search_by_key_restarted\u0027\nfs/reiserfs/procfs.c:137: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027insert_item_restarted\u0027\nfs/reiserfs/procfs.c:137: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027paste_into_item_restarted\u0027\nfs/reiserfs/procfs.c:138: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027cut_from_item_restarted\u0027\nfs/reiserfs/procfs.c:139: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027delete_solid_item_restarted\u0027\nfs/reiserfs/procfs.c:139: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027delete_item_restarted\u0027\nfs/reiserfs/procfs.c:140: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027leaked_oid\u0027\nfs/reiserfs/procfs.c:140: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027leaves_removable\u0027\nfs/reiserfs/procfs.c: In function \u0027show_per_level\u0027:\nfs/reiserfs/procfs.c:184: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027balance_at\u0027\nfs/reiserfs/procfs.c:185: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027sbk_read_at\u0027\nfs/reiserfs/procfs.c:186: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027sbk_fs_changed\u0027\nfs/reiserfs/procfs.c:187: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027sbk_restarted\u0027\nfs/reiserfs/procfs.c:188: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027free_at\u0027\nfs/reiserfs/procfs.c:189: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027items_at\u0027\nfs/reiserfs/procfs.c:190: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027can_node_be_removed\u0027\nfs/reiserfs/procfs.c:191: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027lnum\u0027\nfs/reiserfs/procfs.c:192: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027rnum\u0027\nfs/reiserfs/procfs.c:193: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027lbytes\u0027\nfs/reiserfs/procfs.c:194: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027rbytes\u0027\nfs/reiserfs/procfs.c:195: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027get_neighbors\u0027\nfs/reiserfs/procfs.c:196: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027get_neighbors_restart\u0027\nfs/reiserfs/procfs.c:197: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027need_l_neighbor\u0027\nfs/reiserfs/procfs.c:197: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027need_r_neighbor\u0027\nfs/reiserfs/procfs.c: In function \u0027show_bitmap\u0027:\nfs/reiserfs/procfs.c:224: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027free_block\u0027\nfs/reiserfs/procfs.c:225: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027scan_bitmap\u0027\nfs/reiserfs/procfs.c:226: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027scan_bitmap\u0027\nfs/reiserfs/procfs.c:227: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027scan_bitmap\u0027\nfs/reiserfs/procfs.c:228: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027scan_bitmap\u0027\nfs/reiserfs/procfs.c:229: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027scan_bitmap\u0027\nfs/reiserfs/procfs.c:230: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027scan_bitmap\u0027\nfs/reiserfs/procfs.c:230: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027scan_bitmap\u0027\nfs/reiserfs/procfs.c: In function \u0027show_journal\u0027:\nfs/reiserfs/procfs.c:384: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027journal\u0027\nfs/reiserfs/procfs.c:385: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027journal\u0027\nfs/reiserfs/procfs.c:386: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027journal\u0027\nfs/reiserfs/procfs.c:387: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027journal\u0027\nfs/reiserfs/procfs.c:388: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027journal\u0027\nfs/reiserfs/procfs.c:389: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027journal\u0027\nfs/reiserfs/procfs.c:390: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027journal\u0027\nfs/reiserfs/procfs.c:391: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027journal\u0027\nfs/reiserfs/procfs.c:392: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027journal\u0027\nfs/reiserfs/procfs.c:393: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027journal\u0027\nfs/reiserfs/procfs.c:394: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027journal\u0027\nfs/reiserfs/procfs.c:395: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027journal\u0027\nfs/reiserfs/procfs.c:395: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027journal\u0027\nfs/reiserfs/procfs.c:395: error: \u0027reiserfs_proc_info_data_t\u0027 has no member named \u0027journal\u0027\nfs/reiserfs/procfs.c: In function \u0027reiserfs_proc_info_init\u0027:\nfs/reiserfs/procfs.c:504: warning: implicit declaration of function \u0027__PINFO\u0027\nfs/reiserfs/procfs.c:504: error: request for member \u0027lock\u0027 in something not a structure or union\nfs/reiserfs/procfs.c: In function \u0027reiserfs_proc_info_done\u0027:\nfs/reiserfs/procfs.c:544: error: request for member \u0027lock\u0027 in something not a structure or union\nfs/reiserfs/procfs.c:545: error: request for member \u0027exiting\u0027 in something not a structure or union\nfs/reiserfs/procfs.c:546: error: request for member \u0027lock\u0027 in something not a structure or union\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19c5d45a09312ca20cd1f9df3fd1a87fe0cb8aac",
      "tree": "de228e847ea4846e77cd64b35ca74eb5daa3d242",
      "parents": [
        "72c1bbf308c75a136803d2d76d0e18258be14c7a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue May 08 00:26:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:04 2007 -0700"
      },
      "message": "/proc/*/oom_score oops re badness\n\nEternal quest to make\n\n\twhile true; do cat /proc/fs/xfs/stat \u003e/dev/null 2\u003e/dev/null; done\n\twhile true; do find /proc -type f 2\u003e/dev/null | xargs cat \u003e/dev/null 2\u003e/dev/null; done\n\twhile true; do modprobe xfs; rmmod xfs; done\n\nwork reliably continues and now kernel oopses in the following way:\n\nBUG: unable to handle ... at virtual address 6b6b6b6b\nEIP is at badness\nprocess: cat\n\tproc_oom_score\n\tproc_info_read\n\tsys_fstat64\n\tvfs_read\n\tproc_info_read\n\tsys_read\n\nFailing code is prefetch hidden in list_for_each_entry() in badness().\nbadness() is reachable from two points. One is proc_oom_score, another\nis out_of_memory() \u003d\u003e select_bad_process() \u003d\u003e badness().\n\nSecond path grabs tasklist_lock, while first doesn\u0027t.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c23fbb6bcb3eb9cdf39a103edadf57bde8ce309c",
      "tree": "d79ab2278774de2c1a8061aa948ed068902e87b4",
      "parents": [
        "2793274298c4423d79701e9a8190f2940bf3c785"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue May 08 00:26:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:03 2007 -0700"
      },
      "message": "VFS: delay the dentry name generation on sockets and pipes\n\n1) Introduces a new method in \u0027struct dentry_operations\u0027.  This method\n   called d_dname() might be called from d_path() to build a pathname for\n   special filesystems.  It is called without locks.\n\n   Future patches (if we succeed in having one common dentry for all\n   pipes/sockets) may need to change prototype of this method, but we now\n   use : char *d_dname(struct dentry *dentry, char *buffer, int buflen);\n\n2) Adds a dynamic_dname() helper function that eases d_dname() implementations\n\n3) Defines d_dname method for sockets : No more sprintf() at socket\n   creation.  This is delayed up to the moment someone does an access to\n   /proc/pid/fd/...\n\n4) Defines d_dname method for pipes : No more sprintf() at pipe\n   creation.  This is delayed up to the moment someone does an access to\n   /proc/pid/fd/...\n\nA benchmark consisting of 1.000.000 calls to pipe()/close()/close() gives a\n*nice* speedup on my Pentium(M) 1.6 Ghz :\n\n3.090 s instead of 3.450 s\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2793274298c4423d79701e9a8190f2940bf3c785",
      "tree": "8cc0cf9889f3426b9ca50d3cfa15e775ad31d2d8",
      "parents": [
        "c5141e6d64ab5c48a5e31413c7a6cdda84ac1d52"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue May 08 00:26:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:03 2007 -0700"
      },
      "message": "add file position info to proc\n\nAdd support for finding out the current file position, open flags and\npossibly other info in the future.\n\nThese new entries are added:\n\n  /proc/PID/fdinfo/FD\n  /proc/PID/task/TID/fdinfo/FD\n\nFor each fd the information is provided in the following format:\n\npos:\t1234\nflags:\t0100002\n\n[bunk@stusta.de: make struct proc_fdinfo_file_operations static]\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c5141e6d64ab5c48a5e31413c7a6cdda84ac1d52",
      "tree": "95a93ed2f56e98f6b6659ab906faee7abb252a49",
      "parents": [
        "d9a2f4a4945ebff54c9a011e4dc6e92d899ae26d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue May 08 00:26:15 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:03 2007 -0700"
      },
      "message": "procfs: reorder struct pid_dentry to save space on 64bit archs, and constify them\n\nChange the order of fields of struct pid_entry (file fs/proc/base.c) in order\nto avoid a hole on 64bit archs.  (8 bytes saved per object)\n\nAlso change all pid_entry arrays to be const qualified, to make clear they\nmust not be modified.\n\nBefore (on x86_64) :\n\n# size fs/proc/base.o\n   text    data     bss     dec     hex filename\n  15549    2192       0   17741    454d fs/proc/base.o\n\nAfter :\n\n# size fs/proc/base.o\n   text    data     bss     dec     hex filename\n  17229     176       0   17405    43fd fs/proc/base.o\n\nThats 336 bytes saved on kernel size on x86_64\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5096add84b9e96e2e0a9c72675c442fe5433388a",
      "tree": "f0444013cb7db32596d2b6febafc1ee4c2a4ea1f",
      "parents": [
        "4a1ccb5b1eff949a90ab830869cb23d6609c3d5f"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "kees@outflux.net",
        "time": "Tue May 08 00:26:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:02 2007 -0700"
      },
      "message": "proc: maps protection\n\nThe /proc/pid/ \"maps\", \"smaps\", and \"numa_maps\" files contain sensitive\ninformation about the memory location and usage of processes.  Issues:\n\n- maps should not be world-readable, especially if programs expect any\n  kind of ASLR protection from local attackers.\n- maps cannot just be 0400 because \"-D_FORTIFY_SOURCE\u003d2 -O2\" makes glibc\n  check the maps when %n is in a *printf call, and a setuid(getuid())\n  process wouldn\u0027t be able to read its own maps file.  (For reference\n  see http://lkml.org/lkml/2006/1/22/150)\n- a system-wide toggle is needed to allow prior behavior in the case of\n  non-root applications that depend on access to the maps contents.\n\nThis change implements a check using \"ptrace_may_attach\" before allowing\naccess to read the maps contents.  To control this protection, the new knob\n/proc/sys/kernel/maps_protect has been added, with corresponding updates to\nthe procfs documentation.\n\n[akpm@linux-foundation.org: build fixes]\n[akpm@linux-foundation.org: New sysctl numbers are old hat]\nSigned-off-by: Kees Cook \u003ckees@outflux.net\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5843205b55d0ec9564289d4b41bab093ae15f51a",
      "tree": "c8a1425db57354635137b33c5c44e33441bbbc53",
      "parents": [
        "acb0c854fa9483fa85e377b9f342352ea814a580"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 08 00:25:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:02 2007 -0700"
      },
      "message": "namei.c: remove utterly outdated comment\n\nWe don\u0027t have a routine called namei() anymore since at least 2.3.x, and\nthe comment is just totally out of sync with the current lookup logic.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "acb0c854fa9483fa85e377b9f342352ea814a580",
      "tree": "654c7049c01b97314f2b93671b7d0c315a40adcf",
      "parents": [
        "578c8183c116e623d53b05d4c79762d053c7090f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 08 00:25:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:02 2007 -0700"
      },
      "message": "vfs: remove superflous sb \u003d\u003d NULL checks\n\ninode-\u003ei_sb is always set, not need to check for it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "578c8183c116e623d53b05d4c79762d053c7090f",
      "tree": "783cb8471e5efdb486fc7dd4f5de53038a96f8a7",
      "parents": [
        "59cd0cbc75367b82f704f63b104117462275060d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue May 08 00:25:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:02 2007 -0700"
      },
      "message": "proc: remove pathetic -\u003edeleted WARN_ON\n\nWARN_ON(de \u0026\u0026 de-\u003edeleted); is sooo unreliable. Why?\n\nproc_lookup\t\t\t\tremove_proc_entry\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\t\t\t\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nlock_kernel();\nspin_lock(\u0026proc_subdir_lock);\n[find proc entry]\nspin_unlock(\u0026proc_subdir_lock);\n\t\t\t\t\tspin_lock(\u0026proc_subdir_lock);\n\t\t\t\t\t[find proc entry]\n\nproc_get_inode\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nWARN_ON(de \u0026\u0026 de-\u003edeleted);\t\t\t...\n\n\t\t\t\t\tif (!atomic_read(\u0026de-\u003ecount))\n\t\t\t\t\t\tfree_proc_entry(de);\n\t\t\t\t\telse\n\t\t\t\t\t\tde-\u003edeleted \u003d 1;\n\nSo, if you have some strange oops [1], and doesn\u0027t see this WARN_ON it means\nnothing.\n\n[1] try_module_get() of module which doesn\u0027t exist, two lines below\n    should suffice, or not?\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59cd0cbc75367b82f704f63b104117462275060d",
      "tree": "695c4f7af4cf840a7e22e7767e1b5705e0b6d8d1",
      "parents": [
        "7695650a924a6859910c8c19dfa43b4d08224d66"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Tue May 08 00:25:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:02 2007 -0700"
      },
      "message": "Fix race between proc_readdir and remove_proc_entry\n\nFix the following race:\n\nproc_readdir\t\t\t\tremove_proc_entry\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\t\t\t\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nspin_lock(\u0026proc_subdir_lock);\n[choose PDE to start filldir from]\nspin_unlock(\u0026proc_subdir_lock);\n\t\t\t\t\tspin_lock(\u0026proc_subdir_lock);\n\t\t\t\t\t[find PDE]\n\t\t\t\t\t[free PDE, refcount is 0]\n\t\t\t\t\tspin_unlock(\u0026proc_subdir_lock);\n\t\t    /* boom */\nif (filldir(dirent, de-\u003ename, ...\n\n[de_put on error path --adobriyan]\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7695650a924a6859910c8c19dfa43b4d08224d66",
      "tree": "5947c3e1b24600b6440468c11b30feeef31eee2c",
      "parents": [
        "79c0b2df79eb56fc71e54c75cd7fb3acf84370f9"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@openvz.org",
        "time": "Tue May 08 00:25:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:01 2007 -0700"
      },
      "message": "Fix race between proc_get_inode() and remove_proc_entry()\n\nproc_lookup\t\t\t\tremove_proc_entry\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\t\t\t\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nlock_kernel();\nspin_lock(\u0026proc_subdir_lock);\n[find PDE with refcount 0]\nspin_unlock(\u0026proc_subdir_lock);\n\t\t\t\t\tspin_lock(\u0026proc_subdir_lock);\n\t\t\t\t\t[find PDE with refcount 0]\n\t\t\t\t\t[check refcount and free PDE]\n\t\t\t\t\tspin_unlock(\u0026proc_subdir_lock);\nproc_get_inode:\n\tde_get(de); /* boom */\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79c0b2df79eb56fc71e54c75cd7fb3acf84370f9",
      "tree": "f19be816fef3565b7f9cc746786e29fee0ac62e6",
      "parents": [
        "880afc4d76af452267174b5989943f081c1db2c0"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue May 08 00:25:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:01 2007 -0700"
      },
      "message": "add filesystem subtype support\n\nThere\u0027s a slight problem with filesystem type representation in fuse\nbased filesystems.\n\nFrom the kernel\u0027s view, there are just two filesystem types: fuse and\nfuseblk.  From the user\u0027s view there are lots of different filesystem\ntypes.  The user is not even much concerned if the filesystem is fuse based\nor not.  So there\u0027s a conflict of interest in how this should be\nrepresented in fstab, mtab and /proc/mounts.\n\nThe current scheme is to encode the real filesystem type in the mount\nsource.  So an sshfs mount looks like this:\n\n  sshfs#user@server:/   /mnt/server    fuse   rw,nosuid,nodev,...\n\nThis url-ish syntax works OK for sshfs and similar filesystems.  However\nfor block device based filesystems (ntfs-3g, zfs) it doesn\u0027t work, since\nthe kernel expects the mount source to be a real device name.\n\nA possibly better scheme would be to encode the real type in the type\nfield as \"type.subtype\".  So fuse mounts would look like this:\n\n  /dev/hda1       /mnt/windows   fuseblk.ntfs-3g   rw,...\n  user@server:/   /mnt/server    fuse.sshfs        rw,nosuid,nodev,...\n\nThis patch adds the necessary code to the kernel so that this can be\ncorrectly displayed in /proc/mounts.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6192bd536f96c6a0d969081bc71ae24f9319bfdc",
      "tree": "07056ed061df4070d22198b5b6692d102aeacc00",
      "parents": [
        "44171df8e944f0bc8f7fa3f6d080f3e671431989"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Tue May 08 00:25:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:01 2007 -0700"
      },
      "message": "epoll: optimizations and cleanups\n\nEpoll is doing multiple passes over the ready set at the moment, because of\nthe constraints over the f_op-\u003epoll() call.  Looking at the code again, I\nnoticed that we already hold the epoll semaphore in read, and this\n(together with other locking conditions that hold while doing an\nepoll_wait()) can lead to a smarter way [1] to \"ship\" events to userspace\n(in a single pass).\n\nThis is a stress application that can be used to test the new code.  It\nspwans multiple thread and call epoll_wait() and epoll_ctl() from many\nthreads.  Stress tested on my dual Opteron 254 w/out any problems.\n\nhttp://www.xmailserver.org/totalmess.c\n\nThis is not a benchmark, just something that tries to stress and exploit\npossible problems with the new code.\nAlso, I made a stupid micro-benchmark:\n\nhttp://www.xmailserver.org/epwbench.c\n\n[1] Considering that epoll must be thread-safe, there are five ways we can\n    be hit during an epoll_wait() transfer loop (ep_send_events()):\n\n    1) The epoll fd going away and calling ep_free\n       This just can\u0027t happen, since we did an fget() in sys_epoll_wait\n\n    2) An epoll_ctl(EPOLL_CTL_DEL)\n       This can\u0027t happen because epoll_ctl() gets ep-\u003esem in write, and\n       we\u0027re holding it in read during ep_send_events()\n\n    3) An fd stored inside the epoll fd going away\n       This can\u0027t happen because in eventpoll_release_file() we get\n       ep-\u003esem in write, and we\u0027re holding it in read during\n       ep_send_events()\n\n    4) Another epoll_wait() happening on another thread\n       They both can be inside ep_send_events() at the same time, we get\n       (splice) the ready-list under the spinlock, so each one will get\n       its own ready list. Note that an fd cannot be at the same time\n       inside more than one ready list, because ep_poll_callback() will\n       not re-queue it if it sees it already linked:\n\n       if (ep_is_linked(\u0026epi-\u003erdllink))\n                goto is_linked;\n\n       Another case that can happen, is two concurrent epoll_wait(),\n       coming in with a userspace event buffer of size, say, ten.\n       Suppose there are 50 event ready in the list. The first\n       epoll_wait() will \"steal\" the whole list, while the second, seeing\n       no events, will go to sleep. But at the end of ep_send_events() in\n       the first epoll_wait(), we will re-inject surplus ready fds, and we\n       will trigger the proper wake_up to the second epoll_wait().\n\n    5) ep_poll_callback() hitting us asyncronously\n       This is the tricky part. As I said above, the ep_is_linked() test\n       done inside ep_poll_callback(), will guarantee us that until the\n       item will result linked to a list, ep_poll_callback() will not try\n       to re-queue it again (read, write data on any of its members). When\n       we do a list_del() in ep_send_events(), the item will still satisfy\n       the ep_is_linked() test (whatever data is written in prev/next,\n       it\u0027ll never be its own pointer), so ep_poll_callback() will still\n       leave us alone. It\u0027s only after the eventual smp_mb()+INIT_LIST_HEAD(\u0026epi-\u003erdllink)\n       that it\u0027ll become visible to ep_poll_callback(), but at the point\n       we\u0027re already past it.\n\n[akpm@osdl.org: 80 cols]\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fedee54d8f12cdfde299f181fec5c62b0c647ad6",
      "tree": "815a5de82d0c242bb1e6a012a237d0715c3b08af",
      "parents": [
        "753e9c5cd9b123156152c66c816f751954b15e53"
      ],
      "author": {
        "name": "Dmitriy Monakhov",
        "email": "dmonakhov@sw.ru",
        "time": "Tue May 08 00:25:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:01 2007 -0700"
      },
      "message": "ext3: dirindex error pointer issues\n\n- ext3_dx_find_entry() exit with out setting proper error pointer\n\n- do_split() exit with out setting proper error pointer\n  it is realy painful because many callers contain folowing code:\n\n          de \u003d do_split(handle,dir, \u0026bh, frame, \u0026hinfo, \u0026retval);\n          if (!(de))\n                       return retval;\n          \u003c\u003c\u003c WOW retval wasn\u0027t changed by do_split(), so caller failed\n          \u003c\u003c\u003c but return SUCCESS :)\n\n- Rearrange do_split() error path. Current error path is realy ugly, all\n  this up and down jump stuff doesn\u0027t make code easy to understand.\n\n[dmonakhov@sw.ru: fix annoying fake error messages]\nSigned-off-by: Monakhov Dmitriy \u003cdmonakhov@openvz.org\u003e\nCc: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Monakhov Dmitriy \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3222c4ecc649c4ae568e61dda9349482401b501",
      "tree": "d96614ef67d947a3dd8ab0929a4755bce9fdbcc1",
      "parents": [
        "4fc75ff4816c3483b4b772b2f6cb3d8fd88ca547"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Tue May 08 00:25:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:00 2007 -0700"
      },
      "message": "Merge sys_clone()/sys_unshare() nsproxy and namespace handling\n\nsys_clone() and sys_unshare() both makes copies of nsproxy and its associated\nnamespaces.  But they have different code paths.\n\nThis patch merges all the nsproxy and its associated namespace copy/clone\nhandling (as much as possible).  Posted on container list earlier for\nfeedback.\n\n- Create a new nsproxy and its associated namespaces and pass it back to\n  caller to attach it to right process.\n\n- Changed all copy_*_ns() routines to return a new copy of namespace\n  instead of attaching it to task-\u003ensproxy.\n\n- Moved the CAP_SYS_ADMIN checks out of copy_*_ns() routines.\n\n- Removed unnessary !ns checks from copy_*_ns() and added BUG_ON()\n  just incase.\n\n- Get rid of all individual unshare_*_ns() routines and make use of\n  copy_*_ns() instead.\n\n[akpm@osdl.org: cleanups, warning fix]\n[clg@fr.ibm.com: remove dup_namespaces() declaration]\n[serue@us.ibm.com: fix CONFIG_IPC_NS\u003dn, clone(CLONE_NEWIPC) retval]\n[akpm@linux-foundation.org: fix build with CONFIG_SYSVIPC\u003dn]\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \u003ccontainers@lists.osdl.org\u003e\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4fc75ff4816c3483b4b772b2f6cb3d8fd88ca547",
      "tree": "f2169f152113af815e69d74ca40c282439e7c3f6",
      "parents": [
        "af7c693f146069a1f44739acef9abf1bc27f7247"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue May 08 00:25:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:00 2007 -0700"
      },
      "message": "exec: fix remove_arg_zero\n\nPetr Tesarik discovered a problem in remove_arg_zero(). He writes:\n\n When a script is loaded, load_script() replaces argv[0] with the\n name of the interpreter and the filename passed to the exec syscall.\n However, there is no guarantee that the length of the interpreter\n name plus the length of the filename is greater than the length of\n the original argv[0]. If the difference happens to cross a page boundary,\n setup_arg_pages() will call put_dirty_page() [aka install_arg_page()]\n with an address outside the VMA.\n\n Therefore, remove_arg_zero() must free all pages which would be unused\n after the argument is removed.\n\nSo, rewrite the remove_arg_zero function without gotos, with a few comments,\nand with the commonly used explicit index/offset. This fixes the problem\nand makes it easier to understand as well.\n\n[a.p.zijlstra@chello.nl: add comment]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Petr Tesarik \u003cptesarik@suse.cz\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "f87367a6b1e3ec1fd440158e5eb357fbd5c2288e"
}
