)]}'
{
  "log": [
    {
      "commit": "fa0cbbf145aabbf29c6f28f8a11935c0b0fd86fc",
      "tree": "fd2626b68b0f78afa128d7772c49f066e339bd3a",
      "parents": [
        "f4bcd79c88d25508643084e6fed25920485db0eb"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Nov 12 17:53:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 16 10:15:35 2012 -0800"
      },
      "message": "mm, oom: reintroduce /proc/pid/oom_adj\n\nThis is mostly a revert of 01dc52ebdf47 (\"oom: remove deprecated oom_adj\")\nfrom Davidlohr Bueso.\n\nIt reintroduces /proc/pid/oom_adj for backwards compatibility with earlier\nkernels.  It simply scales the value linearly when /proc/pid/oom_score_adj\nis written.\n\nThe major difference is that its scheduled removal is no longer included\nin Documentation/feature-removal-schedule.txt.  We do warn users with a\nsingle printk, though, to suggest the more powerful and supported\n/proc/pid/oom_score_adj interface.\n\nReported-by: Artem S. Tashkinov \u003ct.artem@lycos.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce95a36bb9dd8bb5de49e69b27238da2f415f230",
      "tree": "160bd0fbea82474155e7021ee3514659a0dab0a0",
      "parents": [
        "006b9568071ce6d65271b40f1f3e211434fa024e",
        "a28ad42a4a0c6f302f488f26488b8b37c9b30024"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 15 11:28:43 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 15 11:28:43 2012 -0800"
      },
      "message": "Merge tag \u0027upstream-3.7-rc6\u0027 of git://git.infradead.org/linux-ubifs\n\nPull UBIFS fixes from Artem Bityutskiy:\n \"Two patches which fix a problem reported by several people in the\n  past, but only fixed now because no one gave enough material for\n  debugging.\n\n  Anyway, these fix the problem that sometimes after a power cut the\n  file-system is not mountable with the following symptom:\n\n\tgrab_empty_leb: could not find an empty LEB\n\n  The fixes make the file-system mountable again.\"\n\n* tag \u0027upstream-3.7-rc6\u0027 of git://git.infradead.org/linux-ubifs:\n  UBIFS: fix mounting problems after power cuts\n  UBIFS: introduce categorized lprops counter\n"
    },
    {
      "commit": "70a6f46d7b0ec03653b9ab3f8063a9717a4a53ef",
      "tree": "9083a77f2a4c97e1658a3db8019f29599a4dd187",
      "parents": [
        "77b67063bb6bce6d475e910d3b886a606d0d91f7"
      ],
      "author": {
        "name": "Colin Ian King",
        "email": "colin.king@canonical.com",
        "time": "Wed Nov 14 11:49:53 2012 +0000"
      },
      "committer": {
        "name": "Anton Vorontsov",
        "email": "anton.vorontsov@linaro.org",
        "time": "Wed Nov 14 18:30:21 2012 -0800"
      },
      "message": "pstore: Fix NULL pointer dereference in console writes\n\nPassing a NULL id causes a NULL pointer deference in writers such as\nerst_writer and efi_pstore_write because they expect to update this id.\nPass a dummy id instead.\n\nThis avoids a cascade of oopses caused when the initial\npstore_console_write passes a null which in turn causes writes to the\nconsole causing further oopses in subsequent pstore_console_write calls.\n\nSigned-off-by: Colin Ian King \u003ccolin.king@canonical.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Anton Vorontsov \u003canton.vorontsov@linaro.org\u003e\n"
    },
    {
      "commit": "affd9a8dbc22beadae1186aa060685d6f6a06792",
      "tree": "38979f4809c5364420035a036b594fef2d7fc539",
      "parents": [
        "487bda54d776f2ff094b5498429c1a85da165723",
        "3798f47aa276b332c30da499cb4df4577e2f8872"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 10 06:59:35 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 10 06:59:35 2012 +0100"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.samba.org/sfrench/cifs-2.6\n\nPull cifs fixes from Jeff Layton.\n\n* \u0027for-linus\u0027 of git://git.samba.org/sfrench/cifs-2.6:\n  cifs: Do not lookup hashed negative dentry in cifs_atomic_open\n  cifs: fix potential buffer overrun in cifs.idmap handling code\n"
    },
    {
      "commit": "ce6d841e9c0e177a594615dc0e69dd04972a696c",
      "tree": "61c24c2dcd481502fdc0250407918469b5298a61",
      "parents": [
        "c0cba03baa0d285b1a8f9d3481be1868df7af1ad",
        "6893f5675f54d6452aded27f9a1d5e86a3bddcbe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 09 06:53:02 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 09 06:53:02 2012 +0100"
      },
      "message": "Merge branch \u0027akpm\u0027 (Fixes from Andrew)\n\nMerge misc fixes from Andrew Morton:\n \"Five fixes\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (5 patches)\n  h8300: add missing L1_CACHE_SHIFT\n  mm: bugfix: set current-\u003ereclaim_state to NULL while returning from kswapd()\n  fanotify: fix missing break\n  revert \"epoll: support for disabling items, and a self-test app\"\n  checkpatch: improve network block comment style checking\n"
    },
    {
      "commit": "a601e63717a269b9171a7164ab9e285788362d1b",
      "tree": "ec3894afb29648ff653fb3621f7bd8c84fd2ec54",
      "parents": [
        "0e4a43ed08e2f44aa7b96aa95d0a540d675483e1",
        "6ce377afd1755eae5c93410ca9a1121dfead7b87"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 09 06:42:51 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 09 06:42:51 2012 +0100"
      },
      "message": "Merge tag \u0027for-linus-v3.7-rc5\u0027 of git://oss.sgi.com/xfs/xfs\n\nPull xfs bugfixes from Ben Myers:\n\n - fix for large transactions spanning multiple iclog buffers\n\n - zero the allocation_args structure on the stack before using it to\n   determine whether to use a worker for allocation\n - move allocation stack switch to xfs_bmapi_allocate in order to\n   prevent deadlock on AGF buffers\n\n - growfs no longer reads in garbage for new secondary superblocks\n\n - silence a build warning\n\n - ensure that invalid buffers never get written to disk while on free\n   list\n\n - don\u0027t vmap inode cluster buffers during free\n\n - fix buffer shutdown reference count mismatch\n\n - fix reading of wrapped log data\n\n* tag \u0027for-linus-v3.7-rc5\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: fix reading of wrapped log data\n  xfs: fix buffer shudown reference count mismatch\n  xfs: don\u0027t vmap inode cluster buffers during free\n  xfs: invalidate allocbt blocks moved to the free list\n  xfs: silence uninitialised f.file warning.\n  xfs: growfs: don\u0027t read garbage for new secondary superblocks\n  xfs: move allocation stack switch up to xfs_bmapi_allocate\n  xfs: introduce XFS_BMAPI_STACK_SWITCH\n  xfs: zero allocation_args on the kernel stack\n  xfs: only update the last_sync_lsn when a transaction completes\n"
    },
    {
      "commit": "848561d368751a1c0f679b9f045a02944506a801",
      "tree": "f5ef3ae6993ab3efabceef101a609577e8af31f6",
      "parents": [
        "a80a6b85b428e6ce12a8363bb1f08d44c50f3252"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Nov 08 15:53:37 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 09 06:41:47 2012 +0100"
      },
      "message": "fanotify: fix missing break\n\nAnders Blomdell noted in 2010 that Fanotify lost events and provided a\ntest case.  Eric Paris confirmed it was a bug and posted a fix to the\nlist\n\n  https://groups.google.com/forum/?fromgroups\u003d#!topic/linux.kernel/RrJfTfyW2BE\n\nbut never applied it.  Repeated attempts over time to actually get him\nto apply it have never had a reply from anyone who has raised it\n\nSo apply it anyway\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nReported-by: Anders Blomdell \u003canders.blomdell@control.lth.se\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a80a6b85b428e6ce12a8363bb1f08d44c50f3252",
      "tree": "250a57516ef79c94119b27ceeab4ef7d3360e6c3",
      "parents": [
        "c24f9f195edf8c7f78eff1081cdadd26bd272ee3"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Nov 08 15:53:35 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 09 06:41:46 2012 +0100"
      },
      "message": "revert \"epoll: support for disabling items, and a self-test app\"\n\nRevert commit 03a7beb55b9f (\"epoll: support for disabling items, and a\nself-test app\") pending resolution of the issues identified by Michael\nKerrisk, copied below.\n\nWe\u0027ll revisit this for 3.8.\n\n: I\u0027ve taken a look at this patch as it currently stands in 3.7-rc1, and\n: done a bit of testing. (By the way, the test program\n: tools/testing/selftests/epoll/test_epoll.c does not compile...)\n:\n: There are one or two places where the behavior seems a little strange,\n: so I have a question or two at the end of this mail. But other than\n: that, I want to check my understanding so that the interface can be\n: correctly documented.\n:\n: Just to go though my understanding, the problem is the following\n: scenario in a multithreaded application:\n:\n: 1. Multiple threads are performing epoll_wait() operations,\n:    and maintaining a user-space cache that contains information\n:    corresponding to each file descriptor being monitored by\n:    epoll_wait().\n:\n: 2. At some point, a thread wants to delete (EPOLL_CTL_DEL)\n:    a file descriptor from the epoll interest list, and\n:    delete the corresponding record from the user-space cache.\n:\n: 3. The problem with (2) is that some other thread may have\n:    previously done an epoll_wait() that retrieved information\n:    about the fd in question, and may be in the middle of using\n:    information in the cache that relates to that fd. Thus,\n:    there is a potential race.\n:\n: 4. The race can\u0027t solved purely in user space, because doing\n:    so would require applying a mutex across the epoll_wait()\n:    call, which would of course blow thread concurrency.\n:\n: Right?\n:\n: Your solution is the EPOLL_CTL_DISABLE operation. I want to\n: confirm my understanding about how to use this flag, since\n: the description that has accompanied the patches so far\n: has been a bit sparse\n:\n: 0. In the scenario you\u0027re concerned about, deleting a file\n:    descriptor means (safely) doing the following:\n:    (a) Deleting the file descriptor from the epoll interest list\n:        using EPOLL_CTL_DEL\n:    (b) Deleting the corresponding record in the user-space cache\n:\n: 1. It\u0027s only meaningful to use this EPOLL_CTL_DISABLE in\n:    conjunction with EPOLLONESHOT.\n:\n: 2. Using EPOLL_CTL_DISABLE without using EPOLLONESHOT in\n:    conjunction is a logical error.\n:\n: 3. The correct way to code multithreaded applications using\n:    EPOLL_CTL_DISABLE and EPOLLONESHOT is as follows:\n:\n:    a. All EPOLL_CTL_ADD and EPOLL_CTL_MOD operations should\n:       should EPOLLONESHOT.\n:\n:    b. When a thread wants to delete a file descriptor, it\n:       should do the following:\n:\n:       [1] Call epoll_ctl(EPOLL_CTL_DISABLE)\n:       [2] If the return status from epoll_ctl(EPOLL_CTL_DISABLE)\n:           was zero, then the file descriptor can be safely\n:           deleted by the thread that made this call.\n:       [3] If the epoll_ctl(EPOLL_CTL_DISABLE) fails with EBUSY,\n:           then the descriptor is in use. In this case, the calling\n:           thread should set a flag in the user-space cache to\n:           indicate that the thread that is using the descriptor\n:           should perform the deletion operation.\n:\n: Is all of the above correct?\n:\n: The implementation depends on checking on whether\n: (events \u0026 ~EP_PRIVATE_BITS) \u003d\u003d 0\n: This replies on the fact that EPOLL_CTL_AD and EPOLL_CTL_MOD always\n: set EPOLLHUP and EPOLLERR in the \u0027events\u0027 mask, and EPOLLONESHOT\n: causes those flags (as well as all others in ~EP_PRIVATE_BITS) to be\n: cleared.\n:\n: A corollary to the previous paragraph is that using EPOLL_CTL_DISABLE\n: is only useful in conjunction with EPOLLONESHOT. However, as things\n: stand, one can use EPOLL_CTL_DISABLE on a file descriptor that does\n: not have EPOLLONESHOT set in \u0027events\u0027 This results in the following\n: (slightly surprising) behavior:\n:\n: (a) The first call to epoll_ctl(EPOLL_CTL_DISABLE) returns 0\n:     (the indicator that the file descriptor can be safely deleted).\n: (b) The next call to epoll_ctl(EPOLL_CTL_DISABLE) fails with EBUSY.\n:\n: This doesn\u0027t seem particularly useful, and in fact is probably an\n: indication that the user made a logic error: they should only be using\n: epoll_ctl(EPOLL_CTL_DISABLE) on a file descriptor for which\n: EPOLLONESHOT was set in \u0027events\u0027. If that is correct, then would it\n: not make sense to return an error to user space for this case?\n\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: \"Paton J. Lewis\" \u003cpalewis@adobe.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ce377afd1755eae5c93410ca9a1121dfead7b87",
      "tree": "63abbe7a59dfd3a4373ad5ab1667c024839aca5a",
      "parents": [
        "03b1293edad462ad1ad62bcc5160c76758e450d5"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Nov 02 11:38:44 2012 +1100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Nov 08 11:10:51 2012 -0600"
      },
      "message": "xfs: fix reading of wrapped log data\n\nCommit 4439647 (\"xfs: reset buffer pointers before freeing them\") in\n3.0-rc1 introduced a regression when recovering log buffers that\nwrapped around the end of log. The second part of the log buffer at\nthe start of the physical log was being read into the header buffer\nrather than the data buffer, and hence recovery was seeing garbage\nin the data buffer when it got to the region of the log buffer that\nwas incorrectly read.\n\nCc: \u003cstable@vger.kernel.org\u003e # 3.0.x, 3.2.x, 3.4.x 3.6.x\nReported-by: Torsten Kaiser \u003cjust.for.lkml@googlemail.com\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "03b1293edad462ad1ad62bcc5160c76758e450d5",
      "tree": "2d5d9237d5bcafea39b8021ed2a02019b0c643f8",
      "parents": [
        "4b62acfe99e158fb7812982d1cf90a075710a92c"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Nov 02 14:23:12 2012 +1100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Nov 08 11:10:35 2012 -0600"
      },
      "message": "xfs: fix buffer shudown reference count mismatch\n\nWhen we shut down the filesystem, we have to unpin and free all the\nbuffers currently active in the CIL. To do this we unpin and remove\nthem in one operation as a result of a failed iclogbuf write. For\nbuffers, we do this removal via a simultated IO completion of after\nmarking the buffer stale.\n\nAt the time we do this, we have two references to the buffer - the\nactive LRU reference and the buf log item.  The LRU reference is\nremoved by marking the buffer stale, and the active CIL reference is\nby the xfs_buf_iodone() callback that is run by\nxfs_buf_do_callbacks() during ioend processing (via the bp-\u003eb_iodone\ncallback).\n\nHowever, ioend processing requires one more reference - that of the\nIO that it is completing. We don\u0027t have this reference, so we free\nthe buffer prematurely and use it after it is freed. For buffers\nmarked with XBF_ASYNC, this leads to assert failures in\nxfs_buf_rele() on debug kernels because the b_hold count is zero.\n\nFix this by making sure we take the necessary IO reference before\nstarting IO completion processing on the stale buffer, and set the\nXBF_ASYNC flag to ensure that IO completion processing removes all\nthe active references from the buffer to ensure it is fully torn\ndown.\n\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "4b62acfe99e158fb7812982d1cf90a075710a92c",
      "tree": "110257a9ec56399668b7f4962a8fdb12782b7890",
      "parents": [
        "ca250b1b3d711936d7dae9e97871f2261347f82d"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Nov 02 11:38:42 2012 +1100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Nov 08 11:10:18 2012 -0600"
      },
      "message": "xfs: don\u0027t vmap inode cluster buffers during free\n\nInode buffers do not need to be mapped as inodes are read or written\ndirectly from/to the pages underlying the buffer. This fixes a\nregression introduced by commit 611c994 (\"xfs: make XBF_MAPPED the\ndefault behaviour\").\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "ca250b1b3d711936d7dae9e97871f2261347f82d",
      "tree": "5abb078bf8afb07b5ca0a5dc67d82fe712b4110c",
      "parents": [
        "1e7acbb7bc1ae7c1c62fd1310b3176a820225056"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Nov 02 11:38:41 2012 +1100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Nov 08 11:09:44 2012 -0600"
      },
      "message": "xfs: invalidate allocbt blocks moved to the free list\n\nWhen we free a block from the alloc btree tree, we move it to the\nfreelist held in the AGFL and mark it busy in the busy extent tree.\nThis typically happens when we merge btree blocks.\n\nOnce the transaction is committed and checkpointed, the block can\nremain on the free list for an indefinite amount of time.  Now, this\nisn\u0027t the end of the world at this point - if the free list is\nshortened, the buffer is invalidated in the transaction that moves\nit back to free space. If the buffer is allocated as metadata from\nthe free list, then all the modifications getted logged, and we have\nno issues, either. And if it gets allocated as userdata direct from\nthe freelist, it gets invalidated and so will never get written.\n\nHowever, during the time it sits on the free list, pressure on the\nlog can cause the AIL to be pushed and the buffer that covers the\nblock gets pushed for write. IOWs, we end up writing a freed\nmetadata block to disk. Again, this isn\u0027t the end of the world\nbecause we know from the above we are only writing to free space.\n\nThe problem, however, is for validation callbacks. If the block was\non old btree root block, then the level of the block is going to be\nhigher than the current tree root, and so will fail validation.\nThere may be other inconsistencies in the block as well, and\ncurrently we don\u0027t care because the block is in free space. Shutting\ndown the filesystem because a freed block doesn\u0027t pass write\nvalidation, OTOH, is rather unfriendly.\n\nSo, make sure we always invalidate buffers as they move from the\nfree space trees to the free list so that we guarantee they never\nget written to disk while on the free list.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Phil White \u003cpwhite@sgi.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "1e7acbb7bc1ae7c1c62fd1310b3176a820225056",
      "tree": "4780dc3e95b60d3ede2682547a013e86e4c95e88",
      "parents": [
        "eaef854335ce09956e930fe4a193327417edc6c9"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Oct 25 17:22:30 2012 +1100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Nov 08 11:09:17 2012 -0600"
      },
      "message": "xfs: silence uninitialised f.file warning.\n\nUninitialised variable build warning introduced by 2903ff0 (\"switch\nsimple cases of fget_light to fdget\"), gcc is not smart enough to\nwork out that the variable is not used uninitialised, and the commit\nremoved the initialisation at declaration that the old variable had.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "eaef854335ce09956e930fe4a193327417edc6c9",
      "tree": "b3ad6c5011d31cb72e770259a2a22889b962b2fc",
      "parents": [
        "1f3c785c3adb7d2b109ec7c8f10081d1294b03d3"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Oct 09 14:50:52 2012 +1100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Nov 08 11:08:57 2012 -0600"
      },
      "message": "xfs: growfs: don\u0027t read garbage for new secondary superblocks\n\nWhen updating new secondary superblocks in a growfs operation, the\nsuperblock buffer is read from the newly grown region of the\nunderlying device. This is not guaranteed to be zero, so violates\nthe underlying assumption that the unused parts of superblocks are\nzero filled. Get a new buffer for these secondary superblocks to\nensure that the unused regions are zero filled correctly.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "1f3c785c3adb7d2b109ec7c8f10081d1294b03d3",
      "tree": "7af47beb69f6ccdecffde2363c4f6b16cd353c2e",
      "parents": [
        "326c03555b914ff153ba5b40df87fd6e28e7e367"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Oct 05 11:06:59 2012 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Nov 08 11:08:46 2012 -0600"
      },
      "message": "xfs: move allocation stack switch up to xfs_bmapi_allocate\n\nSwitching stacks are xfs_alloc_vextent can cause deadlocks when we\nrun out of worker threads on the allocation workqueue. This can\noccur because xfs_bmap_btalloc can make multiple calls to\nxfs_alloc_vextent() and even if xfs_alloc_vextent() fails it can\nreturn with the AGF locked in the current allocation transaction.\n\nIf we then need to make another allocation, and all the allocation\nworker contexts are exhausted because the are blocked waiting for\nthe AGF lock, holder of the AGF cannot get it\u0027s xfs-alloc_vextent\nwork completed to release the AGF.  Hence allocation effectively\ndeadlocks.\n\nTo avoid this, move the stack switch one layer up to\nxfs_bmapi_allocate() so that all of the allocation attempts in a\nsingle switched stack transaction occur in a single worker context.\nThis avoids the problem of an allocation being blocked waiting for\na worker thread whilst holding the AGF.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "326c03555b914ff153ba5b40df87fd6e28e7e367",
      "tree": "65354bb8abe5c9ab63ce0a6d36cf9b957f9a1353",
      "parents": [
        "408cc4e97a3ccd172d2d676e4b585badf439271b"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Oct 05 11:06:58 2012 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Nov 08 11:08:27 2012 -0600"
      },
      "message": "xfs: introduce XFS_BMAPI_STACK_SWITCH\n\nCertain allocation paths through xfs_bmapi_write() are in situations\nwhere we have limited stack available. These are almost always in\nthe buffered IO writeback path when convertion delayed allocation\nextents to real extents.\n\nThe current stack switch occurs for userdata allocations, which\nmeans we also do stack switches for preallocation, direct IO and\nunwritten extent conversion, even those these call chains have never\nbeen implicated in a stack overrun.\n\nHence, let\u0027s target just the single stack overun offended for stack\nswitches. To do that, introduce a XFS_BMAPI_STACK_SWITCH flag that\nthe caller can pass xfs_bmapi_write() to indicate it should switch\nstacks if it needs to do allocation.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "408cc4e97a3ccd172d2d676e4b585badf439271b",
      "tree": "0ccc0a1f8c9873ea07a0fce00fa408322e8c1302",
      "parents": [
        "7e9620f21d8c9e389fd6845487e07d5df898a2e4"
      ],
      "author": {
        "name": "Mark Tinguely",
        "email": "tinguely@sgi.com",
        "time": "Thu Sep 20 13:16:45 2012 -0500"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Nov 08 11:08:10 2012 -0600"
      },
      "message": "xfs: zero allocation_args on the kernel stack\n\nZero the kernel stack space that makes up the xfs_alloc_arg structures.\n\nSigned-off-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "7e9620f21d8c9e389fd6845487e07d5df898a2e4",
      "tree": "2e49dd45712f6cb0de36147da9f94821053b2702",
      "parents": [
        "ddffeb8c4d0331609ef2581d84de4d763607bd37"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Oct 08 21:56:12 2012 +1100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Nov 08 11:07:38 2012 -0600"
      },
      "message": "xfs: only update the last_sync_lsn when a transaction completes\n\nThe log write code stamps each iclog with the current tail LSN in\nthe iclog header so that recovery knows where to find the tail of\nthelog once it has found the head. Normally this is taken from the\nfirst item on the AIL - the log item that corresponds to the oldest\nactive item in the log.\n\nThe problem is that when the AIL is empty, the tail lsn is dervied\nfrom the the l_last_sync_lsn, which is the LSN of the last iclog to\nbe written to the log. In most cases this doesn\u0027t happen, because\nthe AIL is rarely empty on an active filesystem. However, when it\ndoes, it opens up an interesting case when the transaction being\ncommitted to the iclog spans multiple iclogs.\n\nThat is, the first iclog is stamped with the l_last_sync_lsn, and IO\nis issued. Then the next iclog is setup, the changes copied into the\niclog (takes some time), and then the l_last_sync_lsn is stamped\ninto the header and IO is issued. This is still the same\ntransaction, so the tail lsn of both iclogs must be the same for log\nrecovery to find the entire transaction to be able to replay it.\n\nThe problem arises in that the iclog buffer IO completion updates\nthe l_last_sync_lsn with it\u0027s own LSN. Therefore, If the first iclog\ncompletes it\u0027s IO before the second iclog is filled and has the tail\nlsn stamped in it, it will stamp the LSN of the first iclog into\nit\u0027s tail lsn field. If the system fails at this point, log recovery\nwill not see a complete transaction, so the transaction will no be\nreplayed.\n\nThe fix is simple - the l_last_sync_lsn is updated when a iclog\nbuffer IO completes, and this is incorrect. The l_last_sync_lsn\nshoul dbe updated when a transaction is completed by a iclog buffer\nIO. That is, only iclog buffers that have transaction commit\ncallbacks attached to them should update the l_last_sync_lsn. This\nmeans that the last_sync_lsn will only move forward when a commit\nrecord it written, not in the middle of a large transaction that is\nrolling through multiple iclog buffers.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "0e4a43ed08e2f44aa7b96aa95d0a540d675483e1",
      "tree": "613afa922c7db15689ed048038f3b0eb898d6c67",
      "parents": [
        "826389d137d99ad5596d4b2b7747e29e250f468c",
        "96e5d1d3adf56f1c7eeb07258f6a1a0a7ae9c489"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 07 13:38:56 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 07 13:38:56 2012 +0100"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes\n\nPull gfs2 fixes from Steven Whitehouse:\n \"Here are a number of GFS2 bug fixes.  There are three from Andy Price\n  which fix various issues spotted by automated code analysis.  There\n  are two from Lukas Czerner fixing my mistaken assumptions as to how\n  FITRIM should work.  Finally Ben Marzinski has fixed a bug relating to\n  mmap and atime and also a bug relating to a locking issue in the\n  transaction code.\"\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes:\n  GFS2: Test bufdata with buffer locked and gfs2_log_lock held\n  GFS2: Don\u0027t call file_accessed() with a shared glock\n  GFS2: Fix FITRIM argument handling\n  GFS2: Require user to provide argument for FITRIM\n  GFS2: Clean up some unused assignments\n  GFS2: Fix possible null pointer deref in gfs2_rs_alloc\n  GFS2: Fix an unchecked error from gfs2_rs_alloc\n"
    },
    {
      "commit": "96e5d1d3adf56f1c7eeb07258f6a1a0a7ae9c489",
      "tree": "ca5a7f4cf7508bc287af7b35b1d75e71d11f765b",
      "parents": [
        "3d1626889a64bd5a661544d582036a0a02104a60"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Wed Nov 07 00:38:06 2012 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 07 09:43:03 2012 +0000"
      },
      "message": "GFS2: Test bufdata with buffer locked and gfs2_log_lock held\n\nIn gfs2_trans_add_bh(), gfs2 was testing if a there was a bd attached to the\nbuffer without having the gfs2_log_lock held. It was then assuming it would\nstay attached for the rest of the function. However, without either the log\nlock being held of the buffer locked, __gfs2_ail_flush() could detach bd at any\ntime.  This patch moves the locking before the test.  If there isn\u0027t a bd\nalready attached, gfs2 can safely allocate one and attach it before locking.\nThere is no way that the newly allocated bd could be on the ail list,\nand thus no way for __gfs2_ail_flush() to detach it.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3d1626889a64bd5a661544d582036a0a02104a60",
      "tree": "7b5d43873e088346175d982fd8e840be586fcb5e",
      "parents": [
        "076f0faa764ab3a5a32fc726ae05e2de0e66151d"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Tue Nov 06 00:49:28 2012 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 07 09:42:49 2012 +0000"
      },
      "message": "GFS2: Don\u0027t call file_accessed() with a shared glock\n\nfile_accessed() was being called by gfs2_mmap() with a shared glock. If it\nneeded to update the atime, it was crashing because it dirtied the inode in\ngfs2_dirty_inode() without holding an exclusive lock. gfs2_dirty_inode()\nchecked if the caller was already holding a glock, but it didn\u0027t make sure that\nthe glock was in the exclusive state. Now, instead of calling file_accessed()\nwhile holding the shared lock in gfs2_mmap(), file_accessed() is called after\ngrabbing and releasing the glock to update the inode.  If file_accessed() needs\nto update the atime, it will grab an exclusive lock in gfs2_dirty_inode().\n\ngfs2_dirty_inode() now also checks to make sure that if the calling process has\nalready locked the glock, it has an exclusive lock.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "076f0faa764ab3a5a32fc726ae05e2de0e66151d",
      "tree": "044f34fe4c73b9c79191b6dfce1770980b4e9b41",
      "parents": [
        "3a238adefb8c5b8cb8cde0ce689d513306176ff4"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Tue Oct 16 11:39:08 2012 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 07 09:41:58 2012 +0000"
      },
      "message": "GFS2: Fix FITRIM argument handling\n\nCurrently implementation in gfs2 uses FITRIM arguments as it were in\nfile system blocks units which is wrong. The FITRIM arguments\n(fstrim_range.start, fstrim_range.len and fstrim_range.minlen) are\nactually in bytes.\n\nMoreover, check for start argument beyond the end of file system, len\nargument being smaller than file system block and minlen argument being\nbigger than biggest resource group were missing.\n\nThis commit converts the code to convert FITRIM argument to file system\nblocks and also adds appropriate checks mentioned above.\n\nAll the problems were recognised by xfstests 251 and 260.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3a238adefb8c5b8cb8cde0ce689d513306176ff4",
      "tree": "ce36637e3391d9437bc19773885aa0955941962a",
      "parents": [
        "73738a77f42c2d7f53fd61f73272c9dd6f520897"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Tue Oct 16 11:39:07 2012 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 07 09:41:37 2012 +0000"
      },
      "message": "GFS2: Require user to provide argument for FITRIM\n\nWhen the fstrim_range argument is not provided by user in FITRIM ioctl\nwe should just return EFAULT and not promoting bad behaviour by filling\nthe structure in kernel. Let the user deal with it.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "73738a77f42c2d7f53fd61f73272c9dd6f520897",
      "tree": "558663053e4ff4e0814b5d06a70508781b860f9b",
      "parents": [
        "cd0ed19fb614cb1315c0a510ec6c163d8324fd82"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Fri Oct 12 16:45:10 2012 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 07 09:41:07 2012 +0000"
      },
      "message": "GFS2: Clean up some unused assignments\n\nCleans up two cases where variables were assigned values but then never\nused again.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "cd0ed19fb614cb1315c0a510ec6c163d8324fd82",
      "tree": "18ce2f1cc49be6668439538a258270517b2ebb53",
      "parents": [
        "aaaf68c5629108f6078ab458d34a661143ea6857"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Fri Oct 12 16:45:09 2012 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 07 09:40:39 2012 +0000"
      },
      "message": "GFS2: Fix possible null pointer deref in gfs2_rs_alloc\n\nDespite the return value from kmem_cache_zalloc() being checked, the\nerror wasn\u0027t being returned until after a possible null pointer\ndereference. This patch returns the error immediately, allowing the\nremoval of the error variable.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "aaaf68c5629108f6078ab458d34a661143ea6857",
      "tree": "9a5e5a44d4aee71d25af98fac75cd689db41e6ff",
      "parents": [
        "ddffeb8c4d0331609ef2581d84de4d763607bd37"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Fri Oct 12 16:45:08 2012 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 07 09:40:05 2012 +0000"
      },
      "message": "GFS2: Fix an unchecked error from gfs2_rs_alloc\n\nCheck the return value of gfs2_rs_alloc(ip) and avoid a possible null\npointer dereference.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3798f47aa276b332c30da499cb4df4577e2f8872",
      "tree": "edec5d4cdab0891ac1b40b64e6265faf680641ea",
      "parents": [
        "36960e440ccf94349c09fb944930d3bfe4bc473f"
      ],
      "author": {
        "name": "Sachin Prabhu",
        "email": "sprabhu@redhat.com",
        "time": "Mon Nov 05 11:39:32 2012 +0000"
      },
      "committer": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Nov 05 06:45:54 2012 -0500"
      },
      "message": "cifs: Do not lookup hashed negative dentry in cifs_atomic_open\n\nWe do not need to lookup a hashed negative directory since we have\nalready revalidated it before and have found it to be fine.\n\nThis also prevents a crash in cifs_lookup() when it attempts to rehash\nthe already hashed negative lookup dentry.\n\nThe patch has been tested using the reproducer at\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d867344#c28\n\nCc: \u003cstable@kernel.org\u003e # 3.6.x\nReported-by: Vit Zahradka \u003cvit.zahradka@tiscali.cz\u003e\nSigned-off-by: Sachin Prabhu \u003csprabhu@redhat.com\u003e\n"
    },
    {
      "commit": "36960e440ccf94349c09fb944930d3bfe4bc473f",
      "tree": "90a08af0c965465ca6f9cb434a7e83532953b1f0",
      "parents": [
        "0f89a5733a8d28174c7adeb1fdc20ac11439e766"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Sat Nov 03 09:37:28 2012 -0400"
      },
      "committer": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Sat Nov 03 09:37:28 2012 -0400"
      },
      "message": "cifs: fix potential buffer overrun in cifs.idmap handling code\n\nThe userspace cifs.idmap program generally works with the wbclient libs\nto generate binary SIDs in userspace. That program defines the struct\nthat holds these values as having a max of 15 subauthorities. The kernel\nidmapping code however limits that value to 5.\n\nWhen the kernel copies those values around though, it doesn\u0027t sanity\ncheck the num_subauths value handed back from userspace or from the\nserver. It\u0027s possible therefore for userspace to hand us back a bogus\nnum_subauths value (or one that\u0027s valid, but greater than 5) that could\ncause the kernel to walk off the end of the cifs_sid-\u003esub_auths array.\n\nFix this by defining a new routine for copying sids and using that in\nall of the places that copy it. If we end up with a sid that\u0027s longer\nthan expected then this approach will just lop off the \"extra\" subauths,\nbut that\u0027s basically what the code does today already. Better approaches\nmight be to fix this code to reject SIDs with \u003e5 subauths, or fix it\nto handle the subauths array dynamically.\n\nAt the same time, change the kernel to check the length of the data\nreturned by userspace. If it\u0027s shorter than struct cifs_sid, reject it\nand return -EIO. If that happens we\u0027ll end up with fields that are\nbasically uninitialized.\n\nLong term, it might make sense to redefine cifs_sid using a flexarray at\nthe end, to allow for variable-length subauth lists, and teach the code\nto handle the case where the subauths array being passed in from\nuserspace is shorter than 5 elements.\n\nNote too, that I don\u0027t consider this a security issue since you\u0027d need\na compromised cifs.idmap program. If you have that, you can do all sorts\nof nefarious stuff. Still, this is probably reasonable for stable.\n\nCc: stable@kernel.org\nReviewed-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "998f40b550f257e436485291802fa938e4cf580f",
      "tree": "ed84ccfb1020d6d074d4e07f25b6ea9a78431d3f",
      "parents": [
        "f9b1ef5f06d65a01952169b67d474f7f0dcb0206"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Fri Nov 02 18:00:56 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 02 18:51:54 2012 -0400"
      },
      "message": "NFS4: nfs4_opendata_access should return errno\n\nReturn errno - not an NFS4ERR_. This worked because NFS4ERR_ACCESS \u003d\u003d EACCES.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f9b1ef5f06d65a01952169b67d474f7f0dcb0206",
      "tree": "994ecdcda085fc8624c3b8ed50cbc2b1e766fe46",
      "parents": [
        "d24bab93e42b1f90d89c86b3edbb81ec34bb9474"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 29 16:48:40 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Nov 01 12:02:03 2012 -0400"
      },
      "message": "NFSv4: Initialise the NFSv4.1 slot table highest_used_slotid correctly\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "324d003b0cd82151adbaecefef57b73f7959a469",
      "tree": "9876567e78d72999d47feaf1fc957b3615a18c31",
      "parents": [
        "97a54868262da1629a3e65121e65b8e8c4419d9f"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Tue Oct 30 17:01:39 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 31 16:26:26 2012 -0400"
      },
      "message": "NFS: add nfs_sb_deactive_async to avoid deadlock\n\nUse nfs_sb_deactive_async instead of nfs_sb_deactive when in a workqueue\ncontext.  This avoids a deadlock where rpc_shutdown_client loops forever\nin a workqueue kworker context, trying to kill all RPC tasks associated with\nthe client, while one or more of these tasks have already been assigned to the\nsame kworker (and will never run rpc_exit_task).\n\nThis approach is needed because RPC tasks that have already been assigned\nto a kworker by queue_work cannot be canceled, as explained in the comment\nfor workqueue.c:insert_wq_barrier.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\n[Trond: add module_get/put.]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "97a54868262da1629a3e65121e65b8e8c4419d9f",
      "tree": "9eecadb26be0a9ae4d183ffb31719f0f33737ec0",
      "parents": [
        "acce94e68a0f346115fd41cdc298197d2d5a59ad"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Sun Oct 21 19:23:52 2012 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 31 16:26:26 2012 -0400"
      },
      "message": "nfs: Show original device name verbatim in /proc/*/mount{s,info}\n\nSince commit c7f404b (\u0027vfs: new superblock methods to override\n/proc/*/mount{s,info}\u0027), nfs_path() is used to generate the mounted\ndevice name reported back to userland.\n\nnfs_path() always generates a trailing slash when the given dentry is\nthe root of an NFS mount, but userland may expect the original device\nname to be returned verbatim (as it used to be).  Make this\ncanonicalisation optional and change the callers accordingly.\n\n[jrnieder@gmail.com: use flag instead of bool argument]\nReported-and-tested-by: Chris Hiestand \u003cchiestand@salk.edu\u003e\nReference: http://bugs.debian.org/669314\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: \u003cstable@vger.kernel.org\u003e # v2.6.39+\nSigned-off-by: Jonathan Nieder \u003cjrnieder@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "acce94e68a0f346115fd41cdc298197d2d5a59ad",
      "tree": "b5049a6786fba4c05e71c34944d3fe7280433c28",
      "parents": [
        "7175fe90153e6375082d65884fbb41ab3bbb4901"
      ],
      "author": {
        "name": "Scott Mayhew",
        "email": "smayhew@redhat.com",
        "time": "Tue Oct 16 13:22:19 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 31 16:26:25 2012 -0400"
      },
      "message": "nfsv3: Make v3 mounts fail with ETIMEDOUTs instead EIO on mountd timeouts\n\nIn very busy v3 environment, rpc.mountd can respond to the NULL\nprocedure but not the MNT procedure in a timely manner causing\nthe MNT procedure to time out. The problem is the mount system\ncall returns EIO which causes the mount to fail, instead of\nETIMEDOUT, which would cause the mount to be retried.\n\nThis patch sets the RPC_TASK_SOFT|RPC_TASK_TIMEOUT flags to\nthe rpc_call_sync() call in nfs_mount() which causes\nETIMEDOUT to be returned on timed out connections.\n\nSigned-off-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "7175fe90153e6375082d65884fbb41ab3bbb4901",
      "tree": "487e9206cc31f1a214ee43771325193abb4a2b89",
      "parents": [
        "8d96b10639fb402357b75b055b1e82a65ff95050"
      ],
      "author": {
        "name": "Yanchuan Nian",
        "email": "ycnian@gmail.com",
        "time": "Wed Oct 31 16:05:48 2012 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 31 16:26:25 2012 -0400"
      },
      "message": "nfs: Check whether a layout pointer is NULL before free it\n\nThe new layout pointer in pnfs_find_alloc_layout() may be NULL because of\nout of memory. we must do some check work, otherwise pnfs_free_layout_hdr()\nwill go wrong because it can not deal with a NULL pointer.\n\nSigned-off-by: Yanchuan Nian \u003cycnian@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8d96b10639fb402357b75b055b1e82a65ff95050",
      "tree": "13e1e4d63538e1f0177b64fee0b8ab7e96786089",
      "parents": [
        "2b1bc308f492589f7d49012ed24561534ea2be8c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Oct 31 12:16:01 2012 +1100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 31 16:25:59 2012 -0400"
      },
      "message": "NFS: fix bug in legacy DNS resolver.\n\nThe DNS resolver\u0027s use of the sunrpc cache involves a \u0027ttl\u0027 number\n(relative) rather that a timeout (absolute).  This confused me when\nI wrote\n  commit c5b29f885afe890f953f7f23424045cdad31d3e4\n     \"sunrpc: use seconds since boot in expiry cache\"\n\nand I managed to break it.  The effect is that any TTL is interpreted\nas 0, and nothing useful gets into the cache.\n\nThis patch removes the use of get_expiry() - which really expects an\nexpiry time - and uses get_uint() instead, treating the int correctly\nas a ttl.\n\nThis fixes a regression that has been present since 2.6.37, causing\ncertain NFS accesses in certain environments to incorrectly fail.\n\nReported-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nTested-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2b1bc308f492589f7d49012ed24561534ea2be8c",
      "tree": "14268664dd273e746e434fdea95f2ad82dfb1493",
      "parents": [
        "2240a9e2d013d8269ea425b73e1d7a54c7bc141f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 29 18:53:23 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 31 15:10:04 2012 -0400"
      },
      "message": "NFSv4: nfs4_locku_done must release the sequence id\n\nIf the state recovery machinery is triggered by the call to\nnfs4_async_handle_error() then we can deadlock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "2240a9e2d013d8269ea425b73e1d7a54c7bc141f",
      "tree": "e213bd7362b0cb816c3ed0e530bb2390012bcc6c",
      "parents": [
        "399f11c3d872bd748e1575574de265a6304c7c43"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 29 18:37:40 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 31 15:08:18 2012 -0400"
      },
      "message": "NFSv4.1: We must release the sequence id when we fail to get a session slot\n\nIf we do not release the sequence id in cases where we fail to get a\nsession slot, then we can deadlock if we hit a recovery scenario.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "399f11c3d872bd748e1575574de265a6304c7c43",
      "tree": "4920966a6d34ec9862eaa1410d591a54ee4e389e",
      "parents": [
        "08f05c49749ee655bef921d12160960a273aad47"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Tue Oct 30 16:06:35 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 31 13:13:28 2012 -0400"
      },
      "message": "NFS: Wait for session recovery to finish before returning\n\nCurrently, we will schedule session recovery and then return to the\ncaller of nfs4_handle_exception.  This works for most cases, but causes\na hang on the following test case:\n\n\tClient\t\t\t\tServer\n\t------\t\t\t\t------\n\tOpen file over NFS v4.1\n\tWrite to file\n\t\t\t\t\tExpire client\n\tTry to lock file\n\nThe server will return NFS4ERR_BADSESSION, prompting the client to\nschedule recovery.  However, the client will continue placing lock\nattempts and the open recovery never seems to be scheduled.  The\nsimplest solution is to wait for session recovery to run before retrying\nthe lock.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "08f05c49749ee655bef921d12160960a273aad47",
      "tree": "84d95521c8e298b0595be4f66ab5540154d6217b",
      "parents": [
        "2df4f26167ab6adc7d2648f57f433ff461965fc8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Wed Oct 31 03:37:48 2012 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 30 21:27:28 2012 -0700"
      },
      "message": "Return the right error value when dup[23]() newfd argument is too large\n\nJack Lin reports that the error return from dup3() for the RLIMIT_NOFILE\ncase changed incorrectly after 3.6.\n\nThe culprit is commit f33ff9927f42 (\"take rlimit check to callers of\nexpand_files()\") which when it moved the \"return -EMFILE\" out to the\ncaller, didn\u0027t notice that the dup3() had special code to turn the\nEMFILE return into EBADF.\n\nThe replace_fd() helper that got added later then inherited the bug too.\n\nReported-by: Jack Lin \u003clinliangjie@huawei.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n[ Noted more bugs, wrote proper changelog, fixed up typos - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8c673cbc7682b3f2862fe42f8069cac20c09e160",
      "tree": "f20de69903a1c3d95f92098e24139c69c2d6a894",
      "parents": [
        "4476c0eead051ae6ff8abbc358763b00790d1635",
        "ffb5387e85d528fb6d0d924abfa3fbf0fc484071"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 30 15:35:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 30 15:35:16 2012 -0700"
      },
      "message": "Merge tag \u0027ext4_for_linus_stable\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nPull ext4 bugfix from Ted Ts\u0027o:\n \"This fixes the root cause of the ext4 data corruption bug which raised\n  a ruckus on LWN, Phoronix, and Slashdot.\n\n  This bug only showed up when non-standard mount options\n  (journal_async_commit and/or journal_checksum) were enabled, and when\n  the file system was not cleanly unmounted, but the root cause was the\n  inode bitmap modifications was not being properly journaled.\n\n  This could potentially lead to minor file system corruptions (pass 5\n  complaints with the inode allocation bitmap) after an unclean shutdown\n  under the wrong/unlucky workloads, but it turned into major failure if\n  the journal_checksum and/or jouaral_async_commit was enabled.\"\n\n* tag \u0027ext4_for_linus_stable\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: fix unjournaled inode bitmap modification\n"
    },
    {
      "commit": "4476c0eead051ae6ff8abbc358763b00790d1635",
      "tree": "b78e6c3502236330a295f41298b25b00b190cadc",
      "parents": [
        "35fd3dc58da675d659513384221349ef90749a01",
        "a1ecac3b0656a68259927c234e505804d33a7b83"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 30 15:34:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 30 15:34:09 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-block\n\nPull block driver update from Jens Axboe:\n \"Distilled down variant, the rest will pass over to 3.8.  I pulled it\n  into the for-linus branch I had waiting for a pull request as well, in\n  case you are wondering why there are new entries in here too.  This\n  also got rid of two reverts and the ones of the mtip32xx patches that\n  went in later in the 3.6 cycle, so the series looks a bit cleaner.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-block:\n  loop: Make explicit loop device destruction lazy\n  mtip32xx:Added appropriate timeout value for secure erase\n  xen/blkback: Change xen_vbd\u0027s flush_support and discard_secure to have type unsigned int, rather than bool\n  cciss: select CONFIG_CHECK_SIGNATURE\n  cciss: remove unneeded memset()\n  xen/blkback: use kmem_cache_zalloc instead of kmem_cache_alloc/memset\n  pktcdvd: update MAINTAINERS\n  floppy: remove dr, reuse drive on do_floppy_init\n  floppy: use common function to check if floppies can be registered\n  floppy: properly handle failure on add_disk loop\n  floppy: do put_disk on current dr if blk_init_queue fails\n  floppy: don\u0027t call alloc_ordered_workqueue inside the alloc_disk loop\n  xen/blkback: Fix compile warning\n  block: Add blk_rq_pos(rq) to sort rq when plushing\n  drivers/block: remove CONFIG_EXPERIMENTAL\n  block: remove CONFIG_EXPERIMENTAL\n  vfs: fix: don\u0027t increase bio_slab_max if krealloc() fails\n  blkcg: stop iteration early if root_rl is the only request list\n  blkcg: Fix use-after-free of q-\u003eroot_blkg and q-\u003eroot_rl.blkg\n"
    },
    {
      "commit": "35fd3dc58da675d659513384221349ef90749a01",
      "tree": "2ee64e48f39c0c14d454d57a8af022af9e977dd4",
      "parents": [
        "6b0cb4eef7bdaa27b8021ea81813fba330a2d94d",
        "52eb5a900a9863a8b77a895f770e5d825c8e02c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 29 08:49:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 29 08:49:25 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\nPull Ceph fixes form Sage Weil:\n \"There are two fixes in the messenger code, one that can trigger a NULL\n  dereference, and one that error in refcounting (extra put).  There is\n  also a trivial fix that in the fs client code that is triggered by NFS\n  reexport.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: fix dentry reference leak in encode_fh()\n  libceph: avoid NULL kref_put when osd reset races with alloc_msg\n  rbd: reset BACKOFF if unable to re-queue\n"
    },
    {
      "commit": "52eb5a900a9863a8b77a895f770e5d825c8e02c6",
      "tree": "91e120e6a3625b6bb8db3cc71af8c622d9a94b7b",
      "parents": [
        "9bd952615a42d7e2ce3fa2c632e808e804637a1a"
      ],
      "author": {
        "name": "David Zafman",
        "email": "david.zafman@inktank.com",
        "time": "Thu Oct 18 14:01:43 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Oct 29 08:17:10 2012 -0700"
      },
      "message": "ceph: fix dentry reference leak in encode_fh()\n\nCall to d_find_alias() needs a corresponding dput()\n\nThis fixes http://tracker.newdream.net/issues/3271\n\nSigned-off-by: David Zafman \u003cdavid.zafman@inktank.com\u003e\nReviewed-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "ffb5387e85d528fb6d0d924abfa3fbf0fc484071",
      "tree": "b4e444479eada05eb93c3f1b2099a018c5aef116",
      "parents": [
        "8f0d8163b50e01f398b14bcd4dc039ac5ab18d64"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sun Oct 28 22:24:57 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Oct 28 22:24:57 2012 -0400"
      },
      "message": "ext4: fix unjournaled inode bitmap modification\n\ncommit 119c0d4460b001e44b41dcf73dc6ee794b98bd31 changed\next4_new_inode() such that the inode bitmap was being modified\noutside a transaction, which could lead to corruption, and was\ndiscovered when journal_checksum found a bad checksum in the\njournal during log replay.\n\nNix ran into this when using the journal_async_commit mount\noption, which enables journal checksumming.  The ensuing\njournal replay failures due to the bad checksums led to\nfilesystem corruption reported as the now infamous\n\"Apparent serious progressive ext4 data corruption bug\"\n\n[ Changed by tytso to only call ext4_journal_get_write_access() only\n  when we\u0027re fairly certain that we\u0027re going to allocate the inode. ]\n\nI\u0027ve tested this by mounting with journal_checksum and\nrunning fsstress then dropping power; I\u0027ve also tested by\nhacking DM to create snapshots w/o first quiescing, which\nallows me to test journal replay repeatedly w/o actually\npower-cycling the box.  Without the patch I hit a journal\nchecksum error every time.  With this fix it survives\nmany iterations.\n\nReported-by: Nix \u003cnix@esperi.org.uk\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@vger.kernel.org\n\n"
    },
    {
      "commit": "1a25b1c4ce189e3926f2981f3302352a930086db",
      "tree": "8db002bfdbaec616392f563d96621bfd5fbcfcd5",
      "parents": [
        "1bf11c53535ab87e3bf14ecdf6747bf46f601c5d"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Mon Oct 15 17:20:17 2012 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 28 10:59:37 2012 -0700"
      },
      "message": "Lock splice_read and splice_write functions\n\nFunctions generic_file_splice_read and generic_file_splice_write access\nthe pagecache directly. For block devices these functions must be locked\nso that block size is not changed while they are in progress.\n\nThis patch is an additional fix for commit b87570f5d349 (\"Fix a crash\nwhen block device is read and block size is changed at the same time\")\nthat locked aio_read, aio_write and mmap against block size change.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64b1cbaa1068f38994230df2aa0fee7033008399",
      "tree": "287d08359f68a00af62bdb68c786fa397a0b5575",
      "parents": [
        "f54c77dd9953241be8b63f9239facdde82b3eb18",
        "879dca019dc43a1622edca3e7dde644b14b5acc5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 26 14:23:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 26 14:23:35 2012 -0700"
      },
      "message": "Merge tag \u0027pm+acpi-for-3.7-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull power management and ACPI fixes from Rafael J Wysocki:\n\n - Fix for a memory leak in acpi_bind_one() from Jesper Juhl.\n\n - Fix for an error code path memory leak in pm_genpd_attach_cpuidle()\n   from Jonghwan Choi.\n\n - Fix for smp_processor_id() usage in preemptible code in powernow-k8\n   from Andreas Herrmann.\n\n - Fix for a suspend-related memory leak in cpufreq stats from Xiaobing\n   Tu.\n\n - Freezer fix for failure to clear PF_NOFREEZE along with PF_KTHREAD in\n   flush_old_exec() from Oleg Nesterov.\n\n - acpi_processor_notify() fix from Alan Cox.\n\n* tag \u0027pm+acpi-for-3.7-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:\n  ACPI: missing break\n  freezer: exec should clear PF_NOFREEZE along with PF_KTHREAD\n  Fix memory leak in cpufreq stats.\n  cpufreq / powernow-k8: Remove usage of smp_processor_id() in preemptible code\n  PM / Domains: Fix memory leak on error path in pm_genpd_attach_cpuidle\n  ACPI: Fix memory leak in acpi_bind_one()\n"
    },
    {
      "commit": "299650cad6bf00a0d119592f5e1d265bee938044",
      "tree": "cd76a4d1c0cd63e6a976ca206dc076c30a06d77d",
      "parents": [
        "f76ddd98075de950cbb13f47b8356262d9f44c6d",
        "bf34be058158fd30622601346819d098dc5d623f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 26 10:24:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 26 10:24:51 2012 -0700"
      },
      "message": "Merge tag \u0027driver-core-3.7-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core\n\nPull driver core fixes from Greg Kroah-Hartman:\n \"Here are a number of firmware core fixes for 3.7, and some other minor\n  fixes.  And some documentation updates thrown in for good measure.\n\n  All have been in the linux-next tree for a while.\n\n  Signed-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\"\n\n* tag \u0027driver-core-3.7-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:\n  Documentation:Chinese translation of Documentation/arm64/memory.txt\n  Documentation:Chinese translation of Documentation/arm64/booting.txt\n  Documentation:Chinese translation of Documentation/IRQ.txt\n  firmware loader: document kernel direct loading\n  sysfs: sysfs_pathname/sysfs_add_one: Use strlcat() instead of strcat()\n  dynamic_debug: Remove unnecessary __used\n  firmware loader: sync firmware cache by async_synchronize_full_domain\n  firmware loader: let direct loading back on \u0027firmware_buf\u0027\n  firmware loader: fix one reqeust_firmware race\n  firmware loader: cancel uncache work before caching firmware\n"
    },
    {
      "commit": "561ec64ae67ef25cac8d72bb9c4bfc955edfd415",
      "tree": "b18cc05a8fb8375a1d2788821f5894d2cdcfd117",
      "parents": [
        "22e978f1f27dc0c9c20f42f0483d374b7a6d781e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 26 10:05:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 26 10:05:07 2012 -0700"
      },
      "message": "VFS: don\u0027t do protected {sym,hard}links by default\n\nIn commit 800179c9b8a1 (\"This adds symlink and hardlink restrictions to\nthe Linux VFS\"), the new link protections were enabled by default, in\nthe hope that no actual application would care, despite it being\ntechnically against legacy UNIX (and documented POSIX) behavior.\n\nHowever, it does turn out to break some applications.  It\u0027s rare, and\nit\u0027s unfortunate, but it\u0027s unacceptable to break existing systems, so\nwe\u0027ll have to default to legacy behavior.\n\nIn particular, it has broken the way AFD distributes files, see\n\n  http://www.dwd.de/AFD/\n\nalong with some legacy scripts.\n\nDistributions can end up setting this at initrd time or in system\nscripts: if you have security problems due to link attacks during your\nearly boot sequence, you have bigger problems than some kernel sysctl\nsetting. Do:\n\n\techo 1 \u003e /proc/sys/fs/protected_symlinks\n\techo 1 \u003e /proc/sys/fs/protected_hardlinks\n\nto re-enable the link protections.\n\nAlternatively, we may at some point introduce a kernel config option\nthat sets these kinds of \"more secure but not traditional\" behavioural\noptions automatically.\n\nReported-by: Nick Bowler \u003cnbowler@elliptictech.com\u003e\nReported-by: Holger Kiehl \u003cHolger.Kiehl@dwd.de\u003e\nCc: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org # v3.6\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f48d42773bd14cfb9f392f32eff1856f924a9e6a",
      "tree": "6d7b982e01c2dc1643323a5bc455d6a017e36262",
      "parents": [
        "b394209ce528b6a6e76c6460300781981140d207",
        "c37b2b6269ee4637fb7cdb5da0d1e47215d57ce2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 26 09:34:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 26 09:34:04 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs fixes from Chris Mason:\n \"This has our series of fixes for the next rc.  The biggest batch is\n  from Jan Schmidt, fixing up some problems in our subvolume quota code\n  and fixing btrfs send/receive to work with the new extended inode\n  refs.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:\n  Btrfs: do not bug when we fail to commit the transaction\n  Btrfs: fix memory leak when cloning root\u0027s node\n  Btrfs: Use btrfs_update_inode_fallback when creating a snapshot\n  Btrfs: Send: preserve ownership (uid and gid) also for symlinks.\n  Btrfs: fix deadlock caused by the nested chunk allocation\n  btrfs: Return EINVAL when length to trim is less than FSB\n  Btrfs: fix memory leak in btrfs_quota_enable()\n  Btrfs: send correct rdev and mode in btrfs-send\n  Btrfs: extended inode refs support for send mechanism\n  Btrfs: Fix wrong error handling code\n  Fix a sign bug causing invalid memory access in the ino_paths ioctl.\n  Btrfs: comment for loop in tree_mod_log_insert_move\n  Btrfs: fix extent buffer reference for tree mod log roots\n  Btrfs: determine level of old roots\n  Btrfs: tree mod log\u0027s old roots could still be part of the tree\n  Btrfs: fix a tree mod logging issue for root replacement operations\n  Btrfs: don\u0027t put removals from push_node_left into tree mod log twice\n"
    },
    {
      "commit": "a28ad42a4a0c6f302f488f26488b8b37c9b30024",
      "tree": "7690ccb098298a4b6ace1239b52a9179ee5c2c57",
      "parents": [
        "98a1eebda3cb2a84ecf1f219bb3a95769033d1bf"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Tue Oct 09 16:20:15 2012 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Oct 26 16:26:44 2012 +0300"
      },
      "message": "UBIFS: fix mounting problems after power cuts\n\nThis is a bugfix for a problem with the following symptoms:\n\n1. A power cut happens\n2. After reboot, we try to mount UBIFS\n3. Mount fails with \"No space left on device\" error message\n\nUBIFS complains like this:\n\nUBIFS error (pid 28225): grab_empty_leb: could not find an empty LEB\n\nThe root cause of this problem is that when we mount, not all LEBs are\ncategorized. Only those which were read are. However, the\n\u0027ubifs_find_free_leb_for_idx()\u0027 function assumes that all LEBs were\ncategorized and \u0027c-\u003efreeable_cnt\u0027 is valid, which is a false assumption.\n\nThis patch fixes the problem by teaching \u0027ubifs_find_free_leb_for_idx()\u0027\nto always fall back to LPT scanning if no freeable LEBs were found.\n\nThis problem was reported by few people in the past, but Brent Taylor\nwas able to reproduce it and send me a flash image which cannot be mounted,\nwhich made it easy to hunt the bug. Kudos to Brent.\n\nReported-by: Brent Taylor \u003cmotobud@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "98a1eebda3cb2a84ecf1f219bb3a95769033d1bf",
      "tree": "65256d8adfa13534fcbf5c8e79d6774383daaa21",
      "parents": [
        "6f0c0580b70c89094b3422ba81118c7b959c7556"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Oct 10 10:55:28 2012 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Oct 26 16:00:26 2012 +0300"
      },
      "message": "UBIFS: introduce categorized lprops counter\n\nThis commit is a preparation for a subsequent bugfix. We introduce a\ncounter for categorized lprops.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "fec4fba6e44407cfbdeed7d48f6f37e6ddfe19d7",
      "tree": "af9f5a5debec880ff3c3d4ef23d6eace821185ca",
      "parents": [
        "2ab3f29dddfb444c9fcc0a2f3a56ed4bdba41969",
        "e498daa81295d02f7359af313c2b7f87e1062207"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 25 19:26:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 25 19:26:16 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.7-3\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS bugfixes from Trond Myklebust:\n\n - Fix the NFSv2/v3 kernel statd protocol, which broke due to net\n   namespace related changes.\n\n - Fix a number of races in the SUNRPC TCP disconnect/reconnect code.\n\n* tag \u0027nfs-for-3.7-3\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  LOCKD: Clear ln-\u003ensm_clnt only when ln-\u003ensm_users is zero\n  LOCKD: fix races in nsm_client_get\n  SUNRPC: Get rid of the xs_error_report socket callback\n  SUNRPC: Prevent races in xs_abort_connection()\n  Revert \"SUNRPC: Ensure we close the socket on EPIPE errors too...\"\n  SUNRPC: Clear the connect flag when socket state is TCP_CLOSE_WAIT\n"
    },
    {
      "commit": "12176503366885edd542389eed3aaf94be163fdb",
      "tree": "34b48c84987a3f217987106783cac352974af9d2",
      "parents": [
        "20f1de659b77364d55d4e7fad2ef657e7730323f"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Thu Oct 25 13:38:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 25 14:37:53 2012 -0700"
      },
      "message": "fs/compat_ioctl.c: VIDEO_SET_SPU_PALETTE missing error check\n\nThe compat ioctl for VIDEO_SET_SPU_PALETTE was missing an error check\nwhile converting ioctl arguments.  This could lead to leaking kernel\nstack contents into userspace.\n\nPatch extracted from existing fix in grsecurity.\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Brad Spengler \u003cspender@grsecurity.net\u003e\nCc: PaX Team \u003cpageexec@freemail.hu\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b40a79591ca918e7b91b0d9b6abd5d00f2e88c19",
      "tree": "c02916f789723f6479e55aa46cd01bf36238dea1",
      "parents": [
        "e37736777254ce1abc85493a5cacbefe5983b896"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Oct 25 22:28:12 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Oct 25 22:28:12 2012 +0200"
      },
      "message": "freezer: exec should clear PF_NOFREEZE along with PF_KTHREAD\n\nflush_old_exec() clears PF_KTHREAD but forgets about PF_NOFREEZE.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "c37b2b6269ee4637fb7cdb5da0d1e47215d57ce2",
      "tree": "209184d0bcc2983b49c44bd63c6cb78a458e46af",
      "parents": [
        "7bfdcf7fbad56c0f1fc3e2d26431bed72bdcce2d"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Mon Oct 22 15:51:44 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Oct 25 15:59:57 2012 -0400"
      },
      "message": "Btrfs: do not bug when we fail to commit the transaction\n\nWe BUG if we fail to commit the transaction when creating a snapshot, which\nis just obnoxious.  Remove the BUG_ON().  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "7bfdcf7fbad56c0f1fc3e2d26431bed72bdcce2d",
      "tree": "7f424418288996ca3f8eae052d703e9699b1e23a",
      "parents": [
        "c657c3ef1adb2585ed7d2a6db73d0002926a6726"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "bo.li.liu@oracle.com",
        "time": "Thu Oct 25 07:30:19 2012 -0600"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Oct 25 15:55:21 2012 -0400"
      },
      "message": "Btrfs: fix memory leak when cloning root\u0027s node\n\nAfter cloning root\u0027s node, we forgot to dec the src\u0027s ref\nwhich can lead to a memory leak.\n\nSigned-off-by: Liu Bo \u003cbo.li.liu@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "c657c3ef1adb2585ed7d2a6db73d0002926a6726",
      "tree": "5a53c8a58d5be5986d72fd2da8613aac118cf15c",
      "parents": [
        "be6aef604920406b348acf3be6e6e8db55696386",
        "01763a2e37425ae3f37a3dc051e0703fdade5956"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Oct 25 15:53:10 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Oct 25 15:53:10 2012 -0400"
      },
      "message": "Merge branch \u0027for-chris-fixed\u0027 of git://git.jan-o-sch.net/btrfs-unstable\n"
    },
    {
      "commit": "be6aef604920406b348acf3be6e6e8db55696386",
      "tree": "2d458852fafacb2bad7788311b10b879ba920f40",
      "parents": [
        "e2d044fe77f8e845333bb1bd29587dc08a4346a0"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Mon Oct 22 15:43:12 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Oct 25 15:50:18 2012 -0400"
      },
      "message": "Btrfs: Use btrfs_update_inode_fallback when creating a snapshot\n\nOn a really full file system I was getting ENOSPC back from\nbtrfs_update_inode when trying to update the parent inode when creating a\nsnapshot.  Just use the fallback method so we can update the inode and not\nhave to worry about having a delayed ref.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "e2d044fe77f8e845333bb1bd29587dc08a4346a0",
      "tree": "f0d30e2900224d39dbe4cceabe116f2d7a8305f4",
      "parents": [
        "671415b7db49f62896f0b6d50fc4f312a0512983"
      ],
      "author": {
        "name": "Alex Lyakas",
        "email": "alex.btrfs@zadarastorage.com",
        "time": "Wed Oct 17 13:52:47 2012 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Oct 25 15:47:31 2012 -0400"
      },
      "message": "Btrfs: Send: preserve ownership (uid and gid) also for symlinks.\n\nThis patch also requires a change in the user-space part of \"receive\".\nWe need to use \"lchown\" instead of \"chown\". We will do this in the\nfollowing patch.\n\nSigned-off-by: Alex Lyakas \u003calex.btrfs@zadarastorage.com\u003e\n\n \tif (S_ISREG(sctx-\u003ecur_inode_mode)) {\n"
    },
    {
      "commit": "671415b7db49f62896f0b6d50fc4f312a0512983",
      "tree": "77ec90c39aa7fa567f2232e18a8c3440c16fd294",
      "parents": [
        "e515c18bfef718a7900924d50198d968565dd60e"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Oct 16 11:26:46 2012 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Oct 25 15:47:00 2012 -0400"
      },
      "message": "Btrfs: fix deadlock caused by the nested chunk allocation\n\nSteps to reproduce:\n # mkfs.btrfs -m raid1 \u003cdisk1\u003e \u003cdisk2\u003e\n # btrfstune -S 1 \u003cdisk1\u003e\n # mount \u003cdisk1\u003e \u003cmnt\u003e\n # btrfs device add \u003cdisk3\u003e \u003cdisk4\u003e \u003cmnt\u003e\n # mount -o remount,rw \u003cmnt\u003e\n # dd if\u003d/dev/zero of\u003d\u003cmnt\u003e/tmpfile bs\u003d1M count\u003d1\n Deadlock happened.\n\nIt is because of the nested chunk allocation. When we wrote the data\ninto the filesystem, we would allocate the data chunk because there was\nno data chunk in the filesystem. At the end of the data chunk allocation,\nwe should insert the metadata of the data chunk into the extent tree, but\nthere was no raid1 chunk, so we tried to lock the chunk allocation mutex to\nallocate the new chunk, but we had held the mutex, the deadlock happened.\n\nBy rights, we would allocate the raid1 chunk when we added the second device\nbecause the profile of the seed filesystem is raid1 and we had two devices.\nBut we didn\u0027t do that in fact. It is because the last step of the first device\ninsertion didn\u0027t commit the transaction. So when we added the second device,\nwe didn\u0027t cow the tree, and just inserted the relative metadata into the leaves\nwhich were generated by the first device insertion, and its profile was dup.\n\nSo, I fix this problem by commiting the transaction at the end of the first\ndevice insertion.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "e515c18bfef718a7900924d50198d968565dd60e",
      "tree": "0ea52f8adab494952efc725384394b212142461f",
      "parents": [
        "5b7ff5b3c4468780b15c6b20cd0567cd9f2aa626"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Tue Oct 16 09:34:36 2012 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Oct 25 15:46:22 2012 -0400"
      },
      "message": "btrfs: Return EINVAL when length to trim is less than FSB\n\nCurrently if len argument in btrfs_ioctl_fitrim() is smaller than\none FSB we will continue and finally return 0 bytes discarded.\nHowever if the length to discard is smaller then file system block\nwe should really return EINVAL.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\n"
    },
    {
      "commit": "5b7ff5b3c4468780b15c6b20cd0567cd9f2aa626",
      "tree": "2c2be551f07d275a1a41fb881fe6acbd65fdaa30",
      "parents": [
        "d79e50433b2bea09eb680ed5fae15e8a12356353"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Tue Oct 16 05:44:21 2012 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Oct 25 15:45:43 2012 -0400"
      },
      "message": "Btrfs: fix memory leak in btrfs_quota_enable()\n\nWe should free quota_root before returning from the error\nhandling code.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\n"
    },
    {
      "commit": "d79e50433b2bea09eb680ed5fae15e8a12356353",
      "tree": "ff4139f333be0c8ec9fb5dc97de2ff1d44748eb2",
      "parents": [
        "96b5bd777118bb673b458b41bbefc7f0f31d65c9"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Mon Oct 15 18:28:46 2012 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Oct 25 15:45:25 2012 -0400"
      },
      "message": "Btrfs: send correct rdev and mode in btrfs-send\n\nWhen sending a device file, the stream was missing the mode. Also the\nrdev was encoded wrongly.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\n"
    },
    {
      "commit": "96b5bd777118bb673b458b41bbefc7f0f31d65c9",
      "tree": "bcb941e48650405cf61d7f152da9c102a5a07975",
      "parents": [
        "84167d190569eedcdb24bf2499bdda437e442962"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Mon Oct 15 08:30:45 2012 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Oct 25 15:45:16 2012 -0400"
      },
      "message": "Btrfs: extended inode refs support for send mechanism\n\nThis adds support for the new extended inode refs to btrfs send.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "84167d190569eedcdb24bf2499bdda437e442962",
      "tree": "d577be39043333f60016aa744f4ebcb084eb8e5d",
      "parents": [
        "661bec6ba884b86517ef5ea529aabb281a7198d9"
      ],
      "author": {
        "name": "Stefan Behrens",
        "email": "sbehrens@giantdisaster.de",
        "time": "Thu Oct 11 07:25:16 2012 -0600"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Oct 25 15:40:03 2012 -0400"
      },
      "message": "Btrfs: Fix wrong error handling code\n\ngcc says \"warning: comparison of unsigned expression \u003e\u003d 0 is always\ntrue\" because i is an unsigned long. And gcc is right this time.\n\nSigned-off-by: Stefan Behrens \u003csbehrens@giantdisaster.de\u003e\n"
    },
    {
      "commit": "661bec6ba884b86517ef5ea529aabb281a7198d9",
      "tree": "22881cdc9bf3d67c78ee07b24195885b0f0f223f",
      "parents": [
        "f46dbe3dee853f8a860f889cb2b7ff4c624f2a7a"
      ],
      "author": {
        "name": "Gabriel de Perthuis",
        "email": "g2p.code@gmail.com",
        "time": "Wed Oct 10 08:50:47 2012 -0600"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Oct 25 15:39:47 2012 -0400"
      },
      "message": "Fix a sign bug causing invalid memory access in the ino_paths ioctl.\n\nTo see the problem, create many hardlinks to the same file (120 should do it),\nthen look up paths by inode with:\n\n  ls -i\n  btrfs inspect inode-resolve -v $ino /mnt/btrfs\n\nI noticed the memory layout of the fspath-\u003eval data had some irregularities\n(some unnecessary gaps that stop appearing about halfway),\nso I\u0027m not sure there aren\u0027t any bugs left in it.\n"
    },
    {
      "commit": "66081a72517a131430dcf986775f3268aafcb546",
      "tree": "4ca237f799ac01827ff8bb55cf388121b7d14f9e",
      "parents": [
        "c0d2af637863940b1a4fb208224ca7acb905c39f"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Sat Sep 29 22:23:19 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Oct 24 15:57:14 2012 -0700"
      },
      "message": "sysfs: sysfs_pathname/sysfs_add_one: Use strlcat() instead of strcat()\n\nThe warning check for duplicate sysfs entries can cause a buffer overflow\nwhen printing the warning, as strcat() doesn\u0027t check buffer sizes.\nUse strlcat() instead.\n\nSince strlcat() doesn\u0027t return a pointer to the passed buffer, unlike\nstrcat(), I had to convert the nested concatenation in sysfs_add_one() to\nan admittedly more obscure comma operator construct, to avoid emitting code\nfor the concatenation if CONFIG_BUG is disabled.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "e498daa81295d02f7359af313c2b7f87e1062207",
      "tree": "0136f271daecc366e6ad701fc275822e170f8dc9",
      "parents": [
        "a4ee8d978e47e79d536226dccb48991f70091168"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 24 08:53:35 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 24 10:46:22 2012 -0400"
      },
      "message": "LOCKD: Clear ln-\u003ensm_clnt only when ln-\u003ensm_users is zero\n\nThe current code is clearing it in all cases _except_ when zero.\n\nReported-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "a4ee8d978e47e79d536226dccb48991f70091168",
      "tree": "5c85033eae24348ec07dc9a0a3ddbb25141153bb",
      "parents": [
        "f878b657ce8e7d3673afe48110ec208a29e38c4a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 23 13:51:58 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 24 10:46:22 2012 -0400"
      },
      "message": "LOCKD: fix races in nsm_client_get\n\nCommit e9406db20fecbfcab646bad157b4cfdc7cadddfb (lockd: per-net\nNSM client creation and destruction helpers introduced) contains\na nasty race on initialisation of the per-net NSM client because\nit doesn\u0027t check whether or not the client is set after grabbing\nthe nsm_create_mutex.\n\nReported-by: Nix \u003cnix@esperi.org.uk\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "01763a2e37425ae3f37a3dc051e0703fdade5956",
      "tree": "826924bbff1155c9edeec4f478cb43eb9d8930ea",
      "parents": [
        "d638108484d186bf97a838d037f165d9b404e6ee"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Tue Oct 23 15:02:12 2012 +0200"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Oct 24 12:36:40 2012 +0200"
      },
      "message": "Btrfs: comment for loop in tree_mod_log_insert_move\n\nEmphasis the way tree_mod_log_insert_move avoids adding\nMOD_LOG_KEY_REMOVE_WHILE_MOVING operations, depending on the direction of\nthe move operation.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "d638108484d186bf97a838d037f165d9b404e6ee",
      "tree": "4fb20d045666fc7228fe8a149172eec07595b240",
      "parents": [
        "5b6602e762cae17c8891d19698afea451e9c1d95"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Tue Oct 23 14:21:05 2012 +0200"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Oct 24 12:36:39 2012 +0200"
      },
      "message": "Btrfs: fix extent buffer reference for tree mod log roots\n\nIn get_old_root we grab a lock on the extent buffer before we obtain a\nreference on that buffer. That order is changed now.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "5b6602e762cae17c8891d19698afea451e9c1d95",
      "tree": "d7a4ccfc3d56e3c94d1fab3efcd14464e3df357e",
      "parents": [
        "834328a8493079d15f30866ace42489463f52571"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Tue Oct 23 11:28:27 2012 +0200"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Oct 24 12:36:38 2012 +0200"
      },
      "message": "Btrfs: determine level of old roots\n\nIn btrfs_find_all_roots\u0027 termination condition, we compare the level of the\nold buffer we got from btrfs_search_old_slot to the level of the current\nroot node. We\u0027d better compare it to the level of the rewinded root node.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "834328a8493079d15f30866ace42489463f52571",
      "tree": "892c092aa11b015b064bf86ff98f4b60aeb692ed",
      "parents": [
        "ba1bfbd592c1adddd5d0005f587a6e308e25c949"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Tue Oct 23 11:27:33 2012 +0200"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Oct 24 12:36:37 2012 +0200"
      },
      "message": "Btrfs: tree mod log\u0027s old roots could still be part of the tree\n\nTree mod log treated old root buffers as always empty buffers when starting\nthe rewind operations. However, the old root may still be part of the\ncurrent tree at a lower level, with still some valid entries.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "684baeb1d78ac478a8e5f00aa9ab0ce0837f2a91",
      "tree": "47df6b59ab2f7d13516127726b99edc985bf4e12",
      "parents": [
        "4e3ab74c22425e73a0c11dcc065c94c5c75ed2ad",
        "fd0587339d80dd2fea5ead7f734676c9c618eace"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 24 04:07:02 2012 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 24 04:07:02 2012 +0300"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull core kernel fixes from Ingo Molnar:\n \"Two small fixes\"\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  Documentation: Reflect the new location of the NMI watchdog info\n  nohz: Fix idle ticks in cpu summary line of /proc/stat\n"
    },
    {
      "commit": "ba1bfbd592c1adddd5d0005f587a6e308e25c949",
      "tree": "fa6f07ea288c4798f297e400a7abff38e66f891c",
      "parents": [
        "57911b8ba814fae01306376a0d02bc7cdc88dc94"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Mon Oct 22 20:02:56 2012 +0200"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Tue Oct 23 15:09:14 2012 +0200"
      },
      "message": "Btrfs: fix a tree mod logging issue for root replacement operations\n\nAvoid the implicit free by tree_mod_log_set_root_pointer, which is wrong in\ntwo places. Where needed, we call tree_mod_log_free_eb explicitly now.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "57911b8ba814fae01306376a0d02bc7cdc88dc94",
      "tree": "785127860e4b9bae2543ecf940cbec80d5de997d",
      "parents": [
        "f46dbe3dee853f8a860f889cb2b7ff4c624f2a7a"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Fri Oct 19 09:22:03 2012 +0200"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Tue Oct 23 15:09:11 2012 +0200"
      },
      "message": "Btrfs: don\u0027t put removals from push_node_left into tree mod log twice\n\nIndependant of the check (push_items \u003c src_items) tree_mod_log_eb_copy did\nlog the removal of the old data entries from the source buffer. Therefore,\nwe must not call tree_mod_log_eb_move if the check evaluates to true, as\nthat would log the removal twice, finally resulting in (rewinded) buffers\nwith wrong values for header_nritems.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "d888af9654ee33b74e5eb7cdb27f223645d872e9",
      "tree": "927f09532c93239697cf0ddeb49d3a550c323275",
      "parents": [
        "e589db7a6a9c8f1557007f2cc765ee28ad7a1edd",
        "4e7a4b01222343481d8ff084dbef9b80f7089a19"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 23 08:49:34 2012 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 23 08:49:34 2012 +0300"
      },
      "message": "Merge tag \u0027jfs-3.7-2\u0027 of git://github.com/kleikamp/linux-shaggy\n\nPull jfs fix from Dave Kleikamp:\n \"Bug fix: Fix FITRIM argument handling\"\n\n* tag \u0027jfs-3.7-2\u0027 of git://github.com/kleikamp/linux-shaggy:\n  jfs: Fix FITRIM argument handling\n"
    },
    {
      "commit": "e589db7a6a9c8f1557007f2cc765ee28ad7a1edd",
      "tree": "26c10e00a4376a4027bba56d5ea30e050c9cac2f",
      "parents": [
        "344ba37bdc299660e1b1693b6999e5fe116893e1",
        "5de35e8d5c02d271c20e18337e01bc20e6ef472e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 23 08:48:26 2012 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 23 08:48:26 2012 +0300"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nPull ext4 fixes from Ted Ts\u0027o:\n \"Various bug fixes for ext4.  The most serious of them fixes a security\n  bug (CVE-2012-4508) which leads to stale data exposure when we have\n  fallocate racing against writes to files undergoing delayed\n  allocation.  We also have two fixes for the metadata checksum feature,\n  the most serious of which can cause the superblock to have a invalid\n  checksum after a power failure.\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: Avoid underflow in ext4_trim_fs()\n  ext4: Checksum the block bitmap properly with bigalloc enabled\n  ext4: fix undefined bit shift result in ext4_fill_flex_info\n  ext4: fix metadata checksum calculation for the superblock\n  ext4: race-condition protection for ext4_convert_unwritten_extents_endio\n  ext4: serialize fallocate with ext4_convert_unwritten_extents\n"
    },
    {
      "commit": "344ba37bdc299660e1b1693b6999e5fe116893e1",
      "tree": "eaff91d98d4b0d889e25c8201673c4dbaf6e627b",
      "parents": [
        "c52f1dd5292e87f77380624f67da6eaf5dd2df3a",
        "e9b7e91745fa9df94900c8ab08e633f336686098"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 23 08:47:38 2012 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 23 08:47:38 2012 +0300"
      },
      "message": "Merge tag \u0027nfs-for-3.7-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client bugfixes from Trond Myklebust:\n - Do not call pnfs_return_layout() from an rpciod context\n - nfs4_ds_disconnect can cause Oopses.  Kill it...\n - Fix the return value for nfs_callback_start_svc\n - Fix a number of compile warnings\n\n* tag \u0027nfs-for-3.7-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  NFSv4: Fix the return value for nfs_callback_start_svc\n  NFSv4.1: Declare osd_pri_2_pnfs_err(), objio_init_read/write to be static\n  NFSv4: fs/nfs/nfs4getroot.c needs to include \"internal.h\"\n  NFSv4.1: Use kcalloc() to allocate zeroed arrays instead of kzalloc()\n  NFSv4.1: Do not call pnfs_return_layout() from an rpciod context\n  NFSv4.1: Kill nfs4_ds_disconnect()\n"
    },
    {
      "commit": "5de35e8d5c02d271c20e18337e01bc20e6ef472e",
      "tree": "76650de85ba0c02a48de9daa1ba316b5108450f0",
      "parents": [
        "79f1ba49569e5aec919b653c55b03274c2331701"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Mon Oct 22 18:01:19 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 22 18:01:19 2012 -0400"
      },
      "message": "ext4: Avoid underflow in ext4_trim_fs()\n\nCurrently if len argument in ext4_trim_fs() is smaller than one block,\nthe \u0027end\u0027 variable underflow. Avoid that by returning EINVAL if len is\nsmaller than file system block.\n\nAlso remove useless unlikely().\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "386bc35a2d548c28a5083b2e162a20251b37cab5",
      "tree": "14d3f0ac36cd9b56b535c3e5aa3c6ed152d6cf6b",
      "parents": [
        "65c77fd9e8a1c8c3da0bbbea6b7efa3d6ef265f8"
      ],
      "author": {
        "name": "Anna Leuschner",
        "email": "anna.m.leuschner@gmail.com",
        "time": "Mon Oct 22 21:53:36 2012 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Oct 22 22:00:26 2012 +0200"
      },
      "message": "vfs: fix: don\u0027t increase bio_slab_max if krealloc() fails\n\nWithout the patch, bio_slab_max, representing bio_slabs capacity, is increased before krealloc() of bio_slabs. If krealloc() fails, bio_slab_max is too high. Fix that by only updating bio_slab_max if krealloc() is successful.\n\nSigned-off-by: Anna Leuschner \u003canna.m.leuschner@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "2f0157f13f42800aa3d9017ebb0fb80a65f7b2de",
      "tree": "7b2b3299b6ef785790336042ab28c0bffa37debb",
      "parents": [
        "6f0c0580b70c89094b3422ba81118c7b959c7556"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Oct 21 17:57:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 22 08:50:37 2012 +0300"
      },
      "message": "char_dev: pin parent kobject\n\nIn certain cases (for example when a cdev structure is embedded into\nanother object whose lifetime is controlled by a separate kobject) it is\nbeneficial to tie lifetime of another object to the lifetime of\ncharacter device so that related object is not freed until after\nchar_dev object is freed.\n\nTo achieve this let\u0027s pin kobject\u0027s parent when doing cdev_add() and\nunpin when last reference to cdev structure is being released.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79f1ba49569e5aec919b653c55b03274c2331701",
      "tree": "612d4200d13a10d5df0cb6508cc5b1e7fd10fd45",
      "parents": [
        "76495ec1d47e1c0fe0673faf9179bda6bc8ab5c2"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Oct 22 00:34:32 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 22 00:34:32 2012 -0400"
      },
      "message": "ext4: Checksum the block bitmap properly with bigalloc enabled\n\nIn mke2fs, we only checksum the whole bitmap block and it is right.\nWhile in the kernel, we use EXT4_BLOCKS_PER_GROUP to indicate the\nsize of the checksumed bitmap which is wrong when we enable bigalloc.\nThe right size should be EXT4_CLUSTERS_PER_GROUP and this patch fixes\nit.\n\nAlso as every caller of ext4_block_bitmap_csum_set and\next4_block_bitmap_csum_verify pass in EXT4_BLOCKS_PER_GROUP(sb)/8,\nwe\u0027d better removes this parameter and sets it in the function itself.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "9e7814404b77c3e8920bee4277162bf3a7460505",
      "tree": "f7542b049f29150680507dd211925401beadac9a",
      "parents": [
        "3b641bf453497d76ea28c5fc1c666f424ead6dcf"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Oct 19 17:00:55 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 19 14:32:10 2012 -0700"
      },
      "message": "hold task-\u003emempolicy while numa_maps scans.\n\n  /proc/\u003cpid\u003e/numa_maps scans vma and show mempolicy under\n  mmap_sem. It sometimes accesses task-\u003emempolicy which can\n  be freed without mmap_sem and numa_maps can show some\n  garbage while scanning.\n\nThis patch tries to take reference count of task-\u003emempolicy at reading\nnuma_maps before calling get_vma_policy(). By this, task-\u003emempolicy\nwill not be freed until numa_maps reaches its end.\n\nV2-\u003ev3\n  -  updated comments to be more verbose.\n  -  removed task_lock() in numa_maps code.\nV1-\u003eV2\n  -  access task-\u003emempolicy only once and remember it.  Becase kernel/exit.c\n     can overwrite it.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90cdb1a0e65db31eeb9afaec7d1d3d27e15ae900",
      "tree": "aa859ee7750f7904007520087637ecf8f940cfad",
      "parents": [
        "d479c911789e14a19b86ca09b0b634f1449c8c6b",
        "212ba90696ab4884e2025b0b13726d67aadc2cd4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 19 11:00:00 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 19 11:00:00 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.7\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd bugfixes from J Bruce Fields.\n\n* \u0027for-3.7\u0027 of git://linux-nfs.org/~bfields/linux:\n  SUNRPC: Prevent kernel stack corruption on long values of flush\n  NLM: nlm_lookup_file() may return NLMv4-specific error codes\n"
    },
    {
      "commit": "43385846968b082bb6c174e8b17479e5123b8d73",
      "tree": "b485e28471a2f785681679a5ca92b11e27658bdd",
      "parents": [
        "d63e210ef1546c2e0a725ba804cae5bc38731ad7"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Oct 17 20:41:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 18 12:35:58 2012 -0700"
      },
      "message": "fs, xattr: fix bug when removing a name not in xattr list\n\nCommit 38f38657444d (\"xattr: extract simple_xattr code from tmpfs\") moved\nsome code from tmpfs but introduced a subtle bug along the way.\n\nIf the name passed to simple_xattr_remove() does not exist in the list of\nxattrs, then it is possible to call kfree(new_xattr) when new_xattr is\nactually initialized to itself on the stack via uninitialized_var().\n\nThis causes a BUG() since the memory was not allocated via the slab\nallocator and was not bypassed through to the page allocator because it\nwas too large.\n\nInitialize the local variable to NULL so the kfree() never takes place.\n\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Aristeu Rozanski \u003caris@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e7a4b01222343481d8ff084dbef9b80f7089a19",
      "tree": "94f8cb9fdc9053fc7d310708d036461232d5a2ee",
      "parents": [
        "8d2b6b3ae280dcf6f6c7a95623670a57cdf562ed"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Tue Oct 16 11:38:06 2012 +0200"
      },
      "committer": {
        "name": "Dave Kleikamp",
        "email": "dave.kleikamp@oracle.com",
        "time": "Wed Oct 17 09:18:38 2012 -0500"
      },
      "message": "jfs: Fix FITRIM argument handling\n\nCurrently when \u0027range-\u003estart\u0027 is beyond the end of file system\nnothing is done and that fact is ignored, where in fact we should return\nEINVAL. The same problem is when \u0027range.len\u0027 is smaller than file system\nblock.\n\nFix this by adding check for such conditions and return EINVAL\nappropriately.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nAcked-by: Tino Reichardt \u003cmilky-kernel@mcmilk.de\u003e\nSigned-off-by: Dave Kleikamp \u003cdave.kleikamp@oracle.com\u003e\n"
    },
    {
      "commit": "cd0b16c1c3cda12dbed1f8de8f1a9b0591990724",
      "tree": "16ef9e6b6b7ac0ee3f6113194e2732504c2f670f",
      "parents": [
        "ddffeb8c4d0331609ef2581d84de4d763607bd37"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 13 00:30:28 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Oct 17 10:14:14 2012 -0400"
      },
      "message": "NLM: nlm_lookup_file() may return NLMv4-specific error codes\n\nIf the filehandle is stale, or open access is denied for some reason,\nnlm_fopen() may return one of the NLMv4-specific error codes nlm4_stale_fh\nor nlm4_failed. These get passed right through nlm_lookup_file(),\nand so when nlmsvc_retrieve_args() calls the latter, it needs to filter\nthe result through the cast_status() machinery.\n\nFailure to do so, will trigger the BUG_ON() in encode_nlm_stat...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nReported-by: Larry McVoy \u003clm@bitmover.com\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5d5c5dca9c2db027770e44c69a73ea7f3919dcfc",
      "tree": "68a9673c5a56874f36dda62dd724e5509479d6c3",
      "parents": [
        "ecb2ecd9c241de16ebb31b7dc441dbbfc0f6006e",
        "6c29c50fda25c2ac2ce45a9b042ff7e424aa8eac"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 16 18:12:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 16 18:12:38 2012 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs\n\nPull ext2, ext3, quota fixes from Jan Kara:\n \"Fix three regressions caused by user namespace conversions (ext2,\n  ext3, quota) and minor ext3 fix and cleanup.\"\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:\n  quota: Silence warning about PRJQUOTA not being handled in need_print_warning()\n  ext3: fix return values on parse_options() failure\n  ext2: fix return values on parse_options() failure\n  ext3: ext3_bread usage audit\n  ext3: fix possible non-initialized variable on htree_dirblock_to_tree()\n"
    },
    {
      "commit": "ecb2ecd9c241de16ebb31b7dc441dbbfc0f6006e",
      "tree": "c55b5cdf7a993e303f1f85b270e0e512f526fdd5",
      "parents": [
        "afe594c79138ba6125b195a0b01fd28c34e3a993",
        "c54d0dc35324300cdc502137f5c0ee44f53d7a8b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 16 18:11:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 16 18:11:48 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs fixes from Al Viro:\n \"Fix for my braino in replace_fd(), dhowell\u0027s fix for the fallout from\n  over-enthusiastic bo^Wdeclaration movements plus crapectomy that\n  should\u0027ve happened a long time ago (SEL_...  definitions).\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  bury SEL_{IN,OUT,EX}\n  Unexport some bits of linux/fs.h\n  fix a leak in replace_fd() users\n"
    },
    {
      "commit": "32f8516a8c733d281faa9f6666b509035246505c",
      "tree": "31e40b8d5c96dec8a3e6f8adfb3db992718fecc1",
      "parents": [
        "dd8e8c4a2c902d8350b702e7bc7c2799e5e7e331"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Oct 16 17:31:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 16 18:00:50 2012 -0700"
      },
      "message": "mm, mempolicy: fix printing stack contents in numa_maps\n\nWhen reading /proc/pid/numa_maps, it\u0027s possible to return the contents of\nthe stack where the mempolicy string should be printed if the policy gets\nfreed from beneath us.\n\nThis happens because mpol_to_str() may return an error the\nstack-allocated buffer is then printed without ever being stored.\n\nThere are two possible error conditions in mpol_to_str():\n\n - if the buffer allocated is insufficient for the string to be stored,\n   and\n\n - if the mempolicy has an invalid mode.\n\nThe first error condition is not triggered in any of the callers to\nmpol_to_str(): at least 50 bytes is always allocated on the stack and this\nis sufficient for the string to be written.  A future patch should convert\nthis into BUILD_BUG_ON() since we know the maximum strlen possible, but\nthat\u0027s not -rc material.\n\nThe second error condition is possible if a race occurs in dropping a\nreference to a task\u0027s mempolicy causing it to be freed during the read().\nThe slab poison value is then used for the mode and mpol_to_str() returns\n-EINVAL.\n\nThis race is only possible because get_vma_policy() believes that\nmm-\u003emmap_sem protects task-\u003emempolicy, which isn\u0027t true.  The exit path\ndoes not hold mm-\u003emmap_sem when dropping the reference or setting\ntask-\u003emempolicy to NULL: it uses task_lock(task) instead.\n\nThus, it\u0027s required for the caller of a task mempolicy to hold\ntask_lock(task) while grabbing the mempolicy and reading it.  Callers with\na vma policy store their mempolicy earlier and can simply increment the\nreference count so it\u0027s guaranteed not to be freed.\n\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45525b26a46cd593cb72070304c4cd7c8391bd37",
      "tree": "9064f045ef433e4d74d281daa995ee3c082e806e",
      "parents": [
        "dd8e8c4a2c902d8350b702e7bc7c2799e5e7e331"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 16 13:30:07 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 16 13:36:50 2012 -0400"
      },
      "message": "fix a leak in replace_fd() users\n\nreplace_fd() began with \"eats a reference, tries to insert into\ndescriptor table\" semantics; at some point I\u0027d switched it to\nmuch saner current behaviour (\"try to insert into descriptor\ntable, grabbing a new reference if inserted; caller should do\nfput() in any case\"), but forgot to update the callers.\nMea culpa...\n\n[Spotted by Pavel Roskin, who has really weird system with pipe-fed\ncoredumps as part of what he considers a normal boot ;-)]\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e9b7e91745fa9df94900c8ab08e633f336686098",
      "tree": "1f306a155f3117e10b06f9e9f7a652d84c3d00b8",
      "parents": [
        "2e928e4878fbc6328c2b1fc897d008db257bfbb0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 16 12:30:44 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 16 13:14:42 2012 -0400"
      },
      "message": "NFSv4: Fix the return value for nfs_callback_start_svc\n\nreturning PTR_ERR(cb_info-\u003etask) just after we have set it to\nNULL looks like a typo...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\n"
    },
    {
      "commit": "2e928e4878fbc6328c2b1fc897d008db257bfbb0",
      "tree": "ec2e7b10ae4a5392a11cbce04d68628b905cc176",
      "parents": [
        "d6aa6a81d41eb48125b4622306b61dd398923ad9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 16 12:34:56 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 16 12:38:00 2012 -0400"
      },
      "message": "NFSv4.1: Declare osd_pri_2_pnfs_err(), objio_init_read/write to be static\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d6aa6a81d41eb48125b4622306b61dd398923ad9",
      "tree": "74f99d5c772310ff68abfe9ca63c92300880124e",
      "parents": [
        "1813badd98ce02e4b96d8997b68ddef4d4ad4ec5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 16 12:32:24 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 16 12:37:59 2012 -0400"
      },
      "message": "NFSv4: fs/nfs/nfs4getroot.c needs to include \"internal.h\"\n\nFix a warning about \"no previous prototype for ‘nfs4_get_rootfh’\"\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "76495ec1d47e1c0fe0673faf9179bda6bc8ab5c2",
      "tree": "c5be4c023a0ea0fa109bde78d2315f57b2d4b8a2",
      "parents": [
        "06db49e68ae70cf16819b85a14057acb2820776a"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Mon Oct 15 12:56:49 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 15 12:56:49 2012 -0400"
      },
      "message": "ext4: fix undefined bit shift result in ext4_fill_flex_info\n\nThe result of the bit shift expression in\n\u00271 \u003c\u003c sbi-\u003es_log_groups_per_flex\u0027 can be undefined in the case that\ns_log_groups_per_flex is 31 because the result of the shift is bigger\nthan INT_MAX. In reality this probably should not cause much problems\nsince we\u0027ll end up with INT_MIN which will then be converted into\n\u0027unsigned int\u0027 type, but nevertheless according to the ISO C99 the\nresult is actually undefined.\n\nFix this by changing the left operand to \u0027unsigned int\u0027 type.\n\nNote that the commit d50f2ab6f050311dbf7b8f5501b25f0bf64a439b already\ntried to fix the undefined behaviour, but this was missed.\n\nThanks to Laszlo Ersek for pointing this out and suggesting the fix.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nReported-by: Laszlo Ersek \u003clersek@redhat.com\u003e\n"
    },
    {
      "commit": "1813badd98ce02e4b96d8997b68ddef4d4ad4ec5",
      "tree": "442fac9e179578c560ea113dddc877d8067ca9e4",
      "parents": [
        "d527e5c15de8de813cd0a2ad0b769f68c6226938"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 11 14:36:52 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 15 10:49:43 2012 -0400"
      },
      "message": "NFSv4.1: Use kcalloc() to allocate zeroed arrays instead of kzalloc()\n\nDon\u0027t circumvent the array size checks.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d527e5c15de8de813cd0a2ad0b769f68c6226938",
      "tree": "b96a57f9c6a628d66b605b9f7ef7e579b01a35b1",
      "parents": [
        "8fcdc31b3d09bc348ff9bf752ae1291828756cfa"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 11 13:43:38 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 15 10:49:43 2012 -0400"
      },
      "message": "NFSv4.1: Do not call pnfs_return_layout() from an rpciod context\n\nMove the call to pnfs_return_layout() to the read and write rpc_release()\ncallbacks, so that it gets called from nfsiod, which is a more appropriate\ncontext.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8fcdc31b3d09bc348ff9bf752ae1291828756cfa",
      "tree": "d56ebacf4dd7290a60555756882178f8541603d0",
      "parents": [
        "ddffeb8c4d0331609ef2581d84de4d763607bd37"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 11 12:26:04 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 15 10:49:42 2012 -0400"
      },
      "message": "NFSv4.1: Kill nfs4_ds_disconnect()\n\nThere is nothing to prevent another thread from dereferencing ds-\u003eds_clp\nduring or after the call to nfs4_ds_disconnect(), and Oopsing due to the\nresulting NULL pointer.\n\nInstead, we should just rely on filelayout_mark_devid_invalid() to keep\nus out of trouble by avoiding that deviceid.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d25282d1c9b9bc4cda7f9d3c0205108e99aa7a9d",
      "tree": "f414482d768b015a609924293b779b4ad0b8f764",
      "parents": [
        "b6eea87fc6850d3531a64a27d2323a4498cd4e43",
        "dbadc17683e6c673a69b236c0f041b931cc55c42"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 14 13:39:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 14 13:39:34 2012 -0700"
      },
      "message": "Merge branch \u0027modules-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux\n\nPull module signing support from Rusty Russell:\n \"module signing is the highlight, but it\u0027s an all-over David Howells frenzy...\"\n\nHmm \"Magrathea: Glacier signing key\". Somebody has been reading too much HHGTTG.\n\n* \u0027modules-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (37 commits)\n  X.509: Fix indefinite length element skip error handling\n  X.509: Convert some printk calls to pr_devel\n  asymmetric keys: fix printk format warning\n  MODSIGN: Fix 32-bit overflow in X.509 certificate validity date checking\n  MODSIGN: Make mrproper should remove generated files.\n  MODSIGN: Use utf8 strings in signer\u0027s name in autogenerated X.509 certs\n  MODSIGN: Use the same digest for the autogen key sig as for the module sig\n  MODSIGN: Sign modules during the build process\n  MODSIGN: Provide a script for generating a key ID from an X.509 cert\n  MODSIGN: Implement module signature checking\n  MODSIGN: Provide module signing public keys to the kernel\n  MODSIGN: Automatically generate module signing keys if missing\n  MODSIGN: Provide Kconfig options\n  MODSIGN: Provide gitignore and make clean rules for extra files\n  MODSIGN: Add FIPS policy\n  module: signature checking hook\n  X.509: Add a crypto key parser for binary (DER) X.509 certificates\n  MPILIB: Provide a function to read raw data into an MPI\n  X.509: Add an ASN.1 decoder\n  X.509: Add simple ASN.1 grammar compiler\n  ...\n"
    }
  ],
  "next": "09a9ad6a1ff86836e5280c39300176c4758bb459"
}
