)]}'
{
  "log": [
    {
      "commit": "340cd44451fb0bfa542365e6b4b565bbd44836e2",
      "tree": "bd5e2d1436c91a3365d427552fc5a497234c6b50",
      "parents": [
        "73830857bca6f6c9dbd48e906daea50bea42d676"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Apr 09 00:27:17 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Apr 09 00:27:17 2009 +0100"
      },
      "message": "dm kcopyd: fix callback race\n\nIf the thread calling dm_kcopyd_copy is delayed due to scheduling inside\nsplit_job/segment_complete and the subjobs complete before the loop in\nsplit_job completes, the kcopyd callback could be invoked from the\nthread that called dm_kcopyd_copy instead of the kcopyd workqueue.\n\ndm_kcopyd_copy -\u003e split_job -\u003e segment_complete -\u003e job-\u003efn()\n\nSnapshots depend on the fact that callbacks are called from the singlethreaded\nkcopyd workqueue and expect that there is no racing between individual\ncallbacks. The racing between callbacks can lead to corruption of exception\nstore and it can also mean that exception store callbacks are called twice\nfor the same exception - a likely reason for crashes reported inside\npending_complete() / remove_exception().\n\nThis patch fixes two problems:\n\n1. job-\u003efn being called from the thread that submitted the job (see above).\n\n- Fix: hand over the completion callback to the kcopyd thread.\n\n2. job-\u003efn(read_err, write_err, job-\u003econtext); in segment_complete\nreports the error of the last subjob, not the union of all errors.\n\n- Fix: pass job-\u003ewrite_err to the callback to report all error bits\n  (it is done already in run_complete_job)\n\nCc: stable@kernel.org\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "73830857bca6f6c9dbd48e906daea50bea42d676",
      "tree": "1d68ff2f2da69fea4ba3fe720bbfc32507a5f7e3",
      "parents": [
        "af7e466a1acededbc10beaba9eec8531d561c566"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Apr 09 00:27:16 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Apr 09 00:27:16 2009 +0100"
      },
      "message": "dm kcopyd: prepare for callback race fix\n\nUse a variable in segment_complete() to point to the dm_kcopyd_client\nstruct and only release job-\u003epages in run_complete_job() if any are\ndefined.  These changes are needed by the next patch.\n\nCc: stable@kernel.org\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "af7e466a1acededbc10beaba9eec8531d561c566",
      "tree": "1d1d0655e2fc22e5b440202be4050fd083a66c04",
      "parents": [
        "92c639021ca6e962645114f02e356e7feb131d0b"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Apr 09 00:27:16 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Apr 09 00:27:16 2009 +0100"
      },
      "message": "dm: implement basic barrier support\n\nBarriers are submitted to a worker thread that issues them in-order.\n\nThe thread is modified so that when it sees a barrier request it waits\nfor all pending IO before the request then submits the barrier and\nwaits for it.  (We must wait, otherwise it could be intermixed with\nfollowing requests.)\n\nErrors from the barrier request are recorded in a per-device barrier_error\nvariable. There may be only one barrier request in progress at once.\n\nFor now, the barrier request is converted to a non-barrier request when\nsending it to the underlying device.\n\nThis patch guarantees correct barrier behavior if the underlying device\ndoesn\u0027t perform write-back caching. The same requirement existed before\nbarriers were supported in dm.\n\nBottom layer barrier support (sending barriers by target drivers) and\nhandling devices with write-back caches will be done in further patches.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "92c639021ca6e962645114f02e356e7feb131d0b",
      "tree": "eee01e9394b09fb3929fd4f3682815e91b87c764",
      "parents": [
        "3b00b2036fac7a7667d0676a0f80eee575b8c32b"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Apr 09 00:27:15 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Apr 09 00:27:15 2009 +0100"
      },
      "message": "dm: remove dm_request loop\n\nRemove queue_io return value and a loop in dm_request.\n\nIO may be submitted to a worker thread with queue_io().  queue_io() sets\nDMF_QUEUE_IO_TO_THREAD so that all further IO is queued for the thread. When\nthe thread finishes its work, it clears DMF_QUEUE_IO_TO_THREAD and from this\npoint on, requests are submitted from dm_request again. This will be used\nfor processing barriers.\n\nRemove the loop in dm_request. queue_io() can submit I/Os to the worker thread\neven if DMF_QUEUE_IO_TO_THREAD was not set.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3b00b2036fac7a7667d0676a0f80eee575b8c32b",
      "tree": "cd893a75900ee81550230711ea4a0005a6f2c2ce",
      "parents": [
        "54d9a1b4513b96cbd835ca6866c6a604d194b2ae"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Apr 09 00:27:15 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Apr 09 00:27:15 2009 +0100"
      },
      "message": "dm: rework queueing and suspension\n\nRework shutting down on suspend and document the associated rules.\n\nDrop write lock in __split_and_process_bio to allow more processing\nconcurrency.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "54d9a1b4513b96cbd835ca6866c6a604d194b2ae",
      "tree": "42813374e137f5ac6d9d7aedfae02a089b6443a6",
      "parents": [
        "1eb787ec183d1267cac95aae632e92dee05ed50a"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Apr 09 00:27:14 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Apr 09 00:27:14 2009 +0100"
      },
      "message": "dm: simplify dm_request loop\n\nRefactor the code in dm_request().\n\nRequire the new DMF_BLOCK_FOR_SUSPEND flag on readahead bios we will\ndiscard so we don\u0027t drop such bios while processing a barrier.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "1eb787ec183d1267cac95aae632e92dee05ed50a",
      "tree": "ad8f50d995afc72fb4751fdd2436ebc40b648b0f",
      "parents": [
        "df12ee996378a5917e9555169fe278ecca0612d4"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Apr 09 00:27:14 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Apr 09 00:27:14 2009 +0100"
      },
      "message": "dm: split DMF_BLOCK_IO flag into two\n\nSplit the DMF_BLOCK_IO flag into two.\n\nDMF_BLOCK_IO_FOR_SUSPEND is set when I/O must be blocked while suspending a\ndevice.  DMF_QUEUE_IO_TO_THREAD is set when I/O must be queued to a\nworker thread for later processing.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "df12ee996378a5917e9555169fe278ecca0612d4",
      "tree": "ea6200205c68aab575b078e3a9e22d9b3466718f",
      "parents": [
        "692d0eb9e02cf81fb387ff891f53840db2f3110a"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Apr 09 00:27:13 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Apr 09 00:27:13 2009 +0100"
      },
      "message": "dm: rearrange dm_wq_work\n\nRefactor dm_wq_work() to make later patch more readable.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "692d0eb9e02cf81fb387ff891f53840db2f3110a",
      "tree": "0e6aa42d81cd47c55de37b55d2ffad419fe57cd0",
      "parents": [
        "9c47008d13add50ec4597a8b9eee200c515282c8"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Apr 09 00:27:13 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Apr 09 00:27:13 2009 +0100"
      },
      "message": "dm: remove limited barrier support\n\nPrepare for full barrier implementation: first remove the restricted support.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "9c47008d13add50ec4597a8b9eee200c515282c8",
      "tree": "debd8ebb2fef2687d4548a177505ec30bda95503",
      "parents": [
        "577c9c456f0e1371cbade38eaf91ae8e8a308555"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Thu Apr 09 00:27:12 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Apr 09 00:27:12 2009 +0100"
      },
      "message": "dm: add integrity support\n\nThis patch provides support for data integrity passthrough in the device\nmapper.\n\n - If one or more component devices support integrity an integrity\n   profile is preallocated for the DM device.\n\n - If all component devices have compatible profiles the DM device is\n   flagged as capable.\n\n - Handle integrity metadata when splitting and cloning bios.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "577c9c456f0e1371cbade38eaf91ae8e8a308555",
      "tree": "f03b42e6d2bd60d984761d7773450698d2bd2fc1",
      "parents": [
        "1551260d1f0fb1d23f264582092b862fce5e2dbd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:25:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:25:01 2009 -0700"
      },
      "message": "Linux 2.6.30-rc1\n"
    },
    {
      "commit": "1551260d1f0fb1d23f264582092b862fce5e2dbd",
      "tree": "d06a0d20c74adda44a78bc2dc9a3e3016de380d6",
      "parents": [
        "c93f216b5b985a12a18323e5ca2eb01db3d2f000",
        "5e34437840d33554f69380584311743b39e8fbeb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:11:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:11:07 2009 -0700"
      },
      "message": "Merge branch \u0027core/softlockup\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core/softlockup\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  softlockup: make DETECT_HUNG_TASK default depend on DETECT_SOFTLOCKUP\n  softlockup: move \u0027one\u0027 to the softlockup section in sysctl.c\n  softlockup: ensure the task has been switched out once\n  softlockup: remove timestamp checking from hung_task\n  softlockup: convert read_lock in hung_task to rcu_read_lock\n  softlockup: check all tasks in hung_task\n  softlockup: remove unused definition for spawn_softlockup_task\n  softlockup: fix potential race in hung_task when resetting timeout\n  softlockup: fix to allow compiling with !DETECT_HUNG_TASK\n  softlockup: decouple hung tasks check from softlockup detection\n"
    },
    {
      "commit": "c93f216b5b985a12a18323e5ca2eb01db3d2f000",
      "tree": "45fa35b290005f8b241dd76b6342875b81432fc3",
      "parents": [
        "c61b79b6ef266890954213a701d8f6021d8c1289",
        "ab3c9c686e22ab264269337ce7b75d9760211198"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:10:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:10:10 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  branch tracer, intel-iommu: fix build with CONFIG_BRANCH_TRACER\u003dy\n  branch tracer: Fix for enabling branch profiling makes sparse unusable\n  ftrace: Correct a text align for event format output\n  Update /debug/tracing/README\n  tracing/ftrace: alloc the started cpumask for the trace file\n  tracing, x86: remove duplicated #include\n  ftrace: Add check of sched_stopped for probe_sched_wakeup\n  function-graph: add proper initialization for init task\n  tracing/ftrace: fix missing include string.h\n  tracing: fix incorrect return type of ns2usecs()\n  tracing: remove CALLER_ADDR2 from wakeup tracer\n  blktrace: fix pdu_len when tracing packet command requests\n  blktrace: small cleanup in blk_msg_write()\n  blktrace: NUL-terminate user space messages\n  tracing: move scripts/trace/power.pl to scripts/tracing/power.pl\n"
    },
    {
      "commit": "c61b79b6ef266890954213a701d8f6021d8c1289",
      "tree": "9b000a7dae5a782a0d667137ab43e4f1bea70d58",
      "parents": [
        "2b2ec7554cf7ec5e4412f89a5af6abe8ce950700",
        "9efe21cb82b5dbe3b0b2ae4de4eccc64ecb94e95"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:07:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:07:52 2009 -0700"
      },
      "message": "Merge branch \u0027irq/threaded\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq/threaded\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: fix devres.o build for GENERIC_HARDIRQS\u003dn\n  genirq: provide old request_irq() for CONFIG_GENERIC_HARDIRQ\u003dn\n  genirq: threaded irq handlers review fixups\n  genirq: add support for threaded interrupts to devres\n  genirq: add threaded interrupt handler support\n"
    },
    {
      "commit": "2b2ec7554cf7ec5e4412f89a5af6abe8ce950700",
      "tree": "373355d53c547896ec1fbc8486311efa37dbd18e",
      "parents": [
        "8e2c4f2844c0e8dcdfe312e5f2204854ca8532c6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 07 14:02:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:07:03 2009 -0700"
      },
      "message": "NFS: Fix the return value in nfs_page_mkwrite()\n\nCommit c2ec175c39f62949438354f603f4aa170846aabb (\"mm: page_mkwrite\nchange prototype to match fault\") exposed a bug in the NFS\nimplementation of page_mkwrite.  We should be returning 0 on success...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e2c4f2844c0e8dcdfe312e5f2204854ca8532c6",
      "tree": "f846fcbf6b756b76834e06e412a8248bbfb55b32",
      "parents": [
        "6a5d263866d699ebf6843105497afc86ee53de5b",
        "72800360fdd782eda3489e555adf3b6b3abc064a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 11:24:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 11:24:19 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:\n  PCI: pci_slot: grab refcount on slot\u0027s bus\n  PCI Hotplug: acpiphp: grab refcount on p2p subordinate bus\n  PCI: allow PCI core hotplug to remove PCI root bus\n  PCI: Fix oops in pci_vpd_truncate\n  PCI: don\u0027t corrupt enable_cnt when doing manual resource alignment\n  PCI: annotate pci_rescan_bus as __ref, not __devinit\n  PCI-IOV: fix missing kernel-doc\n  PCI: Setup disabled bridges even if buses are added\n  PCI: SR-IOV quirk for Intel 82576 NIC\n"
    },
    {
      "commit": "6a5d263866d699ebf6843105497afc86ee53de5b",
      "tree": "439195e272631908cdc2e3e44abaf7e1c3447157",
      "parents": [
        "aeeae86859f4319de0a4946b44771d9926eeed54",
        "ffcd7dca3ab78f9f425971756e5e90024157f6be"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 11:06:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 11:06:41 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  loop: mutex already unlocked in loop_clr_fd()\n  cfq-iosched: don\u0027t let idling interfere with plugging\n  block: remove unused REQ_UNPLUG\n  cfq-iosched: kill two unused cfqq flags\n  cfq-iosched: change dispatch logic to deal with single requests at the time\n  mflash: initial support\n  cciss: change to discover first memory BAR\n  cciss: kernel scan thread for MSA2012\n  cciss: fix residual count for block pc requests\n  block: fix inconsistency in I/O stat accounting code\n  block: elevator quiescing helpers\n"
    },
    {
      "commit": "aeeae86859f4319de0a4946b44771d9926eeed54",
      "tree": "2a9520601922a930259a18b666dc2281e8262def",
      "parents": [
        "985c0cd3f75b5a546ceab002e36b4263f2f7d2c3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 07:59:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 09:05:35 2009 -0700"
      },
      "message": "Fix build errors due to CONFIG_BRANCH_TRACER\u003dy\n\nThe code that enables branch tracing for all (non-constant) branches\nplays games with the preprocessor and #define\u0027s the C \u0027if ()\u0027 construct\nto do tracing.\n\nThat\u0027s all fine, but it fails for some unusual but valid C code that is\nsometimes used in macros, notably by the intel-iommu code:\n\n\tif (i\u003ddrhd-\u003eiommu, drhd-\u003eignored) ..\n\nbecause now the preprocessor complains about multiple arguments to the\n\u0027if\u0027 macro.\n\nSo make the macro expansion of this particularly horrid trick use\nvarargs, and handle the case of comma-expressions in if-statements.  Use\nanother macro to do it cleanly in just one place.\n\nThis replaces a patch by David (and acked by Steven) that did this all\ninside that one already-too-horrid macro.\n\nTested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "985c0cd3f75b5a546ceab002e36b4263f2f7d2c3",
      "tree": "7097c68df6679aabab79ede8daa6c0299d98d63e",
      "parents": [
        "81d91acf8c093565f65383ae0349b9255fbb2d0d",
        "d6648da122870ff42bc720da25483bdb8bc868f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:54:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:54:43 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.30\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6\n\n* \u0027for-2.6.30\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6:\n  ASoC: TWL4030: Compillation error fix\n"
    },
    {
      "commit": "81d91acf8c093565f65383ae0349b9255fbb2d0d",
      "tree": "4e72f779a88ab87b76afb3fb16adf053e7044071",
      "parents": [
        "132ea5e9aa9ce13f62ba45db8e43ec887d1106e9",
        "0dd7b0cbb2e426553f184f5aeba40a2203f33700"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:53:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:53:38 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (36 commits)\n  ALSA: hda - Add VREF powerdown sequence for another board\n  ALSA: oss - volume control for CSWITCH and CROUTE\n  ALSA: hda - add missing comma in ad1884_slave_vols\n  sound: usb-audio: allow period sizes less than 1 ms\n  sound: usb-audio: save data packet interval in audioformat structure\n  sound: usb-audio: remove check_hw_params_convention()\n  sound: usb-audio: show sample format width in proc file\n  ASoC: fsl_dma: Pass the proper device for dma mapping routines\n  ASoC: Fix null dereference in ak4535_remove()\n  ALSA: hda - enable SPDIF output for Intel DX58SO board\n  ALSA: snd-atmel-abdac: increase periods_min to 6 instead of 4\n  ALSA: snd-atmel-abdac: replace bus_id with dev_name()\n  ALSA: snd-atmel-ac97c: replace bus_id with dev_name()\n  ALSA: snd-atmel-ac97c: cleanup registers when removing driver\n  ALSA: snd-atmel-ac97c: do a proper reset of the external codec\n  ALSA: snd-atmel-ac97c: enable interrupts to catch events for error reporting\n  ALSA: snd-atmel-ac97c: set correct size for buffer hardware parameter\n  ALSA: snd-atmel-ac97c: do not overwrite OCA and ICA when assigning channels\n  ALSA: snd-atmel-ac97c: remove dead break statements after return in switch case\n  ALSA: snd-atmel-ac97c: cleanup register definitions\n  ...\n"
    },
    {
      "commit": "132ea5e9aa9ce13f62ba45db8e43ec887d1106e9",
      "tree": "417d93c83ccaa205efab507df56fc985242ba0ae",
      "parents": [
        "0e26da0f2200a2fb51844aaa43e365ea9dd5a93d",
        "cae5a29d3c4ec7c4214966021c9ee827e66bd67b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:53:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:53:02 2009 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:\n  sata_mv: shorten register names\n  sata_mv: workaround errata SATA#13\n  sata_mv: cosmetic renames\n  sata_mv: workaround errata SATA#26\n  sata_mv: workaround errata PCI#7\n  sata_mv: replace 0x1f with ATA_PIO4 (v2)\n  sata_mv: fix irq mask races\n  sata_mv: revert SoC irq breakage\n  libata: ahci enclosure management bios workaround\n  ata: Add TRIM infrastructure\n  ata_piix: VGN-BX297XP wants the controller power up on suspend\n  libata: Remove some redundant casts from pata_octeon_cf.c\n  pata_artop: typo\n"
    },
    {
      "commit": "0e26da0f2200a2fb51844aaa43e365ea9dd5a93d",
      "tree": "73409a696901934da5f6df976c6521d3e50e8749",
      "parents": [
        "10a0d912898ac2fe49094acf2c1339d0fb4c2bc6",
        "65de394df21f8ccc61525f77b0e4ee6940a0932e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:45:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:45:12 2009 -0700"
      },
      "message": "Merge branch \u0027i2c-for-2630-v2\u0027 of git://aeryn.fluff.org.uk/bjdooks/linux\n\n* \u0027i2c-for-2630-v2\u0027 of git://aeryn.fluff.org.uk/bjdooks/linux:\n  i2c: imx: Make disable_delay a per-device variable\n  i2c: xtensa s6000 i2c driver\n  powerpc/85xx: i2c-mpc: use new I2C bindings for the Socates board\n  i2c: i2c-mpc: make I2C bus speed configurable\n  i2c: i2c-mpc: use dev based printout function\n  i2c: i2c-mpc: various coding style fixes\n  i2c: imx: Add missing request_mem_region in probe()\n  i2c: i2c-s3c2410: Initialise Samsung I2C controller early\n  i2c-s3c2410: Simplify bus frequency calculation\n  i2c-s3c2410: sda_delay should be in ns, not clock ticks\n  i2c: iMX/MXC support\n"
    },
    {
      "commit": "10a0d912898ac2fe49094acf2c1339d0fb4c2bc6",
      "tree": "ca87b31c5b958599b313e40cc141748664687c51",
      "parents": [
        "51dcdfec6a274afc1c6fce180d582add9ff512c0",
        "2c03d07ad54db03b813bb98c469790c07ca9f5dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:44:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:44:43 2009 -0700"
      },
      "message": "Merge branch \u0027hwmon-for-linus\u0027 of git://jdelvare.pck.nerim.net/jdelvare-2.6\n\n* \u0027hwmon-for-linus\u0027 of git://jdelvare.pck.nerim.net/jdelvare-2.6:\n  hwmon: Add Asus ATK0110 support\n  hwmon: (lm95241) Convert to new-style i2c driver\n"
    },
    {
      "commit": "51dcdfec6a274afc1c6fce180d582add9ff512c0",
      "tree": "51442c7adc06f36977859e8133b645c6c42ea0c9",
      "parents": [
        "8e7d91c97570ba1a16c0b4f984c04f04f039a231"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue Apr 07 15:30:57 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:44:06 2009 -0700"
      },
      "message": "parport: Use the PCI IRQ if offered\n\nPCI parallel port devices can IRQ share so we should stop them hogging\nthe line and making a mess on modern PC systems.  We know the sharing\nside works as the PCMCIA driver has shared the parallel port IRQ for\nsome time.\n\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e7d91c97570ba1a16c0b4f984c04f04f039a231",
      "tree": "8ca4b3187f870f75d1f9c2c1f6c08c8cfd05f292",
      "parents": [
        "78d67b4046c243bea3ddc3c4ffd6f3764ce11929"
      ],
      "author": {
        "name": "Breno Leitao",
        "email": "leitao@linux.vnet.ibm.com",
        "time": "Tue Apr 07 16:53:48 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:44:06 2009 -0700"
      },
      "message": "tty: jsm cleanups\n\nHere are some cleanups, mainly removing unused variables and silly\ndeclarations.\n\nSigned-off-by: Breno Leitao \u003cleitao@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78d67b4046c243bea3ddc3c4ffd6f3764ce11929",
      "tree": "8204fe668b206cdc548dcc6fcf36d81ceae4ef66",
      "parents": [
        "51a2301e719e42b370bbb258c7ef6a7e7590b390"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Tue Apr 07 16:53:11 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:44:06 2009 -0700"
      },
      "message": "Adjust path to gpio headers\n\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51a2301e719e42b370bbb258c7ef6a7e7590b390",
      "tree": "9168f61012c06fd9a7286f850f55ad7e8ce08a56",
      "parents": [
        "718f041835f383780fd45b8424fffa586be6e1f7"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Tue Apr 07 16:52:49 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:44:06 2009 -0700"
      },
      "message": "KGDB_SERIAL_CONSOLE check for module\n\nDepend on KGDB_SERIAL_CONSOLE being set to N rather than !Y, since it can\nbe built as a module.\n\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "718f041835f383780fd45b8424fffa586be6e1f7",
      "tree": "75918604478753d6c5f17a6874087e871baed1f7",
      "parents": [
        "d307d36adeaa70074773b3e5eab8d7e1beb008a4"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Tue Apr 07 16:52:39 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:44:05 2009 -0700"
      },
      "message": "Change KCONFIG name\n\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d307d36adeaa70074773b3e5eab8d7e1beb008a4",
      "tree": "2a51257927be7c1a99ffb38b4752e0a4b56edc2a",
      "parents": [
        "6f95570e407d03c5140a220e054f9b18abdc7041"
      ],
      "author": {
        "name": "Sonic Zhang",
        "email": "sonic.zhang@analog.com",
        "time": "Tue Apr 07 16:52:26 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:44:05 2009 -0700"
      },
      "message": "tty: Blackin CTS/RTS\n\nBoth software emulated and hardware based CTS and RTS are enabled in\nserial driver.\n\nThe CTS RTS PIN connection on BF548 UART port is defined as a modem\ndevice not as a host device.  In order to test it under Linux, please\nnake a cross UART cable to exchange CTS and RTS signal.\n\nSigned-off-by: Sonic Zhang \u003csonic.zhang@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f95570e407d03c5140a220e054f9b18abdc7041",
      "tree": "d239c58f148bf0644ee38c86da0fdd36f204240d",
      "parents": [
        "1dcb884ca8048efb4ce2999d367c26369ab2227c"
      ],
      "author": {
        "name": "Sonic Zhang",
        "email": "sonic.zhang@analog.com",
        "time": "Tue Apr 07 16:51:15 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:44:05 2009 -0700"
      },
      "message": "Change hardware flow control from poll to interrupt driven\n\nOnly the CTS bit is affected.\n\nSigned-off-by: Sonic Zhang \u003csonic.zhang@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1dcb884ca8048efb4ce2999d367c26369ab2227c",
      "tree": "25f5a398e78dfbe3bfaf800133e54d92026b274e",
      "parents": [
        "05b363020decda179b51350bb9199a0c2ce3ef42"
      ],
      "author": {
        "name": "Christian Pellegrin",
        "email": "chripell@gmail.com",
        "time": "Tue Apr 07 16:48:51 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:44:05 2009 -0700"
      },
      "message": "Add support for the MAX3100 SPI UART.\n\n(akpm: queued pending confirmation of the new major number)\n\n[randy.dunlap@oracle.com: select SERIAL_CORE]\nSigned-off-by: Christian Pellegrin \u003cchripell@fsfe.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05b363020decda179b51350bb9199a0c2ce3ef42",
      "tree": "924c57681087130e47bcf75f881b4fafe407ce10",
      "parents": [
        "0c212603981abb9bb8fe4ed1eec521dc18be02b9"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue Apr 07 16:48:35 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:44:05 2009 -0700"
      },
      "message": "lanana: assign a device name and numbering for MAX3100\n\nThis is a low density serial port so needs a real major/minor\n\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0c212603981abb9bb8fe4ed1eec521dc18be02b9",
      "tree": "1230d3a89f8dc9a6a631c3aed2e7969648128223",
      "parents": [
        "6fd1af4cf98936f4034caf8f132c7826a6ffd0fa"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue Apr 07 16:48:27 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:44:05 2009 -0700"
      },
      "message": "serqt: initial clean up pass for tty side\n\nAvoid using port-\u003etty where possible (makes refcount fixing easier\nlater).\n\nRemove unused code (the ioctl path is not used if the device has\nmget/mset functions)\n\nRemove various un-needed typecasts and long names so it could read it to\ndo the changes.\n\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6fd1af4cf98936f4034caf8f132c7826a6ffd0fa",
      "tree": "08d898628d33527b441b26e7a59eb203fefad867",
      "parents": [
        "f786ddd285b4100909a013041d3eee1be9fac4db"
      ],
      "author": {
        "name": "Claudio Scordino",
        "email": "claudio@evidence.eu.com",
        "time": "Tue Apr 07 16:48:19 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:44:05 2009 -0700"
      },
      "message": "tty: Use the generic RS485 ioctl on CRIS\n\nUse the new general RS485 Linux data structure (introduced by Alan with\ncommit number c26c56c0f40e200e61d1390629c806f6adaffbcc) in the Cris\narchitecture too (currently, Cris still uses the old private data\nstructure instead of the new one).\n\nSigned-off-by: Claudio Scordino \u003cclaudio@evidence.eu.com\u003e\nTested-by: Hinko Kocevar \u003chinko.kocevar@cetrtapot.si\u003e\nTested-by: Janez Cufer \u003cjanez.cufer@cetrtapot.si\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f786ddd285b4100909a013041d3eee1be9fac4db",
      "tree": "def3e0438b223e20cb4cf412b5824e95b2a4181a",
      "parents": [
        "7bfac9ecf0585962fe13584f5cf526d8c8e76f17"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Apr 07 16:48:07 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:44:04 2009 -0700"
      },
      "message": "tty: Correct inline types for tty_driver_kref_get()\n\ntty_driver_kref_get() should be static inline and not extern inline\n(the latter even changed it\u0027s semantics in gcc \u003e\u003d 4.3).\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7bfac9ecf0585962fe13584f5cf526d8c8e76f17",
      "tree": "7e7c98311bb0d4c26e514b337216bbc8ade8d078",
      "parents": [
        "612392307cb09e49051225092cbbd7049bd8db93"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Apr 06 17:41:00 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:34:46 2009 -0700"
      },
      "message": "splice: fix deadlock in splicing to file\n\nThere\u0027s a possible deadlock in generic_file_splice_write(),\nsplice_from_pipe() and ocfs2_file_splice_write():\n\n - task A calls generic_file_splice_write()\n - this calls inode_double_lock(), which locks i_mutex on both\n   pipe-\u003einode and target inode\n - ordering depends on inode pointers, can happen that pipe-\u003einode is\n   locked first\n - __splice_from_pipe() needs more data, calls pipe_wait()\n - this releases lock on pipe-\u003einode, goes to interruptible sleep\n - task B calls generic_file_splice_write(), similarly to the first\n - this locks pipe-\u003einode, then tries to lock inode, but that is\n   already held by task A\n - task A is interrupted, it tries to lock pipe-\u003einode, but fails, as\n   it is already held by task B\n - ABBA deadlock\n\nFix this by explicitly ordering locks: the outer lock must be on\ntarget inode and the inner lock (which is later unlocked and relocked)\nmust be on pipe-\u003einode.  This is OK, pipe inodes and target inodes\nform two nonoverlapping sets, generic_file_splice_write() and friends\nare not called with a target which is a pipe.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nAcked-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "612392307cb09e49051225092cbbd7049bd8db93",
      "tree": "401a227d0fae219aae7b682bb613bb388b4a7682",
      "parents": [
        "e339ad31f59925b48a92ee3947692fdf9758b8c7"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:02:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:20 2009 -0700"
      },
      "message": "nilfs2: support nanosecond timestamp\n\nAfter a review of user\u0027s feedback for finding out other compatibility\nissues, I found nilfs improperly initializes timestamps in inode;\nCURRENT_TIME was used there instead of CURRENT_TIME_SEC even though nilfs\ndidn\u0027t have nanosecond timestamps on disk.  A few users gave us the report\nthat the tar program sometimes failed to expand symbolic links on nilfs,\nand it turned out to be the cause.\n\nInstead of applying the above displacement, I\u0027ve decided to support\nnanosecond timestamps on this occation.  Fortunetaly, a needless 64-bit\nfield was in the nilfs_inode struct, and I found it\u0027s available for this\npurpose without impact for the users.\n\nSo, this will do the enhancement and resolve the tar problem.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e339ad31f59925b48a92ee3947692fdf9758b8c7",
      "tree": "6bb85c43bfd100b0a220c788c654f2f74ca553e4",
      "parents": [
        "cece552074c591970353ad48308d65f110aeaf28"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:20 2009 -0700"
      },
      "message": "nilfs2: introduce secondary super block\n\nThe former versions didn\u0027t have extra super blocks.  This improves the\nweak point by introducing another super block at unused region in tail of\nthe partition.\n\nThis doesn\u0027t break disk format compatibility; older versions just ingore\nthe secondary super block, and new versions just recover it if it doesn\u0027t\nexist.  The partition created by an old mkfs may not have unused region,\nbut in that case, the secondary super block will not be added.\n\nThis doesn\u0027t make more redundant copies of the super block; it is a future\nwork.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cece552074c591970353ad48308d65f110aeaf28",
      "tree": "2dcca7913d38df89711504f5daeecccfedb5a3eb",
      "parents": [
        "c96fa464a567a2a8796009af0e79bc68af73f485"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:20 2009 -0700"
      },
      "message": "nilfs2: simplify handling of active state of segments\n\nwill reduce some lines of segment constructor.  Previously, the state was\ncomplexly controlled through a list of segments in order to keep\nconsistency in meta data of usage state of segments.  Instead, this\npresents ``calculated\u0027\u0027 active flags to userland cleaner program and stop\nmaintaining its real flag on disk.\n\nOnly by this fake flag, the cleaner cannot exactly know if each segment is\nreclaimable or not.  However, the recent extension of nilfs_sustat ioctl\nstruct (nilfs2-extend-nilfs_sustat-ioctl-struct.patch) can prevent the\ncleaner from reclaiming in-use segment wrongly.\n\nSo, now I can apply this for simplification.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c96fa464a567a2a8796009af0e79bc68af73f485",
      "tree": "5467fcdc2a4a64dfad3c5cb627451b6f7e76809b",
      "parents": [
        "458c5b0822a669d170fdb7bb16c9145f652ebe06"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:19 2009 -0700"
      },
      "message": "nilfs2: mark minor flag for checkpoint created by internal operation\n\nNilfs creates checkpoints even for garbage collection or metadata updates\nsuch as checkpoint mode change.  So, user often sees checkpoints created\nonly by such internal operations.\n\nThis is inconvenient in some situations.  For example, application that\nmonitors checkpoints and changes them to snapshots, will fall into an\ninfinite loop because it cannot distinguish internally created\ncheckpoints.\n\nThis patch solves this sort of problem by adding a flag to checkpoint for\nidentification.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "458c5b0822a669d170fdb7bb16c9145f652ebe06",
      "tree": "f2c53998492306a8aaf6d20ded229b69cba17348",
      "parents": [
        "e62687468588f47c32256e3c8c36157c40111b6e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:19 2009 -0700"
      },
      "message": "nilfs2: clean up sketch file\n\nThe sketch file is a file to mark checkpoints with user data.  It was\nexperimentally introduced in the original implementation, and now\nobsolete.  The file was handled differently with regular files; the file\nsize got truncated when a checkpoint was created.\n\nThis stops the special treatment and will treat it as a regular file.\nMost users are not affected because mkfs.nilfs2 no longer makes this file.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e62687468588f47c32256e3c8c36157c40111b6e",
      "tree": "00b9532341e606868567c03b8c3a631d0bf19b46",
      "parents": [
        "1f5abe7e7dbcd83e73212c6cb135a6106cea6a0b"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:55 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:19 2009 -0700"
      },
      "message": "nilfs2: super block operations fix endian bug\n\nThis adds a missing endian conversion of checksum field in the super\nblock.  This fixes compatibility issue on big endian machines which will\ncome to surface after supporting recovery of super block.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f5abe7e7dbcd83e73212c6cb135a6106cea6a0b",
      "tree": "f80e97297d5badebd31bbb17003d76a4ea30453a",
      "parents": [
        "2c2e52fc4fca251e68f90821c9ff5cb18be4df58"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:55 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:19 2009 -0700"
      },
      "message": "nilfs2: replace BUG_ON and BUG calls triggerable from ioctl\n\nPekka Enberg advised me:\n\u003e It would be nice if BUG(), BUG_ON(), and panic() calls would be\n\u003e converted to proper error handling using WARN_ON() calls. The BUG()\n\u003e call in nilfs_cpfile_delete_checkpoints(), for example, looks to be\n\u003e triggerable from user-space via the ioctl() system call.\n\nThis will follow the comment and keep them to a minimum.\n\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c2e52fc4fca251e68f90821c9ff5cb18be4df58",
      "tree": "fb0b86203bb5f4dda4d5907e29bd2b1b6cc0be90",
      "parents": [
        "7a9461939a46345860622ea36ff267ee4446f00f"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:19 2009 -0700"
      },
      "message": "nilfs2: extend nilfs_sustat ioctl struct\n\nThis adds a new argument to the nilfs_sustat structure.\n\nThe extended field allows to delete volatile active state of segments,\nwhich was needed to protect freshly-created segments from garbage\ncollection but has confused code dealing with segments.  This\nextension alleviates the mess and gives room for further\nsimplifications.\n\nThe volatile active flag is not persistent, so it\u0027s eliminable on this\noccasion without affecting compatibility other than the ioctl change.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a9461939a46345860622ea36ff267ee4446f00f",
      "tree": "5607ba81b9580e2979bcfb806d5b04f5fbfd53d9",
      "parents": [
        "8082d36aed26c4fb6ed43e4008303682eabf839e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:19 2009 -0700"
      },
      "message": "nilfs2: use unlocked_ioctl\n\nPekka Enberg suggested converting -\u003eioctl operations to use\n-\u003eunlocked_ioctl to avoid BKL.\n\nThe conversion was verified to be safe, so I will take it on this\noccasion.\n\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8082d36aed26c4fb6ed43e4008303682eabf839e",
      "tree": "d51eff46a3ebe29e0a445597570599b5b7c4a037",
      "parents": [
        "dc498d09be28172846cacded35ca2378222a8c7b"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:18 2009 -0700"
      },
      "message": "nilfs2: remove compat ioctl code\n\nThis removes compat code from the nilfs ioctls and applies the same\nfunction for both .ioctl and .compat_ioctl file operations.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dc498d09be28172846cacded35ca2378222a8c7b",
      "tree": "42b31073a0fb4eb74d6c09c2f4b9711262e97d2a",
      "parents": [
        "1088dcf4c3a0a27fdad5214781d5084b11405238"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:18 2009 -0700"
      },
      "message": "nilfs2: use fixed sized types for ioctl structures\n\nNilfs ioctl had structures not having fixed sized types such as:\n\n  struct nilfs_argv {\n         void *v_base;\n         size_t v_nmembs;\n         size_t v_size;\n         int v_index;\n         int v_flags;\n  };\n\nFurther, some of them are wrongly aligned:\n\n  e.g.\n\n  struct nilfs_cpmode {\n        __u64 cm_cno;\n        int cm_mode;\n  };\n\nThe size of wrongly aligned structures varies depending on\narchitectures, and it breaks the identity of ioctl commands, which\nleads to arch dependent errors.\n\nPreviously, these are compensated by using compat_ioctl.\n\nThis fixes these problems and allows removal of compat ioctl.\n\nSince this will change sizes of those structures, binary compatibility\nfor the past utilities will once break; new utilities have to be used\ninstead.  However, it would be helpful to avoid platform dependent\nproblems in the long term.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1088dcf4c3a0a27fdad5214781d5084b11405238",
      "tree": "4d08f45ff4867d629e5ad4e94e0362e897ffa1e1",
      "parents": [
        "76068c4ff1cc03d9d24d17fd9e6a1475bc2f6730"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:18 2009 -0700"
      },
      "message": "nilfs2: remove timedwait ioctl command\n\nThis removes NILFS_IOCTL_TIMEDWAIT command from ioctl interface along\nwith the related flags and wait queue.\n\nThe command is terrible because it just sleeps in the ioctl.  I prefer\nto avoid this by devising means of event polling in userland program.\nBy reconsidering the userland GC daemon, I found this is possible\nwithout changing behaviour of the daemon and sacrificing efficiency.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "76068c4ff1cc03d9d24d17fd9e6a1475bc2f6730",
      "tree": "b2f56fbca8e7680135da5c610bd13283d8377a7f",
      "parents": [
        "8acfbf0939e98cc77dab94c24899c9930ddd1e13"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:18 2009 -0700"
      },
      "message": "nilfs2: fix buggy behavior seen in enumerating checkpoints\n\nThis will fix the weird behavior of lscp command in listing continuously\ncreated checkpoints; the output of lscp is rewinded regularly for the\nrecent nilfs.  As a result of debugging, a defect was found in\nnilfs_cpfile_do_get_cpinfo() function.\n\nThough the function can be repeatedly called to enumerate checkpoints and\nit can skip invalid checkpoint entries, the index value was not carried\nbetween successive calls.\n\nThe bug has long been present, and came to surface after applying a bugfix\nnilfs2-fix-problems-of-memory-allocation-in-ioctl.patch, which increased\nfrequency of calling the function.  The similar bugfix was already applied\nfor ``snapshots\u0027\u0027 by\nnilfs2-fix-gc-failure-on-volumes-keeping-numerous-snapshots.patch.\n\nThis fixes the problem by making the index argument bidirectional on the\nfunction.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8acfbf0939e98cc77dab94c24899c9930ddd1e13",
      "tree": "0f261ee58584db9a89a874f85646ab827105143f",
      "parents": [
        "7fa10d20012296300dfe645cb3e628a4e9a0d5ef"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Apr 06 19:01:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:17 2009 -0700"
      },
      "message": "nilfs2: clean up indirect function calling conventions\n\nThis cleans up the strange indirect function calling convention used in\nnilfs to follow the normal kernel coding style.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7fa10d20012296300dfe645cb3e628a4e9a0d5ef",
      "tree": "d3678ad2cbfb41624af0058b7de1ee2d48b7334c",
      "parents": [
        "b028fcfc4cd198a6aa1ffcfb872073ccc1db3459"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:48 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:17 2009 -0700"
      },
      "message": "nilfs2: fix improper return values of nilfs_get_cpinfo ioctl\n\nA few tool developers gave me requests for fixing inconvenient return\nvalue of nilfs_get_cpinfo() ioctl; if the requested mode is NILFS_SNAPSHOT\nand the specified start entry is not a snapshot, the ioctl unnaturally\nreturns one as the number of acquired snapshot item.\n\nIn addition, the ioctl function returns an ENOENT error for checkpoints\nwithin blocks deleted by garbage collection.\n\nThese behaviors require corrections for programs which enumerate\nsnapshots.  This resolves the inconvenience by changing the return values\nto zero for the above cases.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b028fcfc4cd198a6aa1ffcfb872073ccc1db3459",
      "tree": "d6a89ba7cf253ab1738d5295f557b77e77ac4311",
      "parents": [
        "85ef9cea02882baedd1e65336cf3dd292841dde3"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:17 2009 -0700"
      },
      "message": "nilfs2: fix gc failure on volumes keeping numerous snapshots\n\nThis resolves the following failure of nilfs2 cleaner daemon:\n\n nilfs_cleanerd[20670]: cannot clean segments: No such file or directory\n nilfs_cleanerd[20670]: shutdown\n\nWhen creating thousands of snapshots, the cleaner daemon had rarely died\nas above due to an error returned from the kernel code.\n\nAfter applying the recent patch which fixed memory allocation problems in\nioctl (Message-Id: \u003c20081215.155840.105124170.ryusuke@osrg.net\u003e), the\nproblem gets more frequent.\n\nIt turned out to be a bug of nilfs_ioctl_wrap_copy function and one of its\ncallback routines to read out information of snapshots; if the\nnilfs_ioctl_wrap_copy function divided a large read request into multiple\nrequests, the second and later requests have failed since a restart\nposition on snapshot meta data was not properly set forward.\n\nIt\u0027s a deficiency of the callback interface that cannot pass the restart\nposition among multiple requests.  This patch fixes the issue by allowing\nnilfs_ioctl_wrap_copy and snapshot read functions to exchange a position\nargument.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85ef9cea02882baedd1e65336cf3dd292841dde3",
      "tree": "31c1c1b3c80fb3af68b5aeb26d56291b3a09b9e2",
      "parents": [
        "047180f2d7bf95ff5699ca04da639a7556e23435"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:17 2009 -0700"
      },
      "message": "nilfs2: add maintainer\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "047180f2d7bf95ff5699ca04da639a7556e23435",
      "tree": "28f66f0880426ffae01892df531e820064ff7f6f",
      "parents": [
        "47420c799830d4676e544dbec56b2a7f787528f5"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:17 2009 -0700"
      },
      "message": "nilfs2: insert explanations in gcinode file\n\nThe file gcinode.c gives buffer cache functions for on-disk blocks\nmoved in garbage collection.  Joern Engel has suggested inserting its\nexplanations in the source file (Message-ID:\n\u003c20080917144146.GD8750@logfs.org\u003e and\n\u003c20080917224953.GB14644@logfs.org\u003e).\n\nThis follows the comment.\n\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "47420c799830d4676e544dbec56b2a7f787528f5",
      "tree": "dd61f6c96942b07f762129c893d9cbbbeff60735",
      "parents": [
        "a2e7d2df82cafb76f76809ddf6e2caa8afe4f75e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:17 2009 -0700"
      },
      "message": "nilfs2: avoid double error caused by nilfs_transaction_end\n\nPekka Enberg pointed out that double error handlings found after\nnilfs_transaction_end() can be avoided by separating abort operation:\n\n OK, I don\u0027t understand this. The only way nilfs_transaction_end() can\n fail is if we have NILFS_TI_SYNC set and we fail to construct the\n segment. But why do we want to construct a segment if we don\u0027t commit?\n\n I guess what I\u0027m asking is why don\u0027t we have a separate\n nilfs_transaction_abort() function that can\u0027t fail for the erroneous\n case to avoid this double error value tracking thing?\n\nThis does the separation and renames nilfs_transaction_end() to\nnilfs_transaction_commit() for clarification.\n\nSince, some calls of these functions were used just for exclusion control\nagainst the segment constructor, they are replaced with semaphore\noperations.\n\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a2e7d2df82cafb76f76809ddf6e2caa8afe4f75e",
      "tree": "ac16ef25c4d3e4eaf55090b57035d292ec5bc9fb",
      "parents": [
        "3358b4aaa84fd4c1cdd64391875e92cbb8afeb29"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:17 2009 -0700"
      },
      "message": "nilfs2: cleanup nilfs_clear_inode\n\nThis will remove the following unnecessary locks and cleanup code in\nnilfs_clear_inode():\n\n- unnecessary protection using nilfs_transaction_begin() and\n  nilfs_transaction_end().\n\n- cleanup code of i_dirty list field which is never chained\n  when this function is called.\n\n- spinlock used when releasing i_bh field.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3358b4aaa84fd4c1cdd64391875e92cbb8afeb29",
      "tree": "4ae252a8b06715a57a76c8a645f44c3ce0066d9c",
      "parents": [
        "0c4fb877641c5c72d4a3ce8921a256bfe44055c0"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:16 2009 -0700"
      },
      "message": "nilfs2: fix problems of memory allocation in ioctl\n\nThis is another patch for fixing the following problems of a memory\ncopy function in nilfs2 ioctl:\n\n(1) It tries to allocate 128KB size of memory even for small objects.\n\n(2) Though the function repeatedly tries large memory allocations\n    while reducing the size, GFP_NOWAIT flag is not specified.\n    This increases the possibility of system memory shortage.\n\n(3) During the retries of (2), verbose warnings are printed\n    because _GFP_NOWARN flag is not used for the kmalloc calls.\n\nThe first patch was still doing large allocations by kmalloc which are\nrepeatedly tried while reducing the size.\n\nAndi Kleen told me that using copy_from_user for large memory is not\ngood from the viewpoint of preempt latency:\n\n On Fri, 12 Dec 2008 21:24:11 +0100, Andi Kleen \u003candi@firstfloor.org\u003e wrote:\n \u003e \u003e In the current interface, each data item is copied twice: one is to\n \u003e \u003e the allocated memory from user space (via copy_from_user), and another\n \u003e\n \u003e For such large copies it is better to use multiple smaller (e.g. 4K)\n \u003e copy user, that gives better real time preempt latencies. Each cfu has a\n \u003e cond_resched(), but only one, not multiple times in the inner loop.\n\nHe also advised me that:\n\n On Sun, 14 Dec 2008 16:13:27 +0100, Andi Kleen \u003candi@firstfloor.org\u003e wrote:\n \u003e Better would be if you could go to PAGE_SIZE. order 0 allocations\n \u003e are typically the fastest / least likely to stall.\n \u003e\n \u003e Also in this case it\u0027s a good idea to use __get_free_pages()\n \u003e directly, kmalloc tends to be become less efficient at larger\n \u003e sizes.\n\nFor the function in question, the size of buffer memory can be reduced\nsince the buffer is repeatedly used for a number of small objects.  On\nthe other hand, it may incur large preempt latencies for larger buffer\nbecause a copy_from_user (and a copy_to_user) was applied only once\neach cycle.\n\nWith that, this revision uses the order 0 allocations with\n__get_free_pages() to fix the original problems.\n\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0c4fb877641c5c72d4a3ce8921a256bfe44055c0",
      "tree": "496ab331abe225266beabac80f1172b866ef2a15",
      "parents": [
        "7942b919f7321f95a777d396ff7894a7a83dc9b0"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:16 2009 -0700"
      },
      "message": "nilfs2: update makefile and Kconfig\n\nThis adds a Makefile for the nilfs2 file system, and updates the\nmakefile and Kconfig file in the file system directory.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7942b919f7321f95a777d396ff7894a7a83dc9b0",
      "tree": "60c63349788f8776c3ecd9ac1e02edc2c7f8769e",
      "parents": [
        "a3d93f709e893187d301aa5458b2248db9f22bd1"
      ],
      "author": {
        "name": "Koji Sato",
        "email": "sato.koji@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:16 2009 -0700"
      },
      "message": "nilfs2: ioctl operations\n\nThis adds userland interface implemented with ioctl.\n\nSigned-off-by: Koji Sato \u003csato.koji@lab.ntt.co.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3d93f709e893187d301aa5458b2248db9f22bd1",
      "tree": "9097bf495de11ebac7853c0007a2f3a67fab876b",
      "parents": [
        "84ef1ecfdea2f9f1e740a4bee0fa9cd629bdda70"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:16 2009 -0700"
      },
      "message": "nilfs2: block cache for garbage collection\n\nThis adds the cache of on-disk blocks to be moved in garbage\ncollection.  The disk blocks are held with dummy inodes (called\ngcinodes), and this file provides lookup function of the dummy inodes,\nand their buffer read function.\n\nSigned-off-by: Seiji Kihara \u003ckihara.seiji@lab.ntt.co.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Yoshiji Amagai \u003camagai.yoshiji@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84ef1ecfdea2f9f1e740a4bee0fa9cd629bdda70",
      "tree": "80535e6fab2d3033eeb16f32ba6a0a1f614564db",
      "parents": [
        "0f3e1c7f23f8a6f8224fa1d275381f6d9279ad4b"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:16 2009 -0700"
      },
      "message": "nilfs2: another dat for garbage collection\n\nNILFS2 uses another DAT inode during garbage collection to ensure\natomicity and consistency of the DAT in the transient state.  This\ntwin inode is called GCDAT.\n\nThis adds functions to initialize the GCDAT and to switch page caches\nand B-tree node caches between these two inodes.\n\nSigned-off-by: Seiji Kihara \u003ckihara.seiji@lab.ntt.co.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Yoshiji Amagai \u003camagai.yoshiji@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f3e1c7f23f8a6f8224fa1d275381f6d9279ad4b",
      "tree": "b46181f8caa65d3b829acadd644b44afd465cd63",
      "parents": [
        "f30bf3e40f80ef50c17f55271deae3abc03e793e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:16 2009 -0700"
      },
      "message": "nilfs2: recovery functions\n\nThis adds recovery function on mount.\n\nUsually the recovery is achieved by just finding the latest super\nroot.  When logs without checkpoints were appended for data sync\noperations after the latest super root, the recovery function will\nperform roll forwarding and reconstruct new log(s) with a super root.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f30bf3e40f80ef50c17f55271deae3abc03e793e",
      "tree": "2e6d69611d1443688c1a79c5e5aed60cf38672e7",
      "parents": [
        "9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:15 2009 -0700"
      },
      "message": "nilfs2: fix missed-sync issue for do_sync_mapping_range()\n\nChris Mason pointed out that there is a missed sync issue in\nnilfs_writepages():\n\nOn Wed, 17 Dec 2008 21:52:55 -0500, Chris Mason wrote:\n\u003e It looks like nilfs_writepage ignores WB_SYNC_NONE, which is used by\n\u003e do_sync_mapping_range().\n\nwhere WB_SYNC_NONE in do_sync_mapping_range() was replaced with\nWB_SYNC_ALL by Nick\u0027s patch (commit:\nee53a891f47444c53318b98dac947ede963db400).\n\nThis fixes the problem by letting nilfs_writepages() write out the log of\nfile data within the range if sync_mode is WB_SYNC_ALL.\n\nThis involves removal of nilfs_file_aio_write() which was previously\nneeded to ensure O_SYNC sync writes.\n\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453",
      "tree": "056c7bdc2395c8baf77bc63a54a1f747cbf5b650",
      "parents": [
        "64b5a32e0b3680a9655b3f2e668a646068e71d33"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:15 2009 -0700"
      },
      "message": "nilfs2: segment constructor\n\nThis adds the segment constructor (also called log writer).\n\nThe segment constructor collects dirty buffers for every dirty inode,\nmakes summaries of the buffers, assigns disk block addresses to the\nbuffers, and then submits BIOs for the buffers.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64b5a32e0b3680a9655b3f2e668a646068e71d33",
      "tree": "f4b97cde4f593a55fef4f754ea1e16a28cdf9f38",
      "parents": [
        "783f61843e9d14724f5f79ae955a28c27e300467"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:15 2009 -0700"
      },
      "message": "nilfs2: segment buffer\n\nThis adds the segment buffer which is used to constuct logs.\n\n[akpm@linux-foundation.org: BIO_RW_SYNC got removed]\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "783f61843e9d14724f5f79ae955a28c27e300467",
      "tree": "7b424994eb39f238a93cafc805372a322f80cb9e",
      "parents": [
        "8a9d2191e9f43bbcd256a9a6871bd73434c83f2f"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:15 2009 -0700"
      },
      "message": "nilfs2: super block operations\n\nThis adds super block operations for the nilfs2 file system.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8a9d2191e9f43bbcd256a9a6871bd73434c83f2f",
      "tree": "e2c8967703c3f2bf15dcfbe78eafdfe0c328c3c4",
      "parents": [
        "d25006523d0b9e49fd097b2e974e7c8c05bd7f54"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:15 2009 -0700"
      },
      "message": "nilfs2: operations for the_nilfs core object\n\nThis adds functions on the_nilfs object, which keeps shared resources and\nstates among a read/write mount and snapshots mounts going individually.\n\nthe_nilfs is allocated per block device; it is created when user first\nmount a snapshot or a read/write mount on the device, then it is reused\nfor successive mounts.  It will be freed when all mount instances on the\ndevice are detached.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d25006523d0b9e49fd097b2e974e7c8c05bd7f54",
      "tree": "ff251f5854012ba8b6000745a24d50eda7e3dbd8",
      "parents": [
        "2ba466d74ed74f073257f86e61519cb8f8f46184"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:15 2009 -0700"
      },
      "message": "nilfs2: pathname operations\n\nThis adds pathname operations, most of which comes from the ext2 file\nsystem.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ba466d74ed74f073257f86e61519cb8f8f46184",
      "tree": "716b990b7ae70198eef9ba6f54dfb0e9fd8547be",
      "parents": [
        "f183ff4f05317b7929337455b233496f68217c1a"
      ],
      "author": {
        "name": "Yoshiji Amagai",
        "email": "amagai.yoshiji@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:15 2009 -0700"
      },
      "message": "nilfs2: directory entry operations\n\nThis adds directory handling functions, most of which comes from the ext2\nfile system.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Yoshiji Amagai \u003camagai.yoshiji@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f183ff4f05317b7929337455b233496f68217c1a",
      "tree": "46db0219720683f00f0566f50bafe0da1143d02e",
      "parents": [
        "05fe58fdc10df9ebea04c0eaed57adc47af5c184"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:14 2009 -0700"
      },
      "message": "nilfs2: file operations\n\nThis adds primitives for regular file handling.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05fe58fdc10df9ebea04c0eaed57adc47af5c184",
      "tree": "04fbeb7b48e6362ec11e14631b1f42eb74b9c865",
      "parents": [
        "6c98cd4ecb0ae35f0368c5c2190712689c2064aa"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:14 2009 -0700"
      },
      "message": "nilfs2: inode operations\n\nThis adds inode level operations of the nilfs2 file system.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c98cd4ecb0ae35f0368c5c2190712689c2064aa",
      "tree": "5d8fae2ce980cae3a97e0e88068527ce5937a8df",
      "parents": [
        "29619809727a4e524e26dbd7bfdc93ff7f50aa74"
      ],
      "author": {
        "name": "Koji Sato",
        "email": "sato.koji@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:14 2009 -0700"
      },
      "message": "nilfs2: segment usage file\n\nThis adds a meta data file which stores the allocation state of segments.\n\n[konishi.ryusuke@lab.ntt.co.jp: fix wrong counting of checkpoints and dirty segments]\nSigned-off-by: Koji Sato \u003csato.koji@lab.ntt.co.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29619809727a4e524e26dbd7bfdc93ff7f50aa74",
      "tree": "2c765d9a5d122bc66c5d01079eeadae4edf61a24",
      "parents": [
        "43bfb45ed4feace26157778889be55e4046b7a4b"
      ],
      "author": {
        "name": "Koji Sato",
        "email": "sato.koji@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:14 2009 -0700"
      },
      "message": "nilfs2: checkpoint file\n\nThis adds a meta data file which holds checkpoint entries in its data\nblocks.\n\nSigned-off-by: Koji Sato \u003csato.koji@lab.ntt.co.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43bfb45ed4feace26157778889be55e4046b7a4b",
      "tree": "248958c79a8ed0ff5057c8aeffb1ebd39a6abbcf",
      "parents": [
        "a17564f58b11476c011d623fa1f268602a81c27c"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:14 2009 -0700"
      },
      "message": "nilfs2: inode map file\n\nThis adds a meta data file which stores on-disk inodes in its data blocks.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Yoshiji Amagai \u003camagai.yoshiji@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a17564f58b11476c011d623fa1f268602a81c27c",
      "tree": "c0122f0db61a20783ac32121dc549b1a17d0e4e5",
      "parents": [
        "5442680fd23abc01f29af585cc1a2f793bd74565"
      ],
      "author": {
        "name": "Koji Sato",
        "email": "sato.koji@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:14 2009 -0700"
      },
      "message": "nilfs2: disk address translator\n\nThis adds the disk address translation file (DAT) whose primary function\nis to convert virtual disk block numbers to actual disk block numbers.\n\nThe virtual block numbers of NILFS are associated with checkpoint\ngeneration numbers, and this file also provides functions to manage the\nlifetime information of each virtual block number.\n\nSigned-off-by: Koji Sato \u003csato.koji@lab.ntt.co.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5442680fd23abc01f29af585cc1a2f793bd74565",
      "tree": "ecc3231149c4f0d422443cab2f4df60ba3a3ca03",
      "parents": [
        "5eb563f5f299a2ed488d9eb52acede45ccb14c7b"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:13 2009 -0700"
      },
      "message": "nilfs2: persistent object allocator\n\nThis adds common functions to allocate or deallocate entries with bitmaps\non a meta data file.  This feature is used by the DAT and ifile.\n\nSigned-off-by: Koji Sato \u003csato.koji@lab.ntt.co.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Yoshiji Amagai \u003camagai.yoshiji@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5eb563f5f299a2ed488d9eb52acede45ccb14c7b",
      "tree": "965243b138a7beb5f8e2700160903a051e0510de",
      "parents": [
        "0bd49f9446130a6a3914eb07b54db489e3222b34"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:13 2009 -0700"
      },
      "message": "nilfs2: meta data file\n\nThis adds the meta data file, which serves common buffer functions to the\nDAT, sufile, cpfile, ifile, and so forth.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0bd49f9446130a6a3914eb07b54db489e3222b34",
      "tree": "5122a227c9cb1cfe92a74c53baf1bb7ca7053435",
      "parents": [
        "a60be987d45dd510aeb54389526f9957cfab106c"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:13 2009 -0700"
      },
      "message": "nilfs2: buffer and page operations\n\nThis adds common routines for buffer/page operations used in B-tree\nnode caches, meta data files, or segment constructor (log writer).\n\nNILFS uses copy functions for buffers and pages due to the following\nreasons:\n\n 1) Relocation required for COW\n    Since NILFS changes address of on-disk blocks, moving buffers\n    in page cache is needed for the buffers which are not addressed\n    by a file offset.  If buffer size is smaller than page size,\n    this involves partial copy of pages.\n\n 2) Freezing mmapped pages\n    NILFS calculates checksums for each log to ensure its validity.\n    If page data changes after the checksum calculation, this validity\n    check will not work correctly.  To avoid this failure for mmaped\n    pages, NILFS freezes their data by copying.\n\n 3) Copy-on-write for DAT pages\n    NILFS makes clones of DAT page caches in a copy-on-write manner\n    during GC processes, and this ensures atomicity and consistency\n    of the DAT in the transient state.\n\nIn addition, NILFS uses two obsolete functions, nilfs_mark_buffer_dirty()\nand nilfs_clear_page_dirty() respectively.\n\n* nilfs_mark_buffer_dirty() was required to avoid NULL pointer\n  dereference faults:\n\n  Since the page cache of B-tree node pages or data page cache of pseudo\n  inodes does not have a valid mapping-\u003ehost, calling mark_buffer_dirty()\n  for their buffers causes the fault; it calls __mark_inode_dirty(NULL)\n  through __set_page_dirty().\n\n* nilfs_clear_page_dirty() was needed in the two cases:\n\n 1) For B-tree node pages and data pages of the dat/gcdat, NILFS2 clears\n    page dirty flags when it copies back pages from the cloned cache\n    (gcdat-\u003e{i_mapping,i_btnode_cache}) to its original cache\n    (dat-\u003e{i_mapping,i_btnode_cache}).\n\n 2) Some B-tree operations like insertion or deletion may dispose buffers\n    in dirty state, and this needs to cancel the dirty state of their\n    pages.  clear_page_dirty_for_io() caused faults because it does not\n    clear the dirty tag on the page cache.\n\nSigned-off-by: Seiji Kihara \u003ckihara.seiji@lab.ntt.co.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a60be987d45dd510aeb54389526f9957cfab106c",
      "tree": "ffe680785f1f7d4e4096cd211e37bcfeaccafc63",
      "parents": [
        "36a580eb489f54d81a0534974962e732a314b999"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:13 2009 -0700"
      },
      "message": "nilfs2: B-tree node cache\n\nThis adds routines for B-tree node buffers.\n\nSigned-off-by: Seiji Kihara \u003ckihara.seiji@lab.ntt.co.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "36a580eb489f54d81a0534974962e732a314b999",
      "tree": "bf28d0b13c4187b11c58822bc49a87453d83f877",
      "parents": [
        "17c76b0104e4a6513983777e1a17e0297a12b0c4"
      ],
      "author": {
        "name": "Koji Sato",
        "email": "sato.koji@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:13 2009 -0700"
      },
      "message": "nilfs2: direct block mapping\n\nThis adds block mappings using direct pointers which are stored in the\ni_bmap array of inode.\n\nSigned-off-by: Koji Sato \u003csato.koji@lab.ntt.co.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "17c76b0104e4a6513983777e1a17e0297a12b0c4",
      "tree": "49b145378f5004401f71a7aa8d8cb3f149e77f0f",
      "parents": [
        "bdb265eae08db578e7cf5739be16f389d495fc75"
      ],
      "author": {
        "name": "Koji Sato",
        "email": "sato.koji@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:13 2009 -0700"
      },
      "message": "nilfs2: B-tree based block mapping\n\nThis adds declarations and functions of NILFS2 B-tree.\n\nTwo variants are integrated in the NILFS2 B-tree.  The B-tree for the most\nfiles points to the child nodes or data blocks with virtual block\naddresses, whereas the B-tree of the DAT uses actual block addresses.\n\nSigned-off-by: Koji Sato \u003csato.koji@lab.ntt.co.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bdb265eae08db578e7cf5739be16f389d495fc75",
      "tree": "34f3b37b067504b945e851ef2a8ead07347a27df",
      "parents": [
        "65b4643d3babeb203fa9571d12fd5e1bf74d27b0"
      ],
      "author": {
        "name": "Koji Sato",
        "email": "sato.koji@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:13 2009 -0700"
      },
      "message": "nilfs2: integrated block mapping\n\nThis adds structures and operations for the block mapping (bmap for\nshort).  NILFS2 uses direct mappings for short files or B-tree based\nmappings for longer files.\n\nEvery on-disk data block is held with inodes and managed through this\nblock mapping.  The nilfs_bmap structure and a set of functions here\nprovide this capability to the NILFS2 inode.\n\n[penberg@cs.helsinki.fi: remove a bunch of bmap wrapper macros]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Koji Sato \u003csato.koji@lab.ntt.co.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "65b4643d3babeb203fa9571d12fd5e1bf74d27b0",
      "tree": "b9371b765ca1f52c8c7ba046f7cffea92e2bc722",
      "parents": [
        "eed10e39b142eb4d284c8e4c751c0eaaa0bcd707"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:12 2009 -0700"
      },
      "message": "nilfs2: add inode and other major structures\n\nThis adds the following common structures of the NILFS2 file system.\n\n* nilfs_inode_info structure:\n  gives on-memory inode.\n\n* nilfs_sb_info structure:\n  keeps per-mount state and a special inode for the ifile.\n  This structure is attached to the super_block structure.\n\n* the_nilfs structure:\n  keeps shared state and locks among a read/write mount and snapshot\n  mounts.  This keeps special inodes for the sufile, cpfile, dat, and\n  another dat inode used during GC (gcdat).  This also has a hash table\n  of dummy inodes to cache disk blocks during GC (gcinodes).\n\n* nilfs_transaction_info structure:\n  keeps per task state while nilfs is writing logs or doing indivisible\n  inode or namespace operations.  This structure is used to identify\n  context during log making and store nest level of the lock which\n  ensures atomicity of file system operations.\n\nSigned-off-by: Koji Sato \u003csato.koji@lab.ntt.co.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eed10e39b142eb4d284c8e4c751c0eaaa0bcd707",
      "tree": "c6bf0e8f72f19dc21b16e083ef6dec091da69309",
      "parents": [
        "962281a7ab3aeb97eed004b8f0bdb0979cf35347"
      ],
      "author": {
        "name": "Koji Sato",
        "email": "sato.koji@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:12 2009 -0700"
      },
      "message": "nilfs2: disk format and userland interface\n\nThis adds a header file which specifies the on-disk format and ioctl\ninterface of the nilfs2 file system.\n\nSigned-off-by: Koji Sato \u003csato.koji@lab.ntt.co.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "962281a7ab3aeb97eed004b8f0bdb0979cf35347",
      "tree": "600628383553d807f4151d93a21d5cfd70389de3",
      "parents": [
        "2c5510d4e84988ea95f86488d1e23244284bc1ed"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:12 2009 -0700"
      },
      "message": "nilfs2: add document\n\nThis adds a document describing the features, mount options, userland\ntools, usage, disk format, and related URLs for the nilfs2 file system.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c5510d4e84988ea95f86488d1e23244284bc1ed",
      "tree": "1eeedfd703c3d48b6da4552ee227d94a85f822b9",
      "parents": [
        "2f4f27d42a301ed147e50c2edbcd27bb8990bc8e"
      ],
      "author": {
        "name": "Yang Hongyang",
        "email": "yanghy@cn.fujitsu.com",
        "time": "Mon Apr 06 19:01:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:12 2009 -0700"
      },
      "message": "dma-mapping: update the old macro DMA_nBIT_MASK related documentations\n\nUpdate the old macro DMA_nBIT_MASK related documentations\n\nSigned-off-by: Yang Hongyang\u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f4f27d42a301ed147e50c2edbcd27bb8990bc8e",
      "tree": "48d3ddb39d97bd7b9a176395c5a97b0001b2b84c",
      "parents": [
        "ce0b620160e6d15a7f5b4b00cd7b8bd956d427d1"
      ],
      "author": {
        "name": "Yang Hongyang",
        "email": "yanghy@cn.fujitsu.com",
        "time": "Mon Apr 06 19:01:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:12 2009 -0700"
      },
      "message": "dma-mapping: replace all DMA_24BIT_MASK macro with DMA_BIT_MASK(24)\n\nReplace all DMA_24BIT_MASK macro with DMA_BIT_MASK(24)\n\nSigned-off-by: Yang Hongyang\u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce0b620160e6d15a7f5b4b00cd7b8bd956d427d1",
      "tree": "f459e0a141eb65ad56517c12ad78c779608dee1d",
      "parents": [
        "28b767967763835d8526f6baedc25a8a86052640"
      ],
      "author": {
        "name": "Yang Hongyang",
        "email": "yanghy@cn.fujitsu.com",
        "time": "Mon Apr 06 19:01:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:12 2009 -0700"
      },
      "message": "dma-mapping: replace all DMA_28BIT_MASK macro with DMA_BIT_MASK(28)\n\nReplace all DMA_28BIT_MASK macro with DMA_BIT_MASK(28)\n\nSigned-off-by: Yang Hongyang\u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28b767967763835d8526f6baedc25a8a86052640",
      "tree": "32dc0df187bd1906bf49f47ecbdda60d21b5c124",
      "parents": [
        "929a22a558429bd22001d6b41cf31c233c68a5e2"
      ],
      "author": {
        "name": "Yang Hongyang",
        "email": "yanghy@cn.fujitsu.com",
        "time": "Mon Apr 06 19:01:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:11 2009 -0700"
      },
      "message": "dma-mapping: replace all DMA_30BIT_MASK macro with DMA_BIT_MASK(30)\n\nReplace all DMA_30BIT_MASK macro with DMA_BIT_MASK(30)\n\nSigned-off-by: Yang Hongyang\u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "929a22a558429bd22001d6b41cf31c233c68a5e2",
      "tree": "f0bb2140393d5434a423e924d262453dab76c011",
      "parents": [
        "284901a90a9e0b812ca3f5f852cbbfb60d10249d"
      ],
      "author": {
        "name": "Yang Hongyang",
        "email": "yanghy@cn.fujitsu.com",
        "time": "Mon Apr 06 19:01:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:11 2009 -0700"
      },
      "message": "dma-mapping: replace all DMA_31BIT_MASK macro with DMA_BIT_MASK(31)\n\nReplace all DMA_31BIT_MASK macro with DMA_BIT_MASK(31)\n\nSigned-off-by: Yang Hongyang\u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "284901a90a9e0b812ca3f5f852cbbfb60d10249d",
      "tree": "06c1b5a0f83c90cfb662f756e7781977ce739ce8",
      "parents": [
        "6afd142fd0dfba497246d0fab236c20a7b4bf778"
      ],
      "author": {
        "name": "Yang Hongyang",
        "email": "yanghy@cn.fujitsu.com",
        "time": "Mon Apr 06 19:01:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:11 2009 -0700"
      },
      "message": "dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32)\n\nReplace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32)\n\nSigned-off-by: Yang Hongyang\u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6afd142fd0dfba497246d0fab236c20a7b4bf778",
      "tree": "f45bf4da587d94acfa1aa1fd35b611d8828689bc",
      "parents": [
        "50cf156af7dc68a44409bef636585ef88ebbab34"
      ],
      "author": {
        "name": "Yang Hongyang",
        "email": "yanghy@cn.fujitsu.com",
        "time": "Mon Apr 06 19:01:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:11 2009 -0700"
      },
      "message": "dma-mapping: replace all DMA_39BIT_MASK macro with DMA_BIT_MASK(39)\n\nReplace all DMA_39BIT_MASK macro with DMA_BIT_MASK(39)\n\nSigned-off-by: Yang Hongyang\u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "50cf156af7dc68a44409bef636585ef88ebbab34",
      "tree": "a70e4a9ad805904f6e98bf654d6de7a55fe77e98",
      "parents": [
        "e911e0d9af90e4f1b4f2cf183a0993f9fed9f9c6"
      ],
      "author": {
        "name": "Yang Hongyang",
        "email": "yanghy@cn.fujitsu.com",
        "time": "Mon Apr 06 19:01:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:10 2009 -0700"
      },
      "message": "dma-mapping: replace all DMA_40BIT_MASK macro with DMA_BIT_MASK(40)\n\nReplace all DMA_40BIT_MASK macro with DMA_BIT_MASK(40)\n\nSigned-off-by: Yang Hongyang\u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e911e0d9af90e4f1b4f2cf183a0993f9fed9f9c6",
      "tree": "6478614da94bd8f709d45c6d47983fe9345bb6be",
      "parents": [
        "6a35528a8346f6e6fd32ed7e51f04d1fa4ca2c01"
      ],
      "author": {
        "name": "Yang Hongyang",
        "email": "yanghy@cn.fujitsu.com",
        "time": "Mon Apr 06 19:01:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:10 2009 -0700"
      },
      "message": "dma-mapping: replace all DMA_48BIT_MASK macro with DMA_BIT_MASK(48)\n\nReplace all DMA_48BIT_MASK macro with DMA_BIT_MASK(48)\n\nSigned-off-by: Yang Hongyang\u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6a35528a8346f6e6fd32ed7e51f04d1fa4ca2c01",
      "tree": "9caaf8645b573687bbcf3a16b5aa7dd233fed46e",
      "parents": [
        "8a59f5d2526593c6bc1a0754c3a16ccc9ed41ce3"
      ],
      "author": {
        "name": "Yang Hongyang",
        "email": "yanghy@cn.fujitsu.com",
        "time": "Mon Apr 06 19:01:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:10 2009 -0700"
      },
      "message": "dma-mapping: replace all DMA_64BIT_MASK macro with DMA_BIT_MASK(64)\n\nReplace all DMA_64BIT_MASK macro with DMA_BIT_MASK(64)\n\nSigned-off-by: Yang Hongyang\u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8a59f5d2526593c6bc1a0754c3a16ccc9ed41ce3",
      "tree": "e6704cc22d5069db4d3e86537fe7099df932d325",
      "parents": [
        "bdc8e5f85f9abe2e7c78dcf39d81f9a97178788b"
      ],
      "author": {
        "name": "Coly Li",
        "email": "coly.li@suse.de",
        "time": "Mon Apr 06 19:01:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:10 2009 -0700"
      },
      "message": "fs/romfs: return f_fsid for statfs(2)\n\nMake romfs return f_fsid info for statfs(2).\n\nSigned-off-by: Coly Li \u003ccoly.li@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bdc8e5f85f9abe2e7c78dcf39d81f9a97178788b",
      "tree": "a25a9d10f3686c4cb309d2477376ee585322ef43",
      "parents": [
        "7eafd7c74c3f2e67c27621b987b28397110d643f"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Apr 06 19:01:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:09 2009 -0700"
      },
      "message": "namespaces: mqueue namespace: adapt sysctl\n\nLargely inspired from ipc/ipc_sysctl.c.  This patch isolates the mqueue\nsysctl stuff in its own file.\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7eafd7c74c3f2e67c27621b987b28397110d643f",
      "tree": "b4621aab78b6303f20386096c230b993044a4db7",
      "parents": [
        "614b84cf4e4a920d2af32b8f147ea1e3b8c27ea6"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Apr 06 19:01:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:09 2009 -0700"
      },
      "message": "namespaces: ipc namespaces: implement support for posix msqueues\n\nImplement multiple mounts of the mqueue file system, and link it to usage\nof CLONE_NEWIPC.\n\nEach ipc ns has a corresponding mqueuefs superblock.  When a user does\nclone(CLONE_NEWIPC) or unshare(CLONE_NEWIPC), the unshare will cause an\ninternal mount of a new mqueuefs sb linked to the new ipc ns.\n\nWhen a user does \u0027mount -t mqueue mqueue /dev/mqueue\u0027, he mounts the\nmqueuefs superblock.\n\nPosix message queues can be worked with both through the mq_* system calls\n(see mq_overview(7)), and through the VFS through the mqueue mount.  Any\nusage of mq_open() and friends will work with the acting task\u0027s ipc\nnamespace.  Any actions through the VFS will work with the mqueuefs in\nwhich the file was created.  So if a user doesn\u0027t remount mqueuefs after\nunshare(CLONE_NEWIPC), mq_open(\"/ab\") will not be reflected in \"ls\n/dev/mqueue\".\n\nIf task a mounts mqueue for ipc_ns:1, then clones task b with a new ipcns,\nipcns:2, and then task a is the last task in ipc_ns:1 to exit, then (1)\nipc_ns:1 will be freed, (2) it\u0027s superblock will live on until task b\numounts the corresponding mqueuefs, and vfs actions will continue to\nsucceed, but (3) sb-\u003es_fs_info will be NULL for the sb corresponding to\nthe deceased ipc_ns:1.\n\nTo make this happen, we must protect the ipc reference count when\n\na) a task exits and drops its ipcns-\u003ecount, since it might be dropping\n   it to 0 and freeing the ipcns\n\nb) a task accesses the ipcns through its mqueuefs interface, since it\n   bumps the ipcns refcount and might race with the last task in the ipcns\n   exiting.\n\nSo the kref is changed to an atomic_t so we can use\natomic_dec_and_lock(\u0026ns-\u003ecount,mq_lock), and every access to the ipcns\nthrough ns \u003d mqueuefs_sb-\u003es_fs_info is protected by the same lock.\n\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "614b84cf4e4a920d2af32b8f147ea1e3b8c27ea6",
      "tree": "52478e38cd400042bd89f123c4101c95943ae492",
      "parents": [
        "909e6d94795654040ed416ac69858d5d2ce66dd3"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Apr 06 19:01:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:09 2009 -0700"
      },
      "message": "namespaces: mqueue ns: move mqueue_mnt into struct ipc_namespace\n\nMove mqueue vfsmount plus a few tunables into the ipc_namespace struct.\nThe CONFIG_IPC_NS boolean and the ipc_namespace struct will serve both the\nposix message queue namespaces and the SYSV ipc namespaces.\n\nThe sysctl code will be fixed separately in patch 3.  After just this\npatch, making a change to posix mqueue tunables always changes the values\nin the initial ipc namespace.\n\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "909e6d94795654040ed416ac69858d5d2ce66dd3",
      "tree": "c0d873c341e3419c3bb54cffd964bbe850bbb4ab",
      "parents": [
        "7ce5ba3c7ef26284f60babbe4465259d1f9968f3"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Apr 06 19:01:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:09 2009 -0700"
      },
      "message": "namespaces: move proc_net_get_sb to a generic fs/super.c helper\n\nThe mqueuefs filesystem will use this helper as well.  Proc\u0027s main get_sb\ncould also be made to use it, but that will require a bit more rework.\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "7ce5ba3c7ef26284f60babbe4465259d1f9968f3"
}
