)]}'
{
  "log": [
    {
      "commit": "9c24624727f6d6c460e45762a408ca5f5b9b8ef2",
      "tree": "39f41dc5e46a9f0e1151963eb1d4f2b7ff77ee3d",
      "parents": [
        "6ee5a399d6a92a52646836a6e10faf255c16393e"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Dec 09 13:14:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:54 2008 -0800"
      },
      "message": "KSYM_SYMBOL_LEN fixes\n\nMiles Lane tailing /sys files hit a BUG which Pekka Enberg has tracked\nto my 966c8c12dc9e77f931e2281ba25d2f0244b06949 sprint_symbol(): use\nless stack exposing a bug in slub\u0027s list_locations() -\nkallsyms_lookup() writes a 0 to namebuf[KSYM_NAME_LEN-1], but that was\nbeyond the end of page provided.\n\nThe 100 slop which list_locations() allows at end of page looks roughly\nenough for all the other stuff it might print after the symbol before\nit checks again: break out KSYM_SYMBOL_LEN earlier than before.\n\nLatencytop and ftrace and are using KSYM_NAME_LEN buffers where they\nneed KSYM_SYMBOL_LEN buffers, and vmallocinfo a 2*KSYM_NAME_LEN buffer\nwhere it wants a KSYM_SYMBOL_LEN buffer: fix those before anyone copies\nthem.\n\n[akpm@linux-foundation.org: ftrace.h needs module.h]\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc Miles Lane \u003cmiles.lane@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\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": "6ee5a399d6a92a52646836a6e10faf255c16393e",
      "tree": "52966233a5093c0d7cdeb244be9b6c3c8e1760c4",
      "parents": [
        "aa6f14796630c8b03c11e782484aec2aee05e671"
      ],
      "author": {
        "name": "Dmitri Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Dec 09 13:14:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:53 2008 -0800"
      },
      "message": "inotify: fix IN_ONESHOT unmount event watcher\n\nOn umount two event will be dispatched to watcher:\n\n1: inotify_dev_queue_event(.., IN_UNMOUNT,..)\n2: remove_watch(watch, dev)\n    -\u003einotify_dev_queue_event(.., IN_IGNORED, ..)\n\nBut if watcher has IN_ONESHOT bit set then the watcher will be released\ninside first event.  Which result in accessing invalid object later.  IMHO\nit is not pure regression.  This bug wasn\u0027t triggered while initial\ninotify interface testing phase because of another bug in IN_ONESHOT\nhandling logic :)\n\n  commit ac74c00e499ed276a965e5b5600667d5dc04a84a\n  Author: Ulisses Furquim \u003culissesf@gmail.com\u003e\n  Date:   Fri Feb 8 04:18:16 2008 -0800\n    inotify: fix check for one-shot watches before destroying them\n    As the IN_ONESHOT bit is never set when an event is sent we must check it\n    in the watch\u0027s mask and not in the event\u0027s mask.\n\nTESTCASE:\nmkdir mnt\nmount -ttmpfs none mnt\nmkdir mnt/d\n./inotify mnt/d\u0026\numount mnt ## \u003c\u003c lockup or crash here\n\nTESTSOURCE:\n/* gcc -oinotify inotify.c */\n#include \u003cstdio.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003csys/inotify.h\u003e\n\nint main(int argc, char **argv)\n{\n        char buf[1024];\n        struct inotify_event *ie;\n        char *p;\n        int i;\n        ssize_t l;\n\n        p \u003d argv[1];\n        i \u003d inotify_init();\n        inotify_add_watch(i, p, ~0);\n\n        l \u003d read(i, buf, sizeof(buf));\n        printf(\"read %d bytes\\n\", l);\n        ie \u003d (struct inotify_event *) buf;\n        printf(\"event mask: %d\\n\", ie-\u003emask);\n\treturn 0;\n}\n\nSigned-off-by: Dmitri Monakhov \u003cdmonakhov@openvz.org\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Robert Love \u003crlove@google.com\u003e\nCc: Ulisses Furquim \u003culissesf@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": "49c50342c728344b79c8f9e8293637fe80ef5ad5",
      "tree": "dec4b310b517d03b62181725026e85bb0cdcc2a0",
      "parents": [
        "653d22c0f5c41496c0e949ef5d141ab37c0b0580"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Tue Dec 09 13:14:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:53 2008 -0800"
      },
      "message": "pagemap: fix 32-bit pagemap regression\n\nThe large pages fix from bcf8039ed45 broke 32-bit pagemap by pulling the\npagemap entry code out into a function with the wrong return type.\nPagemap entries are 64 bits on all systems and unsigned long is only 32\nbits on 32-bit systems.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nReported-by: Doug Graham \u003cdgraham@nortel.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.26.x, 2.6.27.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02d211688727ad02bb4555b1aa8ae2de16b21b39",
      "tree": "2ee10b2f0cbfb615c40a2df98627426b8543d6cd",
      "parents": [
        "71c5576fbd809f2015f4eddf72e501e298720cf3"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Dec 09 13:14:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:52 2008 -0800"
      },
      "message": "revert \"percpu_counter: new function percpu_counter_sum_and_set\"\n\nRevert\n\n    commit e8ced39d5e8911c662d4d69a342b9d053eaaac4e\n    Author: Mingming Cao \u003ccmm@us.ibm.com\u003e\n    Date:   Fri Jul 11 19:27:31 2008 -0400\n\n        percpu_counter: new function percpu_counter_sum_and_set\n\nAs described in\n\n\trevert \"percpu counter: clean up percpu_counter_sum_and_set()\"\n\nthe new percpu_counter_sum_and_set() is racy against updates to the\ncpu-local accumulators on other CPUs.  Revert that change.\n\nThis means that ext4 will be slow again.  But correct.\n\nReported-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.27.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71c5576fbd809f2015f4eddf72e501e298720cf3",
      "tree": "b2d1ac56e6c3c9a60946a180cd45d493fc60738a",
      "parents": [
        "fd3d664fef97cf01f8e28fe0b024ad52f3bbc1bc"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Dec 09 13:14:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:52 2008 -0800"
      },
      "message": "revert \"percpu counter: clean up percpu_counter_sum_and_set()\"\n\nRevert\n\n    commit 1f7c14c62ce63805f9574664a6c6de3633d4a354\n    Author: Mingming Cao \u003ccmm@us.ibm.com\u003e\n    Date:   Thu Oct 9 12:50:59 2008 -0400\n\n        percpu counter: clean up percpu_counter_sum_and_set()\n\nBefore this patch we had the following:\n\npercpu_counter_sum(): return the percpu_counter\u0027s value\n\npercpu_counter_sum_and_set(): return the percpu_counter\u0027s value, copying\nthat value into the central value and zeroing the per-cpu counters before\nreturning.\n\nAfter this patch, percpu_counter_sum_and_set() has gone, and\npercpu_counter_sum() gets the old percpu_counter_sum_and_set()\nfunctionality.\n\nProblem is, as Eric points out, the old percpu_counter_sum_and_set()\nfunctionality was racy and wrong.  It zeroes out counters on \"other\" cpus,\nwithout holding any locks which will prevent races agaist updates from\nthose other CPUS.\n\nThis patch reverts 1f7c14c62ce63805f9574664a6c6de3633d4a354.  This means\nthat percpu_counter_sum_and_set() still has the race, but\npercpu_counter_sum() does not.\n\nNote that this is not a simple revert - ext4 has since started using\npercpu_counter_sum() for its dirty_blocks counter as well.\n\nNote that this revert patch changes percpu_counter_sum() semantics.\n\nBefore the patch, a call to percpu_counter_sum() will bring the counter\u0027s\ncentral counter mostly up-to-date, so a following percpu_counter_read()\nwill return a close value.\n\nAfter this patch, a call to percpu_counter_sum() will leave the counter\u0027s\ncentral accumulator unaltered, so a subsequent call to\npercpu_counter_read() can now return a significantly inaccurate result.\n\nIf there is any code in the tree which was introduced after\ne8ced39d5e8911c662d4d69a342b9d053eaaac4e was merged, and which depends\nupon the new percpu_counter_sum() semantics, that code will break.\n\nReported-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\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": "a4f4d6df537368297a84e6b9444f403f99bf59f6",
      "tree": "6d2f25c48d2f46215424476182e09ae7f14cc7aa",
      "parents": [
        "218d11a8b071b23b76c484fd5f72a4fe3306801e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 08 18:24:18 2008 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 08 19:49:32 2008 -0800"
      },
      "message": "EXPORTFS: handle NULL returns from fh_to_dentry()/fh_to_parent()\n\nWhile 440037287c5 \"[PATCH] switch all filesystems over to\nd_obtain_alias\" removed some cases where fh_to_dentry() and\nfh_to_parent() could return NULL, there are still a few NULL returns\nleft in individual filesystems.  Thus it was a mistake for that commit\nto remove the handling of NULL returns in the callers.\n\nRevert those parts of 440037287c5 which removed the NULL handling.\n\n(We could, alternatively, modify all implementations to return -ESTALE\ninstead of NULL, but that proves to require fixing a number of\nfilesystems, and in some cases it\u0027s arguably more natural to return\nNULL.)\n\nThanks to David for original patch and Linus, Christoph, and Hugh for\nreview.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "218d11a8b071b23b76c484fd5f72a4fe3306801e",
      "tree": "6656f841973496b0717117f8031d22bea019fd00",
      "parents": [
        "f2f1fa78a155524b849edf359e42a3001ea652c0"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Fri Dec 05 16:12:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 05 15:35:10 2008 -0800"
      },
      "message": "Fix a race condition in FASYNC handling\n\nChangeset a238b790d5f99c7832f9b73ac8847025815b85f7 (Call fasync()\nfunctions without the BKL) introduced a race which could leave\nfile-\u003ef_flags in a state inconsistent with what the underlying\ndriver/filesystem believes.  Revert that change, and also fix the same\nraces in ioctl_fioasync() and ioctl_fionbio().\n\nThis is a minimal, short-term fix; the real fix will not involve the\nBKL.\n\nReported-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: stable@kernel.org\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbeba4c35c252b2e961f09ce6ebe76b2cd5e7e3e",
      "tree": "3fb4c0ae65f0c13be884280755cf65314a93ebce",
      "parents": [
        "6df944c5f8194a1010f7166bcdd48667637f1af8",
        "2cbed8906fd1f3c6cc17cdf8aac1bfad2da7960c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 04 21:45:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 04 21:45:44 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev:\n  [PATCH] fix bogus argument of blkdev_put() in pktcdvd\n  [PATCH 2/2] documnt FMODE_ constants\n  [PATCH 1/2] kill FMODE_NDELAY_NOW\n  [PATCH] clean up blkdev_get a little bit\n  [PATCH] Fix block dev compat ioctl handling\n  [PATCH] kill obsolete temporary comment in swsusp_close()\n"
    },
    {
      "commit": "576a488a27f267af203f3ea69c700a1612335e9f",
      "tree": "8c2cad9d20c5153a3eaa0b7f0b9259ac9a4fd676",
      "parents": [
        "feaf3848a813a106f163013af6fcf6c4bfec92d9"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Dec 04 09:09:34 2008 +1100"
      },
      "committer": {
        "name": "Lachlan McIlroy",
        "email": "lachlan@redback.melbourne.sgi.com",
        "time": "Fri Dec 05 15:39:13 2008 +1100"
      },
      "message": "[XFS] Fix hang after disallowed rename across directory quota domains\n\nWhen project quota is active and is being used for directory tree\nquota control, we disallow rename outside the current directory\ntree. This requires a check to be made after all the inodes\ninvolved in the rename are locked. We fail to unlock the inodes\ncorrectly if we disallow the rename when the target is outside the\ncurrent directory tree. This results in a hang on the next access\nto the inodes involved in failed rename.\n\nReported-by: Arkadiusz Miskiewicz \u003carekm@maven.pl\u003e\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nTested-by: Arkadiusz Miskiewicz \u003carekm@maven.pl\u003e\nSigned-off-by: Lachlan McIlroy \u003clachlan@sgi.com\u003e\n"
    },
    {
      "commit": "fd4ce1acd0f8558033b1a6968001552bd7671e6d",
      "tree": "7ce54f2b2c967fe2315917ffa2eb8eb7d47e7a2b",
      "parents": [
        "ebbefc011e56bd85b4745d01e5b8d7d05d95ed5d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Nov 05 14:58:42 2008 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 04 04:22:57 2008 -0500"
      },
      "message": "[PATCH 1/2] kill FMODE_NDELAY_NOW\n\nUpdate FMODE_NDELAY before each ioctl call so that we can kill the\nmagic FMODE_NDELAY_NOW.  It would be even better to do this directly\nin setfl(), but for that we\u0027d need to have FMODE_NDELAY for all files,\nnot just block special files.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ebbefc011e56bd85b4745d01e5b8d7d05d95ed5d",
      "tree": "72fbb3af072efa57f4d0562b3be512edf280fcf7",
      "parents": [
        "1c925604e1038c7c65b91a92d14dc972b3a70a97"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Nov 05 14:54:41 2008 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 04 04:22:56 2008 -0500"
      },
      "message": "[PATCH] clean up blkdev_get a little bit\n\nThe way the bd_claim for the FMODE_EXCL case is implemented is rather\nconfusing.  Clean it up to the most logical style.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2433c41789d6aa6797ca747707b7764e88e4fb6d",
      "tree": "a4f1706a1038bb8df671807c9ead0fa6abf9b4ed",
      "parents": [
        "cd92a17eec752f8c948c4b6ab93dc099ce55b8cb",
        "a8d82d9b950213b66b22c9e7c63a058841de2394"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 03 16:40:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 03 16:40:37 2008 -0800"
      },
      "message": "Merge branch \u0027for-2.6.28\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.28\u0027 of git://linux-nfs.org/~bfields/linux:\n  NLM: client-side nlm_lookup_host() should avoid matching on srcaddr\n  nfsd: use of unitialized list head on error exit in nfs4recover.c\n  Add a reference to sunrpc in svc_addsock\n  nfsd: clean up grace period on early exit\n"
    },
    {
      "commit": "51eaaa677691f8da526ce5a3d89e08ee2d2669ce",
      "tree": "dbe679a849eb41990ffdf54d82518e5f45965271",
      "parents": [
        "b7d626606201c397319b40721ca558b7e54040d5",
        "3477d204658733aa3a87d3ae03b0327c1e599517"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 02 15:56:55 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 02 15:56:55 2008 -0800"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6:\n  UBIFS: pre-allocate bulk-read buffer\n  UBIFS: do not allocate too much\n  UBIFS: do not print scary memory allocation warnings\n  UBIFS: allow for gaps when dirtying the LPT\n  UBIFS: fix compilation warnings\n  MAINTAINERS: change UBI/UBIFS git tree URLs\n  UBIFS: endian handling fixes and annotations\n  UBIFS: remove printk\n"
    },
    {
      "commit": "03801553630c4bec6682108800c9b2de64bdbd37",
      "tree": "d9fc2f4b0de853c0361b107021a567fa36d6383f",
      "parents": [
        "ced69090c573f1db253fb6b84ec537f4f3d7e2f4"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Dec 01 13:14:04 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 19:55:25 2008 -0800"
      },
      "message": "ntfs: don\u0027t fool kernel-doc\n\nkernel-doc handles macros now (it has for quite some time), so change the\nntfs_debug() macro\u0027s kernel-doc to be just before the macro instead of\nbefore a phony function prototype.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ef9964e6d1b911b78709f144000aacadd0ebc21",
      "tree": "30667d0a2f8e53973ff48d2c02df48bbc6fe74aa",
      "parents": [
        "b7d271df873c5121a4ca1c70dea126b5920ec2f1"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Mon Dec 01 13:13:55 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 19:55:24 2008 -0800"
      },
      "message": "epoll: introduce resource usage limits\n\nIt has been thought that the per-user file descriptors limit would also\nlimit the resources that a normal user can request via the epoll\ninterface.  Vegard Nossum reported a very simple program (a modified\nversion attached) that can make a normal user to request a pretty large\namount of kernel memory, well within the its maximum number of fds.  To\nsolve such problem, default limits are now imposed, and /proc based\nconfiguration has been introduced.  A new directory has been created,\nnamed /proc/sys/fs/epoll/ and inside there, there are two configuration\npoints:\n\n  max_user_instances \u003d Maximum number of devices - per user\n\n  max_user_watches   \u003d Maximum number of \"watched\" fds - per user\n\nThe current default for \"max_user_watches\" limits the memory used by epoll\nto store \"watches\", to 1/32 of the amount of the low RAM.  As example, a\n256MB 32bit machine, will have \"max_user_watches\" set to roughly 90000.\nThat should be enough to not break existing heavy epoll users.  The\ndefault value for \"max_user_instances\" is set to 128, that should be\nenough too.\n\nThis also changes the userspace, because a new error code can now come out\nfrom EPOLL_CTL_ADD (-ENOSPC).  The EMFILE from epoll_create() was already\nlisted, so that should be ok.\n\n[akpm@linux-foundation.org: use get_current_user()]\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nReported-by: Vegard Nossum \u003cvegardno@ifi.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": "d6b58f89f7257c8099c2260e2bea042a917d6cdf",
      "tree": "0dea65bf25647146c6d4b5dcf022f20b0fdb4006",
      "parents": [
        "07d9a3954a68764aefe16855bcd0f86deeb5c825"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Nov 21 14:06:55 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Dec 01 14:46:58 2008 -0800"
      },
      "message": "ocfs2: fix regression in ocfs2_read_blocks_sync()\n\nWe\u0027re panicing in ocfs2_read_blocks_sync() if a jbd-managed buffer is seen.\nAt first glance, this seems ok but in reality it can happen. My test case\nwas to just run \u0027exorcist\u0027. A struct inode is being pushed out of memory but\nis then re-read at a later time, before the buffer has been checkpointed by\njbd. This causes a BUG to be hit in ocfs2_read_blocks_sync().\n\nReviewed-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "07d9a3954a68764aefe16855bcd0f86deeb5c825",
      "tree": "16721b539e67d78eee336f124a89b9a089175773",
      "parents": [
        "a2eee69b814854095ed835a6eb64b8efc220cd6a"
      ],
      "author": {
        "name": "Coly Li",
        "email": "coyli@suse.de",
        "time": "Mon Nov 17 12:38:22 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Dec 01 14:46:55 2008 -0800"
      },
      "message": "ocfs2: fix return value set in init_dlmfs_fs()\n\nIn init_dlmfs_fs(), if calling kmem_cache_create() failed, the code will use return value from\ncalling bdi_init(). The correct behavior should be set status as -ENOMEM before going to \"bail:\".\n\nSigned-off-by: Coly Li \u003ccoyli@suse.de\u003e\nAcked-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "07f9eebcdfaeefc8f807fa1bcce1d7c3ae6661b1",
      "tree": "838ab2a397e1edb3dcfb55b54144f9fb0524cb75",
      "parents": [
        "66f502a416f18cd36179290746aa53736c6b2828"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Nov 17 12:28:48 2008 -0600"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Dec 01 14:46:45 2008 -0800"
      },
      "message": "ocfs2: fix wake_up in unlock_ast\n\nIn ocfs2_unlock_ast(), call wake_up() on lockres before releasing\nthe spin lock on it.  As soon as the spin lock is released, the\nlockres can be freed.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "66f502a416f18cd36179290746aa53736c6b2828",
      "tree": "30b538d2310b49cbcda079f6010c5850d6a146c0",
      "parents": [
        "3b5da0189c93160e44b878d2c72e9552d642497c"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Nov 10 16:24:57 2008 -0600"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Dec 01 14:46:39 2008 -0800"
      },
      "message": "ocfs2: initialize stack_user lvbptr\n\nThe locking_state dump, ocfs2_dlm_seq_show, reads the lvb on locks where it\nhas not yet been initialized by a lock call.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "3b5da0189c93160e44b878d2c72e9552d642497c",
      "tree": "980f6fd7f8f4fcd59f0d48302d2ff9ae8620be5d",
      "parents": [
        "6a1214113090905aca6a492fc8ef10d84c608a69"
      ],
      "author": {
        "name": "Coly Li",
        "email": "coyli@suse.de",
        "time": "Wed Nov 05 15:16:24 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Dec 01 14:46:31 2008 -0800"
      },
      "message": "ocfs2: comments typo fix\n\nThis patch fixes two typos in comments of ocfs2.\n\nSigned-off-by: Coly Li \u003ccoyli@suse.de\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "8e36a5d6ad587d906f0ff677974e5edb0335db30",
      "tree": "ff005c92b621a0f7da159bfaf45bc0fcc4af4b28",
      "parents": [
        "9bd062d9eaf9e790330f37d9f4518e1b95131f6c",
        "a98ee8c1c707fe3210b00ef9f806ba8e2bf35504"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 14:04:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 14:04:02 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  [CIFS] fix regression in cifs_write_begin/cifs_write_end\n"
    },
    {
      "commit": "52b19ac993f1aeadbce15b55302be9a35346e235",
      "tree": "90695f8fdaa97d3a30b1e5f82016fb1cce3da16b",
      "parents": [
        "ed313489badef16d700f5a3be50e8fd8f8294bc8"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Sep 23 18:24:08 2008 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Nov 27 17:38:28 2008 +0100"
      },
      "message": "udf: Fix BUG_ON() in destroy_inode()\n\nudf_clear_inode() can leave behind buffers on mapping\u0027s i_private list (when\nwe truncated preallocation). Call invalidate_inode_buffers() so that the list\nis properly cleaned-up before we return from udf_clear_inode(). This is ugly\nand suggest that we should cleanup preallocation earlier than in clear_inode()\nbut currently there\u0027s no such call available since drop_inode() is called under\ninode lock and thus is unusable for disk operations.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "a98ee8c1c707fe3210b00ef9f806ba8e2bf35504",
      "tree": "ed8557a1755d4e924643cbaf75bb04511f69b3a6",
      "parents": [
        "ed313489badef16d700f5a3be50e8fd8f8294bc8"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Nov 26 19:32:33 2008 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Nov 26 19:32:33 2008 +0000"
      },
      "message": "[CIFS] fix regression in cifs_write_begin/cifs_write_end\n\nThe conversion to write_begin/write_end interfaces had a bug where we\nwere passing a bad parameter to cifs_readpage_worker. Rather than\npassing the page offset of the start of the write, we needed to pass the\noffset of the beginning of the page. This was reliably showing up as\ndata corruption in the fsx-linux test from LTP.\n\nIt also became evident that this code was occasionally doing unnecessary\nread calls. Optimize those away by using the PG_checked flag to indicate\nthat the unwritten part of the page has been initialized.\n\nCC: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Dave Kleikamp \u003cshaggy@us.ibm.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "a8d82d9b950213b66b22c9e7c63a058841de2394",
      "tree": "58334c88a7a32c88648d84a0858a0ed08ba28ab5",
      "parents": [
        "e4625eb826de4f6774ee602c442ba23b686bdcc7"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Nov 24 12:51:55 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Nov 24 13:29:07 2008 -0600"
      },
      "message": "NLM: client-side nlm_lookup_host() should avoid matching on srcaddr\n\nSince commit c98451bd, the loop in nlm_lookup_host() unconditionally\ncompares the host\u0027s h_srcaddr field to the incoming source address.\nFor client-side nlm_host entries, both are always AF_UNSPEC, so this\ncheck is unnecessary.\n\nSince commit 781b61a6, which added support for AF_INET6 addresses to\nnlm_cmp_addr(), nlm_cmp_addr() now returns FALSE for AF_UNSPEC\naddresses, which causes nlm_lookup_host() to create a fresh nlm_host\nentry every time it is called on the client.\n\nThese extra entries will eventually expire once the server is\nunmounted, so the impact of this regression, introduced with lockd\nIPv6 support in 2.6.28, should be minor.\n\nWe could fix this by adding an arm in nlm_cmp_addr() for AF_UNSPEC\naddresses, but really, nlm_lookup_host() shouldn\u0027t be matching on the\nsrcaddr field for client-side nlm_host lookups.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e4625eb826de4f6774ee602c442ba23b686bdcc7",
      "tree": "b0a41995b9d30efb64e7920813d0dcdf08dc0ad6",
      "parents": [
        "2da2c21d7508d34bc6d600df665d84871b65d2b9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Nov 24 10:32:46 2008 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Nov 24 10:36:09 2008 -0600"
      },
      "message": "nfsd: use of unitialized list head on error exit in nfs4recover.c\n\nThanks to Matthew Dodd for this bug report:\n\nA file label issue while running SELinux in MLS mode provoked the\nfollowing bug, which is a result of use before init on a \u0027struct list_head\u0027.\n\nIn nfsd4_list_rec_dir() if the call to dentry_open() fails the \u0027goto\nout\u0027 skips INIT_LIST_HEAD() which results in the normally improbable\ncase where list_entry() returns NULL.\n\nTrace follows.\n\nNFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory\nSELinux:  Context unconfined_t:object_r:var_lib_nfs_t:s0 is not valid\n(left unmapped).\ntype\u003d1400 audit(1227298063.609:282): avc:  denied  { read } for\npid\u003d1890 comm\u003d\"rpc.nfsd\" name\u003d\"v4recovery\" dev\u003ddm-0 ino\u003d148726\nscontext\u003dsystem_u:system_r:nfsd_t:s0-s15:c0.c1023\ntcontext\u003dsystem_u:object_r:unlabeled_t:s15:c0.c1023 tclass\u003ddir\nBUG: unable to handle kernel NULL pointer dereference at 00000004\nIP: [\u003cc050894e\u003e] list_del+0x6/0x60\n*pde \u003d 0d9ce067 *pte \u003d 00000000\nOops: 0000 [#1] SMP\nModules linked in: nfsd lockd nfs_acl auth_rpcgss exportfs autofs4\nsunrpc ipv6 dm_multipath scsi_dh ppdev parport_pc sg parport floppy\nata_piix pata_acpi ata_generic libata pcnet32 i2c_piix4 mii pcspkr\ni2c_core dm_snapshot dm_zero dm_mirror dm_log dm_mod BusLogic sd_mod\nscsi_mod crc_t10dif ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd [last\nunloaded: microcode]\n\nPid: 1890, comm: rpc.nfsd Not tainted (2.6.27.5-37.fc9.i686 #1)\nEIP: 0060:[\u003cc050894e\u003e] EFLAGS: 00010217 CPU: 0\nEIP is at list_del+0x6/0x60\nEAX: 00000000 EBX: 00000000 ECX: 00000000 EDX: cd99e480\nESI: cf9caed8 EDI: 00000000 EBP: cf9caebc ESP: cf9caeb8\n  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068\nProcess rpc.nfsd (pid: 1890, ti\u003dcf9ca000 task\u003dcf4de580 task.ti\u003dcf9ca000)\nStack: 00000000 cf9caef0 d0a9f139 c0496d04 d0a9f217 fffffff3 00000000\n00000000\n        00000000 00000000 cf32b220 00000000 00000008 00000801 cf9caefc\nd0a9f193\n        00000000 cf9caf08 d0a9b6ea 00000000 cf9caf1c d0a874f2 cf9c3004\n00000008\nCall Trace:\n  [\u003cd0a9f139\u003e] ? nfsd4_list_rec_dir+0xf3/0x13a [nfsd]\n  [\u003cc0496d04\u003e] ? do_path_lookup+0x12d/0x175\n  [\u003cd0a9f217\u003e] ? load_recdir+0x0/0x26 [nfsd]\n  [\u003cd0a9f193\u003e] ? nfsd4_recdir_load+0x13/0x34 [nfsd]\n  [\u003cd0a9b6ea\u003e] ? nfs4_state_start+0x2a/0xc5 [nfsd]\n  [\u003cd0a874f2\u003e] ? nfsd_svc+0x51/0xff [nfsd]\n  [\u003cd0a87f2d\u003e] ? write_svc+0x0/0x1e [nfsd]\n  [\u003cd0a87f48\u003e] ? write_svc+0x1b/0x1e [nfsd]\n  [\u003cd0a87854\u003e] ? nfsctl_transaction_write+0x3a/0x61 [nfsd]\n  [\u003cc04b6a4e\u003e] ? sys_nfsservctl+0x116/0x154\n  [\u003cc04975c1\u003e] ? putname+0x24/0x2f\n  [\u003cc04975c1\u003e] ? putname+0x24/0x2f\n  [\u003cc048d49f\u003e] ? do_sys_open+0xad/0xb7\n  [\u003cc048d337\u003e] ? filp_close+0x50/0x5a\n  [\u003cc048d4eb\u003e] ? sys_open+0x1e/0x26\n  [\u003cc0403cca\u003e] ? syscall_call+0x7/0xb\n  [\u003cc064007b\u003e] ? init_cyrix+0x185/0x490\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: 75 e1 8b 53 08 8d 4b 04 8d 46 04 e8 75 00 00 00 8b 53 10 8d 4b 0c\n8d 46 0c e8 67 00 00 00 5b 5e 5f 5d c3 90 90 55 89 e5 53 89 c3 \u003c8b\u003e 40\n04 8b 00 39 d8 74 16 50 53 68 3e d6 6f c0 6a 30 68 78 d6\nEIP: [\u003cc050894e\u003e] list_del+0x6/0x60 SS:ESP 0068:cf9caeb8\n---[ end trace a89c4ad091c4ad53 ]---\n\nCc: Matthew N. Dodd \u003cMatthew.Dodd@spart.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2c5e76158fcea6e3b9536a74efa7b5e2e846d374",
      "tree": "dca1fcd75e3091b9ffe14b5461714fed1542dbba",
      "parents": [
        "b726e923ea4d216027e466aa602d914e4b4a63af"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Nov 20 14:36:17 2008 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Nov 24 10:12:48 2008 -0600"
      },
      "message": "nfsd: clean up grace period on early exit\n\nIf nfsd was shut down before the grace period ended, we could end up\nwith a freed object still on grace_list.  Thanks to Jeff Moyer for\nreporting the resulting list corruption warnings.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nTested-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\n"
    },
    {
      "commit": "3477d204658733aa3a87d3ae03b0327c1e599517",
      "tree": "1c9ba659f76c09a19b98f4bcbfac6fc67db43112",
      "parents": [
        "6c0c42cdfd73fb161417403d8d077cb136e10bbf"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Nov 19 11:53:15 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Nov 21 18:59:33 2008 +0200"
      },
      "message": "UBIFS: pre-allocate bulk-read buffer\n\nTo avoid memory allocation failure during bulk-read, pre-allocate\na bulk-read buffer, so that if there is only one bulk-reader at\na time, it would just use the pre-allocated buffer and would not\ndo any memory allocation. However, if there are more than 1 bulk-\nreader, then only one reader would use the pre-allocated buffer,\nwhile the other reader would allocate the buffer for itself.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "6c0c42cdfd73fb161417403d8d077cb136e10bbf",
      "tree": "343de0cb98df07295bc3e03eee083012ac12bae7",
      "parents": [
        "39ce81ce7168aa7226fb9f182c3a2b57060d0905"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Nov 18 20:20:05 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Nov 21 18:59:25 2008 +0200"
      },
      "message": "UBIFS: do not allocate too much\n\nBulk-read allocates 128KiB or more using kmalloc. The allocation\nstarts failing often when the memory gets fragmented. UBIFS still\nworks fine in this case, because it falls-back to standard\n(non-optimized) read method, though. This patch teaches bulk-read\nto allocate exactly the amount of memory it needs, instead of\nallocating 128KiB every time.\n\nThis patch is also a preparation to the further fix where we\u0027ll\nhave a pre-allocated bulk-read buffer as well. For example, now\nthe @bu object is prepared in \u0027ubifs_bulk_read()\u0027, so we could\npath either pre-allocated or allocated information to\n\u0027ubifs_do_bulk_read()\u0027 later. Or teaching \u0027ubifs_do_bulk_read()\u0027\nnot to allocate \u0027bu-\u003ebuf\u0027 if it is already there.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "39ce81ce7168aa7226fb9f182c3a2b57060d0905",
      "tree": "8b3c8ff8559c7d3243c0299cae6986aa21601c60",
      "parents": [
        "7e2d9bfa4eabee3e1919a40f20d2ef8b569bd07e"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Nov 18 18:09:49 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Nov 21 18:59:16 2008 +0200"
      },
      "message": "UBIFS: do not print scary memory allocation warnings\n\nBulk-read allocates a lot of memory with \u0027kmalloc()\u0027, and when it\nis/gets fragmented \u0027kmalloc()\u0027 fails with a scarry warning. But\nbecause bulk-read is just an optimization, UBIFS keeps working fine.\nSupress the warning by passing __GFP_NOWARN option to \u0027kmalloc()\u0027.\n\nThis patch also introduces a macro for the magic 128KiB constant.\nThis is just neater.\n\nNote, this is not really fixes the problem we had, but just hides\nthe warnings. The further patches fix the problem.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "0cb39aa0ac3a9dc64171b43a85d17e539d82f2d6",
      "tree": "c69f6840e55b868e23b3315eb0f09ad245ce67c4",
      "parents": [
        "c93fc2873edcd3eae0ed11ba288a77f3ef62e92b",
        "ddb4cbfc53aa0913ee8da059fcbf628d14f40f63"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 20 13:14:16 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 20 13:14:16 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  [CIFS] Do not attempt to close invalidated file handles\n  [CIFS] fix check for dead tcon in smb_init\n"
    },
    {
      "commit": "ddb4cbfc53aa0913ee8da059fcbf628d14f40f63",
      "tree": "d77a2d510fa3a3b6556052af024355ed5cfc43d8",
      "parents": [
        "bfb59820ee46616a7bdb4af6b8f7e109646de6ec"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Nov 20 20:00:44 2008 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Nov 20 20:14:13 2008 +0000"
      },
      "message": "[CIFS] Do not attempt to close invalidated file handles\n\nIf a connection with open file handles has gone down\nand come back up and reconnected without reopening\nthe file handle yet, do not attempt to send an SMB close\nrequest for this handle in cifs_close.  We were\nchecking for the connection being invalid in cifs_close\nbut since the connection may have been reconnected\nwe also need to check whether the file handle\nwas marked invalid (otherwise we could close the\nwrong file handle by accident).\n\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "ea7e743e49b94749fc739baaf160809ed279aeda",
      "tree": "bb6892e864240c4b91c4547deaebaa3c9a06b806",
      "parents": [
        "ee11940f8e7a2f064af22d52180cb5f9643eef61"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "wangcong@zeuux.org",
        "time": "Wed Nov 19 15:36:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:50:00 2008 -0800"
      },
      "message": "hostfs: fix a duplicated global function name\n\nfs/hostfs/hostfs_user.c defines do_readlink() as non-static, and so does\nfs/xfs/linux-2.6/xfs_ioctl.c when CONFIG_XFS_DEBUG\u003dy.  So rename\ndo_readlink() in hostfs to hostfs_do_readlink().\n\nI think it\u0027s better if XFS guys will also rename their do_readlink(),\nit\u0027s not necessary to use such a general name.\n\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9454548e17cd56bad081bd7d55a09b001950cbb",
      "tree": "dd1d2000dbdae6d9baa638d5166b268ec40e8445",
      "parents": [
        "63eb6b93ce725e4c5f38fc85dd703d49465b03cb"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Nov 19 15:36:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:59 2008 -0800"
      },
      "message": "don\u0027t unlink an active swapfile\n\nPeter Cordes is sorry that he rm\u0027ed his swapfiles while they were in use,\nhe then had no pathname to swapoff.  It\u0027s a curious little oversight, but\nnot one worth a lot of hackery.  Kudos to Willy Tarreau for turning this\naround from a discussion of synthetic pathnames to how to prevent unlink.\nMimic immutable: prohibit unlinking an active swapfile in may_delete()\n(and don\u0027t worry my little head over the tiny race window).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Willy Tarreau \u003cw@1wt.eu\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Peter Cordes \u003cpeter@cordes.ca\u003e\nCc: Bodo Eggert \u003c7eggert@gmx.de\u003e\nCc: David Newall \u003cdavidn@davidnewall.com\u003e\nCc: Peter Zijlstra \u003cpeterz@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": "ac97b9f9a2d0b83488e0bbcb8517b229d5c9b142",
      "tree": "118785d6a53390fb15177fc762f744a1bc0a79a4",
      "parents": [
        "3b45d6380c392e402adc460e4ccf7d41e0caf82a"
      ],
      "author": {
        "name": "Michael Halcrow",
        "email": "mhalcrow@us.ibm.com",
        "time": "Wed Nov 19 15:36:28 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:58 2008 -0800"
      },
      "message": "eCryptfs: Allocate up to two scatterlists for crypto ops on keys\n\nI have received some reports of out-of-memory errors on some older AMD\narchitectures.  These errors are what I would expect to see if\ncrypt_stat-\u003ekey were split between two separate pages.  eCryptfs should\nnot assume that any of the memory sent through virt_to_scatterlist() is\nall contained in a single page, and so this patch allocates two\nscatterlist structs instead of one when processing keys.  I have received\nconfirmation from one person affected by this bug that this patch resolves\nthe issue for him, and so I am submitting it for inclusion in a future\nstable release.\n\nNote that virt_to_scatterlist() runs sg_init_table() on the scatterlist\nstructs passed to it, so the calls to sg_init_table() in\ndecrypt_passphrase_encrypted_session_key() are redundant.\n\nSigned-off-by: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nReported-by: Paulo J. S. Silva \u003cpjssilva@ime.usp.br\u003e\nCc: \"Leon Woestenberg\" \u003cleon.woestenberg@gmail.com\u003e\nCc: Tim Gardner \u003ctim.gardner@canonical.com\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": "bfb59820ee46616a7bdb4af6b8f7e109646de6ec",
      "tree": "e2a62482c9094102aff08f621e000c55c1391858",
      "parents": [
        "4e14e833ac3b97a4aa8803eea49f899adc5bb5f4"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Nov 18 16:33:48 2008 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Nov 18 16:33:48 2008 +0000"
      },
      "message": "[CIFS] fix check for dead tcon in smb_init\n\nThis was recently changed to check for need_reconnect, but should\nactually be a check for a tidStatus of CifsExiting.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "55e8e30c382d25c34f8aafcc78efec948571a941",
      "tree": "c044242b34590e3b5ceff03a2891f9afccc95e9e",
      "parents": [
        "ba32929a91fe2c0628f5be62d1597b379c8d3062"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "teheo@suse.de",
        "time": "Mon Nov 10 15:30:47 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 18 15:08:56 2008 +0100"
      },
      "message": "block/md: fix md autodetection\n\nBlock ext devt conversion missed md_autodetect_dev() call in\nrescan_partitions() leaving md autodetect unable to see partitions.\nFix it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ba32929a91fe2c0628f5be62d1597b379c8d3062",
      "tree": "09ea54ed2d2299d25b92fee6a6dde4d7527a3d37",
      "parents": [
        "eb60fa1066622ddb2278732cf61e0c4544e82c6f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 10 15:29:58 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 18 15:08:56 2008 +0100"
      },
      "message": "block: make add_partition() return pointer to hd_struct\n\nMake add_partition() return pointer to the new hd_struct on success\nand ERR_PTR() value on failure.  This change will be used to fix md\nautodetection bug.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "eb60fa1066622ddb2278732cf61e0c4544e82c6f",
      "tree": "4297d3c2e8876897c51843df148725909a356a08",
      "parents": [
        "4e14e833ac3b97a4aa8803eea49f899adc5bb5f4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 10 15:28:59 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 18 15:08:55 2008 +0100"
      },
      "message": "block: fix add_partition() error path\n\nPartition stats structure was not freed on devt allocation failure\npath.  Fix it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4e14e833ac3b97a4aa8803eea49f899adc5bb5f4",
      "tree": "dd052898b27acff7f1e7d1cc41c98a17d6b9f0f1",
      "parents": [
        "65ecc14a30ad21bed9aabdfd6a2ae1a1aaaa6a00",
        "b066a48c9532243894f93a06ca5a0ee2cc21a8dc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 17 20:53:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 17 20:53:31 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  prevent cifs_writepages() from skipping unwritten pages\n  Fixed parsing of mount options when doing DFS submount\n  [CIFS] Fix check for tcon seal setting and fix oops on failed mount from earlier patch\n  [CIFS] Fix build break\n  cifs: reinstate sharing of tree connections\n  [CIFS] minor cleanup to cifs_mount\n  cifs: reinstate sharing of SMB sessions sans races\n  cifs: disable sharing session and tcon and add new TCP sharing code\n  [CIFS] clean up server protocol handling\n  [CIFS] remove unused list, add new cifs sock list to prepare for mount/umount fix\n  [CIFS] Fix cifs reconnection flags\n  [CIFS] Can\u0027t rely on iov length and base when kernel_recvmsg returns error\n"
    },
    {
      "commit": "b066a48c9532243894f93a06ca5a0ee2cc21a8dc",
      "tree": "dcb1aeb0e2b6a9af57479287ff4b9c94b070d0d3",
      "parents": [
        "2c55608f28444c3f33b10312881384c470ceed56"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@linux.vnet.ibm.com",
        "time": "Tue Nov 18 03:49:05 2008 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Nov 18 04:30:07 2008 +0000"
      },
      "message": "prevent cifs_writepages() from skipping unwritten pages\n\nFixes a data corruption under heavy stress in which pages could be left\ndirty after all open instances of a inode have been closed.\n\nIn order to write contiguous pages whenever possible, cifs_writepages()\nasks pagevec_lookup_tag() for more pages than it may write at one time.\nNormally, it then resets index just past the last page written before calling\npagevec_lookup_tag() again.\n\nIf cifs_writepages() can\u0027t write the first page returned, it wasn\u0027t resetting\nindex, and the next call to pagevec_lookup_tag() resulted in skipping all of\nthe pages it previously returned, even though cifs_writepages() did nothing\nwith them.  This can result in data loss when the file descriptor is about\nto be closed.\n\nThis patch ensures that index gets set back to the next returned page so\nthat none get skipped.\n\nSigned-off-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: Shirish S Pargaonkar \u003cshirishp@us.ibm.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "2c55608f28444c3f33b10312881384c470ceed56",
      "tree": "84064756aee9e936cd5f3eb8f63fe83f04d30de2",
      "parents": [
        "ab3f992983062440b4f37c666dac66d987902d91"
      ],
      "author": {
        "name": "Igor Mammedov",
        "email": "niallain@gmail.com",
        "time": "Thu Oct 23 13:58:42 2008 +0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Nov 18 04:29:06 2008 +0000"
      },
      "message": "Fixed parsing of mount options when doing DFS submount\n\nSince these hit the same routines, and are relatively small, it is easier to review\nthem as one patch.\n\nFixed incorrect handling of the last option in some cases\nFixed prefixpath handling convert path_consumed into host depended string length (in bytes)\nUse non default separator if it is provided in the original mount options\n\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Igor Mammedov \u003cniallain@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "ab3f992983062440b4f37c666dac66d987902d91",
      "tree": "9333cd574f0a1ead688347b148ae36fdcd384440",
      "parents": [
        "c2b3382cd4d6c6adef1347e81f20e16c93a39feb"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Nov 17 16:03:00 2008 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Nov 17 16:03:00 2008 +0000"
      },
      "message": "[CIFS] Fix check for tcon seal setting and fix oops on failed mount from earlier patch\n\nset tcon-\u003eses earlier\n\nIf the inital tree connect fails, we\u0027ll end up calling cifs_put_smb_ses\nwith a NULL pointer. Fix it by setting the tcon-\u003eses earlier.\n\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "c2b3382cd4d6c6adef1347e81f20e16c93a39feb",
      "tree": "ac039e2d2cc37f25df3b8346cf5a980ee7988599",
      "parents": [
        "f1987b44f642e96176adc88b7ce23a1d74806f89"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Nov 17 03:57:13 2008 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Nov 17 03:57:13 2008 +0000"
      },
      "message": "[CIFS] Fix build break\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "f1987b44f642e96176adc88b7ce23a1d74806f89",
      "tree": "fceaebf6b6d7eb1d1150120c44a842cbce8347f6",
      "parents": [
        "d82c2df54e2f7e447476350848d8eccc8d2fe46a"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Sat Nov 15 11:12:47 2008 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Nov 17 03:14:12 2008 +0000"
      },
      "message": "cifs: reinstate sharing of tree connections\n\nUse a similar approach to the SMB session sharing. Add a list of tcons\nattached to each SMB session. Move the refcount to non-atomic. Protect\nall of the above with the cifs_tcp_ses_lock. Add functions to\nproperly find and put references to the tcons.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "5c06fe772da43db63b053addcd2c267f76d0be91",
      "tree": "688e5f0028c710a6258f37e20337282ff93f317a",
      "parents": [
        "77fb61a04a0483ad274ce5c51b02c46c12db3693"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Sun Nov 16 22:19:10 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 16 15:09:52 2008 -0800"
      },
      "message": "Fix broken ownership of /proc/sys/ files\n\nD\u0027oh...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nReported-and-tested-by: Peter Palfrader \u003cpeter@palfrader.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f7b0ba1c853919b85b54774775f567f30006107",
      "tree": "1acd2b7ed5ed0de3eecfff9da5da4e779731f8a8",
      "parents": [
        "0d3b71009737511ea937ac405205fd8214b898bb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Sat Nov 15 01:15:43 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 12:26:44 2008 -0800"
      },
      "message": "Fix inotify watch removal/umount races\n\nInotify watch removals suck violently.\n\nTo kick the watch out we need (in this order) inode-\u003einotify_mutex and\nih-\u003emutex.  That\u0027s fine if we have a hold on inode; however, for all\nother cases we need to make damn sure we don\u0027t race with umount.  We can\n*NOT* just grab a reference to a watch - inotify_unmount_inodes() will\nhappily sail past it and we\u0027ll end with reference to inode potentially\noutliving its superblock.\n\nIdeally we just want to grab an active reference to superblock if we\ncan; that will make sure we won\u0027t go into inotify_umount_inodes() until\nwe are done.  Cleanup is just deactivate_super().\n\nHowever, that leaves a messy case - what if we *are* racing with\numount() and active references to superblock can\u0027t be acquired anymore?\nWe can bump -\u003es_count, grab -\u003es_umount, which will almost certainly wait\nuntil the superblock is shut down and the watch in question is pining\nfor fjords.  That\u0027s fine, but there is a problem - we might have hit the\nwindow between -\u003es_active getting to 0 / -\u003es_count - below S_BIAS (i.e.\nthe moment when superblock is past the point of no return and is heading\nfor shutdown) and the moment when deactivate_super() acquires\n-\u003es_umount.\n\nWe could just do drop_super() yield() and retry, but that\u0027s rather\nantisocial and this stuff is luser-triggerable.  OTOH, having grabbed\n-\u003es_umount and having found that we\u0027d got there first (i.e.  that\n-\u003es_root is non-NULL) we know that we won\u0027t race with\ninotify_umount_inodes().\n\nSo we could grab a reference to watch and do the rest as above, just\nwith drop_super() instead of deactivate_super(), right? Wrong.  We had\nto drop ih-\u003emutex before we could grab -\u003es_umount.  So the watch\ncould\u0027ve been gone already.\n\nThat still can be dealt with - we need to save watch-\u003ewd, do idr_find()\nand compare its result with our pointer.  If they match, we either have\nthe damn thing still alive or we\u0027d lost not one but two races at once,\nthe watch had been killed and a new one got created with the same -\u003ewd\nat the same address.  That couldn\u0027t have happened in inotify_destroy(),\nbut inotify_rm_wd() could run into that.  Still, \"new one got created\"\nis not a problem - we have every right to kill it or leave it alone,\nwhatever\u0027s more convenient.\n\nSo we can use idr_find(...) \u003d\u003d watch \u0026\u0026 watch-\u003einode-\u003ei_sb \u003d\u003d sb as\n\"grab it and kill it\" check.  If it\u0027s been our original watch, we are\nfine, if it\u0027s a newcomer - nevermind, just pretend that we\u0027d won the\nrace and kill the fscker anyway; we are safe since we know that its\nsuperblock won\u0027t be going away.\n\nAnd yes, this is far beyond mere \"not very pretty\"; so\u0027s the entire\nconcept of inotify to start with.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d82c2df54e2f7e447476350848d8eccc8d2fe46a",
      "tree": "b48fa40fc34a87d9fd83254a8fdfb3e8173a6348",
      "parents": [
        "14fbf50d695207754daeb96270b3027a3821121f"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Nov 15 00:07:26 2008 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Nov 15 00:07:26 2008 +0000"
      },
      "message": "[CIFS] minor cleanup to cifs_mount\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "14fbf50d695207754daeb96270b3027a3821121f",
      "tree": "05e80aa7e5e6a6bc07a9354f744ba9c599699569",
      "parents": [
        "e7ddee9037e7dd43de1ad08b51727e552aedd836"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Nov 14 13:53:46 2008 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Nov 14 23:56:55 2008 +0000"
      },
      "message": "cifs: reinstate sharing of SMB sessions sans races\n\nWe do this by abandoning the global list of SMB sessions and instead\nmoving to a per-server list. This entails adding a new list head to the\nTCP_Server_Info struct. The refcounting for the cifsSesInfo is moved to\na non-atomic variable. We have to protect it by a lock anyway, so there\u0027s\nno benefit to making it an atomic. The list and refcount are protected\nby the global cifs_tcp_ses_lock.\n\nThe patch also adds a new routines to find and put SMB sessions and\nthat properly take and put references under the lock.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "e7ddee9037e7dd43de1ad08b51727e552aedd836",
      "tree": "1f4fa723aad80809c5980fcb197aba90a84c26ca",
      "parents": [
        "3ec332ef7a38c2327e18d087d4120a8e3bd3dc6e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Nov 14 13:44:38 2008 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Nov 14 23:42:32 2008 +0000"
      },
      "message": "cifs: disable sharing session and tcon and add new TCP sharing code\n\nThe code that allows these structs to be shared is extremely racy.\nDisable the sharing of SMB and tcon structs for now until we can\ncome up with a way to do this that\u0027s race free.\n\nWe want to continue to share TCP sessions, however since they are\nrequired for multiuser mounts. For that, implement a new (hopefully\nrace-free) scheme. Add a new global list of TCP sessions, and take\ncare to get a reference to it whenever we\u0027re dealing with one.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "3ec332ef7a38c2327e18d087d4120a8e3bd3dc6e",
      "tree": "5c1c7aebeee05cbd6cd02d5aebb3b0c2f8e62ddb",
      "parents": [
        "fb396016647ae9de5b3bd8c4ee4f7b9cc7148bd5"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Nov 14 03:35:10 2008 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Nov 14 03:35:10 2008 +0000"
      },
      "message": "[CIFS] clean up server protocol handling\n\nWe\u0027re currently declaring both a sockaddr_in and sockaddr6_in on the\nstack, but we really only need storage for one of them. Declare a\nsockaddr struct and cast it to the proper type. Also, eliminate the\nprotocolType field in the TCP_Server_Info struct. It\u0027s redundant since\nwe have a sa_family field in the sockaddr anyway.\n\nWe may need to revisit this if SCTP is ever implemented, but for now\nthis will simplify the code.\n\nCIFS over IPv6 also has a number of problems currently. This fixes all\nof them that I found. Eventually, it would be nice to move more of the\ncode to be protocol independent, but this is a start.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "fb396016647ae9de5b3bd8c4ee4f7b9cc7148bd5",
      "tree": "40ddde820d7c05b09ee130ef18477ecb50d4c61a",
      "parents": [
        "3b7952109361c684caf0c50474da8662ecc81019"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Nov 13 20:04:07 2008 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Nov 13 20:04:07 2008 +0000"
      },
      "message": "[CIFS] remove unused list, add new cifs sock list to prepare for mount/umount fix\n\nAlso adds two lines missing from the previous patch (for the need reconnect flag in the\n/proc/fs/cifs/DebugData handling)\n\nThe new global_cifs_sock_list is added, and initialized in init_cifs but not used yet.\nJeff Layton will be adding code in to use that and to remove the GlobalTcon and GlobalSMBSession\nlists.\n\nCC: Jeff Layton \u003cjlayton@redhat.com\u003e\nCC: Shirish Pargaonkar \u003cshirishp@us.ibm.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "7b423653964b22e6ca1a1ffd84816d619d6a3976",
      "tree": "a005620261a8830c86261733d0f1198d2303335b",
      "parents": [
        "2d1595ad8766c9cbab81d259168c00261d382ac5",
        "278afcbf4fe964230eba67f8fb8235e8b7e63ffb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 13 11:56:05 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 13 11:56:05 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:\n  dlm: fix shutdown cleanup\n"
    },
    {
      "commit": "3b7952109361c684caf0c50474da8662ecc81019",
      "tree": "402062ed63236ef245d8d65010d8f06520df8453",
      "parents": [
        "c527c8a7ffa18400c2c1488f7ab5aff5e83f3c8e"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Nov 13 19:45:32 2008 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Nov 13 19:45:32 2008 +0000"
      },
      "message": "[CIFS] Fix cifs reconnection flags\n\nIn preparation for Jeff\u0027s big umount/mount fixes to remove the possibility of\nvarious races in cifs mount and linked list handling of sessions, sockets and\ntree connections, this patch cleans up some repetitive code in cifs_mount,\nand addresses a problem with ses-\u003estatus and tcon-\u003etidStatus in which we\nwere overloading the \"need_reconnect\" state with other status in that\nfield.  So the \"need_reconnect\" flag has been broken out from those\ntwo state fields (need reconnect was not mutually exclusive from some of the\nother possible tid and ses states).  In addition, a few exit cases in\ncifs_mount were cleaned up, and a problem with a tcon flag (for lease support)\nwas not being set consistently for the 2nd mount of the same share\n\nCC: Jeff Layton \u003cjlayton@redhat.com\u003e\nCC: Shirish Pargaonkar \u003cshirishp@us.ibm.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "278afcbf4fe964230eba67f8fb8235e8b7e63ffb",
      "tree": "64bcfe585256f96f468e29af9961ddf4c2dcc71d",
      "parents": [
        "3edac25f2e8ac8c2a84904c140e1aeb434e73e75"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Nov 13 13:22:34 2008 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Nov 13 13:22:34 2008 -0600"
      },
      "message": "dlm: fix shutdown cleanup\n\nFixes a regression from commit 0f8e0d9a317406612700426fad3efab0b7bbc467,\n\"dlm: allow multiple lockspace creates\".\n\nAn extraneous \u0027else\u0027 slipped into a code fragment being moved from\nrelease_lockspace() to dlm_release_lockspace().  The result of the\nunwanted \u0027else\u0027 is that dlm threads and structures are not stopped\nand cleaned up when the final dlm lockspace is removed.  Trying to\ncreate a new lockspace again afterward will fail with\n\"kmem_cache_create: duplicate cache dlm_conn\" because the cache\nwas not previously destroyed.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "6cdfcc275e40b89fb020da1088ead86a61d33115",
      "tree": "9518d64cb5d0e68ac2731aa5391d2d3a32728c34",
      "parents": [
        "50d7d5bf3168db5d04566dd7ffb9a820e9fdf484"
      ],
      "author": {
        "name": "Theodore Tso",
        "email": "tytso@mit.edu",
        "time": "Wed Nov 12 13:27:01 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:17 2008 -0800"
      },
      "message": "ext3: Clean up outdated and incorrect comment for ext3_write_super()\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\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": "afef80b3d87cae574b8c6b763505f25b74d254ef",
      "tree": "4aaa479b3bfc635c3cb28530c8cb01c87fc04bde",
      "parents": [
        "8891d6da17db0f9bb507d3a017f130b9970c3087"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 12 13:26:54 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:17 2008 -0800"
      },
      "message": "vfs: fix shrink_submounts\n\nIn the last refactoring of shrink_submounts a variable was not completely\nrenamed.  So finish the renaming of mnt to m now.\n\nWithout this if you attempt to mount an nfs mount that has both automatic\nnfs sub mounts on it, and has normal mounts on it.  The unmount will\nsucceed when it should not.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04ca2c17e3fae2d3f73aa5ad533242d556cadf5a",
      "tree": "f83be0272c50d6f23e5c94446d9da91a87665092",
      "parents": [
        "ad1164b79f1905ec1611cdc2a44949618bced2a6",
        "220ca310a53200b4bfbc7c4c6e365eea284ec44f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 09:32:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 09:32:58 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  [XFS] XFS: Check for valid transaction headers in recovery\n  [XFS] handle memory allocation failures during log initialisation\n  [XFS] Account for allocated blocks when expanding directories\n  [XFS] Wait for all I/O on truncate to zero file size\n  [XFS] Fix use-after-free with log and quotas\n"
    },
    {
      "commit": "6c1e183e12dbd78a897a859f13220406296fee31",
      "tree": "c57a634cae86c83db4e3067af8ccf83805d2bf90",
      "parents": [
        "de29c08528bae45e3fa1171d190f1340e37e0f70"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Sun Nov 02 19:04:21 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:47 2008 -0800"
      },
      "message": "ocfs2: Check search result in ocfs2_xattr_block_get()\n\nocfs2_xattr_block_get() calls ocfs2_xattr_search() to find an external\nxattr, but doesn\u0027t check the search result that is passed back via struct\nocfs2_xattr_search. Add a check for search result, and pass back -ENODATA if\nthe xattr search failed. This avoids a later NULL pointer error.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "de29c08528bae45e3fa1171d190f1340e37e0f70",
      "tree": "984eb170a7e1d15f589eb6684f7522fa10786de5",
      "parents": [
        "c435400140d24fbcb3da6b1e006be831f9056cb6"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Wed Oct 29 14:45:30 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:47 2008 -0800"
      },
      "message": "ocfs2: fix printk related build warnings in xattr.c\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "c435400140d24fbcb3da6b1e006be831f9056cb6",
      "tree": "6f90cad133521a2a4d52a57149a41199bdf89367",
      "parents": [
        "80bcaf3469b8aefd316d4ceb27d9af7cfbb0b913"
      ],
      "author": {
        "name": "Dmitri Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Oct 27 13:01:49 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:47 2008 -0800"
      },
      "message": "ocfs2: truncate outstanding block after direct io failure\n\nSigned-off-by: Dmitri Monakhov \u003cdmonakhov@openvz.org\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Joel Becker \u003cJoel.Becker@oracle.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "80bcaf3469b8aefd316d4ceb27d9af7cfbb0b913",
      "tree": "250e38e24f88aeb5bd89b5f4fca3304207eec0f1",
      "parents": [
        "4c1bbf1ba631d7db61ce3462349a3f5d14ae3009"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Oct 27 06:06:24 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:47 2008 -0800"
      },
      "message": "ocfs2/xattr: Proper hash collision handle in bucket division\n\nIn ocfs2/xattr, we must make sure the xattrs which have the same hash value\nexist in the same bucket so that the search schema can work. But in the old\nimplementation, when we want to extend a bucket, we just move half number of\nxattrs to the new bucket. This works in most cases, but if we are lucky\nenough we will move 2 xattrs into 2 different buckets. This means that an\nxattr from the previous bucket cannot be found anymore. This patch fix this\nproblem by finding the right position during extending the bucket and extend\nan empty bucket if needed.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4c1bbf1ba631d7db61ce3462349a3f5d14ae3009",
      "tree": "7ba31e8afc0514062f3ba59c9b538a75a121fb1f",
      "parents": [
        "ae0dff683076b2798763288c7ac2f09a18c4a998"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Oct 06 16:59:55 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:47 2008 -0800"
      },
      "message": "ocfs2: return 0 in page_mkwrite to let VFS retry.\n\nIn ocfs2_page_mkwrite, we return -EINVAL when we found the page mapping\nisn\u0027t updated, and it will cause the user space program get SIGBUS and\nexit. The reason is that during race writeable mmap, we will do\nunmap_mapping_range in ocfs2_data_downconvert_worker. The good thing is\nthat if we reuturn 0 in page_mkwrite, VFS will retry fault and then\ncall page_mkwrite again, so it is safe to return 0 here.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ae0dff683076b2798763288c7ac2f09a18c4a998",
      "tree": "191b95751d25a6480619dc2cbbe340da4adddfcc",
      "parents": [
        "d32647993c211901fc4819ef3327f62d1859241b"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Wed Oct 22 13:24:29 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:47 2008 -0800"
      },
      "message": "ocfs2: Set journal descriptor to NULL after journal shutdown\n\nPatch sets journal descriptor to NULL after the journal is shutdown.\nThis ensures that jbd2_journal_release_jbd_inode(), which removes the\njbd2 inode from txn lists, can be called safely from ocfs2_clear_inode()\neven after the journal has been shutdown.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "d32647993c211901fc4819ef3327f62d1859241b",
      "tree": "54178f5bdb8c654b917aedc08a8284c2596391ea",
      "parents": [
        "b99835c1684918b9975851d71455c5c007d1715b"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Oct 24 07:57:28 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:47 2008 -0800"
      },
      "message": "ocfs2: Fix check of return value of ocfs2_start_trans() in xattr.c.\n\nOn failure, ocfs2_start_trans() returns values like ERR_PTR(-ENOMEM),\nso we should check whether handle is NULL. Fix them to use IS_ERR().\nJan has made the patch for other part in ocfs2(thank Jan for it), so\nthis is just the fix for fs/ocfs2/xattr.c.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "b99835c1684918b9975851d71455c5c007d1715b",
      "tree": "953ab209fa9c15a465ecf174a9327fb5d35c271a",
      "parents": [
        "87cfa004321c62aec681713ea48e0b846336d9f4"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Oct 20 19:23:54 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:46 2008 -0800"
      },
      "message": "ocfs2: Let inode be really deleted when ocfs2_mknod_locked() fails\n\nWe forgot to set i_nlink to 0 when returning due to error from ocfs2_mknod_locked()\nand thus inode was not properly released via ocfs2_delete_inode() (e.g. claimed\nspace was not released). Fix it.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "87cfa004321c62aec681713ea48e0b846336d9f4",
      "tree": "6ce76f2d2d97d8e9edf100d4c8561b8dcde338d4",
      "parents": [
        "fa38e92cb34e27e60d0faf1035934eb9b44aa1d4"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Oct 20 19:23:53 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:46 2008 -0800"
      },
      "message": "ocfs2: Fix checking of return value of new_inode()\n\nnew_inode() does not return ERR_PTR() but NULL in case of failure. Correct\nchecking of the return value.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "fa38e92cb34e27e60d0faf1035934eb9b44aa1d4",
      "tree": "a7bbefddcf693735aa0dbdf3abca25b57268df1a",
      "parents": [
        "8573f79d30077875e2b6e83849b5245bfbb08685"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Oct 20 19:23:51 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:46 2008 -0800"
      },
      "message": "ocfs2: Fix check of return value of ocfs2_start_trans()\n\nOn failure, ocfs2_start_trans() returns values like ERR_PTR(-ENOMEM).\nThus checks for !handle are wrong. Fix them to use IS_ERR().\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "8573f79d30077875e2b6e83849b5245bfbb08685",
      "tree": "5828d5e07c4cf742574bc3f62b04057f9e910d28",
      "parents": [
        "63fd77573723841d5d44a79471258f1b261f4482"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Oct 24 22:24:17 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:46 2008 -0800"
      },
      "message": "ocfs2: Fix some typos in xattr annotations.\n\nFix some typos in the xattr annotations.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nReported-by: Coly Li \u003ccoyli@suse.de\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "63fd77573723841d5d44a79471258f1b261f4482",
      "tree": "59c73a921dec82b65bcd105eea3f5f228b3d058b",
      "parents": [
        "54f443f4e7265a1333886dbace31cb6eb1991c72"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Oct 17 12:44:36 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:46 2008 -0800"
      },
      "message": "ocfs2: Remove unused ocfs2_restore_xattr_block().\n\nSince now ocfs2 supports empty xattr buckets, we will never remove\nthe xattr index tree even if all the xattrs are removed, so this\nfunction will never be called. So remove it.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "54f443f4e7265a1333886dbace31cb6eb1991c72",
      "tree": "8fe34fa35399022dcd6d8c8d6e3fdb7df1b18f9f",
      "parents": [
        "eb6ff2397d1fdfc6a7629c99896338e5b5c508e5"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Oct 20 18:43:07 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:46 2008 -0800"
      },
      "message": "ocfs2: Don\u0027t repeat ocfs2_xattr_block_find()\n\nocfs2_xattr_block_get() looks up the xattr in a startlingly familiar\nway; it\u0027s identical to the function ocfs2_xattr_block_find().  Let\u0027s just\nuse the later in the former.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "eb6ff2397d1fdfc6a7629c99896338e5b5c508e5",
      "tree": "86f10d7f9a87f508db26c9b780f6ed8635c8c8fd",
      "parents": [
        "bd60bd37ade4321ecce4ed4442f68c88febd76d5"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Oct 20 18:32:48 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:46 2008 -0800"
      },
      "message": "ocfs2: Specify appropriate journal access for new xattr buckets.\n\nThere are a couple places that get an xattr bucket that may be reading\nan existing one or may be allocating a new one.  They should specify the\ncorrect journal access mode depending.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "bd60bd37ade4321ecce4ed4442f68c88febd76d5",
      "tree": "69d9eb6d24eb31c25a493f8a998f33619c5e8559",
      "parents": [
        "b37c4d84e9d16fd5b6f31197f02ea0a112fc9e99"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Oct 20 18:25:56 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:45 2008 -0800"
      },
      "message": "ocfs2: Check errors from ocfs2_xattr_update_xattr_search()\n\nThe ocfs2_xattr_update_xattr_search() function can return an error when\ntrying to read blocks off of disk.  The caller needs to check this error\nbefore using those (possibly invalid) blocks.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "b37c4d84e9d16fd5b6f31197f02ea0a112fc9e99",
      "tree": "c9a709970deb2dfdb2b4d9340f682e966da19b83",
      "parents": [
        "f6087fb799e097e7c9d912daa75701de9d62dc53"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Oct 20 18:24:03 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:45 2008 -0800"
      },
      "message": "ocfs2: Don\u0027t return -EFAULT from a corrupt xattr entry.\n\nIf the xattr disk structures are corrupt, return -EIO, not -EFAULT.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "f6087fb799e097e7c9d912daa75701de9d62dc53",
      "tree": "010e8455fa5e53e68c76b949b4abd39876c2921f",
      "parents": [
        "c988fd045f1195e62c0970384903ab9da26a9359"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Oct 20 18:20:43 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:44 2008 -0800"
      },
      "message": "ocfs2: Check xattr block signatures properly.\n\nThe xattr.c code is currently memcmp()ing naking buffer pointers.\nCreate the OCFS2_IS_VALID_XATTR_BLOCK() macro to match its peers and use\nthat.\n\nIn addition, failed signature checks were returning -EFAULT, which is\ncompletely wrong.  Return -EIO.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "c988fd045f1195e62c0970384903ab9da26a9359",
      "tree": "0777e42068fdb604a0fe92407f6c999b529354f1",
      "parents": [
        "ceb1eba3dc2ad94b25764785ff7d2082c6094115"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Thu Oct 23 16:34:44 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:44 2008 -0800"
      },
      "message": "ocfs2: add handler_map array bounds checking\n\nMake the handler_map array as large as the possible value range to avoid\na fencepost error.\n\n[ Utilize alternate method -- Joel ]\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ceb1eba3dc2ad94b25764785ff7d2082c6094115",
      "tree": "d6757024b91fad3a275f5a7f5fff8d2b94bbd0e6",
      "parents": [
        "0030e001505d2d1503c083c917a747c033eaf8cd"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Thu Oct 23 16:34:13 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:44 2008 -0800"
      },
      "message": "ocfs2: remove duplicate definition in xattr\n\nInclude/linux/xattr.h already has the definition about xattr prefix,\nso remove the duplicate definitions in xattr.c.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "0030e001505d2d1503c083c917a747c033eaf8cd",
      "tree": "03c08d7cadeddc8c597ff0054da49e3bb1cfd278",
      "parents": [
        "c3cb6827353102fee62f3b9401a03ee29b297e5b"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Thu Oct 23 16:33:33 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:44 2008 -0800"
      },
      "message": "ocfs2: fix function declaration and definition in xattr\n\nBecause we merged the xattr sources into one file, some functions\nno longer belong in the header file.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "c3cb6827353102fee62f3b9401a03ee29b297e5b",
      "tree": "0e6ae95aafb07839c603bc79b9726f82e4f632c2",
      "parents": [
        "3ad4f597058301c97f362e500a32f63f5c950a45"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Thu Oct 23 16:33:03 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 10 09:51:43 2008 -0800"
      },
      "message": "ocfs2: fix license in xattr\n\nThis patch fixes the license in xattr.c and xattr.h.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "220ca310a53200b4bfbc7c4c6e365eea284ec44f",
      "tree": "a3ffc1927d22c9bfa25b2ab01e87fe07457bf5d6",
      "parents": [
        "8f330f5149ef41ff943b04d914406cc417f62784"
      ],
      "author": {
        "name": "David Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Oct 30 17:40:09 2008 +1100"
      },
      "committer": {
        "name": "Lachlan McIlroy",
        "email": "lachlan@redback.melbourne.sgi.com",
        "time": "Mon Nov 10 18:01:50 2008 +1100"
      },
      "message": "[XFS] XFS: Check for valid transaction headers in recovery\n\nWhen we are about to add a new item to a transaction in recovery, we need\nto check that it is valid first. Currently we just assert that header\nmagic number matches, but in production systems that is not present and we\nadd a corrupted transaction to the list to be processed. This results in a\nkernel oops later when processing the corrupted transaction.\n\nInstead, if we detect a corrupted transaction, abort recovery and leave\nthe user to clean up the mess that has occurred.\n\nSGI-PV: 988145\n\nSGI-Modid: xfs-linux-melb:xfs-kern:32356a\n\nSigned-off-by: David Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Tim Shimmin \u003ctes@sgi.com\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nSigned-off-by: Lachlan McIlroy \u003clachlan@sgi.com\u003e\n"
    },
    {
      "commit": "8f330f5149ef41ff943b04d914406cc417f62784",
      "tree": "d3e52f1cb1563c09c40768f043bfe5e487f0f142",
      "parents": [
        "6f9f51adb6ac0a49fce49e01c47dcfc2810c6e9d"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Nov 10 16:50:24 2008 +1100"
      },
      "committer": {
        "name": "Lachlan McIlroy",
        "email": "lachlan@redback.melbourne.sgi.com",
        "time": "Mon Nov 10 17:57:06 2008 +1100"
      },
      "message": "[XFS] handle memory allocation failures during log initialisation\n\nWhen there is no memory left in the system, xfs_buf_get_noaddr()\ncan fail. If this happens at mount time during xlog_alloc_log()\nwe fail to catch the error and oops.\n\nCatch the error from xfs_buf_get_noaddr(), and allow other memory\nallocations to fail and catch those errors too. Report the error\nto the console and fail the mount with ENOMEM.\n\nTested by manually injecting errors into xfs_buf_get_noaddr() and\nxlog_alloc_log().\n\nVersion 2:\no remove unnecessary casts of the returned pointer from kmem_zalloc()\n\nSGI-PV: 987246\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Lachlan McIlroy \u003clachlan@sgi.com\u003e\n"
    },
    {
      "commit": "6f9f51adb6ac0a49fce49e01c47dcfc2810c6e9d",
      "tree": "0286cc775521b135e481a4eb26391bc3e4cc8950",
      "parents": [
        "2cf7f0da3ae225848a2ee10d4e216448a770fd00"
      ],
      "author": {
        "name": "David Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Oct 30 17:38:12 2008 +1100"
      },
      "committer": {
        "name": "Lachlan McIlroy",
        "email": "lachlan@redback.melbourne.sgi.com",
        "time": "Mon Nov 10 17:51:14 2008 +1100"
      },
      "message": "[XFS] Account for allocated blocks when expanding directories\n\nWhen we create a directory, we reserve a number of blocks for the maximum\npossible expansion of of the directory due to various btree splits,\nfreespace allocation, etc. Unfortunately, each allocation is not reflected\nin the total number of blocks still available to the transaction, so the\nmaximal reservation is used over and over again.\n\nThis leads to problems where an allocation group has only enough blocks\nfor *some* of the allocations required for the directory modification.\nAfter the first N allocations, the remaining blocks in the allocation\ngroup drops below the total reservation, and subsequent allocations fail\nbecause the allocator will not allow the allocation to proceed if the AG\ndoes not have the enough blocks available for the entire allocation total.\n\nThis results in an ENOSPC occurring after an allocation has already\noccurred. This results in aborting the directory operation (leaving the\ndirectory in an inconsistent state) and cancelling a dirty transaction,\nwhich results in a filesystem shutdown.\n\nAvoid the problem by reflecting the number of blocks allocated in any\ndirectory expansion in the total number of blocks available to the\nmodification in progress. This prevents a directory modification from\nbeing aborted part way through with an ENOSPC.\n\nSGI-PV: 988144\n\nSGI-Modid: xfs-linux-melb:xfs-kern:32340a\n\nSigned-off-by: David Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Lachlan McIlroy \u003clachlan@sgi.com\u003e\n"
    },
    {
      "commit": "2cf7f0da3ae225848a2ee10d4e216448a770fd00",
      "tree": "1cfbb7ca0b9a6742c8c35150f21d6ba91b153b36",
      "parents": [
        "9ccbece546cf836f67f6d9bb4bf2f70f7476cb2c"
      ],
      "author": {
        "name": "Lachlan McIlroy",
        "email": "lachlan@sgi.com",
        "time": "Thu Oct 30 16:59:06 2008 +1100"
      },
      "committer": {
        "name": "Lachlan McIlroy",
        "email": "lachlan@redback.melbourne.sgi.com",
        "time": "Mon Nov 10 17:51:00 2008 +1100"
      },
      "message": "[XFS] Wait for all I/O on truncate to zero file size\n\nIt\u0027s possible to have outstanding xfs_ioend_t\u0027s queued when the file size\nis zero. This can happen in the direct I/O path when a direct I/O write\nfails due to ENOSPC. In this case the xfs_ioend_t will still be queued (ie\nxfs_end_io_direct() does not know that the I/O failed so can\u0027t force the\nxfs_ioend_t to be flushed synchronously).\n\nWhen we truncate a file on unlink we don\u0027t know to wait for these\nxfs_ioend_ts and we can have a use-after-free situation if the inode is\nreclaimed before the xfs_ioend_t is finally processed.\n\nAs was suggested by Dave Chinner lets wait for all I/Os to complete when\ntruncating the file size to zero.\n\nSGI-PV: 981668\n\nSGI-Modid: xfs-linux-melb:xfs-kern:32216a\n\nSigned-off-by: Lachlan McIlroy \u003clachlan@sgi.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "9ccbece546cf836f67f6d9bb4bf2f70f7476cb2c",
      "tree": "86b6b97537c46eb70555fbe8ffdc16e1ec8b69d0",
      "parents": [
        "75fa67706cce5272bcfc51ed646f2da21f3bdb6e"
      ],
      "author": {
        "name": "Lachlan McIlroy",
        "email": "lachlan@sgi.com",
        "time": "Thu Oct 30 16:53:25 2008 +1100"
      },
      "committer": {
        "name": "Lachlan McIlroy",
        "email": "lachlan@redback.melbourne.sgi.com",
        "time": "Mon Nov 10 17:43:23 2008 +1100"
      },
      "message": "[XFS] Fix use-after-free with log and quotas\n\nDestroying the quota stuff on unmount can access the log - ie\nXFS_QM_DONE() ends up in xfs_dqunlock() which calls\nxfs_trans_unlocked_item() and then xfs_log_move_tail(). By this time the\nlog has already been destroyed. Just move the cleanup of the quota code\nearlier in xfs_unmountfs() before the call to xfs_log_unmount(). Moving\nXFS_QM_DONE() up near XFS_QM_DQPURGEALL() seems like a good spot.\n\nSGI-PV: 987086\n\nSGI-Modid: xfs-linux-melb:xfs-kern:32148a\n\nSigned-off-by: Lachlan McIlroy \u003clachlan@sgi.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Peter Leckie \u003cpleckie@sgi.com\u003e\n"
    },
    {
      "commit": "8b805ef617cf0e02f6d18b891f8deb6246421b01",
      "tree": "35759385f2834d48a10025f949e49e0c77095876",
      "parents": [
        "cb56d98e2a7530615899597551db685d68a2e852",
        "b726e923ea4d216027e466aa602d914e4b4a63af"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 09 12:25:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 09 12:25:44 2008 -0800"
      },
      "message": "Merge branch \u0027for-2.6.28\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.28\u0027 of git://linux-nfs.org/~bfields/linux:\n  Fix nfsd truncation of readdir results\n"
    },
    {
      "commit": "b726e923ea4d216027e466aa602d914e4b4a63af",
      "tree": "cb28235201c56c6637692efc8dcffca76fa5865e",
      "parents": [
        "d7dc61d0a70371b1c6557ea8ffbc60fff94c8168"
      ],
      "author": {
        "name": "Doug Nazar",
        "email": "nazard@dragoninc.ca",
        "time": "Wed Nov 05 06:16:28 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Nov 09 15:15:50 2008 -0500"
      },
      "message": "Fix nfsd truncation of readdir results\n\nCommit 8d7c4203 \"nfsd: fix failure to set eof in readdir in some\nsituations\" introduced a bug: on a directory in an exported ext3\nfilesystem with dir_index unset, a READDIR will only return about 250\nentries, even if the directory was larger.\n\nBisected it back to this commit; reverting it fixes the problem.\n\nIt turns out that in this case ext3 reads a block at a time, then\nreturns from readdir, which means we can end up with buf.full\u003d\u003d0 but\nwith more entries in the directory still to be read.  Before 8d7c4203\n(but after c002a6c797 \"Optimise NFS readdir hack slightly\"), this would\ncause us to return the READDIR result immediately, but with the eof bit\nunset.  That could cause a performance regression (because the client\nwould need more roundtrips to the server to read the whole directory),\nbut no loss in correctness, since the cleared eof bit caused the client\nto send another readdir.  After 8d7c4203, the setting of the eof bit\nmade this a correctness problem.\n\nSo, move nfserr_eof into the loop and remove the buf.full check so that\nwe loop until buf.used\u003d\u003d0.  The following seems to do the right thing\nand reduces the network traffic since we don\u0027t return a READDIR result\nuntil the buffer is full.\n\nTested on an empty directory \u0026 large directory; eof is properly sent and\nthere are no more short buffers.\n\nSigned-off-by: Doug Nazar \u003cnazard@dragoninc.ca\u003e\nCc: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "1538a093f71c61964a0e8a5b19f0129326724188",
      "tree": "dc2b629d7e8c50d06d6a9ea8a41e1043a374cf49",
      "parents": [
        "4bab0ea1d42dd1927af9df6fbf0003fc00617c50",
        "23712a9c28b9f80a8cf70c8490358d5f562d2465"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 07 08:15:18 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 07 08:15:18 2008 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: add checksum calculation when clearing UNINIT flag in ext4_new_inode\n  ext4: Mark the buffer_heads as dirty and uptodate after prepare_write\n  ext4: calculate journal credits correctly\n  ext4: wait on all pending commits in ext4_sync_fs()\n  ext4: Convert to host order before using the values.\n  ext4: fix missing ext4_unlock_group in error path\n  jbd2: deregister proc on failure in jbd2_journal_init_inode\n  jbd2: don\u0027t give up looking for space so easily in __jbd2_log_wait_for_space\n  jbd: don\u0027t give up looking for space so easily in __log_wait_for_space\n"
    },
    {
      "commit": "23712a9c28b9f80a8cf70c8490358d5f562d2465",
      "tree": "b831ecf1b2d9000568063003bc6a6ea8cb5325c8",
      "parents": [
        "ed9b3e3379731e9f9d2f73f3d7fd9e7d2ce3df4a"
      ],
      "author": {
        "name": "Frederic Bohe",
        "email": "frederic.bohe@bull.net",
        "time": "Fri Nov 07 09:21:01 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Nov 07 09:21:01 2008 -0500"
      },
      "message": "ext4: add checksum calculation when clearing UNINIT flag in ext4_new_inode\n\nWhen initializing an uninitialized block group in ext4_new_inode(),\nits block group checksum must be re-calculated.  This fixes a race\nwhen several threads try to allocate a new inode in an UNINIT\u0027d group.\n\nThere is some question whether we need to be initializing the block\nbitmap in ext4_new_inode() at all, but for now, if we are going to\ninit the block group, let\u0027s eliminate the race.\n\nSigned-off-by: Frederic Bohe \u003cfrederic.bohe@bull.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ed9b3e3379731e9f9d2f73f3d7fd9e7d2ce3df4a",
      "tree": "d17381e45fe8843646ca70424095a9aa36711ee7",
      "parents": [
        "ac51d83705c2a38c71f39cde99708b14e6212a60"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Nov 07 09:06:45 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Nov 07 09:06:45 2008 -0500"
      },
      "message": "ext4: Mark the buffer_heads as dirty and uptodate after prepare_write\n\nWe need to make sure we mark the buffer_heads as dirty and uptodate\nso that block_write_full_page write them correctly.\n\nThis fixes mmap corruptions that can occur in low memory situations.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7e2d9bfa4eabee3e1919a40f20d2ef8b569bd07e",
      "tree": "e79bfe087b5eea815bd584637fab1b14d357c9b1",
      "parents": [
        "e84461ad9c4f0ff91ab8553596acdb7bf5522df4"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Wed Nov 05 16:09:04 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Nov 07 12:11:52 2008 +0200"
      },
      "message": "UBIFS: allow for gaps when dirtying the LPT\n\nThe LPT may have gaps in it because initially empty LEBs\nare not added by mkfs.ubifs - because it does not know how\nmany there are.  Then UBIFS allocates empty LEBs in the\nreverse order that they are discovered i.e. they are\nadded to, and removed from, the front of a list.  That\ncreates a gap in the middle of the LPT.\n\nThe function dirtying the LPT tree (for the purpose of\nsmall model garbage collection) assumed that a gap could\nonly occur at the very end of the LPT and stopped dirtying\nprematurely, which in turn resulted in the LPT running\nout of space - something that is designed to be impossible.\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\n"
    },
    {
      "commit": "e252f4db187ef02d06c8551069d944d327b8bb9a",
      "tree": "0e704cc34161fc839ef203fbf71106de52e19a7d",
      "parents": [
        "2e93960c4d712096902c16fe5511fc91502c2527",
        "7838c15b8dd18e78a523513749e5b54bda07b0cb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:53:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:53:47 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  Block: use round_jiffies_up()\n  Add round_jiffies_up and related routines\n  block: fix __blkdev_get() for removable devices\n  generic-ipi: fix the smp_mb() placement\n  blk: move blk_delete_timer call in end_that_request_last\n  block: add timer on blkdev_dequeue_request() not elv_next_request()\n  bio: define __BIOVEC_PHYS_MERGEABLE\n  block: remove unused ll_new_mergeable()\n"
    },
    {
      "commit": "c36194871293100bd4b2ecb54ac9774d6e627aa2",
      "tree": "9fd6894103918f439d0e7ec35620e18018ccfa76",
      "parents": [
        "c3302931db090d87e9015c3a7ce5c97a7dd90f78",
        "dc8a0843a435b2c0891e7eaea64faaf1ebec9b11"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:43:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:43:13 2008 -0800"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6:\n  [JFFS2] fix race condition in jffs2_lzo_compress()\n  [MTD] [NOR] Fix cfi_send_gen_cmd handling of x16 devices in x8 mode (v4)\n  [JFFS2] Fix lack of locking in thread_should_wake()\n  [JFFS2] Fix build failure with !CONFIG_JFFS2_FS_WRITEBUFFER\n  [MTD] [NAND] OMAP2: remove duplicated #include\n"
    },
    {
      "commit": "c3302931db090d87e9015c3a7ce5c97a7dd90f78",
      "tree": "d7a1f9a2769630d7cfbcfc6f69199dbf69396e36",
      "parents": [
        "9ca59f4c3d28df14a1545a1e2832f34a0a50e3ed"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:22 2008 -0800"
      },
      "message": "fat: i_blocks warning fix\n\nblkcnt_t type depends on CONFIG_LSF. Use unsigned long long always for\nprintk().  But lazy to type it, so add \"llu\" and use it.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ca59f4c3d28df14a1545a1e2832f34a0a50e3ed",
      "tree": "4a9d307e2a3541765cf194f27d873c6d06e5d960",
      "parents": [
        "2bdf67eb1631f30e2f3f5d49e4007c76e88877a8"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: -\u003ei_pos race fix\n\ni_pos is 64bits value, hence it\u0027s not atomic to update.\n\nImportant place is fat_write_inode() only, other places without lock\nare just for printk().\n\nThis adds lock for \"BITS_PER_LONG \u003d\u003d 32\" kernel.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2bdf67eb1631f30e2f3f5d49e4007c76e88877a8",
      "tree": "d3d337e52516b3b61cdf4508cf445ef8dcaae2ed",
      "parents": [
        "0e75f5da06c05425f4b375eb981c4489fb2d9787"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: mmu_private race fix\n\nmmu_private is 64bits value, hence it\u0027s not atomic to update.\n\nSo, the access rule for mmu_private is we must hold -\u003ei_mutex.  But,\nfat_get_block() path doesn\u0027t follow the rule on non-allocation path.\n\nThis fixes by using i_size instead if non-allocation path.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0e75f5da06c05425f4b375eb981c4489fb2d9787",
      "tree": "58ffca2561f689aa253274376d440ae35ddee1b5",
      "parents": [
        "fa93ca18a8b0da4e26bd9491ad144cd14d22f8ec"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: Add printf attribute to fat_fs_panic()\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa93ca18a8b0da4e26bd9491ad144cd14d22f8ec",
      "tree": "2950aa2baa218493329873a61aa234c7fcc5d83e",
      "parents": [
        "dfc209c0064efef5590f608056a48b61a5cac09c"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: Fix _fat_bmap() race\n\nfat_get_cluster() assumes the requested blocknr isn\u0027t truncated during\nread. _fat_bmap() doesn\u0027t follow this rule.\n\nThis protects it by -\u003ei_mutex.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dfc209c0064efef5590f608056a48b61a5cac09c",
      "tree": "1ace2df7370944dd94b3c8f6a53acf6ea76fdd79",
      "parents": [
        "9183482f5d4a2de00f66641b974e7f351d41b675"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:55 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: Fix ATTR_RO for directory\n\nFAT has the ATTR_RO (read-only) attribute. But on Windows, the ATTR_RO\nof the directory will be just ignored actually, and is used by only\napplications as flag. E.g. it\u0027s setted for the customized folder by\nExplorer.\n\nhttp://msdn2.microsoft.com/en-us/library/aa969337.aspx\n\nThis adds \"rodir\" option. If user specified it, ATTR_RO is used as\nread-only flag even if it\u0027s the directory. Otherwise, inode-\u003ei_mode\nis not used to hold ATTR_RO (i.e. fat_mode_can_save_ro() returns 0).\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9183482f5d4a2de00f66641b974e7f351d41b675",
      "tree": "cc23af150f0aab03b29704eb461dac98b6c1f0cf",
      "parents": [
        "9c0aa1b87bf541affef519eb4879ce7c5a5941ae"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:54 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: Fix ATTR_RO in the case of (~umask \u0026 S_WUGO) \u003d\u003d 0\n\nIf inode-\u003ei_mode doesn\u0027t have S_WUGO, current code assumes it means\nATTR_RO.  However, if (~[ufd]mask \u0026 S_WUGO) \u003d\u003d 0, inode-\u003ei_mode can\u0027t\nhold S_WUGO. Therefore the updated directory entry will always have\nATTR_RO.\n\nThis adds fat_mode_can_hold_ro() to check it. And if inode-\u003ei_mode\ncan\u0027t hold, uses -i_attrs to hold ATTR_RO instead.\n\nWith this, we don\u0027t set ATTR_RO unless users change it via ioctl() if\n(~[ufd]mask \u0026 S_WUGO) \u003d\u003d 0.\n\nAnd on FAT_IOCTL_GET_ATTRIBUTES path, this adds -\u003ei_mutex to it for\nnot returning the partially updated attributes by FAT_IOCTL_SET_ATTRIBUTES\nto userland.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c0aa1b87bf541affef519eb4879ce7c5a5941ae",
      "tree": "3bd583d8331c630b59fc01b68ab9cb34bb953d6e",
      "parents": [
        "45cfbe354785a5bc9a38354754d6f7322f598001"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:54 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: Cleanup FAT attribute stuff\n\nThis adds three helpers:\n\nfat_make_attrs() - makes FAT attributes from inode.\nfat_make_mode()  - makes mode_t from FAT attributes.\nfat_save_attrs() - saves FAT attributes to inode.\n\nThen this replaces: MSDOS_MKMODE() by fat_make_mode(), fat_attr() by\nfat_make_attrs(), -\u003ei_attrs \u003d attr \u0026 ATTR_UNUSED by fat_save_attrs().\nAnd for root inode, those is used with ATTR_DIR instead of bogus\nATTR_NONE.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45cfbe354785a5bc9a38354754d6f7322f598001",
      "tree": "cf26bd09db5acb4848e33792273c0d083015510a",
      "parents": [
        "1c13a243a461dd5b089d29e5d57f260c990e462c"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: Cleanup msdos_lookup()\n\nUse same style with vfat_lookup().\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "1c13a243a461dd5b089d29e5d57f260c990e462c"
}
