)]}'
{
  "log": [
    {
      "commit": "352114f395bd79353faf0bc1506ead94de393f55",
      "tree": "46d9001aff3738afd13323fc883d89b7e8a74450",
      "parents": [
        "3be4479fdf2fb7eb17a4592917ae4b536058b0c7"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Sep 27 13:59:48 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Sep 27 10:16:11 2010 -0400"
      },
      "message": "sunrpc: Add net to pure API calls\n\nThere are two calls that operate on ip_map_cache and are\ndirectly called from the nfsd code. Other places will be\nhandled in a different way.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "74ec1e1269eba65b5f8e810cf0363ddb7aa64de5",
      "tree": "11b0ab0612f275b0ddff4077be3ba8ee46f78f6c",
      "parents": [
        "049ef27b224ecc33958465fef83d5e4e8a056115"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Sep 24 17:43:59 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Sep 26 14:48:25 2010 -0400"
      },
      "message": "nfsd: fix /proc/net/rpc/nfsd.export/content display\n\nNote with \"first\" always 0, and \"lastflags\" initially 0, we always dump\na spurious set of 0 flags at the start, among other problems.\n\nFix.  And attempt to make the code a little more obvious.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "049ef27b224ecc33958465fef83d5e4e8a056115",
      "tree": "c4bec9c4f6b13958353cb1ee7001865779a5cd1e",
      "parents": [
        "1e1405673e4e40a94ed7620553eb440a21040402"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Thu Sep 23 18:26:58 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Sep 23 10:34:21 2010 -0400"
      },
      "message": "nfsd: Export get_task_comm for nfsd\n\nThe git://linux-nfs.org/~bfields/linux.git nfsd-next branch doesn\u0027t\ncompile when nfsd is a module with the following error:\n\n   ERROR: \"get_task_comm\" [fs/nfsd/nfsd.ko] undefined!\n\nReplace the get_task_comm call with direct comm access, which is\nsafe for current.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "1e1405673e4e40a94ed7620553eb440a21040402",
      "tree": "2553812b11feeefbf2b68c226f45d52e7a12f5b5",
      "parents": [
        "c67874f942e30039442d925b03793e0a46ddcddd"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Sep 22 12:55:07 2010 +1000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Sep 22 15:33:14 2010 -0400"
      },
      "message": "nfsd: allow deprecated interface to be compiled out.\n\nAdd CONFIG_NFSD_DEPRECATED, default to y.\nOnly include deprecated interface if this is defined.\nThis allows distros to remove this interface before the official\nremoval, and allows developers to test without it.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "c67874f942e30039442d925b03793e0a46ddcddd",
      "tree": "4f5def2f155c74181b015a13d563c1898b64d98a",
      "parents": [
        "e95dffa4304186ad87963255f3e5e96b5c41849f"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Sep 22 12:55:07 2010 +1000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Sep 22 15:33:13 2010 -0400"
      },
      "message": "nfsd: formally deprecate legacy nfsd syscall interface\n\nThe syscall interface is has been replaced by a more flexible\ninterface since 2.6.0.  It is time to work towards discarding\nthe old interface.\n\nSo add a entry in feature-removal-schedule.txt and print a warning\nwhen the interface is used.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f904be9cc77f361d37d71468b13ff3d1a1823dea",
      "tree": "0c4b82a971b3240bb1f78a9428a911c450a35c08",
      "parents": [
        "e7f483eabea8ef6d2b5ce1b74c8184cc06819f15"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Tue Sep 21 16:38:12 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Sep 22 15:32:58 2010 -0400"
      },
      "message": "lockd: Mostly remove BKL from the server\n\nThis patch removes all but one call to lock_kernel() from the server.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "839049a8732d689d02051e0198fb60a22f7ccb4b",
      "tree": "7ae2ec763232f79f98a0d8122d710ac9887fb8b9",
      "parents": [
        "8ff30fa4eff2ff9e207961c654caa093f0c84873"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Aug 12 17:04:06 2010 +1000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Sep 21 17:08:31 2010 -0400"
      },
      "message": "nfsd/idmap: drop special request deferal in favour of improved default.\n\nThe idmap code manages request deferal by waiting for a reply from\nuserspace rather than putting the NFS request on a queue to be retried\nfrom the start.\nNow that the common deferal code does this there is no need for the\nspecial code in idmap.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8ff30fa4eff2ff9e207961c654caa093f0c84873",
      "tree": "b25fcb36bf2b276566a69b031b2baea8e216725a",
      "parents": [
        "1ebede86b8abbcf8833830e18e05391758cf2f28"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Aug 12 17:04:07 2010 +1000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Sep 21 17:02:27 2010 -0400"
      },
      "message": "nfsd: disable deferral for NFSv4\n\nNow that a slight delay in getting a reply to an upcall doesn\u0027t\nrequire deferring of requests, request deferral for all NFSv4\nrequests - the concept doesn\u0027t really fit with the v4 model.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "c88739b373e4930ed082a607cb78bf82616fd076",
      "tree": "251d969aa816dab5a62e6b36208b189b37de6534",
      "parents": [
        "3211af1119174fbe8b676422b74870cdd51d7314",
        "827e3457022d0bb0b1bb8a0eb88501876fe7dcf0"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Sep 19 23:48:00 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Sep 19 23:48:32 2010 -0400"
      },
      "message": "Merge remote branch \u0027trond/bugfixes\u0027 into for-2.6.37\n\nWithout some client-side fixes, server testing is currently difficult.\n"
    },
    {
      "commit": "827e3457022d0bb0b1bb8a0eb88501876fe7dcf0",
      "tree": "d9ed145eb533745bdf043b263b97aac8735abffb",
      "parents": [
        "fbf3fdd2443965d9ba6fb4b5fecd1f6e0847218f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Sep 12 19:57:50 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Sep 12 19:57:50 2010 -0400"
      },
      "message": "SUNRPC: Fix the NFSv4 and RPCSEC_GSS Kconfig dependencies\n\nThe NFSv4 client\u0027s callback server calls svc_gss_principal(), which\nis defined in the auth_rpcgss.ko\n\nThe NFSv4 server has the same dependency, and in addition calls\nsvcauth_gss_flavor(), gss_mech_get_by_pseudoflavor(),\ngss_pseudoflavor_to_service() and gss_mech_put() from the same module.\n\nThe module auth_rpcgss itself has no dependencies aside from sunrpc,\nso we only need to select RPCSEC_GSS.\n\nReported-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fbf3fdd2443965d9ba6fb4b5fecd1f6e0847218f",
      "tree": "55e1b68c3304b35e8c7e8d1f0de54521189908b9",
      "parents": [
        "b20d37ca9561711c6a3c4b859c2855f49565e061"
      ],
      "author": {
        "name": "Menyhart Zoltan",
        "email": "Zoltan.Menyhart@bull.net",
        "time": "Sun Sep 12 19:55:26 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Sep 12 19:55:26 2010 -0400"
      },
      "message": "statfs() gives ESTALE error\n\nHi,\n\nAn NFS client executes a statfs(\"file\", \u0026buff) call.\n\"file\" exists / existed, the client has read / written it,\nbut it has already closed it.\n\nuser_path(pathname, \u0026path) looks up \"file\" successfully in the\ndirectory-cache  and restarts the aging timer of the directory-entry.\nEven if \"file\" has already been removed from the server, because the\nlookupcache\u003dpositive option I use, keeps the entries valid for a while.\n\nnfs_statfs() returns ESTALE if \"file\" has already been removed from the\nserver.\n\nIf the user application repeats the statfs(\"file\", \u0026buff) call, we\nare stuck: \"file\" remains young forever in the directory-cache.\n\nSigned-off-by: Zoltan Menyhart  \u003cZoltan.Menyhart@bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "b20d37ca9561711c6a3c4b859c2855f49565e061",
      "tree": "fa8aba0a2a7e7b2c246e9c35e04526aafdb623d3",
      "parents": [
        "db5fe26541b6b48460104a0d949a27cdc7786957"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Sep 12 19:55:26 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Sep 12 19:55:26 2010 -0400"
      },
      "message": "NFS: Fix a typo in nfs_sockaddr_match_ipaddr6\n\nReported-by: Ben Greear \u003cgreearb@candelatech.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "b1bde04c6d9a120dec602cc8a70b8a7f21600883",
      "tree": "2d2a53e0978e3f8e3d320260dc78bbbbbe749651",
      "parents": [
        "55576244eba805307a2b2b6a145b8f85f8c7c124"
      ],
      "author": {
        "name": "Fabio Olive Leite",
        "email": "fleite@redhat.com",
        "time": "Sun Sep 12 19:55:25 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Sep 12 19:55:25 2010 -0400"
      },
      "message": "Remove incorrect do_vfs_lock message\n\nThe do_vfs_lock function on fs/nfs/file.c is only called if NLM is\nnot being used, via the -onolock mount option. Therefore it cannot\nreally be \"out of sync with lock manager\" when the local locking\nfunction called returns an error, as there will be no corresponding\ncall to the NLM. For details, simply check the if/else on do_setlk\nand do_unlk on fs/nfs/file.c.\n\nSigned-Off-By: Fabio Olive Leite \u003cfleite@redhat.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fbc1487019d287bd869baac846dee97f39f8f07c",
      "tree": "b44f6573874fa2dc0fa8f9466380f530142b9bd7",
      "parents": [
        "5ee5e97ee9bca919af11c562beeaf61741ad33f1",
        "51749e47e191db8e588ad5cebea731caf7b705d7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 10 18:19:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 10 18:19:26 2010 -0700"
      },
      "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: log IO completion workqueue is a high priority queue\n  xfs: prevent reading uninitialized stack memory\n"
    },
    {
      "commit": "51749e47e191db8e588ad5cebea731caf7b705d7",
      "tree": "35eecb6db9f24bdff527502bb4fd318f2c8be014",
      "parents": [
        "a122eb2fdfd78b58c6dd992d6f4b1aaef667eef9"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Sep 08 09:00:22 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Sep 10 10:16:54 2010 -0500"
      },
      "message": "xfs: log IO completion workqueue is a high priority queue\n\nThe workqueue implementation in 2.6.36-rcX has changed, resulting\nin the workqueues no longer having dedicated threads for work\nprocessing. This has caused severe livelocks under heavy parallel\ncreate workloads because the log IO completions have been getting\nheld up behind metadata IO completions.  Hence log commits would\nstall, memory allocation would stall because pages could not be\ncleaned, and lock contention on the AIL during inode IO completion\nprocessing was being seen to slow everything down even further.\n\nBy making the log Io completion workqueue a high priority workqueue,\nthey are queued ahead of all data/metadata IO completions and\nprocessed before the data/metadata completions. Hence the log never\ngets stalled, and operations needed to clean memory can continue as\nquickly as possible. This avoids the livelock conditions and allos\nthe system to keep running under heavy load as per normal.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "9aea5a65aa7a1af9a4236dfaeb0088f1624f9919",
      "tree": "c0e36c74dc511912f59e207c70893dc6bd13b543",
      "parents": [
        "7993bc1f4663c0db67bb8f0d98e6678145b387cd"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Tue Sep 07 19:37:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 10 08:10:26 2010 -0700"
      },
      "message": "execve: make responsive to SIGKILL with large arguments\n\nAn execve with a very large total of argument/environment strings\ncan take a really long time in the execve system call.  It runs\nuninterruptibly to count and copy all the strings.  This change\nmakes it abort the exec quickly if sent a SIGKILL.\n\nNote that this is the conservative change, to interrupt only for\nSIGKILL, by using fatal_signal_pending().  It would be perfectly\ncorrect semantics to let any signal interrupt the string-copying in\nexecve, i.e. use signal_pending() instead of fatal_signal_pending().\nWe\u0027ll save that change for later, since it could have user-visible\nconsequences, such as having a timer set too quickly make it so that\nan execve can never complete, though it always happened to work before.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7993bc1f4663c0db67bb8f0d98e6678145b387cd",
      "tree": "d283304f635cc5c36d8fa3319dd663209138988e",
      "parents": [
        "1b528181b2ffa14721fb28ad1bd539fe1732c583"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Tue Sep 07 19:36:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 10 08:10:26 2010 -0700"
      },
      "message": "execve: improve interactivity with large arguments\n\nThis adds a preemption point during the copying of the argument and\nenvironment strings for execve, in copy_strings().  There is already\na preemption point in the count() loop, so this doesn\u0027t add any new\npoints in the abstract sense.\n\nWhen the total argument+environment strings are very large, the time\nspent copying them can be much more than a normal user time slice.\nSo this change improves the interactivity of the rest of the system\nwhen one process is doing an execve with very large arguments.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b528181b2ffa14721fb28ad1bd539fe1732c583",
      "tree": "c6c11dd4fb1845ce1a7d5c048fba40a62d5d94de",
      "parents": [
        "be6200aac985e0a3db56ec636763a32f3e32e7f1"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Tue Sep 07 19:35:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 10 08:10:26 2010 -0700"
      },
      "message": "setup_arg_pages: diagnose excessive argument size\n\nThe CONFIG_STACK_GROWSDOWN variant of setup_arg_pages() does not\ncheck the size of the argument/environment area on the stack.\nWhen it is unworkably large, shift_arg_pages() hits its BUG_ON.\nThis is exploitable with a very large RLIMIT_STACK limit, to\ncreate a crash pretty easily.\n\nCheck that the initial stack is not too large to make it possible\nto map in any executable.  We\u0027re not checking that the actual\nexecutable (or intepreter, for binfmt_elf) will fit.  So those\nmappings might clobber part of the initial stack mapping.  But\nthat is just userland lossage that userland made happen, not a\nkernel problem.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff3cb3fec3c5bbb5110e652bbdd410bc99a47e9f",
      "tree": "5b6834a3a4ecd479d544f8cc8cd10811c1ae13e1",
      "parents": [
        "6ccaa3172941c0a97c7f1c5155b1d32ecd27ec2f",
        "be14eb619108fa8b7120eb2c42d66d5f623ae10e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 10 07:26:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 10 07:26:27 2010 -0700"
      },
      "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: Range check cpu in blk_cpu_to_group\n  scatterlist: prevent invalid free when alloc fails\n  writeback: Fix lost wake-up shutting down writeback thread\n  writeback: do not lose wakeup events when forking bdi threads\n  cciss: fix reporting of max queue depth since init\n  block: switch s390 tape_block and mg_disk to elevator_change()\n  block: add function call to switch the IO scheduler from a driver\n  fs/bio-integrity.c: return -ENOMEM on kmalloc failure\n  bio-integrity.c: remove dependency on __GFP_NOFAIL\n  BLOCK: fix bio.bi_rw handling\n  block: put dev-\u003ekobj in blk_register_queue fail path\n  cciss: handle allocation failure\n  cfq-iosched: Documentation help for new tunables\n  cfq-iosched: blktrace print per slice sector stats\n  cfq-iosched: Implement tunable group_idle\n  cfq-iosched: Do group share accounting in IOPS when slice_idle\u003d0\n  cfq-iosched: Do not idle if slice_idle\u003d0\n  cciss: disable doorbell reset on reset_devices\n  blkio: Fix return code for mkdir calls\n"
    },
    {
      "commit": "a122eb2fdfd78b58c6dd992d6f4b1aaef667eef9",
      "tree": "754cbb6319fd3114c6aeb1bf456bf37cff699c69",
      "parents": [
        "cc491e27d31f1bb3dacb309407b47d65669ceb9d"
      ],
      "author": {
        "name": "Dan Rosenberg",
        "email": "dan.j.rosenberg@gmail.com",
        "time": "Mon Sep 06 18:24:57 2010 -0400"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Sep 10 07:39:28 2010 -0500"
      },
      "message": "xfs: prevent reading uninitialized stack memory\n\nThe XFS_IOC_FSGETXATTR ioctl allows unprivileged users to read 12\nbytes of uninitialized stack memory, because the fsxattr struct\ndeclared on the stack in xfs_ioc_fsgetxattr() does not alter (or zero)\nthe 12-byte fsx_pad member before copying it back to the user.  This\npatch takes care of it.\n\nSigned-off-by: Dan Rosenberg \u003cdan.j.rosenberg@gmail.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "eee743fd7eac9f2ea69ad06d093dfb5a12538fe5",
      "tree": "0d7d7f66393c76583007459b3ec5a19528cff8ab",
      "parents": [
        "9ee493ce0a60bf42c0f8fd0b0fe91df5704a1cbf"
      ],
      "author": {
        "name": "Jorge Boncompte [DTI2]",
        "email": "jorge@dti2.net",
        "time": "Thu Sep 09 16:38:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "minix: fix regression in minix_mkdir()\n\nCommit 9eed1fb721c (\"minix: replace inode uid,gid,mode init with helper\")\nbroke directory creation on minix filesystems.\n\nFix it by passing the needed mode flag to inode init helper.\n\nSigned-off-by: Jorge Boncompte [DTI2] \u003cjorge@dti2.net\u003e\nCc: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.35.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ab04d5cf9736b7a4e9dfcf28285d8663b01aa0e",
      "tree": "1e8a52d0c2592d6d4a14d988dbf55331cc07fd24",
      "parents": [
        "3399446632739fcd05fd8b272b476a69c6e6d14a"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 09 16:38:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "vfs: take O_NONBLOCK out of the O_* uniqueness test\n\nO_NONBLOCK on parisc has a dual value:\n\n#define O_NONBLOCK\t000200004 /* HPUX has separate NDELAY \u0026 NONBLOCK */\n\nIt is caught by the O_* bits uniqueness check and leads to a parisc\ncompile error.  The fix would be to take O_NONBLOCK out.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nCc: Jamie Lokier \u003cjamie@shareable.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee3aebdd8f5f8eac41c25c80ceee3d728f920f3b",
      "tree": "13eff87af7c86efa1d216ce7f4f98e81b5dd305f",
      "parents": [
        "152e0659fc001029c70fa4373af1792b1ae0d01c"
      ],
      "author": {
        "name": "Jan Sembera",
        "email": "jsembera@suse.cz",
        "time": "Thu Sep 09 16:37:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:24 2010 -0700"
      },
      "message": "binfmt_misc: fix binfmt_misc priority\n\nCommit 74641f584da (\"alpha: binfmt_aout fix\") (May 2009) introduced a\nregression - binfmt_misc is now consulted after binfmt_elf, which will\nunfortunately break ia32el.  ia32 ELF binaries on ia64 used to be matched\nusing binfmt_misc and executed using wrapper.  As 32bit binaries are now\nmatched by binfmt_elf before bindmt_misc kicks in, the wrapper is ignored.\n\nThe fix increases precedence of binfmt_misc to the original state.\n\nSigned-off-by: Jan Sembera \u003cjsembera@suse.cz\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Richard Henderson \u003crth@twiddle.net\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.everything.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed430fec756ad65f7cfba24f8ad17c3d5a403290",
      "tree": "b0846b50b99ea2ec1e409bebb5ee13e18324dc8e",
      "parents": [
        "85a0fdfd0f967507f3903e8419bc7e408f5a59de"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Sep 09 16:37:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:23 2010 -0700"
      },
      "message": "proc: export uncached bit properly in /proc/kpageflags\n\nFix the left-over old ifdef for PG_uncached in /proc/kpageflags.  Now it\u0027s\nused by x86, too.\n\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a801ac6f5067539ceb5fad0fe90ec49fc156e47",
      "tree": "6c2219eccccb3e71f8930993b7460290e787cd12",
      "parents": [
        "4e70598c3b56e6fec551454c495d4d4025834749"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Thu Sep 09 16:37:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:22 2010 -0700"
      },
      "message": "O_DIRECT: fix the splitting up of contiguous I/O\n\ncommit c2c6ca4 (direct-io: do not merge logically non-contiguous requests)\nintroduced a bug whereby all O_DIRECT I/Os were submitted a page at a time\nto the block layer.  The problem is that the code expected\ndio-\u003eblock_in_file to correspond to the current page in the dio.  In fact,\nit corresponds to the previous page submitted via submit_page_section.\nThis was purely an oversight, as the dio-\u003ecur_page_fs_offset field was\nintroduced for just this purpose.  This patch simply uses the correct\nvariable when calculating whether there is a mismatch between contiguous\nlogical blocks and contiguous physical blocks (as described in the\ncomments).\n\nI also switched the if conditional following this check to an else if, to\nensure that we never call dio_bio_submit twice for the same dio (in\ntheory, this should not happen, anyway).\n\nI\u0027ve tested this by running blktrace and verifying that a 64KB I/O was\nsubmitted as a single I/O.  I also ran the patched kernel through\nxfstests\u0027 aio tests using xfs, ext4 (with 1k and 4k block sizes) and btrfs\nand verified that there were no regressions as compared to an unpatched\nkernel.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nAcked-by: Josef Bacik \u003cjbacik@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.35.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "39aa3cb3e8250db9188a6f1e3fb62ffa1a717678",
      "tree": "266640c10436e9bda9bc283fbe5db22761a7cc7c",
      "parents": [
        "26a94e81ded0fcdc0bf96b5fea7343311f1a220b"
      ],
      "author": {
        "name": "Stefan Bader",
        "email": "stefan.bader@canonical.com",
        "time": "Tue Aug 31 15:52:27 2010 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 09:05:06 2010 -0700"
      },
      "message": "mm: Move vma_stack_continue into mm.h\n\nSo it can be used by all that need to check for that.\n\nSigned-off-by: Stefan Bader \u003cstefan.bader@canonical.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cad46744a308299e1c33a549e3e9c9a5bc468f05",
      "tree": "cb63f5cf2f6f81b2ea13dce8e17185b1f8f781f2",
      "parents": [
        "cc491e27d31f1bb3dacb309407b47d65669ceb9d",
        "97b8f4a9dfd932997677136e11980eb2fafea91d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 08:57:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 08:57:02 2010 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://oss.oracle.com/git/tma/linux-2.6\n\n* \u0027fixes\u0027 of git://oss.oracle.com/git/tma/linux-2.6:\n  ocfs2: Fix orphan add in ocfs2_create_inode_in_orphan\n  ocfs2: split out ocfs2_prepare_orphan_dir() into locking and prep functions\n  ocfs2: allow return of new inode block location before allocation of the inode\n  ocfs2: use ocfs2_alloc_dinode_update_counts() instead of open coding\n  ocfs2: split out inode alloc code from ocfs2_mknod_locked\n  Ocfs2: Fix a regression bug from mainline commit(6b933c8e6f1a2f3118082c455eef25f9b1ac7b45).\n  ocfs2: Fix deadlock when allocating page\n  ocfs2: properly set and use inode group alloc hint\n  ocfs2: Use the right group in nfs sync check.\n  ocfs2: Flush drive\u0027s caches on fdatasync\n  ocfs2: make __ocfs2_page_mkwrite handle file end properly.\n  ocfs2: Fix incorrect checksum validation error\n  ocfs2: Fix metaecc error messages\n"
    },
    {
      "commit": "c8c727db413e18414dc6ebc2cc4f18f390763e17",
      "tree": "a57102fff430d3cb5d2db3a193409850e85047be",
      "parents": [
        "4f63e3c5be2ab55d47d89ea1d32d2c27254daf26",
        "b9ca67b2ddf021491a3741d9555e8ff59b2175ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 08 11:12:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 08 11:12:59 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  fuse: fix lock annotations\n  fuse: flush background queue on connection close\n"
    },
    {
      "commit": "97b8f4a9dfd932997677136e11980eb2fafea91d",
      "tree": "63f1a6555c61f4ce421c7b9d7358a34a6e919c6a",
      "parents": [
        "dd43bcde23c527f64897eef41aa1fed2c9905ea9"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Aug 13 15:15:19 2010 -0700"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Sep 08 14:26:00 2010 +0800"
      },
      "message": "ocfs2: Fix orphan add in ocfs2_create_inode_in_orphan\n\nocfs2_create_inode_in_orphan() is used by reflink to create the newly\nreflinked inode simultaneously in the orphan dir. This allows us to easily\nhandle partially-reflinked files during recovery cleanup.\n\nWe have a problem though - the orphan dir stringifies inode # to determine\na unique name under which the orphan entry dirent can be created. Since\nocfs2_create_inode_in_orphan() needs the space allocated in the orphan dir\nbefore it can allocate the inode, we currently call into the orphan code:\n\n       /*\n        * We give the orphan dir the root blkno to fake an orphan name,\n        * and allocate enough space for our insertion.\n        */\n       status \u003d ocfs2_prepare_orphan_dir(osb, \u0026orphan_dir,\n                                         osb-\u003eroot_blkno,\n                                         orphan_name, \u0026orphan_insert);\n\nUsing osb-\u003eroot_blkno might work fine on unindexed directories, but the\norphan dir can have an index.  When it has that index, the above code fails\nto allocate the proper index entry.  Later, when we try to remove the file\nfrom the orphan dir (using the actual inode #), the reflink operation will\nfail.\n\nTo fix this, I created a function ocfs2_alloc_orphaned_file() which uses the\nnewly split out orphan and inode alloc code to figure out what the inode\nblock number will be (once allocated) and then prepare the orphan dir from\nthat data.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "dd43bcde23c527f64897eef41aa1fed2c9905ea9",
      "tree": "59a35711f0d21ef5198b6721e97a622b3e5f384d",
      "parents": [
        "e49e27674d1dd2717ad90b21ece8f83102153315"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Aug 13 15:15:18 2010 -0700"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Sep 08 14:26:00 2010 +0800"
      },
      "message": "ocfs2: split out ocfs2_prepare_orphan_dir() into locking and prep functions\n\nWe do this because ocfs2_create_inode_in_orphan() wants to order locking of\nthe orphan dir with respect to locking of the inode allocator *before*\nmaking any changes to the directory.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "e49e27674d1dd2717ad90b21ece8f83102153315",
      "tree": "3ef61e9e4273a236dde61af12cb1e43d8c421c21",
      "parents": [
        "d51349829c378c06ba4aa7d4b16ca23739858608"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Aug 13 15:15:17 2010 -0700"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Sep 08 14:25:59 2010 +0800"
      },
      "message": "ocfs2: allow return of new inode block location before allocation of the inode\n\nThis allows code which needs to know the eventual block number of an inode\nbut can\u0027t allocate it yet due to transaction or lock ordering. For example,\nocfs2_create_inode_in_orphan() currently gives a junk blkno for preparation\nof the orphan dir because it can\u0027t yet know where the actual inode is placed\n- that code is actually in ocfs2_mknod_locked. This is a problem when the\norphan dirs are indexed as the junk inode number will create an index entry\nwhich goes unused (and fails the later removal from the orphan dir).  Now\nwith these interfaces, ocfs2_create_inode_in_orphan() can run the block\ngroup search (and get back the inode block number) *before* any actual\nallocation occurs.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "d51349829c378c06ba4aa7d4b16ca23739858608",
      "tree": "972c0087222f803e7789a44e40e27585790333bf",
      "parents": [
        "021960cab320ae3cc4e9aba9cca42f9f5ce785f3"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Aug 13 15:15:16 2010 -0700"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Sep 08 14:25:58 2010 +0800"
      },
      "message": "ocfs2: use ocfs2_alloc_dinode_update_counts() instead of open coding\n\nocfs2_search_chain() makes the same updates as\nocfs2_alloc_dinode_update_counts to the alloc inode. Instead of open coding\nthe bitmap update, use our helper function.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "021960cab320ae3cc4e9aba9cca42f9f5ce785f3",
      "tree": "f8fde4ef51bae0f7c9979a586b0c8ccab67a5f0b",
      "parents": [
        "81c8c82b5a39f9127e8b239e9b406a6c3a41b228"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Aug 13 15:15:15 2010 -0700"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Sep 08 14:25:58 2010 +0800"
      },
      "message": "ocfs2: split out inode alloc code from ocfs2_mknod_locked\n\nDo this by splitting the bulk of the function away from the inode allocation\ncode at the very tom of ocfs2_mknod_locked(). Existing callers don\u0027t need to\nchange and won\u0027t see any difference. The new function created,\n__ocfs2_mknod_locked() will be used shortly.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "81c8c82b5a39f9127e8b239e9b406a6c3a41b228",
      "tree": "960d5e11585afea6bb4e24a87fb73a975e16883c",
      "parents": [
        "9b4c0ff32ccd87ab52d4c5bd0a0536febce11370"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Thu Aug 19 15:15:00 2010 +0800"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Sep 08 14:25:57 2010 +0800"
      },
      "message": "Ocfs2: Fix a regression bug from mainline commit(6b933c8e6f1a2f3118082c455eef25f9b1ac7b45).\n\nThe patch is to fix the regression bug brought from commit 6b933c8...( \u0027ocfs2:\nAvoid direct write if we fall back to buffered I/O\u0027):\n\nhttp://oss.oracle.com/bugzilla/show_bug.cgi?id\u003d1285\n\nThe commit 6b933c8e6f1a2f3118082c455eef25f9b1ac7b45 changed __generic_file_aio_write\nto generic_file_buffered_write, which didn\u0027t call filemap_{write,wait}_range to  flush\nthe pagecaches when we were falling O_DIRECT writes back to buffered ones. it did hurt\nthe O_DIRECT semantics somehow in extented odirect writes.\n\nThis patch tries to guarantee O_DIRECT writes of \u0027fall back to buffered\u0027 to be correctly\nflushed.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "9b4c0ff32ccd87ab52d4c5bd0a0536febce11370",
      "tree": "b9e77d2798eac9051353b29f22e9315d9d9e13b5",
      "parents": [
        "b2b6ebf5f740e015b2155343958f067e594323ea"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Aug 24 14:28:03 2010 +0200"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Sep 08 14:25:57 2010 +0800"
      },
      "message": "ocfs2: Fix deadlock when allocating page\n\nWe cannot call grab_cache_page() when holding filesystem locks or with\na transaction started as grab_cache_page() calls page allocation with\nGFP_KERNEL flag and thus page reclaim can recurse back into the filesystem\ncausing deadlocks or various assertion failures. We have to use\nfind_or_create_page() instead and pass it GFP_NOFS as we do with other\nallocations.\n\nAcked-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "b2b6ebf5f740e015b2155343958f067e594323ea",
      "tree": "c235f91c504cb95ce0b7b4a5c3cfed1df185eb88",
      "parents": [
        "889f004a8c83d515f275078687f859bc0d5ede9d"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Aug 26 13:06:50 2010 -0700"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Sep 08 14:25:56 2010 +0800"
      },
      "message": "ocfs2: properly set and use inode group alloc hint\n\nWe were setting ac-\u003eac_last_group in ocfs2_claim_suballoc_bits from\nres-\u003esr_bg_blkno.  Unfortunately, res-\u003esr_bg_blkno is going to be zero under\nnormal (non-fragmented) circumstances. The discontig block group patches\neffectively turned off that feature. Fix this by correctly calculating what\nthe next group hint should be.\n\nAcked-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nTested-by: Goldwyn Rodrigues \u003crgoldwyn@suse.de\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "889f004a8c83d515f275078687f859bc0d5ede9d",
      "tree": "d1b35ad545a4a68fefd1618a591a9d26ccd15ced",
      "parents": [
        "04eda1a18019bb387dc7e97ee99979dd88dc608a"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Thu Sep 02 13:10:10 2010 +0800"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Sep 08 14:25:56 2010 +0800"
      },
      "message": "ocfs2: Use the right group in nfs sync check.\n\nWe have added discontig block group now, and now an inode\ncan be allocated in an discontig block group. So get\nit in ocfs2_get_suballoc_slot_bit.\n\nThe old ocfs2_test_suballoc_bit gets group block no\nfrom the allocation inode which is wrong. Fix it by\npassing the right group.\n\nAcked-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "04eda1a18019bb387dc7e97ee99979dd88dc608a",
      "tree": "8162ad0ec77c7ef80903a1fec134b43b71a7d272",
      "parents": [
        "f63afdb2c32db850fa1bfccf84643a8885cbeb61"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Aug 05 20:32:45 2010 +0200"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Sep 08 14:25:55 2010 +0800"
      },
      "message": "ocfs2: Flush drive\u0027s caches on fdatasync\n\nWhen \u0027barrier\u0027 mount option is specified, we have to issue a cache flush\nduring fdatasync(2). We have to do this even if inode doesn\u0027t have\nI_DIRTY_DATASYNC set because we still have to get written *data* to disk so\nthat they are not lost in case of crash.\n\nAcked-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSinged-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "f63afdb2c32db850fa1bfccf84643a8885cbeb61",
      "tree": "051bd8feb6eeb546d562e325157526dbc1018e49",
      "parents": [
        "f5ce5a08a40f2086435858ddc80cb40394b082eb"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Sat Jul 17 21:45:49 2010 +0800"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Sep 08 14:25:55 2010 +0800"
      },
      "message": "ocfs2: make __ocfs2_page_mkwrite handle file end properly.\n\n__ocfs2_page_mkwrite now is broken in handling file end.\n1. the last page should be the page contains i_size - 1.\n2. the len in the last page is also calculated wrong.\nSo change them accordingly.\n\nAcked-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "f5ce5a08a40f2086435858ddc80cb40394b082eb",
      "tree": "b8880708bcddc0568b6746a7156b9ff21617750d",
      "parents": [
        "dc696aced9f09f05b1f927b93f5a7918017a3e49"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Aug 12 16:24:26 2010 -0700"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Sep 08 14:25:54 2010 +0800"
      },
      "message": "ocfs2: Fix incorrect checksum validation error\n\nFor local mounts, ocfs2_read_locked_inode() calls ocfs2_read_blocks_sync() to\nread the inode off the disk. The latter first checks to see if that block is\ncached in the journal, and, if so, returns that block. That is ok.\n\nBut ocfs2_read_locked_inode() goes wrong when it tries to validate the checksum\nof such blocks. Blocks that are cached in the journal may not have had their\nchecksum computed as yet. We should not validate the checksums of such blocks.\n\nFixes ossbz#1282\nhttp://oss.oracle.com/bugzilla/show_bug.cgi?id\u003d1282\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nCc: stable@kernel.org\nSinged-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "dc696aced9f09f05b1f927b93f5a7918017a3e49",
      "tree": "a2101f7a73a758118d11de70cbd0ad81180fb07f",
      "parents": [
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Aug 12 16:24:25 2010 -0700"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Sep 08 14:25:53 2010 +0800"
      },
      "message": "ocfs2: Fix metaecc error messages\n\nLike tools, the checksum validate function now prints the values in hex.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSinged-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "4f63e3c5be2ab55d47d89ea1d32d2c27254daf26",
      "tree": "491c6d58ccb246e0b049fa60af4328f649c54089",
      "parents": [
        "e6f901bb85bc0707aaafb3c123c3013c0feaba7d",
        "8f34a430ac16d5fbd9d6b383184d35e152f5a963"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 19:21:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 19:21:02 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.36\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.36\u0027 of git://linux-nfs.org/~bfields/linux:\n  nfsd4: mask out non-access bits in nfs4_access_to_omode\n"
    },
    {
      "commit": "c5b29f885afe890f953f7f23424045cdad31d3e4",
      "tree": "cc2016f256da966974b4ed7a24ff9378a77facb2",
      "parents": [
        "17cebf658e088935d4bdebfc7ad9800e9fc4a0b2"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Aug 12 16:55:22 2010 +1000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Sep 07 19:21:20 2010 -0400"
      },
      "message": "sunrpc: use seconds since boot in expiry cache\n\nThis protects us from confusion when the wallclock time changes.\n\nWe convert to and from wallclock when  setting or reading expiry\ntimes.\n\nAlso use seconds since boot for last_clost time.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "17cebf658e088935d4bdebfc7ad9800e9fc4a0b2",
      "tree": "7bc6c1d8de35bce17da188cba13688671d517907",
      "parents": [
        "1132b26029918aa8fb5ba24a81b5c234e61f356c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Aug 12 16:55:22 2010 +1000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Sep 07 19:21:19 2010 -0400"
      },
      "message": "sunrpc: extract some common sunrpc_cache code from nfsd\n\nRather can duplicating this idiom twice, put it in an inline function.\nThis reduces the usage of \u0027expiry_time\u0027 out side the sunrpc/cache.c\ncode and thus the impact of a change that is about to be made to that\nfield.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "1132b26029918aa8fb5ba24a81b5c234e61f356c",
      "tree": "253bfb658aefaf3e38608c99c0845d52823d590c",
      "parents": [
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Aug 13 17:31:16 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Sep 07 19:21:18 2010 -0400"
      },
      "message": "nfsd: remove duplicate NFS4_STATEID_SIZE declaration\n\nUse NFS4_STATEID_SIZE from include/linux/nfs4\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "fa2925cf90e612cb9c10c45d0cb8a7c7332e56a7",
      "tree": "b836666993fac5c9a157c2cb756c33fb66cb13e8",
      "parents": [
        "98e52c373cdc1239a9ec6a2763f519cc1d99dcbc",
        "cb7a93412ab52361bc255cbe2c767e0741c09f43"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 15:44:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 15:44:28 2010 -0700"
      },
      "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: Make fiemap work with sparse files\n  xfs: prevent 32bit overflow in space reservation\n  xfs: Disallow 32bit project quota id\n  xfs: improve buffer cache hash scalability\n"
    },
    {
      "commit": "3c5dff7b5ec7ac1bf356d43ac37e2e4ec7ec063a",
      "tree": "1d6be67bfc1175333279da5934805be3921182b0",
      "parents": [
        "dc6f962eb5ad728086fcfa9967976e93ed68e0a5",
        "8f587df479c3cea14ba1a9b9d58f34fd2fd6d58b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 14:38:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 14:38:21 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:\n  9p: potential ERR_PTR() dereference\n"
    },
    {
      "commit": "d3de0eb1642feda3c53fb455e7cf07b222deafb5",
      "tree": "ee010c5fcbed7c42710e25ba1b7950b4c118f20a",
      "parents": [
        "b06ac5a3606d365a63e671273a441158ce3019bb",
        "57f9bdac2510cd7fda58e4a111d250861eb1ebeb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 14:04:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 14:04:59 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:\n  sysfs: checking for NULL instead of ERR_PTR\n"
    },
    {
      "commit": "4848d7156943085c0d4ca0b0575474af25673699",
      "tree": "c6e81118a29ff29f6e88a4530cdabe9e9a1a6432",
      "parents": [
        "4eab8a5717f5a863cb0e2fc8b22d8b22f4aaa644",
        "4afc31345e5f543e5d89a47aeadaaad1d91a5bc8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 14:01:50 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 14:01:50 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2:\n  nilfs2: fix leak of shadow dat inode in error path of load_nilfs\n"
    },
    {
      "commit": "7a2e8a8faab76386d8eaae9ded739ee5615be174",
      "tree": "404b9c185f32e3e6ef871bb85c217314e4aff3e8",
      "parents": [
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "Valerie Aurora",
        "email": "vaurora@redhat.com",
        "time": "Thu Aug 26 11:07:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 13:46:20 2010 -0700"
      },
      "message": "VFS: Sanity check mount flags passed to change_mnt_propagation()\n\nSanity check the flags passed to change_mnt_propagation().  Exactly\none flag should be set.  Return EINVAL otherwise.\n\nUserspace can pass in arbitrary combinations of MS_* flags to mount().\ndo_change_type() is called if any of MS_SHARED, MS_PRIVATE, MS_SLAVE,\nor MS_UNBINDABLE is set.  do_change_type() clears MS_REC and then\ncalls change_mnt_propagation() with the rest of the user-supplied\nflags.  change_mnt_propagation() clearly assumes only one flag is set\nbut do_change_type() does not check that this is true.  For example,\nmount() with flags MS_SHARED | MS_RDONLY does not actually make the\nmount shared or read-only but does clear MNT_UNBINDABLE.\n\nSigned-off-by: Valerie Aurora \u003cvaurora@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b9ca67b2ddf021491a3741d9555e8ff59b2175ba",
      "tree": "170010fef4f0b36ff01f1f9375d9beb9677178c7",
      "parents": [
        "595afaf9e6ee1b48e13ec4b8bcc8c7dee888161a"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Sep 07 13:42:41 2010 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Sep 07 13:42:41 2010 +0200"
      },
      "message": "fuse: fix lock annotations\n\nSparse doesn\u0027t understand lock annotations of the form\n__releases(\u0026foo-\u003elock).  Change them to __releases(foo-\u003elock).  Same\nfor __acquires().\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "595afaf9e6ee1b48e13ec4b8bcc8c7dee888161a",
      "tree": "18ec100cfce992b61aaca2e0a8d0897e67c72300",
      "parents": [
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Sep 07 13:42:41 2010 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Sep 07 13:42:41 2010 +0200"
      },
      "message": "fuse: flush background queue on connection close\n\nDavid Bartly reported that fuse can hang in fuse_get_req_nofail() when\nthe connection to the filesystem server is no longer active.\n\nIf bg_queue is not empty then flush_bg_queue() called from\nrequest_end() can put more requests on to the pending queue.  If this\nhappens while ending requests on the processing queue then those\nbackground requests will be queued to the pending list and never\nended.\n\nAnother problem is that fuse_dev_release() didn\u0027t wake up processes\nsleeping on blocked_waitq.\n\nSolve this by:\n\n a) flushing the background queue before calling end_requests() on the\n    pending and processing queues\n\n b) setting blocked \u003d 0 and waking up processes waiting on\n    blocked_waitq()\n\nThanks to David for an excellent bug report.\n\nReported-by: David Bartley \u003candareed@gmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@kernel.org\n"
    },
    {
      "commit": "57f9bdac2510cd7fda58e4a111d250861eb1ebeb",
      "tree": "c343e3d07fbab1cf7714b9bedebda95807e86cd9",
      "parents": [
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed Aug 25 09:12:29 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Sep 03 17:26:28 2010 -0700"
      },
      "message": "sysfs: checking for NULL instead of ERR_PTR\n\nd_path() returns an ERR_PTR and it doesn\u0027t return NULL.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: stable \u003cstable@kernel.org\u003e\nReviewed-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "cb7a93412ab52361bc255cbe2c767e0741c09f43",
      "tree": "063b89ca160ac43b8df41cf6d12158c4ca7fe897",
      "parents": [
        "9af25465081480a75824fd7a16a37a5cfebeede9",
        "72656c46f50b8dfe50e15793692982e636e3df20"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Sep 03 09:02:32 2010 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Sep 03 09:02:32 2010 -0500"
      },
      "message": "Merge branch \u00272.6.36-xfs-misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev\n"
    },
    {
      "commit": "9af25465081480a75824fd7a16a37a5cfebeede9",
      "tree": "475ea0ef9247b65b0ce8997ba581a87bd71c11b6",
      "parents": [
        "23963e54ce187ca6e907c83176c15508b0f6e60d"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 30 02:44:03 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Sep 03 09:02:11 2010 -0500"
      },
      "message": "xfs: Make fiemap work with sparse files\n\nIn xfs_vn_fiemap, we set bvm_count to fi_extent_max + 1 and want\nto return fi_extent_max extents, but actually it won\u0027t work for\na sparse file. The reason is that in xfs_getbmap we will\ncalculate holes and set it in \u0027out\u0027, while out is malloced by\nbmv_count(fi_extent_max+1) which didn\u0027t consider holes. So in the\nworst case, if \u0027out\u0027 vector looks like\n[hole, extent, hole, extent, hole, ... hole, extent, hole],\nwe will only return half of fi_extent_max extents.\n\nThis patch add a new parameter BMV_IF_NO_HOLES for bvm_iflags.\nSo with this flags, we don\u0027t use our \u0027out\u0027 in xfs_getbmap for\na hole. The solution is a bit ugly by just don\u0027t increasing\nindex of \u0027out\u0027 vector. I felt that it is not easy to skip it\nat the very beginning since we have the complicated check and\nsome function like xfs_getbmapx_fix_eof_hole to adjust \u0027out\u0027.\n\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "72656c46f50b8dfe50e15793692982e636e3df20",
      "tree": "8841c80c9cf5873c915a821e98f3ae09746ec9d8",
      "parents": [
        "9bc08a45fb117c696e4940cfa1208cb1cc7a2f25"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Sep 03 12:19:33 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Sep 03 12:19:33 2010 +1000"
      },
      "message": "xfs: prevent 32bit overflow in space reservation\n\nIf we attempt to preallocate more than 2^32 blocks of space in a\nsingle syscall, the transaction block reservation will overflow\nleading to a hangs in the superblock block accounting code. This\nis trivially reproduced with xfs_io. Fix the problem by capping the\nallocation reservation to the maximum number of blocks a single\nxfs_bmapi() call can allocate (2^21 blocks).\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "8f34a430ac16d5fbd9d6b383184d35e152f5a963",
      "tree": "34a2cbdacb782fb63a0096c28a1e8ab9d8770153",
      "parents": [
        "f6360efb83cd6dd1476cd758834c8277508c1f15"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Sep 02 15:23:16 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Sep 02 15:25:09 2010 -0400"
      },
      "message": "nfsd4: mask out non-access bits in nfs4_access_to_omode\n\nThis fixes an unnecessary BUG().\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "23963e54ce187ca6e907c83176c15508b0f6e60d",
      "tree": "9cac313a1dce67874c9711061ff10f82ccb7c4d0",
      "parents": [
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "Arkadiusz Mi?kiewicz",
        "email": "arekm@maven.pl",
        "time": "Thu Aug 26 10:19:43 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Sep 02 10:29:08 2010 -0500"
      },
      "message": "xfs: Disallow 32bit project quota id\n\nCurrently on-disk structure is able to keep only 16bit project quota\nid, so disallow 32bit ones. This fixes a problem where parts of\nkernel structures holding project quota id are 32bit while parts\n(on-disk) are 16bit variables which causes project quota member\nfiles to be inaccessible for some operations (like mv/rm).\n\nSigned-off-by: Arkadiusz Mi?kiewicz \u003carekm@maven.pl\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "9bc08a45fb117c696e4940cfa1208cb1cc7a2f25",
      "tree": "610e4cb520d62c4ad6ae0f20ddd64cd15520c33a",
      "parents": [
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Sep 02 15:14:38 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Sep 02 15:14:38 2010 +1000"
      },
      "message": "xfs: improve buffer cache hash scalability\n\nWhen doing large parallel file creates on a 16p machines, large amounts of\ntime is being spent in _xfs_buf_find(). A system wide profile with perf top\nshows this:\n\n          1134740.00 19.3% _xfs_buf_find\n           733142.00 12.5% __ticket_spin_lock\n\nThe problem is that the hash contains 45,000 buffers, and the hash table width\nis only 256 buffers. That means we\u0027ve got around 200 buffers per chain, and\nsearching it is quite expensive. The hash table size needs to increase.\n\nSecondly, every time we do a lookup, we promote the buffer we find to the head\nof the hash chain. This is causing cachelines to be dirtied and causes\ninvalidation of cachelines across all CPUs that may have walked the hash chain\nrecently. hence every walk of the hash chain is effectively a cold cache walk.\nRemove the promotion to avoid this invalidation.\n\nThe results are:\n\n          1045043.00 21.2% __ticket_spin_lock\n           326184.00  6.6% _xfs_buf_find\n\nA 70% drop in the CPU usage when looking up buffers. Unfortunately that does\nnot result in an increase in performance underthis workload as contention on\nthe inode_lock soaks up most of the reduction in CPU usage.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "8f587df479c3cea14ba1a9b9d58f34fd2fd6d58b",
      "tree": "5c01cd8b1fa9ecea9af268890d39a49b017a8631",
      "parents": [
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed Aug 04 16:27:45 2010 +0000"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Mon Aug 30 10:35:28 2010 -0500"
      },
      "message": "9p: potential ERR_PTR() dereference\n\np9_client_walk() can return error values if we run out of space or there\nis a problem with the network.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "4afc31345e5f543e5d89a47aeadaaad1d91a5bc8",
      "tree": "698cd37b9f285343e2c309a897d566501760bb9f",
      "parents": [
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Aug 29 01:55:38 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Aug 30 10:18:03 2010 +0900"
      },
      "message": "nilfs2: fix leak of shadow dat inode in error path of load_nilfs\n\nIf load_nilfs() gets an error while doing recovery, it will fail to\nfree the shadow inode of dat (nilfs-\u003ens_gc_dat).\n\nThis fixes the leak issue.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "30c0f6a04975d557f3c1a4e640b3808b1231c3ef",
      "tree": "eefc2a8d97765342cb5c2c16d98e5d02e9ebf98a",
      "parents": [
        "e933424c4823596ed231648eeb602b5209960ff6",
        "92b4678efa8ce0de9b1e01a74e3d13c4002a4136"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 14:11:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 14:11:04 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.infradead.org/users/eparis/notify\n\n* \u0027for-linus\u0027 of git://git.infradead.org/users/eparis/notify:\n  fsnotify: drop two useless bools in the fnsotify main loop\n  fsnotify: fix list walk order\n  fanotify: Return EPERM when a process is not privileged\n  fanotify: resize pid and reorder structure\n  fanotify: drop duplicate pr_debug statement\n  fanotify: flush outstanding perm requests on group destroy\n  fsnotify: fix ignored mask handling between inode and vfsmount marks\n  fanotify: add MAINTAINERS entry\n  fsnotify: reset used_inode and used_vfsmount on each pass\n  fanotify: do not dereference inode_mark when it is unset\n"
    },
    {
      "commit": "e933424c4823596ed231648eeb602b5209960ff6",
      "tree": "d1bec768605bd4cc91326b80a02fa6472384bf08",
      "parents": [
        "8f2a0029b8aaed9fb37d775dbe527e163920b129",
        "93c3fe40c279f002906ad14584c30671097d4394"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 14:10:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 14:10:43 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:\n  eCryptfs: Fix encrypted file name lookup regression\n  ecryptfs: properly mark init functions\n  fs/ecryptfs: Return -ENOMEM on memory allocation failure\n"
    },
    {
      "commit": "997396a73a94de7d92d82e30d7bb1d931e38cb16",
      "tree": "2190a66e085f16a1985e008be167d6fc4ea6734d",
      "parents": [
        "6f4dbeca1a5bac4552d49d9e7b774da9f6625e74",
        "b545787dbb00a041c541a4759d938ddb0108295a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 14:07:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 14:07:20 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: fix get_ticket_handler() error handling\n  ceph: don\u0027t BUG on ENOMEM during mds reconnect\n  ceph: ceph_mdsc_build_path() returns an ERR_PTR\n  ceph: Fix warnings\n  ceph: ceph_get_inode() returns an ERR_PTR\n  ceph: initialize fields on new dentry_infos\n  ceph: maintain i_head_snapc when any caps are dirty, not just for data\n  ceph: fix osd request lru adjustment when sending request\n  ceph: don\u0027t improperly set dir complete when holding EXCL cap\n  mm: exporting account_page_dirty\n  ceph: direct requests in snapped namespace based on nonsnap parent\n  ceph: queue cap snap writeback for realm children on snap update\n  ceph: include dirty xattrs state in snapped caps\n  ceph: fix xattr cap writeback\n  ceph: fix multiple mds session shutdown\n"
    },
    {
      "commit": "2547d1d20f3a252567f974de8ce1c572a0815d5a",
      "tree": "786404cb38c6ca55ca46a63df570c119ca32561e",
      "parents": [
        "7be0d4f90ad8e0f9591fd311765a212a42e26b13",
        "f6360efb83cd6dd1476cd758834c8277508c1f15"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 14:05:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 14:05:55 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.36\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.36\u0027 of git://linux-nfs.org/~bfields/linux:\n  nfsd: fix NULL dereference in nfsd_statfs()\n  nfsd4: fix downgrade/lock logic\n  nfsd4: typo fix in find_any_file\n  nfsd4: bad BUG() in preprocess_stateid_op\n"
    },
    {
      "commit": "b76b4014f9d988d2412b873e4d4c13c7f9afc4e4",
      "tree": "25493858be740a5cb558e594e6af61971758a94a",
      "parents": [
        "6628bc74f1aa9c35dd386320bf7ec04f12edb1b3"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Aug 28 08:52:10 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 28 08:52:10 2010 +0200"
      },
      "message": "writeback: Fix lost wake-up shutting down writeback thread\n\nSetting the task state here may cause us to miss the wake up from\nkthread_stop(), so we need to recheck kthread_should_stop() or risk\nsleeping forever in the following schedule().\n\nSymptom was an indefinite hang on an NFSv4 mount.  (NFSv4 may create\nmultiple mounts in a temporary namespace while traversing the mount\npath, and since the temporary namespace is immediately destroyed, it may\nend up destroying a mount very soon after it was created, possibly\nmaking this race more likely.)\n\nINFO: task mount.nfs4:4314 blocked for more than 120 seconds.\n\"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\nmount.nfs4    D 0000000000000000  2880  4314   4313 0x00000000\n ffff88001ed6da28 0000000000000046 ffff88001ed6dfd8 ffff88001ed6dfd8\n ffff88001ed6c000 ffff88001ed6c000 ffff88001ed6c000 ffff88001e5003a0\n ffff88001ed6dfd8 ffff88001e5003a8 ffff88001ed6c000 ffff88001ed6dfd8\nCall Trace:\n [\u003cffffffff8196090d\u003e] schedule_timeout+0x1cd/0x2e0\n [\u003cffffffff8106a31c\u003e] ? mark_held_locks+0x6c/0xa0\n [\u003cffffffff819639a0\u003e] ? _raw_spin_unlock_irq+0x30/0x60\n [\u003cffffffff8106a5fd\u003e] ? trace_hardirqs_on_caller+0x14d/0x190\n [\u003cffffffff819671fe\u003e] ? sub_preempt_count+0xe/0xd0\n [\u003cffffffff8195fc80\u003e] wait_for_common+0x120/0x190\n [\u003cffffffff81033c70\u003e] ? default_wake_function+0x0/0x20\n [\u003cffffffff8195fdcd\u003e] wait_for_completion+0x1d/0x20\n [\u003cffffffff810595fa\u003e] kthread_stop+0x4a/0x150\n [\u003cffffffff81061a60\u003e] ? thaw_process+0x70/0x80\n [\u003cffffffff810cc68a\u003e] bdi_unregister+0x10a/0x1a0\n [\u003cffffffff81229dc9\u003e] nfs_put_super+0x19/0x20\n [\u003cffffffff810ee8c4\u003e] generic_shutdown_super+0x54/0xe0\n [\u003cffffffff810ee9b6\u003e] kill_anon_super+0x16/0x60\n [\u003cffffffff8122d3b9\u003e] nfs4_kill_super+0x39/0x90\n [\u003cffffffff810eda45\u003e] deactivate_locked_super+0x45/0x60\n [\u003cffffffff810edfb9\u003e] deactivate_super+0x49/0x70\n [\u003cffffffff81108294\u003e] mntput_no_expire+0x84/0xe0\n [\u003cffffffff811084ef\u003e] release_mounts+0x9f/0xc0\n [\u003cffffffff81108575\u003e] put_mnt_ns+0x65/0x80\n [\u003cffffffff8122cc56\u003e] nfs_follow_remote_path+0x1e6/0x420\n [\u003cffffffff8122cfbf\u003e] nfs4_try_mount+0x6f/0xd0\n [\u003cffffffff8122d0c2\u003e] nfs4_get_sb+0xa2/0x360\n [\u003cffffffff810edcb8\u003e] vfs_kern_mount+0x88/0x1f0\n [\u003cffffffff810ede92\u003e] do_kern_mount+0x52/0x130\n [\u003cffffffff81963d9a\u003e] ? _lock_kernel+0x6a/0x170\n [\u003cffffffff81108e9e\u003e] do_mount+0x26e/0x7f0\n [\u003cffffffff81106b3a\u003e] ? copy_mount_options+0xea/0x190\n [\u003cffffffff811094b8\u003e] sys_mount+0x98/0xf0\n [\u003cffffffff810024d8\u003e] system_call_fastpath+0x16/0x1b\n1 lock held by mount.nfs4/4314:\n #0:  (\u0026type-\u003es_umount_key#24){+.+...}, at: [\u003cffffffff810edfb1\u003e] deactivate_super+0x41/0x70\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nAcked-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "92b4678efa8ce0de9b1e01a74e3d13c4002a4136",
      "tree": "97febbafb1798324802325c22c3693902a47323d",
      "parents": [
        "f72adfd540bacc4f6ff57a7d708b1a6c8906bdb4"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Aug 27 21:42:11 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Aug 27 21:42:11 2010 -0400"
      },
      "message": "fsnotify: drop two useless bools in the fnsotify main loop\n\nThe fsnotify main loop has 2 bools which indicated if we processed the\ninode or vfsmount mark in that particular pass through the loop.  These\nbool can we replaced with the inode_group and vfsmount_group variables\nand actually make the code a little easier to understand.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "f72adfd540bacc4f6ff57a7d708b1a6c8906bdb4",
      "tree": "dffd43e47284095e98f2a2ab60f965fc68792008",
      "parents": [
        "a2f13ad0ba5d94b9768c28469b45ca1e81a2b895"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Aug 27 21:24:24 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Aug 27 21:41:26 2010 -0400"
      },
      "message": "fsnotify: fix list walk order\n\nMarks were stored on the inode and vfsmonut mark list in order from\nhighest memory address to lowest memory address.  The code to walk those\nlists thought they were in order from lowest to highest with\nunpredictable results when trying to match up marks from each.  It was\npossible that extra events would be sent to userspace when inode\nmarks ignoring events wouldn\u0027t get matched with the vfsmount marks.\n\nThis problem only affected fanotify when using both vfsmount and inode\nmarks simultaneously.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "a2f13ad0ba5d94b9768c28469b45ca1e81a2b895",
      "tree": "3c9bd63cb165bbb4427399b3e87deb74911cd97d",
      "parents": [
        "0fb85621df4f9f7c663c6c77c302e821a832c95e"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Tue Aug 24 12:58:54 2010 +0200"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Aug 27 19:59:42 2010 -0400"
      },
      "message": "fanotify: Return EPERM when a process is not privileged\n\nThe appropriate error code when privileged operations are denied is\nEPERM, not EACCES.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Eric Paris \u003cparis@paris.rdu.redhat.com\u003e\n"
    },
    {
      "commit": "93c3fe40c279f002906ad14584c30671097d4394",
      "tree": "9e18819c7abfe2bc6b15e924236efd36a0601780",
      "parents": [
        "7371a38201d04124a9ff2cf05059731d7c1e35a5"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Wed Aug 25 10:26:37 2010 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Aug 27 10:50:53 2010 -0500"
      },
      "message": "eCryptfs: Fix encrypted file name lookup regression\n\nFixes a regression caused by 21edad32205e97dc7ccb81a85234c77e760364c8\n\nWhen file name encryption was enabled, ecryptfs_lookup() failed to use\nthe encrypted and encoded version of the upper, plaintext, file name\nwhen performing a lookup in the lower file system. This made it\nimpossible to lookup existing encrypted file names and any newly created\nfiles would have plaintext file names in the lower file system.\n\nhttps://bugs.launchpad.net/ecryptfs/+bug/623087\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "7371a38201d04124a9ff2cf05059731d7c1e35a5",
      "tree": "0a463fc73700c12c0e28299d2b214394e9bd7249",
      "parents": [
        "f137f15072411618e37b338aa13e5ae43583bcf2"
      ],
      "author": {
        "name": "Jerome Marchand",
        "email": "jmarchan@redhat.com",
        "time": "Tue Aug 17 17:24:05 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Aug 27 10:50:52 2010 -0500"
      },
      "message": "ecryptfs: properly mark init functions\n\nSome ecryptfs init functions are not prefixed by __init and thus not\nfreed after initialization. This patch saved about 1kB in ecryptfs\nmodule.\n\nSigned-off-by: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f137f15072411618e37b338aa13e5ae43583bcf2",
      "tree": "a1679017c58f65b7fd20febab16bb338354bd59b",
      "parents": [
        "76be97c1fc945db08aae1f1b746012662d643e97"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed Aug 11 12:11:41 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Aug 27 10:50:52 2010 -0500"
      },
      "message": "fs/ecryptfs: Return -ENOMEM on memory allocation failure\n\nIn this code, 0 is returned on memory allocation failure, even though other\nfailures return -ENOMEM or other similar values.\n\nA simplified version of the semantic match that finds this problem is as\nfollows: (http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression ret;\nexpression x,e1,e2,e3;\n@@\n\nret \u003d 0\n... when !\u003d ret \u003d e1\n*x \u003d \\(kmalloc\\|kcalloc\\|kzalloc\\)(...)\n... when !\u003d ret \u003d e2\nif (x \u003d\u003d NULL) { ... when !\u003d ret \u003d e3\n  return ret;\n}\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f6360efb83cd6dd1476cd758834c8277508c1f15",
      "tree": "e57015159bf6f361d45050f28a8da7beaceaea60",
      "parents": [
        "f632265d0ffb5acf331252d98c64939849d96bb2"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Aug 13 15:53:49 2010 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Aug 26 13:23:16 2010 -0400"
      },
      "message": "nfsd: fix NULL dereference in nfsd_statfs()\n\nThe commit ebabe9a9001af0af56c0c2780ca1576246e7a74b\n    pass a struct path to vfs_statfs\nintroduced the struct path initialization, and this seems to trigger\nan Oops on my machine.\n\nfh_dentry field may be NULL and set later in fh_verify(), thus the\ninitialization of path must be after fh_verify().\n\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f632265d0ffb5acf331252d98c64939849d96bb2",
      "tree": "31187d9a726bf1ca6ca12e26ad8e7c609eaf4d8b",
      "parents": [
        "7d94784293096c0a46897acdb83be5abd9278ece",
        "da5cabf80e2433131bf0ed8993abc0f7ea618c73"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Aug 26 13:22:27 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Aug 26 13:22:27 2010 -0400"
      },
      "message": "Merge commit \u0027v2.6.36-rc1\u0027 into HEAD\n"
    },
    {
      "commit": "7d94784293096c0a46897acdb83be5abd9278ece",
      "tree": "da2bc54b7d2527b465833610d80ec0285b90c8a7",
      "parents": [
        "18608ad49cffa430cfd0b4e027dedfe3114f916e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 20 18:09:31 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Aug 26 13:22:02 2010 -0400"
      },
      "message": "nfsd4: fix downgrade/lock logic\n\nIf we already had a RW open for a file, and get a readonly open, we were\npiggybacking on the existing RW open.  That\u0027s inconsistent with the\ndowngrade logic which blows away the RW open assuming you\u0027ll still have\na readonly open.\n\nAlso, make sure there is a readonly or writeonly open available for\nlocking, again to prevent bad behavior in downgrade cases when any RW\nopen may be lost.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "18608ad49cffa430cfd0b4e027dedfe3114f916e",
      "tree": "e821f9abcfc309d65bbbc5df27665c391218d89c",
      "parents": [
        "30c0e1ef0a8a6cab4e0f9357698c81a2f7f73cc5"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 20 18:06:26 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Aug 26 13:21:09 2010 -0400"
      },
      "message": "nfsd4: typo fix in find_any_file\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "30c0e1ef0a8a6cab4e0f9357698c81a2f7f73cc5",
      "tree": "3bccc5ba7e8dff301f8dd4536158306d9261244d",
      "parents": [
        "998db52c03cd293d16a457f1b396cea932244147"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Aug 17 18:46:33 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Aug 26 13:20:51 2010 -0400"
      },
      "message": "nfsd4: bad BUG() in preprocess_stateid_op\n\nIt\u0027s OK for this function to return without setting filp--we do it in\nthe special-stateid case.\n\nAnd there\u0027s a legitimate case where we can hit this, since we do permit\nreads on write-only stateid\u0027s.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f0138a79d74e1e942970ea163be268cd2e4bbcfc",
      "tree": "b3c3ddc0dbb3b46ecbb78ab24ea20a405b2b4b49",
      "parents": [
        "c89e5198b26a869ce2842bad8519264f3394dee9"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Thu Aug 26 14:46:09 2010 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Aug 26 16:53:27 2010 +0000"
      },
      "message": "Cannot allocate memory error on mount\n\nOn 08/26/2010 01:56 AM, joe hefner wrote:\n\u003e On a recent Fedora (13), I am seeing a mount failure message that I can not explain. I have a Windows Server 2003ýa with a share set up for access only for a specific username (say userfoo). If I try to mount it from Linux,ýusing userfoo and the correct password all is well. If I try with a bad password or with some other username (userbar), it fails with \"Permission denied\" as expected. If I try to mount as username \u003d administrator, and give the correct administrator password, I would also expect \"Permission denied\", but I see \"Cannot allocate memory\" instead.\n\n\u003e ýfs/cifs/netmisc.c: Mapping smb error code 5 to POSIX err -13\n\u003e ýfs/cifs/cifssmb.c: Send error in QPathInfo \u003d -13\n\u003e ýCIFS VFS: cifs_read_super: get root inode failed\n\nLooks like the commit 0b8f18e3 assumed that cifs_get_inode_info() and\nfriends fail only due to memory allocation error when the inode is NULL\nwhich is not the case if CIFSSMBQPathInfo() fails and returns an error.\nFix this by propagating the actual error code back.\n\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "b545787dbb00a041c541a4759d938ddb0108295a",
      "tree": "7d64ee98012ee45726b79a32ed815e06c83c4ef9",
      "parents": [
        "e072f8aa3587710cd35cce0f6b6efd7b4276c327"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Aug 26 11:12:38 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 26 09:26:50 2010 -0700"
      },
      "message": "ceph: fix get_ticket_handler() error handling\n\nget_ticket_handler() returns a valid pointer or it returns\nERR_PTR(-ENOMEM) if kzalloc() fails.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e072f8aa3587710cd35cce0f6b6efd7b4276c327",
      "tree": "a0455b3ed1d76880a6553d39f017081a1832f5ba",
      "parents": [
        "f44c3890d9fd6e4284518ff3bb16879fee194a3a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 26 09:26:37 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 26 09:26:37 2010 -0700"
      },
      "message": "ceph: don\u0027t BUG on ENOMEM during mds reconnect\n\nWe are in a position to return an error; do that instead.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f44c3890d9fd6e4284518ff3bb16879fee194a3a",
      "tree": "d4b0415abdc334a02454326c05d93c91c2555368",
      "parents": [
        "ad8453ab0a5b98884074302ba3cc37664791e261"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Aug 26 11:07:24 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 26 09:24:28 2010 -0700"
      },
      "message": "ceph: ceph_mdsc_build_path() returns an ERR_PTR\n\nceph_mdsc_build_path() returns an ERR_PTR but this code is set up to\nhandle NULL returns.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c89e5198b26a869ce2842bad8519264f3394dee9",
      "tree": "bfad402886c41ffc12047c006a0725bd3c01fe49",
      "parents": [
        "37822188ef7bb41ae47b84ae283e6ac93cdafb9c"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Aug 26 02:11:54 2010 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Aug 26 02:11:54 2010 +0000"
      },
      "message": "[CIFS] Eliminate unused variable warning\n\nCC: Shirish Pargaonkar \u003cshirishp@us.ibm.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "ad8453ab0a5b98884074302ba3cc37664791e261",
      "tree": "3e90b914db42bfa8b476b1d46aef7baee4adebb3",
      "parents": [
        "ac1f12ef569d49b013c3db86e11be7e15d66b1c3"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Wed Aug 25 13:26:32 2010 +0100"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Aug 25 12:02:14 2010 -0700"
      },
      "message": "ceph: Fix warnings\n\nJust scrubbing some warnings so I can see real problem ones in the build\nnoise. For 32bit we need to coax gcc politely into believing we really\nhonestly intend to the casts. Using (u64)(unsigned long) means we cast from\na pointer to a type of the right size and then extend it. This stops the\nwarning spew.\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ac1f12ef569d49b013c3db86e11be7e15d66b1c3",
      "tree": "79ca92f4f4c08a14629ff6b2b3b74d2eb7fac5eb",
      "parents": [
        "36e21687e6e51c4225c42e6291938363f7bbfa7c"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed Aug 25 09:11:35 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Aug 25 12:01:54 2010 -0700"
      },
      "message": "ceph: ceph_get_inode() returns an ERR_PTR\n\nceph_get_inode() returns an ERR_PTR and it doesn\u0027t return a NULL.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "37822188ef7bb41ae47b84ae283e6ac93cdafb9c",
      "tree": "2c824dab54388d1b862fd0b11ec9bec59b3c8ac2",
      "parents": [
        "5a559057b4fa0f60b2772fb590bf13e90af7a57d",
        "2d20ca835867d93ead6ce61780d883a4b128106d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 25 09:57:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 25 09:57:59 2010 -0700"
      },
      "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  Eliminate sparse warning - bad constant expression\n  cifs: check for NULL session password\n  missing changes during ntlmv2/ntlmssp auth and sign\n  [CIFS] Fix ntlmv2 auth with ntlmssp\n  cifs: correction of unicode header files\n  cifs: fix NULL pointer dereference in cifs_find_smb_ses\n  cifs: consolidate error handling in several functions\n  cifs: clean up error handling in cifs_mknod\n"
    },
    {
      "commit": "36e21687e6e51c4225c42e6291938363f7bbfa7c",
      "tree": "15f30bf1e622b564b6663217cf99c75aad03fae3",
      "parents": [
        "7d8cb26d7dcb911f110b7762bd5941e8f009d6c3"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 24 16:23:48 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 24 16:24:19 2010 -0700"
      },
      "message": "ceph: initialize fields on new dentry_infos\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7d8cb26d7dcb911f110b7762bd5941e8f009d6c3",
      "tree": "2adf2f6303cc96ff14c951dc6966f68a0fc3cf25",
      "parents": [
        "07a27e226d1ed210d2d4218bd0642b40f5405c6a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 24 08:44:16 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 24 16:24:18 2010 -0700"
      },
      "message": "ceph: maintain i_head_snapc when any caps are dirty, not just for data\n\nWe used to use i_head_snapc to keep track of which snapc the current epoch\nof dirty data was dirtied under.  It is used by queue_cap_snap to set up\nthe cap_snap.  However, since we queue cap snaps for any dirty caps, not\njust for dirty file data, we need to keep a valid i_head_snapc anytime\nwe have dirty|flushing caps.  This fixes a NULL pointer deref in\nqueue_cap_snap when writing back dirty caps without data (e.g.,\nsnaptest-authwb.sh).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "2d20ca835867d93ead6ce61780d883a4b128106d",
      "tree": "519a2bff48470a78406e55428a8410ed63c63c48",
      "parents": [
        "24e6cf92fde1f140d8eb0bf7cd24c2c78149b6b2"
      ],
      "author": {
        "name": "shirishpargaonkar@gmail.com",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Tue Aug 24 11:53:48 2010 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Aug 24 18:12:52 2010 +0000"
      },
      "message": "Eliminate sparse warning - bad constant expression\n\nEliminiate sparse warning during usage of crypto_shash_* APIs\n       error: bad constant expression\n\nAllocate memory for shash descriptors once, so that we do not kmalloc/kfree it\nfor every signature generation (shash descriptor for md5 hash).\n\nFrom ed7538619817777decc44b5660b52268077b74f3 Mon Sep 17 00:00:00 2001\nFrom: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nDate: Tue, 24 Aug 2010 11:47:43 -0500\nSubject: [PATCH] eliminate sparse warnings during crypto_shash_* APis usage\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "b5420f235953448eeae615b3361584dc5e414f34",
      "tree": "7c28ca9ee8a78d3d2a881a9269cd04ce88480e57",
      "parents": [
        "3b93c7aaefc05ee2a75e2726929b01a321402984"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Aug 24 11:47:51 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Aug 24 11:47:51 2010 +1000"
      },
      "message": "xfs: do not discard page cache data on EAGAIN\n\nIf xfs_map_blocks returns EAGAIN because of lock contention we must redirty the\npage and not disard the pagecache content and return an error from writepage.\nWe used to do this correctly, but the logic got lost during the recent\nreshuffle of the writepage code.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReported-by: Mike Gao \u003cygao.linux@gmail.com\u003e\nTested-by: Mike Gao \u003cygao.linux@gmail.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "3b93c7aaefc05ee2a75e2726929b01a321402984",
      "tree": "736a4017e86d65598ae7b30cb11412afd66f9629",
      "parents": [
        "a44f13edf0ebb4e41942d0f16ca80489dcf6659d"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Aug 24 11:45:53 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Aug 24 11:45:53 2010 +1000"
      },
      "message": "xfs: don\u0027t do memory allocation under the CIL context lock\n\nFormatting items requires memory allocation when using delayed\nlogging. Currently that memory allocation is done while holding the\nCIL context lock in read mode. This means that if memory allocation\ntakes some time (e.g. enters reclaim), we cannot push on the CIL\nuntil the allocation(s) required by formatting complete. This can\nstall CIL pushes for some time, and once a push is stalled so are\nall new transaction commits.\n\nFix this splitting the item formatting into two steps. The first\nstep which does the allocation and memcpy() into the allocated\nbuffer is now done outside the CIL context lock, and only the CIL\ninsert is done inside the CIL context lock. This avoids the stall\nissue.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "a44f13edf0ebb4e41942d0f16ca80489dcf6659d",
      "tree": "42bcbee56a62851e969292033efd600cced80ca5",
      "parents": [
        "1a387d3be2b30c90f20d49a3497a8fc0693a9d18"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Aug 24 11:40:03 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Aug 24 11:40:03 2010 +1000"
      },
      "message": "xfs: Reduce log force overhead for delayed logging\n\nDelayed logging adds some serialisation to the log force process to\nensure that it does not deference a bad commit context structure\nwhen determining if a CIL push is necessary or not. It does this by\ngrabing the CIL context lock exclusively, then dropping it before\npushing the CIL if necessary. This causes serialisation of all log\nforces and pushes regardless of whether a force is necessary or not.\nAs a result fsync heavy workloads (like dbench) can be significantly\nslower with delayed logging than without.\n\nTo avoid this penalty, copy the current sequence from the context to\nthe CIL structure when they are swapped. This allows us to do\nunlocked checks on the current sequence without having to worry\nabout dereferencing context structures that may have already been\nfreed. Hence we can remove the CIL context locking in the forcing\ncode and only call into the push code if the current context matches\nthe sequence we need to force.\n\nBy passing the sequence into the push code, we can check the\nsequence again once we have the CIL lock held exclusive and abort if\nthe sequence has already been pushed. This avoids a lock round-trip\nand unnecessary CIL pushes when we have racing push calls.\n\nThe result is that the regression in dbench performance goes away -\nthis change improves dbench performance on a ramdisk from ~2100MB/s\nto ~2500MB/s. This compares favourably to not using delayed logging\nwhich retuns ~2500MB/s for the same workload.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "1a387d3be2b30c90f20d49a3497a8fc0693a9d18",
      "tree": "4c8081f6620976dbfc3ecee0e26296c0890bceba",
      "parents": [
        "2fe33661fcd79d4c53022509f7223d526b5fa233"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Aug 24 11:46:31 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Aug 24 11:46:31 2010 +1000"
      },
      "message": "xfs: dummy transactions should not dirty VFS state\n\nWhen we  need to cover the log, we issue dummy transactions to ensure\nthe current log tail is on disk. Unfortunately we currently use the\nroot inode in the dummy transaction, and the act of committing the\ntransaction dirties the inode at the VFS level.\n\nAs a result, the VFS writeback of the dirty inode will prevent the\nfilesystem from idling long enough for the log covering state\nmachine to complete. The state machine gets stuck in a loop issuing\nnew dummy transactions to cover the log and never makes progress.\n\nTo avoid this problem, the dummy transactions should not cause\nexternally visible state changes. To ensure this occurs, make sure\nthat dummy transactions log an unchanging field in the superblock as\nit\u0027s state is never propagated outside the filesystem. This allows\nthe log covering state machine to complete successfully and the\nfilesystem now correctly enters a fully idle state about 90s after\nthe last modification was made.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "2fe33661fcd79d4c53022509f7223d526b5fa233",
      "tree": "1c26f0ca23372dc7142fa4f9395056c529378801",
      "parents": [
        "efceab1d563153a2b1a6e7d35376241a48126989"
      ],
      "author": {
        "name": "Stuart Brodsky",
        "email": "sbrodsky@sgi.com",
        "time": "Tue Aug 24 11:46:05 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Aug 24 11:46:05 2010 +1000"
      },
      "message": "xfs: ensure f_ffree returned by statfs() is non-negative\n\nBecause of delayed updates to sb_icount field in the super block, it\nis possible to allocate over maxicount number of inodes.  This\ncauses the arithmetic to calculate a negative number of free inodes\nin user commands like df or stat -f.\n\nSince maxicount is a somewhat arbitrary number, a slight over\nallocation is not critical but user commands should be displayed as\n0 or greater and never go negative.  To do this the value in the\nstats buffer f_ffree is capped to never go negative.\n\n[ Modified to use max_t as per Christoph\u0027s comment. ]\n\nSigned-off-by: Stu Brodsky \u003csbrodsky@sgi.com\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "efceab1d563153a2b1a6e7d35376241a48126989",
      "tree": "1c3f9cf4d947a60f4fa4055ef4847af084e9db0e",
      "parents": [
        "546a1924224078c6f582e68f890b05b387b42653"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Aug 24 11:44:56 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Aug 24 11:44:56 2010 +1000"
      },
      "message": "xfs: handle negative wbc-\u003enr_to_write during sync writeback\n\nDuring data integrity (WB_SYNC_ALL) writeback, wbc-\u003enr_to_write will\ngo negative on inodes with more than 1024 dirty pages due to\nimplementation details of write_cache_pages(). Currently XFS will\nabort page clustering in writeback once nr_to_write drops below\nzero, and so for data integrity writeback we will do very\ninefficient page at a time allocation and IO submission for inodes\nwith large numbers of dirty pages.\n\nFix this by only aborting the page clustering code when\nwbc-\u003enr_to_write is negative and the sync mode is WB_SYNC_NONE.\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "4536f2ad8b330453d7ebec0746c4374eadd649b1",
      "tree": "55e4804119f4629279b1848b2a35eaf297b1d5bc",
      "parents": [
        "5b3eed756cd37255cad1181bd86bfd0977e97953"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Aug 24 11:42:30 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Aug 24 11:42:30 2010 +1000"
      },
      "message": "xfs: fix untrusted inode number lookup\n\nCommit 7124fe0a5b619d65b739477b3b55a20bf805b06d (\"xfs: validate untrusted inode\nnumbers during lookup\") changes the inode lookup code to do btree lookups for\nuntrusted inode numbers. This change made an invalid assumption about the\nalignment of inodes and hence incorrectly calculated the first inode in the\ncluster. As a result, some inode numbers were being incorrectly considered\ninvalid when they were actually valid.\n\nThe issue was not picked up by the xfstests suite because it always runs fsr\nand dump (the two utilities that utilise the bulkstat interface) on cache hot\ninodes and hence the lookup code in the cold cache path was not sufficiently\nexercised to uncover this intermittent problem.\n\nFix the issue by relaxing the btree lookup criteria and then checking if the\nrecord returned contains the inode number we are lookup for. If it we get an\nincorrect record, then the inode number is invalid.\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "5b3eed756cd37255cad1181bd86bfd0977e97953",
      "tree": "3d6b178c346d5980dd650336c107abd9d75ee584",
      "parents": [
        "d17c701ce6a548a92f7f8a3cec20299465f36ee3"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Aug 24 11:42:41 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Aug 24 11:42:41 2010 +1000"
      },
      "message": "xfs: ensure we mark all inodes in a freed cluster XFS_ISTALE\n\nUnder heavy load parallel metadata loads (e.g. dbench), we can fail\nto mark all the inodes in a cluster being freed as XFS_ISTALE as we\nskip inodes we cannot get the XFS_ILOCK_EXCL or the flush lock on.\nWhen this happens and the inode cluster buffer has already been\nmarked stale and freed, inode reclaim can try to write the inode out\nas it is dirty and not marked stale. This can result in writing th\nmetadata to an freed extent, or in the case it has already\nbeen overwritten trigger a magic number check failure and return an\nEUCLEAN error such as:\n\nFilesystem \"ram0\": inode 0x442ba1 background reclaim flush failed with 117\n\nFix this by ensuring that we hoover up all in memory inodes in the\ncluster and mark them XFS_ISTALE when freeing the cluster.\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "d17c701ce6a548a92f7f8a3cec20299465f36ee3",
      "tree": "26a4e52b998edf3762baea43c0d9755118240c8d",
      "parents": [
        "76be97c1fc945db08aae1f1b746012662d643e97"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Aug 24 11:42:52 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Aug 24 11:42:52 2010 +1000"
      },
      "message": "xfs: unlock items before allowing the CIL to commit\n\nWhen we commit a transaction using delayed logging, we need to\nunlock the items in the transaciton before we unlock the CIL context\nand allow it to be checkpointed. If we unlock them after we release\nthe CIl context lock, the CIL can checkpoint and complete before\nwe free the log items. This breaks stale buffer item unlock and\nunpin processing as there is an implicit assumption that the unlock\nwill occur before the unpin.\n\nAlso, some log items need to store the LSN of the transaction commit\nin the item (inodes and EFIs) and so can race with other transaction\ncompletions if we don\u0027t prevent the CIL from checkpointing before\nthe unlock occurs.\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "24e6cf92fde1f140d8eb0bf7cd24c2c78149b6b2",
      "tree": "62ead9abea45977c5c9086284611bcb74f844aa2",
      "parents": [
        "3ec6bbcdb4e85403f2c5958876ca9492afdf4031"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Aug 23 11:38:04 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 23 17:38:31 2010 +0000"
      },
      "message": "cifs: check for NULL session password\n\nIt\u0027s possible for a cifsSesInfo struct to have a NULL password, so we\nneed to check for that prior to running strncmp on it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "3ec6bbcdb4e85403f2c5958876ca9492afdf4031",
      "tree": "6195d224dd698fced1164ec6b6bf6127b9285985",
      "parents": [
        "9fbc590860e75785bdaf8b83e48fabfe4d4f7d58"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Mon Aug 23 11:04:07 2010 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 23 17:38:24 2010 +0000"
      },
      "message": "missing changes during ntlmv2/ntlmssp auth and sign\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "220eb7fd984bfc7e6b4005fdf32efe9cd8af7cf2",
      "tree": "0a9cace4735d66cd3f889794262828fac01eff9c",
      "parents": [
        "72f465033702ebfe20db8f50edaad59f0f38b0f5"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Aug 23 13:36:20 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Aug 23 13:36:59 2010 +0200"
      },
      "message": "fs/bio-integrity.c: return -ENOMEM on kmalloc failure\n\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    }
  ],
  "next": "72f465033702ebfe20db8f50edaad59f0f38b0f5"
}
