)]}'
{
  "log": [
    {
      "commit": "3350b2acdd39d23db52710045536b943fe38a35c",
      "tree": "cafa0bd2883411209fd99aeddb92550802510298",
      "parents": [
        "fa1dae4906982b5d896c07613b1fe42456133b1c"
      ],
      "author": {
        "name": "Marc Dionne",
        "email": "marc.c.dionne@gmail.com",
        "time": "Tue Dec 01 14:09:24 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 01 07:35:11 2009 -0800"
      },
      "message": "CacheFiles: Update IMA counters when using dentry_open\n\nWhen IMA is active, using dentry_open without updating the\nIMA counters will result in free/open imbalance errors when\nfput is eventually called.\n\nSigned-off-by: Marc Dionne \u003cmarc.c.dionne@gmail.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f054164322bc6c1233402b9ed6b40d4af39a98f",
      "tree": "8bf63b1220db094a6865ff5254a3c55781e89b38",
      "parents": [
        "29e553631b2a0d4eebd23db630572e1027a9967a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 01 13:38:45 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 01 07:35:11 2009 -0800"
      },
      "message": "9p: fix build breakage introduced by FS-Cache\n\nWhile building 2.6.32-rc8-git2 for Fedora I noticed the following thinko\nin commit 201a15428bd54f83eccec8b7c64a04b8f9431204 (\"FS-Cache: Handle\npages pending storage that get evicted under OOM conditions\"):\n\n  fs/9p/cache.c: In function \u0027__v9fs_fscache_release_page\u0027:\n  fs/9p/cache.c:346: error: \u0027vnode\u0027 undeclared (first use in this function)\n  fs/9p/cache.c:346: error: (Each undeclared identifier is reported only once\n  fs/9p/cache.c:346: error: for each function it appears in.)\n  make[2]: *** [fs/9p/cache.o] Error 1\n\nFix the 9P filesystem to correctly construct the argument to\nfscache_maybe_release_page().\n\nSigned-off-by: Kyle McMartin \u003ckyle@redhat.com\u003e\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e [from identical patch]\nSigned-off-by: Stefan Lippers-Hollmann \u003cs.l-h@gmx.de\u003e [from identical patch]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99d7832c0e4950b8d6ac6ec2951ad1c0e9ada903",
      "tree": "53cded58c1b5251ab5c1038a2f76ca16b8d23e29",
      "parents": [
        "af5fdf80645304e7077ab876a43b325425c7ef70",
        "2f81e752da4781fc276689fc14391346d0dbbe78"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 14:51:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 14:51:01 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  [CIFS] Fix sparse warning\n  [CIFS] Duplicate data on appending to some Samba servers\n  [CIFS] fix oops in cifs_lookup during net boot\n"
    },
    {
      "commit": "d0964c37b539c2b76752b1ff8b0a618c5f82f077",
      "tree": "bcfce130d8a2462ebbad14000c53943929511c23",
      "parents": [
        "ff961c68b140fc99946b94b7dbed8cd1f1333ff4",
        "1b7323965a8c6eee9dc4e345a7ae4bff1dc93149"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 14:00:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 14:00:09 2009 -0800"
      },
      "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: reject O_DIRECT flag also in fuse_create\n"
    },
    {
      "commit": "199bc9ff5ca5e4b3bcaff8927b2983c65f34c263",
      "tree": "65eae0838210e0807e75ed2caa7e1f2d151b7f09",
      "parents": [
        "c69f677cc852f3f7b2342ab2f1598670a463d576"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Mon Nov 30 09:06:40 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 13:52:40 2009 -0800"
      },
      "message": "jffs2: Fix memory corruption in jffs2_read_inode_range()\n\nIn 2.6.23 kernel, commit a32ea1e1f925399e0d81ca3f7394a44a6dafa12c\n(\"Fix read/truncate race\") fixed a race in the generic code, and as a\nside effect, now do_generic_file_read() can ask us to readpage() past\nthe i_size. This seems to be correctly handled by the block routines\n(e.g. block_read_full_page() fills the page with zeroes in case if\nsomebody is trying to read past the last inode\u0027s block).\n\nJFFS2 doesn\u0027t handle this; it assumes that it won\u0027t be asked to read\npages which don\u0027t exist -- and thus that there will be at least _one_\nvalid \u0027frag\u0027 on the page it\u0027s being asked to read. It will fill any\nholes with the following memset:\n\n  memset(buf, 0, min(end, frag-\u003eofs + frag-\u003esize) - offset);\n\nWhen the \u0027closest smaller match\u0027 returned by jffs2_lookup_node_frag() is\nactually on a previous page and ends before \u0027offset\u0027, that results in:\n\n  memset(buf, 0, \u003chuge unsigned negative\u003e);\n\nHopefully, in most cases the corruption is fatal, and quickly causing\nrandom oopses, like this:\n\n  root@10.0.0.4:~/ltp-fs-20090531# ./testcases/kernel/fs/ftest/ftest01\n  Unable to handle kernel paging request for data at address 0x00000008\n  Faulting instruction address: 0xc01cd980\n  Oops: Kernel access of bad area, sig: 11 [#1]\n  [...]\n  NIP [c01cd980] rb_insert_color+0x38/0x184\n  LR [c0043978] enqueue_hrtimer+0x88/0xc4\n  Call Trace:\n  [c6c63b60] [c004f9a8] tick_sched_timer+0xa0/0xe4 (unreliable)\n  [c6c63b80] [c0043978] enqueue_hrtimer+0x88/0xc4\n  [c6c63b90] [c0043a48] __run_hrtimer+0x94/0xbc\n  [c6c63bb0] [c0044628] hrtimer_interrupt+0x140/0x2b8\n  [c6c63c10] [c000f8e8] timer_interrupt+0x13c/0x254\n  [c6c63c30] [c001352c] ret_from_except+0x0/0x14\n  --- Exception: 901 at memset+0x38/0x5c\n      LR \u003d jffs2_read_inode_range+0x144/0x17c\n  [c6c63cf0] [00000000] (null) (unreliable)\n\nThis patch fixes the issue, plus fixes all LTP tests on NAND/UBI with\nJFFS2 filesystem that were failing since 2.6.23 (seems like the bug\nabove also broke the truncation).\n\nReported-By: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nTested-By: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e80133f7f247f313da1638af4ce30f2bac303cc",
      "tree": "318afcc1c1c434135849cef50e3d89be505ad011",
      "parents": [
        "e3a41d7b99e7f97d9a50bec2a8f4eb237ce1d504",
        "4fa9f4ede88b4e2ff135b6e5717499d734508c62"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 13:33:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 13:33:48 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-fscache\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-fscache: (31 commits)\n  FS-Cache: Provide nop fscache_stat_d() if CONFIG_FSCACHE_STATS\u003dn\n  SLOW_WORK: Fix GFS2 to #include \u003clinux/module.h\u003e before using THIS_MODULE\n  SLOW_WORK: Fix CIFS to pass THIS_MODULE to slow_work_register_user()\n  CacheFiles: Don\u0027t log lookup/create failing with ENOBUFS\n  CacheFiles: Catch an overly long wait for an old active object\n  CacheFiles: Better showing of debugging information in active object problems\n  CacheFiles: Mark parent directory locks as I_MUTEX_PARENT to keep lockdep happy\n  CacheFiles: Handle truncate unlocking the page we\u0027re reading\n  CacheFiles: Don\u0027t write a full page if there\u0027s only a partial page to cache\n  FS-Cache: Actually requeue an object when requested\n  FS-Cache: Start processing an object\u0027s operations on that object\u0027s death\n  FS-Cache: Make sure FSCACHE_COOKIE_LOOKING_UP cleared on lookup failure\n  FS-Cache: Add a retirement stat counter\n  FS-Cache: Handle pages pending storage that get evicted under OOM conditions\n  FS-Cache: Handle read request vs lookup, creation or other cache failure\n  FS-Cache: Don\u0027t delete pending pages from the page-store tracking tree\n  FS-Cache: Fix lock misorder in fscache_write_op()\n  FS-Cache: The object-available state can\u0027t rely on the cookie to be available\n  FS-Cache: Permit cache retrieval ops to be interrupted in the initial wait phase\n  FS-Cache: Use radix tree preload correctly in tracking of pages to be stored\n  ...\n"
    },
    {
      "commit": "1b7323965a8c6eee9dc4e345a7ae4bff1dc93149",
      "tree": "e0f6708e1bb274a2204919dbcc698be5f5880f0c",
      "parents": [
        "a8a8a669ea13d792296737505adc43ccacf3a648"
      ],
      "author": {
        "name": "Csaba Henk",
        "email": "csaba@gluster.com",
        "time": "Fri Nov 27 19:30:14 2009 +0530"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Nov 27 16:37:13 2009 +0100"
      },
      "message": "fuse: reject O_DIRECT flag also in fuse_create\n\nThe comment in fuse_open about O_DIRECT:\n\n  \"VFS checks this, but only _after_ -\u003eopen()\"\n\nalso holds for fuse_create, however, the same kind of check was missing there.\n\nAs an impact of this bug, open(newfile, O_RDWR|O_CREAT|O_DIRECT) fails, but a\nstub newfile will remain if the fuse server handled the implied FUSE_CREATE\nrequest appropriately.\n\nOther impact: in the above situation ima_file_free() will complain to open/free\nimbalance if CONFIG_IMA is set.\n\nSigned-off-by: Csaba Henk \u003ccsaba@gluster.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Harshavardhana \u003charsha@gluster.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "2f81e752da4781fc276689fc14391346d0dbbe78",
      "tree": "02c40374f22919e49b87242b44556362053e85b2",
      "parents": [
        "cea62343956c24452700c06cf028b72414c58a74"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Nov 25 00:11:31 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Nov 25 00:11:31 2009 +0000"
      },
      "message": "[CIFS] Fix sparse warning\n\nAlso update CHANGES file\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "cea62343956c24452700c06cf028b72414c58a74",
      "tree": "961d032aa0d020eaecf04c8be149d96efc17003f",
      "parents": [
        "8e6c0332d5032aef2d3bc8f41771f999112c8c66"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Nov 24 22:49:37 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Nov 24 22:52:13 2009 +0000"
      },
      "message": "[CIFS] Duplicate data on appending to some Samba servers\n\nSMB writes are sent with a starting offset and length. When the server\nsupports the newer SMB trans2 posix open (rather than using the SMB\nNTCreateX) a file can be opened with SMB_O_APPEND flag, and for that\ncase Samba server assumes that the offset sent in SMBWriteX is unneeded\nsince the write should go to the end of the file - which can cause\nproblems if the write was cached (since the beginning part of a\npage could be written twice by the client mm).  Jeff suggested that\nmasking the flag on posix open on the client is easiest for the time\nbeing. Note that recent Samba server also had an unrelated problem with\nSMB NTCreateX and append (see samba bugzilla bug number 6898) which\nshould not affect current Linux clients (unless cifs Unix Extensions\nare disabled).\n\nThe cifs client did not send the O_APPEND flag on posix open\nbefore 2.6.29 so the fix is unneeded on early kernels.\n\nIn the future, for the non-cached case (O_DIRECT, and forcedirectio mounts)\nit would be possible and useful to send O_APPEND on posix open (for Windows\ncase: FILE_APPEND_DATA but not FILE_WRITE_DATA on SMB NTCreateX) but for\ncached writes although the vfs sets the offset to end of file it\nmay fragment a write across pages - so we can\u0027t send O_APPEND on\nopen (could result in sending part of a page twice).\n\nCC: Stable \u003cstable@kernel.org\u003e\nReviewed-by: Shirish Pargaonkar \u003cshirishp@us.ibm.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "8e6c0332d5032aef2d3bc8f41771f999112c8c66",
      "tree": "2b6282cd749f7a80f1ca34995f0e984a639cc144",
      "parents": [
        "ac50e950784cae1c26ad9e09ebd8f8c706131eb3"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Nov 24 22:17:59 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Nov 24 22:17:59 2009 +0000"
      },
      "message": "[CIFS] fix oops in cifs_lookup during net boot\n\nFixes bugzilla.kernel.org bug number 14641\n\nLookup called during network boot (network root filesystem\nfor diskless workstation) has case where nd is null in\nlookup.  This patch fixes that in cifs_lookup.\n\n(Shirish noted that 2.6.30 and 2.6.31 stable need the same check)\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishp@us.ibm.com\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nTested-by:  Vladimir Stavrinov \u003cvs@inist.ru\u003e\nCC: Stable \u003cstable@kernel.org\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "4fa9f4ede88b4e2ff135b6e5717499d734508c62",
      "tree": "4a640f94091141d7115a7ef1000f97fd28f05e7a",
      "parents": [
        "1c2ea8a2c0b71cc5e07f518370d458d692c9b21a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 20 21:50:44 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 20 21:50:44 2009 +0000"
      },
      "message": "FS-Cache: Provide nop fscache_stat_d() if CONFIG_FSCACHE_STATS\u003dn\n\nProvide nop fscache_stat_d() macro if CONFIG_FSCACHE_STATS\u003dn lest errors like\nthe following occur:\n\n\tfs/fscache/cache.c: In function \u0027fscache_withdraw_cache\u0027:\n\tfs/fscache/cache.c:386: error: implicit declaration of function \u0027fscache_stat_d\u0027\n\tfs/fscache/cache.c:386: error: \u0027fscache_n_cop_sync_cache\u0027 undeclared (first use in this function)\n\tfs/fscache/cache.c:386: error: (Each undeclared identifier is reported only once\n\tfs/fscache/cache.c:386: error: for each function it appears in.)\n\tfs/fscache/cache.c:392: error: \u0027fscache_n_cop_dissociate_pages\u0027 undeclared (first use in this function)\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "1c2ea8a2c0b71cc5e07f518370d458d692c9b21a",
      "tree": "3a4acbf6b21bfd560dece24916b951e4639d3632",
      "parents": [
        "0109d7e614e016a842569628116f54847a177f6e"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 20 21:50:40 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 20 21:50:40 2009 +0000"
      },
      "message": "SLOW_WORK: Fix GFS2 to #include \u003clinux/module.h\u003e before using THIS_MODULE\n\nGFS2 has been altered to pass THIS_MODULE to slow_work_register_user(), but\nhasn\u0027t been altered to #include \u003clinux/module.h\u003e to provide it, resulting in\nthe following error:\n\n\tfs/gfs2/recovery.c:596: error: \u0027THIS_MODULE\u0027 undeclared here (not in a function)\n\nAdd the missing #include.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "0109d7e614e016a842569628116f54847a177f6e",
      "tree": "b94b11990d7a17b4232293bb866299042c948fd2",
      "parents": [
        "14e69647c868459bcb910f771851ca7c699efd21"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 20 21:50:36 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 20 21:50:36 2009 +0000"
      },
      "message": "SLOW_WORK: Fix CIFS to pass THIS_MODULE to slow_work_register_user()\n\nAs of the patch:\n\n\tSLOW_WORK: Wait for outstanding work items belonging to a module to clear\n\n\tWait for outstanding slow work items belonging to a module to clear\n\twhen unregistering that module as a user of the facility.  This\n\tprevents the put_ref code of a work item from being taken away before\n\tit returns.\n\nslow_work_register_user() takes a module pointer as an argument.  CIFS must now\npass THIS_MODULE as that argument, lest the following error be observed:\n\n\tfs/cifs/cifsfs.c: In function \u0027init_cifs\u0027:\n\tfs/cifs/cifsfs.c:1040: error: too few arguments to function \u0027slow_work_register_user\u0027\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "931ed94430e36b9bea3904572424116092ba5663",
      "tree": "6ac8895f63ec90fdc2baddbd42bdc31da72e1e41",
      "parents": [
        "648f4e3e50c4793d9dbf9a09afa193631f76fa26",
        "7aee47b0bb9f93baecdbea205e878fe0f155f7da"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 19 20:29:05 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 19 20:29:05 2009 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:\n  ocfs2: Trivial cleanup of jbd compatibility layer removal\n  ocfs2: Refresh documentation\n  ocfs2: return f_fsid info in ocfs2_statfs()\n  ocfs2: duplicate inline data properly during reflink.\n  ocfs2: Move ocfs2_complete_reflink to the right place.\n  ocfs2: Return -EINVAL when a device is not ocfs2.\n"
    },
    {
      "commit": "e6236f781cc7777a2e74d256c478bb07496f35ec",
      "tree": "559a5816b803ec3f86dae82bdb9e5d3f9c20deee",
      "parents": [
        "308efab5e231d1510cd35931d87629bf5171caae",
        "1e360a60b24ad8f8685af66fa6de10ce46693a4b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 19 13:43:19 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 19 13:43:19 2009 -0800"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  SUNRPC: Address buffer overrun in rpc_uaddr2sockaddr()\n  NFSv4: Fix a cache validation bug which causes getcwd() to return ENOENT\n"
    },
    {
      "commit": "14e69647c868459bcb910f771851ca7c699efd21",
      "tree": "eaf14450c1dd6894ff7db727b6e8afe179cae6a0",
      "parents": [
        "fee096deb4f33897937b974cb2c5168bab7935be"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:12:08 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:12:08 2009 +0000"
      },
      "message": "CacheFiles: Don\u0027t log lookup/create failing with ENOBUFS\n\nDon\u0027t log the CacheFiles lookup/create object routined failing with ENOBUFS as\nunder high memory load or high cache load they can do this quite a lot.  This\nerror simply means that the requested object cannot be created on disk due to\nlack of space, or due to failure of the backing filesystem to find sufficient\nresources.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "fee096deb4f33897937b974cb2c5168bab7935be",
      "tree": "c86e5ed5b3435ff0f0266f343b19f8cc7be63340",
      "parents": [
        "d0e27b7808dc667f3015be0b6888f6d680e222c8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:12:05 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:12:05 2009 +0000"
      },
      "message": "CacheFiles: Catch an overly long wait for an old active object\n\nCatch an overly long wait for an old, dying active object when we want to\nreplace it with a new one.  The probability is that all the slow-work threads\nare hogged, and the delete can\u0027t get a look in.\n\nWhat we do instead is:\n\n (1) if there\u0027s nothing in the slow work queue, we sleep until either the dying\n     object has finished dying or there is something in the slow work queue\n     behind which we can queue our object.\n\n (2) if there is something in the slow work queue, we return ETIMEDOUT to\n     fscache_lookup_object(), which then puts us back on the slow work queue,\n     presumably behind the deletion that we\u0027re blocked by.  We are then\n     deferred for a while until we work our way back through the queue -\n     without blocking a slow-work thread unnecessarily.\n\nA backtrace similar to the following may appear in the log without this patch:\n\n\tINFO: task kslowd004:5711 blocked for more than 120 seconds.\n\t\"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\n\tkslowd004     D 0000000000000000     0  5711      2 0x00000080\n\t ffff88000340bb80 0000000000000046 ffff88002550d000 0000000000000000\n\t ffff88002550d000 0000000000000007 ffff88000340bfd8 ffff88002550d2a8\n\t 000000000000ddf0 00000000000118c0 00000000000118c0 ffff88002550d2a8\n\tCall Trace:\n\t [\u003cffffffff81058e21\u003e] ? trace_hardirqs_on+0xd/0xf\n\t [\u003cffffffffa011c4d8\u003e] ? cachefiles_wait_bit+0x0/0xd [cachefiles]\n\t [\u003cffffffffa011c4e1\u003e] cachefiles_wait_bit+0x9/0xd [cachefiles]\n\t [\u003cffffffff81353153\u003e] __wait_on_bit+0x43/0x76\n\t [\u003cffffffff8111ae39\u003e] ? ext3_xattr_get+0x1ec/0x270\n\t [\u003cffffffff813531ef\u003e] out_of_line_wait_on_bit+0x69/0x74\n\t [\u003cffffffffa011c4d8\u003e] ? cachefiles_wait_bit+0x0/0xd [cachefiles]\n\t [\u003cffffffff8104c125\u003e] ? wake_bit_function+0x0/0x2e\n\t [\u003cffffffffa011bc79\u003e] cachefiles_mark_object_active+0x203/0x23b [cachefiles]\n\t [\u003cffffffffa011c209\u003e] cachefiles_walk_to_object+0x558/0x827 [cachefiles]\n\t [\u003cffffffffa011a429\u003e] cachefiles_lookup_object+0xac/0x12a [cachefiles]\n\t [\u003cffffffffa00aa1e9\u003e] fscache_lookup_object+0x1c7/0x214 [fscache]\n\t [\u003cffffffffa00aafc5\u003e] fscache_object_state_machine+0xa5/0x52d [fscache]\n\t [\u003cffffffffa00ab4ac\u003e] fscache_object_slow_work_execute+0x5f/0xa0 [fscache]\n\t [\u003cffffffff81082093\u003e] slow_work_execute+0x18f/0x2d1\n\t [\u003cffffffff8108239a\u003e] slow_work_thread+0x1c5/0x308\n\t [\u003cffffffff8104c0f1\u003e] ? autoremove_wake_function+0x0/0x34\n\t [\u003cffffffff810821d5\u003e] ? slow_work_thread+0x0/0x308\n\t [\u003cffffffff8104be91\u003e] kthread+0x7a/0x82\n\t [\u003cffffffff8100beda\u003e] child_rip+0xa/0x20\n\t [\u003cffffffff8100b87c\u003e] ? restore_args+0x0/0x30\n\t [\u003cffffffff8104be17\u003e] ? kthread+0x0/0x82\n\t [\u003cffffffff8100bed0\u003e] ? child_rip+0x0/0x20\n\t1 lock held by kslowd004/5711:\n\t #0:  (\u0026sb-\u003es_type-\u003ei_mutex_key#7/1){+.+.+.}, at: [\u003cffffffffa011be64\u003e] cachefiles_walk_to_object+0x1b3/0x827 [cachefiles]\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "d0e27b7808dc667f3015be0b6888f6d680e222c8",
      "tree": "bf8451f0d9a95db14ed1ebda50d701f4f387c0d8",
      "parents": [
        "6511de33c877a53b3df545bc06c29e0f272837ff"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:12:02 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:12:02 2009 +0000"
      },
      "message": "CacheFiles: Better showing of debugging information in active object problems\n\nShow more debugging information if cachefiles_mark_object_active() is asked to\nactivate an active object.\n\nThis may happen, for instance, if the netfs tries to register an object with\nthe same key multiple times.\n\nThe code is changed to (a) get the appropriate object lock to protect the\ncookie pointer whilst we dereference it, and (b) get and display the cookie key\nif available.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "6511de33c877a53b3df545bc06c29e0f272837ff",
      "tree": "f5588cf0edcdc5412ab3ca8af655423b2346fd31",
      "parents": [
        "5e929b33c3935ecb029b3e495356b2b8af432efa"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:58 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:58 2009 +0000"
      },
      "message": "CacheFiles: Mark parent directory locks as I_MUTEX_PARENT to keep lockdep happy\n\nMark parent directory locks as I_MUTEX_PARENT in the callers of\ncachefiles_bury_object() so that lockdep doesn\u0027t complain when that invokes\nvfs_unlink():\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible recursive locking detected ]\n2.6.32-rc6-cachefs #47\n---------------------------------------------\nkslowd002/3089 is trying to acquire lock:\n (\u0026sb-\u003es_type-\u003ei_mutex_key#7){+.+.+.}, at: [\u003cffffffff810bbf72\u003e] vfs_unlink+0x8b/0x128\n\nbut task is already holding lock:\n (\u0026sb-\u003es_type-\u003ei_mutex_key#7){+.+.+.}, at: [\u003cffffffffa00e4e61\u003e] cachefiles_walk_to_object+0x1b0/0x831 [cachefiles]\n\nother info that might help us debug this:\n1 lock held by kslowd002/3089:\n #0:  (\u0026sb-\u003es_type-\u003ei_mutex_key#7){+.+.+.}, at: [\u003cffffffffa00e4e61\u003e] cachefiles_walk_to_object+0x1b0/0x831 [cachefiles]\n\nstack backtrace:\nPid: 3089, comm: kslowd002 Not tainted 2.6.32-rc6-cachefs #47\nCall Trace:\n [\u003cffffffff8105ad7b\u003e] __lock_acquire+0x1649/0x16e3\n [\u003cffffffff8118170e\u003e] ? inode_has_perm+0x5f/0x61\n [\u003cffffffff8105ae6c\u003e] lock_acquire+0x57/0x6d\n [\u003cffffffff810bbf72\u003e] ? vfs_unlink+0x8b/0x128\n [\u003cffffffff81353ac3\u003e] mutex_lock_nested+0x54/0x292\n [\u003cffffffff810bbf72\u003e] ? vfs_unlink+0x8b/0x128\n [\u003cffffffff8118179e\u003e] ? selinux_inode_permission+0x8e/0x90\n [\u003cffffffff8117e271\u003e] ? security_inode_permission+0x1c/0x1e\n [\u003cffffffff810bb4fb\u003e] ? inode_permission+0x99/0xa5\n [\u003cffffffff810bbf72\u003e] vfs_unlink+0x8b/0x128\n [\u003cffffffff810adb19\u003e] ? kfree+0xed/0xf9\n [\u003cffffffffa00e3f00\u003e] cachefiles_bury_object+0xb6/0x420 [cachefiles]\n [\u003cffffffff81058e21\u003e] ? trace_hardirqs_on+0xd/0xf\n [\u003cffffffffa00e7e24\u003e] ? cachefiles_check_object_xattr+0x233/0x293 [cachefiles]\n [\u003cffffffffa00e51b0\u003e] cachefiles_walk_to_object+0x4ff/0x831 [cachefiles]\n [\u003cffffffff81032238\u003e] ? finish_task_switch+0x0/0xb2\n [\u003cffffffffa00e3429\u003e] cachefiles_lookup_object+0xac/0x12a [cachefiles]\n [\u003cffffffffa00741e9\u003e] fscache_lookup_object+0x1c7/0x214 [fscache]\n [\u003cffffffffa0074fc5\u003e] fscache_object_state_machine+0xa5/0x52d [fscache]\n [\u003cffffffffa00754ac\u003e] fscache_object_slow_work_execute+0x5f/0xa0 [fscache]\n [\u003cffffffff81082093\u003e] slow_work_execute+0x18f/0x2d1\n [\u003cffffffff8108239a\u003e] slow_work_thread+0x1c5/0x308\n [\u003cffffffff8104c0f1\u003e] ? autoremove_wake_function+0x0/0x34\n [\u003cffffffff810821d5\u003e] ? slow_work_thread+0x0/0x308\n [\u003cffffffff8104be91\u003e] kthread+0x7a/0x82\n [\u003cffffffff8100beda\u003e] child_rip+0xa/0x20\n [\u003cffffffff8100b87c\u003e] ? restore_args+0x0/0x30\n [\u003cffffffff8104be17\u003e] ? kthread+0x0/0x82\n [\u003cffffffff8100bed0\u003e] ? child_rip+0x0/0x20\n\nSigned-off-by: Daivd Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "5e929b33c3935ecb029b3e495356b2b8af432efa",
      "tree": "99f892f4ea926d94b441856e27f1e08814ab1c75",
      "parents": [
        "a17754fb8c28af19cd70dcbec6d5b0773b94e0c1"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:55 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:55 2009 +0000"
      },
      "message": "CacheFiles: Handle truncate unlocking the page we\u0027re reading\n\nHandle truncate unlocking the page we\u0027re attempting to read from the backing\ndevice before the read has completed.\n\nThis was causing reports like the following to occur:\n\n\tPid: 4765, comm: kslowd Not tainted 2.6.30.1 #1\n\tCall Trace:\n\t [\u003cffffffffa0331d7a\u003e] ? cachefiles_read_waiter+0xd9/0x147 [cachefiles]\n\t [\u003cffffffff804b74bd\u003e] ? __wait_on_bit+0x60/0x6f\n\t [\u003cffffffff8022bbbb\u003e] ? __wake_up_common+0x3f/0x71\n\t [\u003cffffffff8022cc32\u003e] ? __wake_up+0x30/0x44\n\t [\u003cffffffff8024a41f\u003e] ? __wake_up_bit+0x28/0x2d\n\t [\u003cffffffffa003a793\u003e] ? ext3_truncate+0x4d7/0x8ed [ext3]\n\t [\u003cffffffff80281f90\u003e] ? pagevec_lookup+0x17/0x1f\n\t [\u003cffffffff8028c2ff\u003e] ? unmap_mapping_range+0x59/0x1ff\n\t [\u003cffffffff8022cc32\u003e] ? __wake_up+0x30/0x44\n\t [\u003cffffffff8028e286\u003e] ? vmtruncate+0xc2/0xe2\n\t [\u003cffffffff802b82cf\u003e] ? inode_setattr+0x22/0x10a\n\t [\u003cffffffffa003baa5\u003e] ? ext3_setattr+0x17b/0x1e6 [ext3]\n\t [\u003cffffffff802b853d\u003e] ? notify_change+0x186/0x2c9\n\t [\u003cffffffffa032d9de\u003e] ? cachefiles_attr_changed+0x133/0x1cd [cachefiles]\n\t [\u003cffffffffa032df7f\u003e] ? cachefiles_lookup_object+0xcf/0x12a [cachefiles]\n\t [\u003cffffffffa0318165\u003e] ? fscache_lookup_object+0x110/0x122 [fscache]\n\t [\u003cffffffffa03188c3\u003e] ? fscache_object_slow_work_execute+0x590/0x6bc\n\t[fscache]\n\t [\u003cffffffff80278f82\u003e] ? slow_work_thread+0x285/0x43a\n\t [\u003cffffffff8024a446\u003e] ? autoremove_wake_function+0x0/0x2e\n\t [\u003cffffffff80278cfd\u003e] ? slow_work_thread+0x0/0x43a\n\t [\u003cffffffff8024a317\u003e] ? kthread+0x54/0x81\n\t [\u003cffffffff8020c93a\u003e] ? child_rip+0xa/0x20\n\t [\u003cffffffff8024a2c3\u003e] ? kthread+0x0/0x81\n\t [\u003cffffffff8020c930\u003e] ? child_rip+0x0/0x20\n\tCacheFiles: I/O Error: Readpage failed on backing file 200000000000810\n\tFS-Cache: Cache cachefiles stopped due to I/O error\n\nReported-by: Christian Kujau \u003clists@nerdbynature.de\u003e\nReported-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nReported-by: Duc Le Minh \u003cduclm.vn@gmail.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "a17754fb8c28af19cd70dcbec6d5b0773b94e0c1",
      "tree": "d7c25b217c684153eadbac78ab9b1bbff08b75f6",
      "parents": [
        "868411be3f445a83fafbd734f3e426400138add5"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:52 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:52 2009 +0000"
      },
      "message": "CacheFiles: Don\u0027t write a full page if there\u0027s only a partial page to cache\n\ncachefiles_write_page() writes a full page to the backing file for the last\npage of the netfs file, even if the netfs file\u0027s last page is only a partial\npage.\n\nThis causes the EOF on the backing file to be extended beyond the EOF of the\nnetfs, and thus the backing file will be truncated by cachefiles_attr_changed()\ncalled from cachefiles_lookup_object().\n\nSo we need to limit the write we make to the backing file on that last page\nsuch that it doesn\u0027t push the EOF too far.\n\nAlso, if a backing file that has a partial page at the end is expanded, we\ndiscard the partial page and refetch it on the basis that we then have a hole\nin the file with invalid data, and should the power go out...  A better way to\ndeal with this could be to record a note that the partial page contains invalid\ndata until the correct data is written into it.\n\nThis isn\u0027t a problem for netfs\u0027s that discard the whole backing file if the\nfile size changes (such as NFS).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "868411be3f445a83fafbd734f3e426400138add5",
      "tree": "5eb855730adfa903abae29a9a20a78f1cfe597af",
      "parents": [
        "60d543ca724be155c2b6166e36a00c80b21bd810"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:48 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:48 2009 +0000"
      },
      "message": "FS-Cache: Actually requeue an object when requested\n\nFS-Cache objects have an FSCACHE_OBJECT_EV_REQUEUE event that can theoretically\nbe raised to ask the state machine to requeue the object for further processing\nbefore the work function returns to the slow-work facility.\n\nHowever, fscache_object_work_execute() was clearing that bit before checking\nthe event mask to see whether the object has any pending events that require it\nto be requeued immediately.\n\nInstead, the bit should be cleared after the check and enqueue.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "60d543ca724be155c2b6166e36a00c80b21bd810",
      "tree": "90ec6edd77ddb7666dbf7069aa2e001f155cea49",
      "parents": [
        "d461d26dde901b0523c46b0317e7fccf574a3933"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:45 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:45 2009 +0000"
      },
      "message": "FS-Cache: Start processing an object\u0027s operations on that object\u0027s death\n\nStart processing an object\u0027s operations when that object moves into the DYING\nstate as the object cannot be destroyed until all its outstanding operations\nhave completed.\n\nFurthermore, make sure that read and allocation operations handle being woken\nup on a dead object.  Such events are recorded in the Allocs.abt and\nRetrvls.abt statistics as viewable through /proc/fs/fscache/stats.\n\nThe code for waiting for object activation for the read and allocation\noperations is also extracted into its own function as it is much the same in\nall cases, differing only in the stats incremented.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "d461d26dde901b0523c46b0317e7fccf574a3933",
      "tree": "abaac0f4259ec9458fa40be85ed7a3d4f8982cc5",
      "parents": [
        "2175bb06dc6cf2af9c098a1770561f9e63edae4e"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:41 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:41 2009 +0000"
      },
      "message": "FS-Cache: Make sure FSCACHE_COOKIE_LOOKING_UP cleared on lookup failure\n\nWe must make sure that FSCACHE_COOKIE_LOOKING_UP is cleared on lookup failure\n(if an object reaches the LC_DYING state), and we should clear it before\nclearing FSCACHE_COOKIE_CREATING.\n\nIf this doesn\u0027t happen then fscache_wait_for_deferred_lookup() may hold\nallocation and retrieval operations indefinitely until they\u0027re interrupted by\nsignals - which in turn pins the dying object until they go away.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "2175bb06dc6cf2af9c098a1770561f9e63edae4e",
      "tree": "579c8d4b3f4f92efee919953dab2c78cea8c21ea",
      "parents": [
        "201a15428bd54f83eccec8b7c64a04b8f9431204"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:38 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:38 2009 +0000"
      },
      "message": "FS-Cache: Add a retirement stat counter\n\nAdd a stat counter to count retirement events rather than ordinary release\nevents (the retire argument to fscache_relinquish_cookie()).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "201a15428bd54f83eccec8b7c64a04b8f9431204",
      "tree": "326fcce64ce96657253fd141a3f4a767ac95418a",
      "parents": [
        "e3d4d28b1c8cc7c26536a50b43d86ccd39878550"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:35 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:35 2009 +0000"
      },
      "message": "FS-Cache: Handle pages pending storage that get evicted under OOM conditions\n\nHandle netfs pages that the vmscan algorithm wants to evict from the pagecache\nunder OOM conditions, but that are waiting for write to the cache.  Under these\nconditions, vmscan calls the releasepage() function of the netfs, asking if a\npage can be discarded.\n\nThe problem is typified by the following trace of a stuck process:\n\n\tkslowd005     D 0000000000000000     0  4253      2 0x00000080\n\t ffff88001b14f370 0000000000000046 ffff880020d0d000 0000000000000007\n\t 0000000000000006 0000000000000001 ffff88001b14ffd8 ffff880020d0d2a8\n\t 000000000000ddf0 00000000000118c0 00000000000118c0 ffff880020d0d2a8\n\tCall Trace:\n\t [\u003cffffffffa00782d8\u003e] __fscache_wait_on_page_write+0x8b/0xa7 [fscache]\n\t [\u003cffffffff8104c0f1\u003e] ? autoremove_wake_function+0x0/0x34\n\t [\u003cffffffffa0078240\u003e] ? __fscache_check_page_write+0x63/0x70 [fscache]\n\t [\u003cffffffffa00b671d\u003e] nfs_fscache_release_page+0x4e/0xc4 [nfs]\n\t [\u003cffffffffa00927f0\u003e] nfs_release_page+0x3c/0x41 [nfs]\n\t [\u003cffffffff810885d3\u003e] try_to_release_page+0x32/0x3b\n\t [\u003cffffffff81093203\u003e] shrink_page_list+0x316/0x4ac\n\t [\u003cffffffff8109372b\u003e] shrink_inactive_list+0x392/0x67c\n\t [\u003cffffffff813532fa\u003e] ? __mutex_unlock_slowpath+0x100/0x10b\n\t [\u003cffffffff81058df0\u003e] ? trace_hardirqs_on_caller+0x10c/0x130\n\t [\u003cffffffff8135330e\u003e] ? mutex_unlock+0x9/0xb\n\t [\u003cffffffff81093aa2\u003e] shrink_list+0x8d/0x8f\n\t [\u003cffffffff81093d1c\u003e] shrink_zone+0x278/0x33c\n\t [\u003cffffffff81052d6c\u003e] ? ktime_get_ts+0xad/0xba\n\t [\u003cffffffff81094b13\u003e] try_to_free_pages+0x22e/0x392\n\t [\u003cffffffff81091e24\u003e] ? isolate_pages_global+0x0/0x212\n\t [\u003cffffffff8108e743\u003e] __alloc_pages_nodemask+0x3dc/0x5cf\n\t [\u003cffffffff81089529\u003e] grab_cache_page_write_begin+0x65/0xaa\n\t [\u003cffffffff8110f8c0\u003e] ext3_write_begin+0x78/0x1eb\n\t [\u003cffffffff81089ec5\u003e] generic_file_buffered_write+0x109/0x28c\n\t [\u003cffffffff8103cb69\u003e] ? current_fs_time+0x22/0x29\n\t [\u003cffffffff8108a509\u003e] __generic_file_aio_write+0x350/0x385\n\t [\u003cffffffff8108a588\u003e] ? generic_file_aio_write+0x4a/0xae\n\t [\u003cffffffff8108a59e\u003e] generic_file_aio_write+0x60/0xae\n\t [\u003cffffffff810b2e82\u003e] do_sync_write+0xe3/0x120\n\t [\u003cffffffff8104c0f1\u003e] ? autoremove_wake_function+0x0/0x34\n\t [\u003cffffffff810b18e1\u003e] ? __dentry_open+0x1a5/0x2b8\n\t [\u003cffffffff810b1a76\u003e] ? dentry_open+0x82/0x89\n\t [\u003cffffffffa00e693c\u003e] cachefiles_write_page+0x298/0x335 [cachefiles]\n\t [\u003cffffffffa0077147\u003e] fscache_write_op+0x178/0x2c2 [fscache]\n\t [\u003cffffffffa0075656\u003e] fscache_op_execute+0x7a/0xd1 [fscache]\n\t [\u003cffffffff81082093\u003e] slow_work_execute+0x18f/0x2d1\n\t [\u003cffffffff8108239a\u003e] slow_work_thread+0x1c5/0x308\n\t [\u003cffffffff8104c0f1\u003e] ? autoremove_wake_function+0x0/0x34\n\t [\u003cffffffff810821d5\u003e] ? slow_work_thread+0x0/0x308\n\t [\u003cffffffff8104be91\u003e] kthread+0x7a/0x82\n\t [\u003cffffffff8100beda\u003e] child_rip+0xa/0x20\n\t [\u003cffffffff8100b87c\u003e] ? restore_args+0x0/0x30\n\t [\u003cffffffff8102ef83\u003e] ? tg_shares_up+0x171/0x227\n\t [\u003cffffffff8104be17\u003e] ? kthread+0x0/0x82\n\t [\u003cffffffff8100bed0\u003e] ? child_rip+0x0/0x20\n\nIn the above backtrace, the following is happening:\n\n (1) A page storage operation is being executed by a slow-work thread\n     (fscache_write_op()).\n\n (2) FS-Cache farms the operation out to the cache to perform\n     (cachefiles_write_page()).\n\n (3) CacheFiles is then calling Ext3 to perform the actual write, using Ext3\u0027s\n     standard write (do_sync_write()) under KERNEL_DS directly from the netfs\n     page.\n\n (4) However, for Ext3 to perform the write, it must allocate some memory, in\n     particular, it must allocate at least one page cache page into which it\n     can copy the data from the netfs page.\n\n (5) Under OOM conditions, the memory allocator can\u0027t immediately come up with\n     a page, so it uses vmscan to find something to discard\n     (try_to_free_pages()).\n\n (6) vmscan finds a clean netfs page it might be able to discard (possibly the\n     one it\u0027s trying to write out).\n\n (7) The netfs is called to throw the page away (nfs_release_page()) - but it\u0027s\n     called with __GFP_WAIT, so the netfs decides to wait for the store to\n     complete (__fscache_wait_on_page_write()).\n\n (8) This blocks a slow-work processing thread - possibly against itself.\n\nThe system ends up stuck because it can\u0027t write out any netfs pages to the\ncache without allocating more memory.\n\nTo avoid this, we make FS-Cache cancel some writes that aren\u0027t in the middle of\nactually being performed.  This means that some data won\u0027t make it into the\ncache this time.  To support this, a new FS-Cache function is added\nfscache_maybe_release_page() that replaces what the netfs releasepage()\nfunctions used to do with respect to the cache.\n\nThe decisions fscache_maybe_release_page() makes are counted and displayed\nthrough /proc/fs/fscache/stats on a line labelled \"VmScan\".  There are four\ncounters provided: \"nos\u003dN\" - pages that weren\u0027t pending storage; \"gon\u003dN\" -\npages that were pending storage when we first looked, but weren\u0027t by the time\nwe got the object lock; \"bsy\u003dN\" - pages that we ignored as they were actively\nbeing written when we looked; and \"can\u003dN\" - pages that we cancelled the storage\nof.\n\nWhat I\u0027d really like to do is alter the behaviour of the cancellation\nheuristics, depending on how necessary it is to expel pages.  If there are\nplenty of other pages that aren\u0027t waiting to be written to the cache that\ncould be ejected first, then it would be nice to hold up on immediate\ncancellation of cache writes - but I don\u0027t see a way of doing that.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "e3d4d28b1c8cc7c26536a50b43d86ccd39878550",
      "tree": "23f6dacd5ffdf6c6d01c411517855a41405381b9",
      "parents": [
        "285e728b0ac55b53a673114096168d6f74930167"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:32 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:32 2009 +0000"
      },
      "message": "FS-Cache: Handle read request vs lookup, creation or other cache failure\n\nFS-Cache doesn\u0027t correctly handle the netfs requesting a read from the cache\non an object that failed or was withdrawn by the cache.  A trace similar to\nthe following might be seen:\n\n\tCacheFiles: Lookup failed error -105\n\t[exe   ] unexpected submission OP165afe [OBJ6cac OBJECT_LC_DYING]\n\t[exe   ] objstate\u003dOBJECT_LC_DYING [OBJECT_LC_DYING]\n\t[exe   ] objflags\u003d0\n\t[exe   ] objevent\u003d9 [fffffffffffffffb]\n\t[exe   ] ops\u003d0 inp\u003d0 exc\u003d0\n\tPid: 6970, comm: exe Not tainted 2.6.32-rc6-cachefs #50\n\tCall Trace:\n\t [\u003cffffffffa0076477\u003e] fscache_submit_op+0x3ff/0x45a [fscache]\n\t [\u003cffffffffa0077997\u003e] __fscache_read_or_alloc_pages+0x187/0x3c4 [fscache]\n\t [\u003cffffffffa00b6480\u003e] ? nfs_readpage_from_fscache_complete+0x0/0x66 [nfs]\n\t [\u003cffffffffa00b6388\u003e] __nfs_readpages_from_fscache+0x7e/0x176 [nfs]\n\t [\u003cffffffff8108e483\u003e] ? __alloc_pages_nodemask+0x11c/0x5cf\n\t [\u003cffffffffa009d796\u003e] nfs_readpages+0x114/0x1d7 [nfs]\n\t [\u003cffffffff81090314\u003e] __do_page_cache_readahead+0x15f/0x1ec\n\t [\u003cffffffff81090228\u003e] ? __do_page_cache_readahead+0x73/0x1ec\n\t [\u003cffffffff810903bd\u003e] ra_submit+0x1c/0x20\n\t [\u003cffffffff810906bb\u003e] ondemand_readahead+0x227/0x23a\n\t [\u003cffffffff81090762\u003e] page_cache_sync_readahead+0x17/0x19\n\t [\u003cffffffff8108a99e\u003e] generic_file_aio_read+0x236/0x5a0\n\t [\u003cffffffffa00937bd\u003e] nfs_file_read+0xe4/0xf3 [nfs]\n\t [\u003cffffffff810b2fa2\u003e] do_sync_read+0xe3/0x120\n\t [\u003cffffffff81354cc3\u003e] ? _spin_unlock_irq+0x2b/0x31\n\t [\u003cffffffff8104c0f1\u003e] ? autoremove_wake_function+0x0/0x34\n\t [\u003cffffffff811848e5\u003e] ? selinux_file_permission+0x5d/0x10f\n\t [\u003cffffffff81352bdb\u003e] ? thread_return+0x3e/0x101\n\t [\u003cffffffff8117d7b0\u003e] ? security_file_permission+0x11/0x13\n\t [\u003cffffffff810b3b06\u003e] vfs_read+0xaa/0x16f\n\t [\u003cffffffff81058df0\u003e] ? trace_hardirqs_on_caller+0x10c/0x130\n\t [\u003cffffffff810b3c84\u003e] sys_read+0x45/0x6c\n\t [\u003cffffffff8100ae2b\u003e] system_call_fastpath+0x16/0x1b\n\nThe object state might also be OBJECT_DYING or OBJECT_WITHDRAWING.\n\nThis should be handled by simply rejecting the new operation with ENOBUFS.\nThere\u0027s no need to log an error for it.  Events of this type now appear in the\nstats file under Ops:rej.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "285e728b0ac55b53a673114096168d6f74930167",
      "tree": "725dbd61cc9a3fecd593163d9b2cb0a061315cbf",
      "parents": [
        "1bccf513ac49d44604ba1cddcc29f5886e70f1b6"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:29 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:29 2009 +0000"
      },
      "message": "FS-Cache: Don\u0027t delete pending pages from the page-store tracking tree\n\nDon\u0027t delete pending pages from the page-store tracking tree, but rather send\nthem for another write as they\u0027ve presumably been updated.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "1bccf513ac49d44604ba1cddcc29f5886e70f1b6",
      "tree": "096ba75a3d02018c5f6e1857aaf1d41471733850",
      "parents": [
        "6897e3df8fc37bd4a58bbcdef8306da7fc175584"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:25 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:25 2009 +0000"
      },
      "message": "FS-Cache: Fix lock misorder in fscache_write_op()\n\nFS-Cache has two structs internally for keeping track of the internal state of\na cached file: the fscache_cookie struct, which represents the netfs\u0027s state,\nand fscache_object struct, which represents the cache\u0027s state.  Each has a\npointer that points to the other (when both are in existence), and each has a\nspinlock for pointer maintenance.\n\nSince netfs operations approach these structures from the cookie side, they get\nthe cookie lock first, then the object lock.  Cache operations, on the other\nhand, approach from the object side, and get the object lock first.  It is not\nthen permitted for a cache operation to get the cookie lock whilst it is\nholding the object lock lest deadlock occur; instead, it must do one of two\nthings:\n\n (1) increment the cookie usage counter, drop the object lock and then get both\n     locks in order, or\n\n (2) simply hold the object lock as certain parts of the cookie may not be\n     altered whilst the object lock is held.\n\nIt is also not permitted to follow either pointer without holding the lock at\nthe end you start with.  To break the pointers between the cookie and the\nobject, both locks must be held.\n\nfscache_write_op(), however, violates the locking rules: It attempts to get the\ncookie lock without (a) checking that the cookie pointer is a valid pointer,\nand (b) holding the object lock to protect the cookie pointer whilst it follows\nit.  This is so that it can access the pending page store tree without\ninterference from __fscache_write_page().\n\nThis is fixed by splitting the cookie lock, such that the page store tracking\ntree is protected by its own lock, and checking that the cookie pointer is\nnon-NULL before we attempt to follow it whilst holding the object lock.\n\nThe new lock is subordinate to both the cookie lock and the object lock, and so\nshould be taken after those.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "6897e3df8fc37bd4a58bbcdef8306da7fc175584",
      "tree": "e826cd96f0395775d4fea113dc283ae0282f0384",
      "parents": [
        "5753c441889253e4323eee85f791a1d64cf08196"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:22 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:22 2009 +0000"
      },
      "message": "FS-Cache: The object-available state can\u0027t rely on the cookie to be available\n\nThe object-available state in the object processing state machine (as\nprocessed by fscache_object_available()) can\u0027t rely on the cookie to be\navailable because the FSCACHE_COOKIE_CREATING bit may have been cleared by\nfscache_obtained_object() prior to the object being put into the\nFSCACHE_OBJECT_AVAILABLE state.\n\nClearing the FSCACHE_COOKIE_CREATING bit on a cookie permits\n__fscache_relinquish_cookie() to proceed and detach the cookie from the\nobject.\n\nTo deal with this, we don\u0027t dereference object-\u003ecookie in\nfscache_object_available() if the object has already been detached.\n\nIn addition, a couple of assertions are added into fscache_drop_object() to\nmake sure the object is unbound from the cookie before it gets there.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "5753c441889253e4323eee85f791a1d64cf08196",
      "tree": "55a0de053d0593d96e99710f978277df668412d1",
      "parents": [
        "b34df792b4e9e311db47fad27949095d0629c197"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:19 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:19 2009 +0000"
      },
      "message": "FS-Cache: Permit cache retrieval ops to be interrupted in the initial wait phase\n\nPermit the operations to retrieve data from the cache or to allocate space in\nthe cache for future writes to be interrupted whilst they\u0027re waiting for\npermission for the operation to proceed.  Typically this wait occurs whilst the\ncache object is being looked up on disk in the background.\n\nIf an interruption occurs, and the operation has not yet been given the\ngo-ahead to run, the operation is dequeued and cancelled, and control returns\nto the read operation of the netfs routine with none of the requested pages\nhaving been read or in any way marked as known by the cache.\n\nThis means that the initial wait is done interruptibly rather than\nuninterruptibly.\n\nIn addition, extra stats values are made available to show the number of ops\ncancelled and the number of cache space allocations interrupted.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "b34df792b4e9e311db47fad27949095d0629c197",
      "tree": "c0d513580d5d714066666993224970916e1f9358",
      "parents": [
        "7e311a207d596b9273d811149d6e3e14f05ac4c0"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:14 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:14 2009 +0000"
      },
      "message": "FS-Cache: Use radix tree preload correctly in tracking of pages to be stored\n\n__fscache_write_page() attempts to load the radix tree preallocation pool for\nthe CPU it is on before calling radix_tree_insert(), as the insertion must be\ndone inside a pair of spinlocks.\n\nUse of the preallocation pool, however, is contingent on the radix tree being\ninitialised without __GFP_WAIT specified.  __fscache_acquire_cookie() was\npassing GFP_NOFS to INIT_RADIX_TREE() - but that includes __GFP_WAIT.\n\nThe solution is to AND out __GFP_WAIT.\n\nAdditionally, the banner comment to radix_tree_preload() is altered to make\nnote of this prerequisite.  Possibly there should be a WARN_ON() too.\n\nWithout this fix, I have seen the following recursive deadlock caused by\nradix_tree_insert() attempting to allocate memory inside the spinlocked\nregion, which resulted in FS-Cache being called back into to release memory -\nwhich required the spinlock already held.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible recursive locking detected ]\n2.6.32-rc6-cachefs #24\n---------------------------------------------\nnfsiod/7916 is trying to acquire lock:\n (\u0026cookie-\u003elock){+.+.-.}, at: [\u003cffffffffa0076872\u003e] __fscache_uncache_page+0xdb/0x160 [fscache]\n\nbut task is already holding lock:\n (\u0026cookie-\u003elock){+.+.-.}, at: [\u003cffffffffa0076acc\u003e] __fscache_write_page+0x15c/0x3f3 [fscache]\n\nother info that might help us debug this:\n5 locks held by nfsiod/7916:\n #0:  (nfsiod){+.+.+.}, at: [\u003cffffffff81048290\u003e] worker_thread+0x19a/0x2e2\n #1:  (\u0026task-\u003eu.tk_work#2){+.+.+.}, at: [\u003cffffffff81048290\u003e] worker_thread+0x19a/0x2e2\n #2:  (\u0026cookie-\u003elock){+.+.-.}, at: [\u003cffffffffa0076acc\u003e] __fscache_write_page+0x15c/0x3f3 [fscache]\n #3:  (\u0026object-\u003elock#2){+.+.-.}, at: [\u003cffffffffa0076b07\u003e] __fscache_write_page+0x197/0x3f3 [fscache]\n #4:  (\u0026cookie-\u003estores_lock){+.+...}, at: [\u003cffffffffa0076b0f\u003e] __fscache_write_page+0x19f/0x3f3 [fscache]\n\nstack backtrace:\nPid: 7916, comm: nfsiod Not tainted 2.6.32-rc6-cachefs #24\nCall Trace:\n [\u003cffffffff8105ac7f\u003e] __lock_acquire+0x1649/0x16e3\n [\u003cffffffff81059ded\u003e] ? __lock_acquire+0x7b7/0x16e3\n [\u003cffffffff8100e27d\u003e] ? dump_trace+0x248/0x257\n [\u003cffffffff8105ad70\u003e] lock_acquire+0x57/0x6d\n [\u003cffffffffa0076872\u003e] ? __fscache_uncache_page+0xdb/0x160 [fscache]\n [\u003cffffffff8135467c\u003e] _spin_lock+0x2c/0x3b\n [\u003cffffffffa0076872\u003e] ? __fscache_uncache_page+0xdb/0x160 [fscache]\n [\u003cffffffffa0076872\u003e] __fscache_uncache_page+0xdb/0x160 [fscache]\n [\u003cffffffffa0077eb7\u003e] ? __fscache_check_page_write+0x0/0x71 [fscache]\n [\u003cffffffffa00b4755\u003e] nfs_fscache_release_page+0x86/0xc4 [nfs]\n [\u003cffffffffa00907f0\u003e] nfs_release_page+0x3c/0x41 [nfs]\n [\u003cffffffff81087ffb\u003e] try_to_release_page+0x32/0x3b\n [\u003cffffffff81092c2b\u003e] shrink_page_list+0x316/0x4ac\n [\u003cffffffff81058a9b\u003e] ? mark_held_locks+0x52/0x70\n [\u003cffffffff8135451b\u003e] ? _spin_unlock_irq+0x2b/0x31\n [\u003cffffffff81093153\u003e] shrink_inactive_list+0x392/0x67c\n [\u003cffffffff81058a9b\u003e] ? mark_held_locks+0x52/0x70\n [\u003cffffffff810934ca\u003e] shrink_list+0x8d/0x8f\n [\u003cffffffff81093744\u003e] shrink_zone+0x278/0x33c\n [\u003cffffffff81052c70\u003e] ? ktime_get_ts+0xad/0xba\n [\u003cffffffff8109453b\u003e] try_to_free_pages+0x22e/0x392\n [\u003cffffffff8109184c\u003e] ? isolate_pages_global+0x0/0x212\n [\u003cffffffff8108e16b\u003e] __alloc_pages_nodemask+0x3dc/0x5cf\n [\u003cffffffff810ae24a\u003e] cache_alloc_refill+0x34d/0x6c1\n [\u003cffffffff811bcf74\u003e] ? radix_tree_node_alloc+0x52/0x5c\n [\u003cffffffff810ae929\u003e] kmem_cache_alloc+0xb2/0x118\n [\u003cffffffff811bcf74\u003e] radix_tree_node_alloc+0x52/0x5c\n [\u003cffffffff811bcfd5\u003e] radix_tree_insert+0x57/0x19c\n [\u003cffffffffa0076b53\u003e] __fscache_write_page+0x1e3/0x3f3 [fscache]\n [\u003cffffffffa00b4248\u003e] __nfs_readpage_to_fscache+0x58/0x11e [nfs]\n [\u003cffffffffa009bb77\u003e] nfs_readpage_release+0x34/0x9b [nfs]\n [\u003cffffffffa009c0d9\u003e] nfs_readpage_release_full+0x32/0x4b [nfs]\n [\u003cffffffffa0006cff\u003e] rpc_release_calldata+0x12/0x14 [sunrpc]\n [\u003cffffffffa0006e2d\u003e] rpc_free_task+0x59/0x61 [sunrpc]\n [\u003cffffffffa0006f03\u003e] rpc_async_release+0x10/0x12 [sunrpc]\n [\u003cffffffff810482e5\u003e] worker_thread+0x1ef/0x2e2\n [\u003cffffffff81048290\u003e] ? worker_thread+0x19a/0x2e2\n [\u003cffffffff81352433\u003e] ? thread_return+0x3e/0x101\n [\u003cffffffffa0006ef3\u003e] ? rpc_async_release+0x0/0x12 [sunrpc]\n [\u003cffffffff8104bff5\u003e] ? autoremove_wake_function+0x0/0x34\n [\u003cffffffff81058d25\u003e] ? trace_hardirqs_on+0xd/0xf\n [\u003cffffffff810480f6\u003e] ? worker_thread+0x0/0x2e2\n [\u003cffffffff8104bd21\u003e] kthread+0x7a/0x82\n [\u003cffffffff8100beda\u003e] child_rip+0xa/0x20\n [\u003cffffffff8100b87c\u003e] ? restore_args+0x0/0x30\n [\u003cffffffff8104c2b9\u003e] ? add_wait_queue+0x15/0x44\n [\u003cffffffff8104bca7\u003e] ? kthread+0x0/0x82\n [\u003cffffffff8100bed0\u003e] ? child_rip+0x0/0x20\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "7e311a207d596b9273d811149d6e3e14f05ac4c0",
      "tree": "96c766e56e73df02a430bc0df72066413838fed0",
      "parents": [
        "52bd75fdb135d6133d878ae60c6e7e3f4ebc1cfc"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:11 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:11 2009 +0000"
      },
      "message": "FS-Cache: Clear netfs pointers in cookie after detaching object, not before\n\nClear the pointers from the fscache_cookie struct to netfs private data after\nclearing the pointer to the cookie from the fscache_object struct and\nreleasing the object lock, rather than before.\n\nThis allows the netfs private data pointers to be relied on simply by holding\nthe object lock, rather than having to hold the cookie lock.  This is makes\nthings simpler as the cookie lock has to be taken before the object lock, but\nsometimes the object pointer is all that the code has.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "52bd75fdb135d6133d878ae60c6e7e3f4ebc1cfc",
      "tree": "4fad4fa37ce533c520a4575e5b7df90e19c6a666",
      "parents": [
        "4fbf4291aa15926cd4fdca0ffe9122e89d0459db"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:08 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:08 2009 +0000"
      },
      "message": "FS-Cache: Add counters for entry/exit to/from cache operation functions\n\nCount entries to and exits from cache operation table functions.  Maintain\nthese as a single counter that\u0027s added to or removed from as appropriate.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "4fbf4291aa15926cd4fdca0ffe9122e89d0459db",
      "tree": "ec2195c39ef8117acea598af4a5c20c77f67aa0b",
      "parents": [
        "440f0affe247e9990c8f8778f1861da4fd7d5e50"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:04 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:04 2009 +0000"
      },
      "message": "FS-Cache: Allow the current state of all objects to be dumped\n\nAllow the current state of all fscache objects to be dumped by doing:\n\n\tcat /proc/fs/fscache/objects\n\nBy default, all objects and all fields will be shown.  This can be restricted\nby adding a suitable key to one of the caller\u0027s keyrings (such as the session\nkeyring):\n\n\tkeyctl add user fscache:objlist \"\u003crestrictions\u003e\" @s\n\nThe \u003crestrictions\u003e are:\n\n\tK\tShow hexdump of object key (don\u0027t show if not given)\n\tA\tShow hexdump of object aux data (don\u0027t show if not given)\n\nAnd paired restrictions:\n\n\tC\tShow objects that have a cookie\n\tc\tShow objects that don\u0027t have a cookie\n\tB\tShow objects that are busy\n\tb\tShow objects that aren\u0027t busy\n\tW\tShow objects that have pending writes\n\tw\tShow objects that don\u0027t have pending writes\n\tR\tShow objects that have outstanding reads\n\tr\tShow objects that don\u0027t have outstanding reads\n\tS\tShow objects that have slow work queued\n\ts\tShow objects that don\u0027t have slow work queued\n\nIf neither side of a restriction pair is given, then both are implied.  For\nexample:\n\n\tkeyctl add user fscache:objlist KB @s\n\nshows objects that are busy, and lists their object keys, but does not dump\ntheir auxiliary data.  It also implies \"CcWwRrSs\", but as \u0027B\u0027 is given, \u0027b\u0027 is\nnot implied.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "440f0affe247e9990c8f8778f1861da4fd7d5e50",
      "tree": "0012732ac8af0245005403d9a3b0a2b1209edf32",
      "parents": [
        "3bde31a4ac225cb5805be02eff6eaaf7e0766ccd"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:01 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:01 2009 +0000"
      },
      "message": "FS-Cache: Annotate slow-work runqueue proc lines for FS-Cache work items\n\nAnnotate slow-work runqueue proc lines for FS-Cache work items.  Objects\ninclude the object ID and the state.  Operations include the object ID, the\noperation ID and the operation type and state.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "3d7a641e544e428191667e8b1f83f96fa46dbd65",
      "tree": "172aa672eca96b94f5531885b82abb82b43c7d8a",
      "parents": [
        "66b00a7c93ec782d118d2c03bd599cfd041e80a1"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:23 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:23 2009 +0000"
      },
      "message": "SLOW_WORK: Wait for outstanding work items belonging to a module to clear\n\nWait for outstanding slow work items belonging to a module to clear when\nunregistering that module as a user of the facility.  This prevents the put_ref\ncode of a work item from being taken away before it returns.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "978b4053aefd422713f289f2a315ce2acba62018",
      "tree": "3cd4ce678526885c81264568220549f1d659875e",
      "parents": [
        "9ebd4eba761b624a6a6c9189335adeddcb1fa0e0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 17 14:06:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 17:40:33 2009 -0800"
      },
      "message": "fcntl: rename F_OWNER_GID to F_OWNER_PGRP\n\nThis is for consistency with various ioctl() operations that include the\nsuffix \"PGRP\" in their names, and also for consistency with PRIO_PGRP,\nused with setpriority() and getpriority().  Also, using PGRP instead of\nGID avoids confusion with the common abbreviation of \"group ID\".\n\nI\u0027m fine with anything that makes it more consistent, and if PGRP is what\nis the predominant abbreviation then I see no need to further confuse\nmatters by adding a third one.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ebd4eba761b624a6a6c9189335adeddcb1fa0e0",
      "tree": "8b5b5fc3514df3edf8bf6436636bf813c1f51e8c",
      "parents": [
        "6ad696d2cf535772dff659298ec7e7260e344595"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Tue Nov 17 14:06:23 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 17:40:33 2009 -0800"
      },
      "message": "procfs: fix /proc/\u003cpid\u003e/stat stack pointer for kernel threads\n\nFix a small issue for the stack pointer in /proc/\u003cpid\u003e/stat.  In case of a\nkernel thread the value of the printed stack pointer should be 0.\n\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac50e950784cae1c26ad9e09ebd8f8c706131eb3",
      "tree": "69d6fd6b3c25c14296918e9656c7b7532bdbc059",
      "parents": [
        "5743695b0dd2c775b71d3d4541c243df3da964db",
        "6c06f072c2d797ddbb2270363de97c53ebbe0385"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 09:42:35 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 09:42:35 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: copy li_lsn before dropping AIL lock\n  XFS bug in log recover with quota (bugzilla id 855)\n"
    },
    {
      "commit": "8a1eaa6a5697c4554ecacbd021c668f51318c09e",
      "tree": "2c840949d6a7b538228ded831753d659bf8cd628",
      "parents": [
        "a044a1b147a1c967e1a4b797c3e24c395f3d878a",
        "f534dc994397560343be4a3223b9bbaa8e739e1f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 09:20:38 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 09:20:38 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  cifs: clear server inode number flag while autodisabling\n"
    },
    {
      "commit": "82abc2a97a4a3c7635c40e6dff571816062ec506",
      "tree": "bdafbd1d1030a1d4717b52d07d8d0c3a37e8a693",
      "parents": [
        "cb20c28a9c41052c2d7220325dae60c16f417ded",
        "18dafac1a4c6c88867a50f9a82492976f20383d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 09:15:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 09:15:18 2009 -0800"
      },
      "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: deleted inconsistent comment in nilfs_load_inode_block()\n  nilfs2: deleted struct nilfs_dat_group_desc\n  nilfs2: fix lock order reversal in chcp operation\n"
    },
    {
      "commit": "6c06f072c2d797ddbb2270363de97c53ebbe0385",
      "tree": "03654fd6af68f5ba0004f9e7c2b6945504de53f3",
      "parents": [
        "8ec6dba2581754e375be66f7bedd708d856d8b30"
      ],
      "author": {
        "name": "Nathaniel W. Turner",
        "email": "nate@houseofnate.net",
        "time": "Mon Nov 16 19:51:48 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Nov 17 10:26:49 2009 -0600"
      },
      "message": "xfs: copy li_lsn before dropping AIL lock\n\nAccess to log items on the AIL is generally protected by m_ail_lock;\nthis is particularly needed when we\u0027re getting or setting the 64-bit\nli_lsn on a 32-bit platform.  This patch fixes a couple places where we\nwere accessing the log item after dropping the AIL lock on 32-bit\nmachines.\n\nThis can result in a partially-zeroed log-\u003el_tail_lsn if\nxfs_trans_ail_delete is racing with xfs_trans_ail_update, and in at\nleast some cases, this can leave the l_tail_lsn with a zero cycle\nnumber, which means xlog_space_left will think the log is full (unless\nCONFIG_XFS_DEBUG is set, in which case we\u0027ll trip an ASSERT), leading to\nprocesses stuck forever in xlog_grant_log_space.\n\nThanks to Adrian VanderSpek for first spotting the race potential and to\nDave Chinner for debug assistance.\n\nSigned-off-by: Nathaniel W. Turner \u003cnate@houseofnate.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "8ec6dba2581754e375be66f7bedd708d856d8b30",
      "tree": "d6cfdee839d6fb0b236a8d4272e607a9f5c4241c",
      "parents": [
        "a9366e61b03f55a6e009e687ad10e706714c9907"
      ],
      "author": {
        "name": "Jan Rekorajski",
        "email": "baggins@sith.mimuw.edu.pl",
        "time": "Mon Nov 16 11:57:02 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Nov 17 10:26:38 2009 -0600"
      },
      "message": "XFS bug in log recover with quota (bugzilla id 855)\n\nHi,\nI was hit by a bug in linux 2.6.31 when XFS is not able to recover the\nlog after a crash if fs was mounted with quotas. Gory details in XFS\nbugzilla: http://oss.sgi.com/bugzilla/show_bug.cgi?id\u003d855.\n\nIt looks like wrong struct is used in buffer length check, and the following\npatch should fix the problem.\n\nxfs_dqblk_t has a size of 104+32 bytes, while xfs_disk_dquot_t is 104 bytes\nlong, and this is exactly what I see in system logs - \"XFS: dquot too small\n(104) in xlog_recover_do_dquot_trans.\"\n\nSigned-off-by: Jan Rekorajski \u003cbaggins@sith.mimuw.edu.pl\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "f534dc994397560343be4a3223b9bbaa8e739e1f",
      "tree": "856780abc52bf9e90a706409dff65c12d620b1a0",
      "parents": [
        "799dd75b1a8380a967c929a4551895788c374b31"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Mon Nov 16 12:03:16 2009 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Nov 16 15:24:03 2009 +0000"
      },
      "message": "cifs: clear server inode number flag while autodisabling\n\nFix the commit ec06aedd44 that intended to turn off querying for server inode\nnumbers when server doesn\u0027t consistently support inode numbers. Presumably\nthe commit didn\u0027t actually clear the CIFS_MOUNT_SERVER_INUM flag, perhaps a\ntypo.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: Stable \u003cstable@kernel.org\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "18dafac1a4c6c88867a50f9a82492976f20383d6",
      "tree": "27800ccab2a98cccc903ed68348de1abc9b18a7d",
      "parents": [
        "1a7af63108f07637504300671a72432c34e10021"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Sun Nov 15 13:49:45 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 15 17:17:46 2009 +0900"
      },
      "message": "nilfs2: deleted inconsistent comment in nilfs_load_inode_block()\n\nThe comment says, \"Caller of this function MUST lock s_inode_lock\",\nhowever just above the comment, it locks s_inode_lock in the function.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "479c2553af9a176a0613894b9f1ec73425fd56a3",
      "tree": "3d306d6ee61bfbd6117f2a6e8ec54bffe472c9a2",
      "parents": [
        "156171c71a0dc4bce12b4408bb1591f8fe32dc1a"
      ],
      "author": {
        "name": "Petr Vandrovec",
        "email": "petr@vandrovec.name",
        "time": "Sat Nov 14 10:47:07 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 14 12:55:55 2009 -0800"
      },
      "message": "Fix memory corruption caused by nfsd readdir+\n\nCommit 8177e6d6dfb9cd03d9bdeb647c32161f8f58f686 (\"nfsd: clean up\nreaddirplus encoding\") introduced single character typo in nfs3 readdir+\nimplementation.  Unfortunately that typo has quite bad side effects:\nrandom memory corruption, followed (on my box) with immediate\nspontaneous box reboot.\n\nUsing \u0027p1\u0027 instead of \u0027p\u0027 fixes my Linux box rebooting whenever VMware\nESXi box tries to list contents of my home directory.\n\nSigned-off-by: Petr Vandrovec \u003cpetr@vandrovec.name\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7aee47b0bb9f93baecdbea205e878fe0f155f7da",
      "tree": "d2348e1ae5e7dabd0d4ec38479a7b7dba39d7332",
      "parents": [
        "7ab8f5244d6a8695688a91c8a3f6d3f40356ff97"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Fri Nov 06 14:50:22 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Nov 13 15:45:05 2009 -0800"
      },
      "message": "ocfs2: Trivial cleanup of jbd compatibility layer removal\n\nMainline commit 53ef99cad9878f02f27bb30bc304fc42af8bdd6e removed the\nJBD compatibility layer from OCFS2. This patch removes the last remaining\nremnants of that.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "c1ea985c710f41e97f1c72c29bbf367375370f0b",
      "tree": "7345a5041a7ea432dcdebe664b7e57066d968e9f",
      "parents": [
        "156171c71a0dc4bce12b4408bb1591f8fe32dc1a"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Nov 12 00:13:32 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 13 10:33:24 2009 +0900"
      },
      "message": "nilfs2: fix lock order reversal in chcp operation\n\nWill fix the following lock order reversal lockdep detected:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible circular locking dependency detected ]\n2.6.32-rc6 #7\n-------------------------------------------------------\nchcp/30157 is trying to acquire lock:\n (\u0026nilfs-\u003ens_mount_mutex){+.+.+.}, at: [\u003cfed7cfcc\u003e] nilfs_cpfile_change_cpmode+0x46/0x752 [nilfs2]\n\nbut task is already holding lock:\n (\u0026nilfs-\u003ens_segctor_sem){++++.+}, at: [\u003cfed7ca32\u003e] nilfs_transaction_begin+0xba/0x110 [nilfs2]\n\nwhich lock already depends on the new lock.\n\nthe existing dependency chain (in reverse order) is:\n\n-\u003e #2 (\u0026nilfs-\u003ens_segctor_sem){++++.+}:\n       [\u003cc105799c\u003e] __lock_acquire+0x109c/0x139d\n       [\u003cc1057d26\u003e] lock_acquire+0x89/0xa0\n       [\u003cc14151e2\u003e] down_read+0x31/0x45\n       [\u003cfed6d77b\u003e] nilfs_attach_checkpoint+0x8f/0x16b [nilfs2]\n       [\u003cfed6e393\u003e] nilfs_get_sb+0x3e7/0x653 [nilfs2]\n       [\u003cc10c0ccb\u003e] vfs_kern_mount+0x8b/0x124\n       [\u003cc10c0db2\u003e] do_kern_mount+0x37/0xc3\n       [\u003cc10d7517\u003e] do_mount+0x64d/0x69d\n       [\u003cc10d75cd\u003e] sys_mount+0x66/0x95\n       [\u003cc1002a14\u003e] sysenter_do_call+0x12/0x32\n\n-\u003e #1 (\u0026type-\u003es_umount_key#31/1){+.+.+.}:\n       [\u003cc105799c\u003e] __lock_acquire+0x109c/0x139d\n       [\u003cc1057d26\u003e] lock_acquire+0x89/0xa0\n       [\u003cc104c0f3\u003e] down_write_nested+0x34/0x52\n       [\u003cc10c08fe\u003e] sget+0x22e/0x389\n       [\u003cfed6e133\u003e] nilfs_get_sb+0x187/0x653 [nilfs2]\n       [\u003cc10c0ccb\u003e] vfs_kern_mount+0x8b/0x124\n       [\u003cc10c0db2\u003e] do_kern_mount+0x37/0xc3\n       [\u003cc10d7517\u003e] do_mount+0x64d/0x69d\n       [\u003cc10d75cd\u003e] sys_mount+0x66/0x95\n       [\u003cc1002a14\u003e] sysenter_do_call+0x12/0x32\n\n-\u003e #0 (\u0026nilfs-\u003ens_mount_mutex){+.+.+.}:\n       [\u003cc1057727\u003e] __lock_acquire+0xe27/0x139d\n       [\u003cc1057d26\u003e] lock_acquire+0x89/0xa0\n       [\u003cc1414d63\u003e] mutex_lock_nested+0x41/0x23e\n       [\u003cfed7cfcc\u003e] nilfs_cpfile_change_cpmode+0x46/0x752 [nilfs2]\n       [\u003cfed801b2\u003e] nilfs_ioctl+0x11a/0x7da [nilfs2]\n       [\u003cc10cca12\u003e] vfs_ioctl+0x27/0x6e\n       [\u003cc10ccf93\u003e] do_vfs_ioctl+0x491/0x4db\n       [\u003cc10cd022\u003e] sys_ioctl+0x45/0x5f\n       [\u003cc1002a14\u003e] sysenter_do_call+0x12/0x32\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "e04b5ef8b49db87d01a9b3a47fe41a918a0c0ff5",
      "tree": "f643a43591e5d4593e79bafb47b8d3db70346af2",
      "parents": [
        "276b282e904f690dc930f9bc946110651f297669"
      ],
      "author": {
        "name": "Mike Hommey",
        "email": "mh@glandium.org",
        "time": "Wed Nov 11 14:26:55 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 12 07:26:01 2009 -0800"
      },
      "message": "__generic_block_fiemap(): fix for files bigger than 4GB\n\nBecause of an integer overflow on start_blk, various kind of wrong results\nwould be returned by the generic_block_fiemap() handler, such as no\nextents when there is a 4GB+ hole at the beginning of the file, or wrong\nfe_logical when an extent starts after the first 4GB.\n\nSigned-off-by: Mike Hommey \u003cmh@glandium.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Eric Sandeen \u003csandeen@sgi.com\u003e\nCc: Josef Bacik \u003cjbacik@redhat.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc63cf237078c86214abcb2ee9926d8ad289da9b",
      "tree": "3af8571390aec334b7f47c08ba0cff0a72d6fbb3",
      "parents": [
        "93f40e6f1493ae0c1e04760b221c125ef5e47205"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Wed Nov 11 14:26:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 12 07:25:58 2009 -0800"
      },
      "message": "exec: setup_arg_pages() fails to return errors\n\nIn setup_arg_pages we work hard to assign a value to ret, but on exit we\nalways return 0.\n\nAlso remove a now duplicated exit path and branch to out_unlock instead.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7779d7bed950a7fb1af4f540c2f82a6b81b65901",
      "tree": "ca8e8d16a3f50d670f95b3b51c1aaad81a0e05f8",
      "parents": [
        "29f12ca32122db98481150be09d35bd72b68045e"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Nov 11 14:26:34 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 12 07:25:57 2009 -0800"
      },
      "message": "fs: add missing compat_ptr handling for FS_IOC_RESVSP ioctl\n\nFor FS_IOC_RESVSP and FS_IOC_RESVSP64 compat_sys_ioctl() uses its\narg argument as a pointer to userspace. However it is missing a\na call to compat_ptr() which will do a proper pointer conversion.\n\nThis was introduced with 3e63cbb1 \"fs: Add new pre-allocation ioctls\nto vfs for compatibility with legacy xfs ioctls\".\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Ankit Jain \u003cme@ankitjain.org\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Arnd Bergmann \u003carndbergmann@googlemail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.31.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29f12ca32122db98481150be09d35bd72b68045e",
      "tree": "df2bbe3d67451a6c51a5056a40cd8dfa09dd5b29",
      "parents": [
        "15f3c476589c8778b0c10f1fb5160f9107c69556"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Wed Nov 11 14:26:32 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 12 07:25:57 2009 -0800"
      },
      "message": "pidns: fix a leak in /proc dentries and inodes with pid namespaces.\n\nDaniel Lezcano reported a leak in \u0027struct pid\u0027 and \u0027struct pid_namespace\u0027\nthat is discussed in:\n\n\thttp://lkml.org/lkml/2009/10/2/159.\n\nTo summarize the thread, when container-init is terminated, it sets the\nPF_EXITING flag, zaps other processes in the container and waits to reap\nthem.  As a part of reaping, the container-init should flush any /proc\ndentries associated with the processes.  But because the container-init is\nitself exiting and the following PF_EXITING check, the dentries are not\nflushed, resulting in leak in /proc inodes and dentries.\n\nThis fix reverts the commit 7766755a2f249e7e0 (\"Fix /proc dcache deadlock\nin do_exit\") which introduced the check for PF_EXITING.  At the time of\nthe commit, shrink_dcache_parent() flushed dentries from other filesystems\nalso and could have caused a deadlock which the commit fixed.  But as\npointed out by Eric Biederman, after commit 0feae5c47aabdde59,\nshrink_dcache_parent() no longer affects other filesystems.  So reverting\nthe commit is now safe.\n\nAs pointed out by Jan Kara, the leak is not as critical since the\nunclaimed space will be reclaimed under memory pressure or by:\n\n\techo 3 \u003e /proc/sys/vm/drop_caches\n\nBut since this check is no longer required, its best to remove it.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nReported-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nAcked-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Jan Kara \u003cjack@ucw.cz\u003e\nCc: Andrea Arcangeli \u003candrea@cpushare.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff5e4b51a397568c6a2901903c35a4bfaaf752a4",
      "tree": "ce0561bb54b4bd433cd8797e31817d25235a7c13",
      "parents": [
        "aa021baa3295fa6e3f367d80f8955dd5176656eb"
      ],
      "author": {
        "name": "Stefan Schmidt",
        "email": "stefan@datenfreihafen.org",
        "time": "Thu Nov 12 09:53:50 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Nov 12 10:24:12 2009 +0100"
      },
      "message": "fs/jbd: Export log_start_commit to fix ext3 build.\n\nThis fixes:\nERROR: \"log_start_commit\" [fs/ext3/ext3.ko] undefined!\n\nSigned-off-by: Stefan Schmidt \u003cstefan@datenfreihafen.org\u003e\n"
    },
    {
      "commit": "aa021baa3295fa6e3f367d80f8955dd5176656eb",
      "tree": "13da8275b1957399bc4fa19ec7cc313d48694e31",
      "parents": [
        "404291ac9e72d118fcadeb939a69b2caa0a0e9ca",
        "a6dbd429d8dd3382bbd9594b8d2ec74843a260d9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 11 13:38:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 11 13:38:59 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: fix panic when trying to destroy a newly allocated\n  Btrfs: allow more metadata chunk preallocation\n  Btrfs: fallback on uncompressed io if compressed io fails\n  Btrfs: find ideal block group for caching\n  Btrfs: avoid null deref in unpin_extent_cache()\n  Btrfs: skip btrfs_release_path in btrfs_update_root and btrfs_del_root\n  Btrfs: fix some metadata enospc issues\n  Btrfs: fix how we set max_size for free space clusters\n  Btrfs: cleanup transaction starting and fix journal_info usage\n  Btrfs: fix data allocation hint start\n"
    },
    {
      "commit": "a6dbd429d8dd3382bbd9594b8d2ec74843a260d9",
      "tree": "9cc6426da748996e4e1cc61d446052838703434f",
      "parents": [
        "33b258086441dd07e00133c79fcd8cbc6a76d737"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Nov 11 15:53:34 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 11 15:53:34 2009 -0500"
      },
      "message": "Btrfs: fix panic when trying to destroy a newly allocated\n\nThere is a problem where iget5_locked will look for an inode, not find it, and\nthen subsequently try to allocate it.  Another CPU will have raced in and\nallocated the inode instead, so when iget5_locked gets the inode spin lock again\nand does a search, it finds the new inode.  So it goes ahead and calls\ndestroy_inode on the inode it just allocated.  The problem is we don\u0027t set\nBTRFS_I(inode)-\u003eroot until the new inode is completely initialized.  This patch\nmakes us set root to NULL when alloc\u0027ing a new inode, so when we get to\nbtrfs_destroy_inode and we see that root is NULL we can just free up the memory\nand continue on.  This fixes the panic\n\nhttp://www.kerneloops.org/submitresult.php?number\u003d812690\n\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fd801452a30927ec0dff84e541191e611c1afd0c",
      "tree": "3c83a39d2870694729a84db9fa4d028ee496b3a2",
      "parents": [
        "79a8f1b1a481cc28701275de916ccea954c6743f",
        "7b02bec07efe1d6c7d48c786e0c1a38d28fe7245"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 11 11:52:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 11 11:52:22 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:\n  JBD/JBD2: free j_wbuf if journal init fails.\n  ext3: Wait for proper transaction commit on fsync\n  ext3: retry failed direct IO allocations\n"
    },
    {
      "commit": "16fe4101ae265e908615702806ee3b28ab1c8370",
      "tree": "da2a562d5a3566a659c33be2d2744478fc994d7c",
      "parents": [
        "7bbf8ef6902d1e0102a91d22c035622443fd20ca",
        "1e424a348303694fabdf8b1efbfcb1a892dfa63a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 11 11:28:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 11 11:28:11 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: partial revert to fix double brelse WARNING()\n  ext4: Fix return value of ext4_split_unwritten_extents() to fix direct I/O\n  ext4: code clean up for dio fallocate handling\n  ext4: skip conversion of uninit extents after direct IO if there isn\u0027t any\n  ext4: fix ext4_ext_direct_IO()\u0027s return value after converting uninit extents\n  ext4: discard preallocation when restarting a transaction during truncate\n"
    },
    {
      "commit": "33b258086441dd07e00133c79fcd8cbc6a76d737",
      "tree": "beab74a12b7650576dbe2f97301f0905699d4292",
      "parents": [
        "f5a84ee3cdd88d96b7bcede10af58598ad8d52a7"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 11 10:16:57 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 11 14:20:20 2009 -0500"
      },
      "message": "Btrfs: allow more metadata chunk preallocation\n\nOn an FS where all of the space has not been allocated into chunks yet,\nthe enospc can return enospc just because the existing metadata chunks\nare full.\n\nWe get around this by allowing more metadata chunks to be allocated up\nto a certain limit, and finding the right limit is a little fuzzy.  The\nproblem is the reservations for delalloc would preallocate way too much\nof the FS as metadata.  We need to start saying no and just force some\nIO to happen.\n\nBut we also need to let a reasonable amount of the FS become metadata.\nThis bumps the hard limit up, later releases will have a better system.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f5a84ee3cdd88d96b7bcede10af58598ad8d52a7",
      "tree": "5f69342df0c457aca31176234a801bf3607978c5",
      "parents": [
        "ccf0e72537a9f68611ca575121afd08e2b4d0fb0"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Nov 10 21:23:48 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 11 14:20:20 2009 -0500"
      },
      "message": "Btrfs: fallback on uncompressed io if compressed io fails\n\nCurrently compressed IO does not deal with not having its entire extent able to\nbe allocated.  So if we have enough free space to allocate for the extent, but\nits not contiguous, it will fail spectacularly.  This patch fixes this by\nfalling back on uncompressed IO which lets us spread the delalloc extent across\nmultiple extents.  I tested this by making us randomly think the reservation had\nfailed to make it fallback on the uncompressed io way and it seemed to work\nfine.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ccf0e72537a9f68611ca575121afd08e2b4d0fb0",
      "tree": "d2fd54693847b6ed1307ed1eb5d3f87b95e31538",
      "parents": [
        "4eb3991c5def39bcf553c14ebe2618fcb47b627f"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Nov 10 21:23:48 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 11 14:20:19 2009 -0500"
      },
      "message": "Btrfs: find ideal block group for caching\n\nThis patch changes a few things.  Hopefully the comments are helpfull, but\nI\u0027ll try and be as verbose here.\n\nProblem:\n\nMy fedora box was taking 1 minute and 21 seconds to boot with btrfs as root.\nPart of this problem was we pick the first block group we can find and start\ncaching it, even if it may not have enough free space.  The other problem is\nwe only search for cached block groups the first time around, which we won\u0027t\nfind any cached block groups because this is a newly mounted fs, so we end up\ncaching several block groups during bootup, which with alot of fragmentation\ntakes around 30-45 seconds to complete, which bogs down the system.  So\n\nSolution:\n\n1) Don\u0027t cache block groups willy-nilly at first.  Instead try and figure out\nwhich block group has the most free, and therefore will take the least amount\nof time to cache.\n\n2) Don\u0027t be so picky about cached block groups.  The other problem is once\nwe\u0027ve filled up a cluster, if the block group isn\u0027t finished caching the next\ntime we try and do the allocation we\u0027ll completely ignore the cluster and\nstart searching from the beginning of the space, which makes us cache more\nblock groups, which slows us down even more.  So instead of skipping block\ngroups that are not finished caching when we have a hint, only skip the block\ngroup if it hasn\u0027t started caching yet.\n\nThere is one other tweak in here.  Before if we allocated a chunk and still\ncouldn\u0027t find new space, we\u0027d end up switching the space info to force another\nchunk allocation.  This could make us end up with way too many chunks, so keep\ntrack of this particular case.\n\nWith this patch and my previous cluster fixes my fedora box now boots in 43\nseconds, and according to the bootchart is not held up by our block group\ncaching at all.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4eb3991c5def39bcf553c14ebe2618fcb47b627f",
      "tree": "9c35f532bd29e68014cc16dc6e528a8cca5cfe34",
      "parents": [
        "df66916e71231e9f2377cac9c5c1e2d190f9a427"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Tue Nov 10 09:01:43 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 11 14:20:18 2009 -0500"
      },
      "message": "Btrfs: avoid null deref in unpin_extent_cache()\n\nI re-orderred the checks to avoid dereferencing \"em\" if it was null.\n\nFound by smatch static checker.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "df66916e71231e9f2377cac9c5c1e2d190f9a427",
      "tree": "9668d3ca20bf6c0b4187f272d85aa026f0a06121",
      "parents": [
        "5df6a9f606bf2ee25ab8031bff124ed883b823be"
      ],
      "author": {
        "name": "Li Dongyang",
        "email": "jerry87905@gmail.com",
        "time": "Fri Nov 06 14:33:01 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 11 14:20:18 2009 -0500"
      },
      "message": "Btrfs: skip btrfs_release_path in btrfs_update_root and btrfs_del_root\n\nWe don\u0027t need to call btrfs_release_path because btrfs_free_path will do\nthat for us.\n\nSigned-off-by: Li Dongyang \u003cJerry87905@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5df6a9f606bf2ee25ab8031bff124ed883b823be",
      "tree": "2492876b6ebd9c4c52a50de1a431285fe3779889",
      "parents": [
        "01dea1efc23b511d3b58bb94da07ddb6d6db9895"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Nov 10 21:23:48 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 11 14:20:17 2009 -0500"
      },
      "message": "Btrfs: fix some metadata enospc issues\n\nWe weren\u0027t reserving metadata space for rename, rmdir and unlink, which could\ncause problems.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "01dea1efc23b511d3b58bb94da07ddb6d6db9895",
      "tree": "4112505e90ab22936f4de18e15197979dd176cdc",
      "parents": [
        "249ac1e55c642c670f47aacdc57629bbbf10a8db"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Nov 10 21:23:48 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 11 14:20:17 2009 -0500"
      },
      "message": "Btrfs: fix how we set max_size for free space clusters\n\nThis patch fixes a problem where max_size can be set to 0 even though we\nfilled the cluster properly.  We set max_size to 0 if we restart the cluster\nwindow, but if the new start entry is big enough to be our new cluster then we\ncould return with a max_size set to 0, which will mean the next time we try to\nallocate from this cluster it will fail.  So set max_extent to the entry\u0027s\nsize.  Tested this on my box and now we actually allocate from the cluster\nafter we fill it.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "249ac1e55c642c670f47aacdc57629bbbf10a8db",
      "tree": "b03fdf12ee409fb2b5d696f2644ac67a7a690778",
      "parents": [
        "6346c93988caa3048bf4d81f9ba3608a7a195aa2"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Nov 10 21:23:48 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 11 14:20:16 2009 -0500"
      },
      "message": "Btrfs: cleanup transaction starting and fix journal_info usage\n\nWe use journal_info to tell if we\u0027re in a nested transaction to make sure we\ndon\u0027t commit the transaction within a nested transaction.  We use another\nmethod to see if there are any outstanding ioctl trans handles, so if we\u0027re\nstarting one do not set current-\u003ejournal_info, since it will screw with other\nfilesystems.  This patch also cleans up the starting stuff so there aren\u0027t any\nmagic numbers.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6346c93988caa3048bf4d81f9ba3608a7a195aa2",
      "tree": "78e5fbc5fa6ed8c692db24dfff475e2b95413570",
      "parents": [
        "444528b3e614f7f2391488d9bca8e0b872db909b"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Nov 10 21:23:47 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 11 14:20:16 2009 -0500"
      },
      "message": "Btrfs: fix data allocation hint start\n\nSometimes our start allocation hint when we cow a file can be either\nEXTENT_HOLE or some other such place holder, which is not optimal.  So if we\nfind that our em-\u003eblock_start is one of these special values, check to see\nwhere the first block of the inode is stored, and use that as a hint.  If that\nblock is also a special value, just fallback on a hint of 0 and let the\nallocator figure out a good place to put the data.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7b02bec07efe1d6c7d48c786e0c1a38d28fe7245",
      "tree": "cb93e26c107052be83ba52a74652c44c3ba199da",
      "parents": [
        "fe8bc91c4c30122b357d197117705cfd4fabaf28"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Nov 10 17:13:22 2009 +0800"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Nov 11 15:24:14 2009 +0100"
      },
      "message": "JBD/JBD2: free j_wbuf if journal init fails.\n\nIf journal init fails, we need to free j_wbuf.\n\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "fe8bc91c4c30122b357d197117705cfd4fabaf28",
      "tree": "33e2895847d812204209444db4093af9a2c3623d",
      "parents": [
        "ea0174a7137c8ca9f130ca681f3a99c872da6778"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Oct 16 19:26:15 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Nov 11 15:22:49 2009 +0100"
      },
      "message": "ext3: Wait for proper transaction commit on fsync\n\nWe cannot rely on buffer dirty bits during fsync because pdflush can come\nbefore fsync is called and clear dirty bits without forcing a transaction\ncommit. What we do is that we track which transaction has last changed\nthe inode and which transaction last changed allocation and force it to\ndisk on fsync.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "ea0174a7137c8ca9f130ca681f3a99c872da6778",
      "tree": "9736ef15e0250810f204bfb8d6987bd71eeba111",
      "parents": [
        "799dd75b1a8380a967c929a4551895788c374b31"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Oct 12 21:34:27 2009 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Nov 11 15:22:49 2009 +0100"
      },
      "message": "ext3: retry failed direct IO allocations\n\nOn a 256M 4k block filesystem, doing this in a loop:\n\n    dd if\u003d/dev/zero of\u003dtest oflag\u003ddirect bs\u003d1M count\u003d64\n    rm -f test\n\neventually leads to spurious ENOSPC:\n\n    dd: writing `test\u0027: No space left on device\n\nAs with other block allocation callers, it looks like we need to\npotentially retry the allocations on the initial ENOSPC.\n\nA similar patch went into ext4 (commit\nfbbf69456619de5d251cb9f1df609069178c62d5)\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "96d25e532234bec1a1989e6e1baf702d43a78b0d",
      "tree": "c299127355fbf90ca0a4b400c88022e952f013af",
      "parents": [
        "799dd75b1a8380a967c929a4551895788c374b31"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 11 16:15:42 2009 +0900"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 11 16:15:42 2009 +0900"
      },
      "message": "NFSv4: Fix a cache validation bug which causes getcwd() to return ENOENT\n\nChangeset a65318bf3afc93ce49227e849d213799b072c5fd (NFSv4: Simplify some\ncache consistency post-op GETATTRs) incorrectly changed the getattr\nbitmap for readdir().\nThis causes the readdir() function to fail to return a\nfileid/inode number, which again exposed a bug in the NFS readdir code that\ncauses spurious ENOENT errors to appear in applications (see\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d14541).\n\nThe immediate band aid is to revert the incorrect bitmap change, but more\nlong term, we should change the NFS readdir code to cope with the\nfact that NFSv4 servers are not required to support fileids/inode numbers.\n\nReported-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b7b69c7e97bc0a6694e7052a200609fd48baafc2",
      "tree": "986d0b061111a6b06b5ddc18957e2b3d6886eb40",
      "parents": [
        "1ce55238e2dd46b978b098a85cb3d3ea494e4a93",
        "c083234f1592ef3fad3d8083663c5e4a357ec77c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 09 09:52:55 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 09 09:52:55 2009 -0800"
      },
      "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 missing cleanup of gc cache on error cases\n  nilfs2: fix kernel oops in error case of nilfs_ioctl_move_blocks\n"
    },
    {
      "commit": "1e424a348303694fabdf8b1efbfcb1a892dfa63a",
      "tree": "631c7f421ea162c370c5ee09aeccb8381c7a7274",
      "parents": [
        "ba230c3f6dc88ec008806adb27b12088486d508e"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Nov 08 15:45:44 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Nov 08 15:45:44 2009 -0500"
      },
      "message": "ext4: partial revert to fix double brelse WARNING()\n\nThis is a partial revert of commit 6487a9d (only the changes made to\nfs/ext4/namei.c), since it is causing the following brelse()\ndouble-free warning when running fsstress on a file system with 1k\nblocksize and we run into a block allocation failure while converting\na single-block directory to a multi-block hash-tree indexed directory.\n\nWARNING: at fs/buffer.c:1197 __brelse+0x2e/0x33()\nHardware name: \nVFS: brelse: Trying to free free buffer\nModules linked in:\nPid: 2226, comm: jbd2/sdd-8 Not tainted 2.6.32-rc6-00577-g0003f55 #101\nCall Trace:\n [\u003cc01587fb\u003e] warn_slowpath_common+0x65/0x95\n [\u003cc0158869\u003e] warn_slowpath_fmt+0x29/0x2c\n [\u003cc021168e\u003e] __brelse+0x2e/0x33\n [\u003cc0288a9f\u003e] jbd2_journal_refile_buffer+0x67/0x6c\n [\u003cc028a9ed\u003e] jbd2_journal_commit_transaction+0x319/0x14d8\n [\u003cc0164d73\u003e] ? try_to_del_timer_sync+0x58/0x60\n [\u003cc0175bcc\u003e] ? sched_clock_cpu+0x12a/0x13e\n [\u003cc017f6b4\u003e] ? trace_hardirqs_off+0xb/0xd\n [\u003cc0175c1f\u003e] ? cpu_clock+0x3f/0x5b\n [\u003cc017f6ec\u003e] ? lock_release_holdtime+0x36/0x137\n [\u003cc0664ad0\u003e] ? _spin_unlock_irqrestore+0x44/0x51\n [\u003cc0180af3\u003e] ? trace_hardirqs_on_caller+0x103/0x124\n [\u003cc0180b1f\u003e] ? trace_hardirqs_on+0xb/0xd\n [\u003cc0164d73\u003e] ? try_to_del_timer_sync+0x58/0x60\n [\u003cc0290d1c\u003e] kjournald2+0x11a/0x310\n [\u003cc017118e\u003e] ? autoremove_wake_function+0x0/0x38\n [\u003cc0290c02\u003e] ? kjournald2+0x0/0x310\n [\u003cc0170ee6\u003e] kthread+0x66/0x6b\n [\u003cc0170e80\u003e] ? kthread+0x0/0x6b\n [\u003cc01251b3\u003e] kernel_thread_helper+0x7/0x10\n---[ end trace 5579351b86af61e3 ]---\n\nCommit 6487a9d was an attempt some buffer head leaks in an ENOSPC\nerror path, but in some cases it actually results in an excess ENOSPC,\nas shown above.  Fixing this means cleaning up who is responsible for\nreleasing the buffer heads from the callee to the caller of\nadd_dirent_to_buf().\n\nSince that\u0027s a relatively complex change, and we\u0027re late in the rcX\ndevelopment cycle, I\u0027m reverting this now, and holding back a more\ncomplete fix until after 2.6.32 ships.  We\u0027ve lived with this\nbuffer_head leak on ENOSPC in ext3 and ext4 for a very long time; a\nfew more months won\u0027t kill us.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Curt Wohlgemuth \u003ccurtw@google.com\u003e\n"
    },
    {
      "commit": "c083234f1592ef3fad3d8083663c5e4a357ec77c",
      "tree": "8c90897b1fa11920a4edbf043aa59a5123eaa2cb",
      "parents": [
        "5399dd1fc8f5e812db931225ef5f67d89f3b1a56"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 08 12:09:24 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 08 19:04:25 2009 +0900"
      },
      "message": "nilfs2: fix missing cleanup of gc cache on error cases\n\nThis fixes an -rc1 regression brought by the commit:\n1cf58fa840472ec7df6bf2312885949ebb308853 (\"nilfs2: shorten freeze\nperiod due to GC in write operation v3\").\n\nAlthough the patch moved out a function call of\nnilfs_ioctl_move_blocks() to nilfs_ioctl_clean_segments() from\nnilfs_ioctl_prepare_clean_segments(), it didn\u0027t move corresponding\ncleanup job needed for the error case.\n\nThis will move the missing cleanup job to the destination function.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nAcked-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\n"
    },
    {
      "commit": "5399dd1fc8f5e812db931225ef5f67d89f3b1a56",
      "tree": "cb75ad2f91fb2ec6ad70f3c1a055090418fc643f",
      "parents": [
        "b419148e567728f6af0c3b01965c1cc141e3e13a"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Nov 07 18:45:16 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 08 19:01:35 2009 +0900"
      },
      "message": "nilfs2: fix kernel oops in error case of nilfs_ioctl_move_blocks\n\nThis fixes a kernel oops reported by Markus Trippelsdorf in the email\ntitled \"[NILFS users] kernel Oops while running nilfs_cleanerd\".\n\nThe oops was caused by a bug of error path in\nnilfs_ioctl_move_blocks() function, which was inlined in\nnilfs_ioctl_clean_segments().\n\nnilfs_ioctl_move_blocks checks duplication of blocks which will be\nmoved in garbage collection.  But, the check should have be done\nwithin nilfs_ioctl_move_inode_block() to prevent list corruption among\nbuffers storing the target blocks.\n\nTo fix the kernel oops, this moves forward the duplication check\nbefore the list insertion.\n\nI also tested this for stable trees [2.6.30, 2.6.31].\n\nReported-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: stable \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "f475f6775465283494346663f201ad04810d2e8a",
      "tree": "b5c054afa5509ee6957fb6a93d09999b9db975ab",
      "parents": [
        "ec06aedd44541129840ed52e6165afa3796a27bf"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Nov 06 14:18:49 2009 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Nov 06 22:06:14 2009 +0000"
      },
      "message": "cifs: don\u0027t use CIFSGetSrvInodeNumber in is_path_accessible\n\nBecause it\u0027s lighter weight, CIFS tries to use CIFSGetSrvInodeNumber to\nverify the accessibility of the root inode and then falls back to doing a\nfull QPathInfo if that fails with -EOPNOTSUPP. I have at least a report\nof a server that returns NT_STATUS_INTERNAL_ERROR rather than something\nthat translates to EOPNOTSUPP.\n\nRather than trying to be clever with that call, just have\nis_path_accessible do a normal QPathInfo. That call is widely\nsupported and it shouldn\u0027t increase the overhead significantly.\n\nCc: Stable \u003cstable@kernel.org\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "ec06aedd44541129840ed52e6165afa3796a27bf",
      "tree": "3099a49ef7aac9ea14a921559ba067b230e33948",
      "parents": [
        "7c9abfb884b8737f0afdc8a88bcea77526f0da87"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Nov 06 14:18:29 2009 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Nov 06 22:04:37 2009 +0000"
      },
      "message": "cifs: clean up handling when server doesn\u0027t consistently support inode numbers\n\nIt\u0027s possible that a server will return a valid FileID when we query the\nFILE_INTERNAL_INFO for the root inode, but then zeroed out inode numbers\nwhen we do a FindFile with an infolevel of\nSMB_FIND_FILE_ID_FULL_DIR_INFO.\n\nIn this situation turn off querying for server inode numbers, generate a\nwarning for the user and just generate an inode number using iunique.\nOnce we generate any inode number with iunique we can no longer use any\nserver inode numbers or we risk collisions, so ensure that we don\u0027t do\nthat in cifs_get_inode_info either.\n\nCc: Stable \u003cstable@kernel.org\u003e\nReported-by: Timothy Normand Miller \u003ctheosib@gmail.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "ba230c3f6dc88ec008806adb27b12088486d508e",
      "tree": "4cd81bc7425161f1103408ce210be9172a2ee6c3",
      "parents": [
        "4b70df181611012a3556f017b57dfcef7e1d279f"
      ],
      "author": {
        "name": "Mingming",
        "email": "cmm@us.ibm.com",
        "time": "Fri Nov 06 04:01:23 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Nov 06 04:01:23 2009 -0500"
      },
      "message": "ext4: Fix return value of ext4_split_unwritten_extents() to fix direct I/O\n\nTo prepare for a direct I/O write, we need to split the unwritten\nextents before submitting the I/O.  When no extents needed to be\nsplit, ext4_split_unwritten_extents() was incorrectly returning 0\ninstead of the size of uninitialized extents. This bug caused the\nwrong return value sent back to VFS code when it gets called from\nasync IO path, leading to an unnecessary fall back to buffered IO.\n\nThis bug also hid the fact that the check to see whether or not a\nsplit would be necessary was incorrect; we can only skip splitting the\nextent if the write completely covers the uninitialized extent.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e5a92362226e1685988bbf8d7ed50ab23453acc0",
      "tree": "8d061fd85d8ace4c76f28851bc9a73b846cd79ac",
      "parents": [
        "4397989fc91ed289909ecf307c2dc21cee0e7905",
        "5219f346b0ea2a2a8821f1e966b190788c285b0b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 05 13:23:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 05 13:23:29 2009 -0800"
      },
      "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: invalidate target of rename\n  fuse: fix kunmap in fuse_ioctl_copy_user\n  fuse: prevent fuse_put_request on invalid pointer\n"
    },
    {
      "commit": "1bbc9a66d0194449f32c2aa18be40db5744dbd85",
      "tree": "05c2efbd2cc8058ca1318fea2875880150b69d54",
      "parents": [
        "2c75910f1aa042be1dd769378d2611bf551721ac",
        "38634e6769920929385f1ffc8820dc3e893cc630"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 05 13:22:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 05 13:22:49 2009 -0800"
      },
      "message": "Merge branch \u0027merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\n* \u0027merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:\n  powerpc/kvm: Remove problematic BUILD_BUG_ON statement\n  powerpc/pci: Fix regression in powerpc MSI-X\n  powerpc: Avoid giving out RTC dates below EPOCH\n  powerpc/mm: Remove debug context clamping from nohash code\n  powerpc: Cleanup Kconfig selection of hugetlbfs support\n"
    },
    {
      "commit": "d4116f820496ae3af5225d09450edc7791df0045",
      "tree": "54205739d4e65788757882fdda5dbd9687d93966",
      "parents": [
        "608221fdf9a2170962295dcfbea53dc5c50d1a74",
        "4c3da2209b1261af9a948b7509a38904c8eee554"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 05 10:57:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 05 10:57:39 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6:\n  sysfs: Don\u0027t leak secdata when a sysfs_dirent is freed.\n"
    },
    {
      "commit": "411094acb70f171a111710cf32031c749ffdd28c",
      "tree": "c3e23af4b6a9ac242da85861d59268a8e8812114",
      "parents": [
        "8fcf4e5a572af520580b14abd9017760e6fcdada",
        "89240ba059ca468ae7a8346edf7f95082458c2fc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 05 10:54:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 05 10:54:08 2009 -0800"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, fs: Fix x86 procfs stack information for threads on 64-bit\n  x86: Add reboot quirk for 3 series Mac mini\n  x86: Fix printk message typo in mtrr cleanup code\n  dma-debug: Fix compile warning with PAE enabled\n  x86/amd-iommu: Un__init function required on shutdown\n  x86/amd-iommu: Workaround for erratum 63\n"
    },
    {
      "commit": "4c3da2209b1261af9a948b7509a38904c8eee554",
      "tree": "74e2f113f8a40885b0df4858a3ba19f4747086a1",
      "parents": [
        "91d3f9bacdb4950d2f79fe2ba296aa249f60d06c"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 04 02:50:06 2009 -0800"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Nov 05 08:19:18 2009 +1100"
      },
      "message": "sysfs: Don\u0027t leak secdata when a sysfs_dirent is freed.\n\nWhile refreshing my sysfs patches I noticed a leak in the secdata\nimplementation.  We don\u0027t free the secdata when we free the\nsysfs dirent.\n\nThis is a bug in 2.6.32-rc5 that we really should close.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "89240ba059ca468ae7a8346edf7f95082458c2fc",
      "tree": "a16b4ce794572d256f568e41fe9ccfc10c35ff39",
      "parents": [
        "1d87cff407ceddf0bc4e825949a4b1bf645418bd"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Tue Nov 03 10:22:40 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 04 13:25:03 2009 +0100"
      },
      "message": "x86, fs: Fix x86 procfs stack information for threads on 64-bit\n\nThis patch fixes two issues in the procfs stack information on\nx86-64 linux.\n\nThe 32 bit loader compat_do_execve did not store stack\nstart. (this was figured out by Alexey Dobriyan).\n\nThe stack information on a x64_64 kernel always shows 0 kbyte\nstack usage, because of a missing implementation of the KSTK_ESP\nmacro which always returned -1.\n\nThe new implementation now returns the right value.\n\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLKML-Reference: \u003c1257240160.4889.24.camel@wall-e\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5219f346b0ea2a2a8821f1e966b190788c285b0b",
      "tree": "61063605b09431b84a8dbbee81d1e4fc59712f48",
      "parents": [
        "0bd87182d3ab18a32a8e9175d3f68754c58e3432"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Nov 04 10:24:52 2009 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Nov 04 10:24:52 2009 +0100"
      },
      "message": "fuse: invalidate target of rename\n\nInvalidate the target\u0027s attributes, which may have changed (such as\nnlink, change time) so that they are refreshed on the next getattr().\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "0bd87182d3ab18a32a8e9175d3f68754c58e3432",
      "tree": "33ec19afd0954edc82b7d8d2dcee7b4e4f0785e3",
      "parents": [
        "f60311d5f7670d9539b424e4ed8b5c0872fc9e83"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 03 11:40:44 2009 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Nov 04 10:24:51 2009 +0100"
      },
      "message": "fuse: fix kunmap in fuse_ioctl_copy_user\n\nLooks like another victim of the confusing kmap() vs kmap_atomic() API\ndifferences.\n\nReported-by: Todor Gyumyushev \u003cyodor1@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "f60311d5f7670d9539b424e4ed8b5c0872fc9e83",
      "tree": "e4289854a25f4640308532726deceb7d6ac293ed",
      "parents": [
        "b419148e567728f6af0c3b01965c1cc141e3e13a"
      ],
      "author": {
        "name": "Anand V. Avati",
        "email": "avati@gluster.com",
        "time": "Thu Oct 22 06:24:52 2009 -0700"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Nov 04 10:24:50 2009 +0100"
      },
      "message": "fuse: prevent fuse_put_request on invalid pointer\n\nfuse_direct_io() has a loop where requests are allocated in each\niteration. if allocation fails, the loop is broken out and follows\ninto an unconditional fuse_put_request() on that invalid pointer.\n\nSigned-off-by: Anand V. Avati \u003cavati@gluster.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "51bb296b09a83ee1aae025778db38f9d2cc7bb1a",
      "tree": "739f445b953aa77e82a429fe3a939d0b4cb3d222",
      "parents": [
        "dc79d2f21a2dc19df26f0cb0b46be2d6241b627b",
        "4b27e1bb442e964903f8a3fa6bdf33a602dc0941"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 03 18:16:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 03 18:16:21 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  cfq-iosched: limit coop preemption\n  cfq-iosched: fix bad return value cfq_should_preempt()\n  backing-dev: bdi sb prune should be in the unregister path, not destroy\n  Fix bio_alloc() and bio_kmalloc() documentation\n  bio_put(): add bio_clone() to the list of functions in the comment\n"
    },
    {
      "commit": "4b70df181611012a3556f017b57dfcef7e1d279f",
      "tree": "95da7ccaea96227b597078c1c5f2a7571d959e99",
      "parents": [
        "5f5249507e4b5c4fc0f9c93f33d133d8c95f47e1"
      ],
      "author": {
        "name": "Mingming",
        "email": "cmm@us.ibm.com",
        "time": "Tue Nov 03 14:44:54 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Nov 03 14:44:54 2009 -0500"
      },
      "message": "ext4: code clean up for dio fallocate handling\n\nThe ext4_debug() call in ext4_end_io_dio() should be moved after the\ncheck to make sure that io_end is non-NULL.\n\nThe comment above ext4_get_block_dio_write() (\"Maximum number of\nblocks...\") is a duplicate; the original and correct comment is above\nthe #define DIO_MAX_BLOCKS up above.\n\nBased on review comments from Curt Wohlgemuth.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5f5249507e4b5c4fc0f9c93f33d133d8c95f47e1",
      "tree": "0b0a790f568c07298c3a4122572e84392c787648",
      "parents": [
        "109f55651954def97fa41ee71c464d268c512ab0"
      ],
      "author": {
        "name": "Mingming",
        "email": "cmm@us.ibm.com",
        "time": "Tue Nov 10 10:48:04 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Nov 10 10:48:04 2009 -0500"
      },
      "message": "ext4: skip conversion of uninit extents after direct IO if there isn\u0027t any\n\nAt the end of direct I/O operation, ext4_ext_direct_IO() always called\next4_convert_unwritten_extents(), regardless of whether there were any\nunwritten extents involved in the I/O or not.\n\nThis commit adds a state flag so that ext4_ext_direct_IO() only calls\next4_convert_unwritten_extents() when necessary.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "109f55651954def97fa41ee71c464d268c512ab0",
      "tree": "7c4aa2d8cb10c100bbd252e657ac410d30844bac",
      "parents": [
        "fa5d11133b07053270e18fa9c18560e66e79217e"
      ],
      "author": {
        "name": "Mingming",
        "email": "cmm@us.ibm.com",
        "time": "Tue Nov 10 10:48:08 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Nov 10 10:48:08 2009 -0500"
      },
      "message": "ext4: fix ext4_ext_direct_IO()\u0027s return value after converting uninit extents\n\nAfter a direct I/O request covering an uninitalized extent (i.e.,\ncreated using the fallocate system call) or a hole in a file, ext4\nwill convert the uninitialized extent so it is marked as initialized\nby calling ext4_convert_unwritten_extents().  This function returns\nzero on success.\n\nThis return value was getting returned by ext4_direct_IO(); however\nthe file system\u0027s direct_IO function is supposed to return the number\nof bytes read or written on a success.  By returning zero, it confused\nthe direct I/O code into falling back to buffered I/O unnecessarily.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "05b4358ad564d7a6a51b3717afe771d36711e9c4",
      "tree": "ad8473aadd4a8f8e25aa40bf1bef8f16f7490d83",
      "parents": [
        "aeda7f6343e6375a832e52ff5ed389c115023ca5"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 01:20:35 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Nov 03 12:32:03 2009 +0900"
      },
      "message": "nilfs2: add zero-fill for new btree node buffers\n\nAdds missing initialization of newly allocated b-tree node buffers.\nThis avoids garbage data to be mixed in b-tree node blocks.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "aeda7f6343e6375a832e52ff5ed389c115023ca5",
      "tree": "2543be730f7fff44e23fbe302108afa0093cc643",
      "parents": [
        "b1e19e5601277845b4f17ecd7c9ba04f73ee11aa"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Nov 02 15:08:13 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Nov 03 12:32:03 2009 +0900"
      },
      "message": "nilfs2: fix irregular checkpoint creation due to data flush\n\nWhen nilfs flushes out dirty data to reduce memory pressure, creation\nof checkpoints is wrongly postponed.  This bug causes irregular\ncheckpoint creation especially in small footprint systems.\n\nTo correct this issue, a timer for the checkpoint creation has to be\ncontinued if a log writer does not create a checkpoint.\n\nThis will do the correction.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "b1e19e5601277845b4f17ecd7c9ba04f73ee11aa",
      "tree": "bdc23c9fcc4bfe58787b63e9c739c0692b79dc4d",
      "parents": [
        "1836d95928a0f41ada0cbb2a6c4e46b027db9491"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Nov 03 00:25:53 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Nov 03 12:31:36 2009 +0900"
      },
      "message": "nilfs2: fix dirty page accounting leak causing hang at write\n\nBruno Prémont and Dunphy, Bill noticed me that NILFS will certainly\nhang on ARM-based targets.\n\nI found this was caused by an underflow of dirty pages counter.  A\nb-tree cache routine was marking page dirty without adjusting page\naccount information.\n\nThis fixes the dirty page accounting leak and resolves the hang on\narm-based targets.\n\nReported-by: Bruno Prémont \u003cbonbons@linux-vserver.org\u003e\nReported-by: Dunphy, Bill \u003cWDunphy@tandbergdata.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nTested-by: Bruno Prémont \u003cbonbons@linux-vserver.org\u003e\nCc: stable \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "fa5d11133b07053270e18fa9c18560e66e79217e",
      "tree": "1018ea7d0a2f511ae58934175dbc3815b7e63b5f",
      "parents": [
        "b419148e567728f6af0c3b01965c1cc141e3e13a"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Nov 02 18:50:49 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 02 18:50:49 2009 -0500"
      },
      "message": "ext4: discard preallocation when restarting a transaction during truncate\n\nWhen restart a transaction during a truncate operation, we drop and\nreacquire i_data_sem.  After reacquiring i_data_sem, we need to\ndiscard any inode-based preallocation that might have been grabbed\nwhile we released i_data_sem (for example, if pdflush is allocating\nblocks and racing against the truncate).\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1836d95928a0f41ada0cbb2a6c4e46b027db9491",
      "tree": "24ebf7cfd598dfef82247044fb3b65110fe22fc8",
      "parents": [
        "333a07437c31ea8c16a2b82071629a540ae1e50f",
        "3e2796a90cf349527e50b3bc4d0b2f4019b1ce7a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 02 12:23:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 02 12:23:21 2009 -0800"
      },
      "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: fix readdir corner cases\n  9p: fix readlink\n  9p: fix a small bug in readdir for long directories\n"
    },
    {
      "commit": "d4da6c9ccf648f3f1cb5bf9d981a62c253d30e28",
      "tree": "709f8bdc50a3a1d47632047eb3670b4a4a6ff045",
      "parents": [
        "c35102c3e15f90fe604523a2fbffd9dc158b455a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 02 10:15:27 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 02 10:15:27 2009 -0800"
      },
      "message": "Revert \"ext4: Remove journal_checksum mount option and enable it by default\"\n\nThis reverts commit d0646f7b636d067d715fab52a2ba9c6f0f46b0d7, as\nrequested by Eric Sandeen.\n\nIt can basically cause an ext4 filesystem to miss recovery (and thus get\nmounted with errors) if the journal checksum does not match.\n\nQuoth Eric:\n\n   \"My hand-wavy hunch about what is happening is that we\u0027re finding a\n    bad checksum on the last partially-written transaction, which is\n    not surprising, but if we have a wrapped log and we\u0027re doing the\n    initial scan for head/tail, and we abort scanning on that bad\n    checksum, then we are essentially running an unrecovered filesystem.\n\n    But that\u0027s hand-wavy and I need to go look at the code.\n\n    We lived without journal checksums on by default until now, and at\n    this point they\u0027re doing more harm than good, so we should revert\n    the default-changing commit until we can fix it and do some good\n    power-fail testing with the fixes in place.\"\n\nSee\n\n\thttp://bugzilla.kernel.org/show_bug.cgi?id\u003d14354\n\nfor all the gory details.\n\nRequested-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: Theodore Tso \u003ctytso@mit.edu\u003e\nCc: Alexey Fisher \u003cbug-track@fisher-privat.net\u003e\nCc: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nCc: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Mathias Burén \u003cmathias.buren@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e2796a90cf349527e50b3bc4d0b2f4019b1ce7a",
      "tree": "80bddc0f5d36a589db5a77b9b60e4c94c75994ed",
      "parents": [
        "2511cd0b3b9e9b1c3e9360cc565c3745ac3f3f3f"
      ],
      "author": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Mon Nov 02 08:39:28 2009 -0600"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Mon Nov 02 08:43:45 2009 -0600"
      },
      "message": "9p: fix readdir corner cases\n\nThe patch below also addresses a couple of other corner cases in readdir\nseen with a large (e.g. 64k) msize.  I\u0027m not sure what people think of\nmy co-opting of fid-\u003eaux here.  I\u0027d be happy to rework if there\u0027s a better\nway.\n\nWhen the size of the user supplied buffer passed to readdir is smaller\nthan the data returned in one go by the 9P read request, v9fs_dir_readdir()\ncurrently discards extra data so that, on the next call, a 9P read\nrequest will be issued with offset \u003c previous offset + bytes returned,\nwhich voilates the constraint described in paragraph 3 of read(5) description.\nThis patch preseves the leftover data in fid-\u003eaux for use in the next call.\n\nSigned-off-by: Jim Garlick \u003cgarlick@llnl.gov\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n\n"
    },
    {
      "commit": "2511cd0b3b9e9b1c3e9360cc565c3745ac3f3f3f",
      "tree": "70fff7f686a9c6c956146e39f656412715d40996",
      "parents": [
        "f91b90993f0d286be89f06c2f547ced8cfe291c6"
      ],
      "author": {
        "name": "Martin Stava",
        "email": "martin.stava@gmail.com",
        "time": "Mon Nov 02 08:39:34 2009 -0600"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Mon Nov 02 08:43:45 2009 -0600"
      },
      "message": "9p: fix readlink\n\nI do not know if you\u0027ve looked on the patch, but unfortunately it is\nincorrect. A suggested better version is in this email (the old\nversion didn\u0027t work in case the user provided buffer was not long\nenough - it incorrectly appended null byte on a position of last char,\nand thus broke the contract of the readlink method). However, I\u0027m\nstill not sure this is 100% correct thing to do, I think readlink is\nsupposed to return buffer without last null byte in all cases, but we\ndo return last null byte (even the old version).. on the other hand it\nis likely unspecified what is in the remaining part of the buffer, so\nnull character may be fine there ;):\n\nSigned-off-by: Martin Stava \u003cmartin.stava@gmail.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n\n"
    },
    {
      "commit": "f91b90993f0d286be89f06c2f547ced8cfe291c6",
      "tree": "556667dabcd184b7713101c3bb456142fc645642",
      "parents": [
        "b6727b12dd2ffb4a890eb5b13a298230c29ba45d"
      ],
      "author": {
        "name": "Martin Stava",
        "email": "martin.stava@gmail.com",
        "time": "Mon Nov 02 08:39:35 2009 -0600"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Mon Nov 02 08:43:44 2009 -0600"
      },
      "message": "9p: fix a small bug in readdir for long directories\n\nHere is a proposed patch for bug in readdir. Listing of dirs with\nmany files fails without this patch.\n\nSigned-off-by: Martin Stava \u003cmartin.stava@gmail.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n\n"
    }
  ],
  "next": "5f04eeb8a76521dec371ceb05e8263889a8af2bc"
}
