)]}'
{
  "log": [
    {
      "commit": "a54bfa40fd16aeb90bc556189221576f746f8567",
      "tree": "176bb7a99ffab5f42f0dd4e9671f335be3f3efa0",
      "parents": [
        "fe957c40ec5e2763b9977c565beab3bde3aaf85b",
        "134ffb4cad92a6aa534e55a9be145bca780a32c1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 16 17:35:26 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 16 17:35:26 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "83400207a07584539366f6859362db6872809a12",
      "tree": "fad187f8b3bebf1b387ec42ef8143e6f4e49a256",
      "parents": [
        "0d489ffb76de0fe804cf06a9d4d11fa7342d74b9",
        "80a04d3f2f94fb68b5df05e3ac6697130bc3467a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 13 14:41:05 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 13 14:41:05 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n\nConflicts:\n\tMAINTAINERS\n"
    },
    {
      "commit": "80a04d3f2f94fb68b5df05e3ac6697130bc3467a",
      "tree": "792449152961db67e4a2855af4518db55822ff64",
      "parents": [
        "eebb2afb82c4f999e850d198af26ce6969d0f47a",
        "2810ae8c73cbfb37891aa99dfbca46ffd40dbc91"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 12:20:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 12:20:01 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes:\n  docbook: make cleandocs\n  kbuild: fix spurious initramfs rebuild\n  Documentation: explain the difference between __bitwise and __bitwise__\n  kbuild: make it possible for the linker to discard local symbols from vmlinux\n  kbuild: remove pointless strdup() on arguments passed to new_module() in modpost\n  kbuild: fix a few typos in top-level Makefile\n  kbuild: introduce destination-y for exported headers\n  kbuild: use git svn instead of git-svn in setlocalversion\n  kconfig: fix update-po-config to accect backslash in input\n  kbuild: fix option processing for -I in headerdep\n"
    },
    {
      "commit": "b534d388c268ad051c72b187106a3c99021be006",
      "tree": "ccfe40792b52366ce237c2043256d28916a0122e",
      "parents": [
        "c751085943362143f84346d274e0011419c84202",
        "ba28f22e7cf16cb310bb491cbb3f7d0d5d1f5c5d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 11:37:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 11:37:23 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (22 commits)\n  Input: i8042 - add HP DV9700 to the noloop list\n  Input: arrange drivers/input/misc/Makefile in alphabetical order\n  Input: add AD7879 Touchscreen driver\n  Input: add AD7877 touchscreen driver\n  Input: bf54x-keys - fix typo in warning\n  Input: add driver for S1 button of rb532\n  Input: generic driver for rotary encoders on GPIOs\n  Input: hilkbd - fix crash when removing hilkbd module\n  Input: atkbd - add quirk for Fujitsu Siemens Amilo PA 1510\n  Input: atkbd - consolidate force release quirk setup\n  Input: add accelerated touchscreen support for Marvell Zylonite\n  Input: ucb1400_ts, mainstone-wm97xx - add BTN_TOUCH events\n  Input: wm97xx - use disable_irq_nosync() for Mainstone\n  Input: wm97xx - add BTN_TOUCH event to wm97xx to use it with Android\n  Input: fix polling of /proc/bus/input/devices\n  Input: psmouse - add newline to OLPC HGPK touchpad debugging\n  Input: ati_remote2 - check module params\n  Input: ati_remote2 - add per device attrs\n  Input: ati_remote2 - complete suspend support\n  Input: stop autorepeat timer on key release\n  ...\n"
    },
    {
      "commit": "3f307fb37a6dd65b7eabda9c6208a9bd161dc16e",
      "tree": "a097ee54792ecd396a5a87b1095f47c0895b8b8d",
      "parents": [
        "c454dee21d589476608957ca4f57feaabde62fab"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Apr 13 17:02:13 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Apr 13 17:02:13 2009 +0200"
      },
      "message": "i2c-voodoo3: Deprecate in favor of tdfxfb\n\nSupport for I2C/DDC was recently added to the tdfxfb driver, which\nmeans that the i2c-voodoo3 driver can be deprecated.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\n"
    },
    {
      "commit": "5a31bec014449dc9ca994e4c1dbf2802b7ca458a",
      "tree": "53bacdda4c451bc8ed59bbd0f43e8f466ff93759",
      "parents": [
        "9ca046d57412361ac4d220b96fed7fb932616d85"
      ],
      "author": {
        "name": "Brian Haley",
        "email": "brian.haley@hp.com",
        "time": "Mon Apr 13 00:11:30 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 13 00:12:41 2009 -0700"
      },
      "message": "Bonding: fix zero address hole bug in arp_ip_target list\n\nFix a zero address hole bug in the bonding arp_ip_target list\nthat was causing the bond to ignore ARP replies (bugz 13006).\nInstead of just setting the array entry to zero, we now\ncopy any additional entries down one slot, putting the\nzero entry at the end.  With this change we can now have\nall the loops that walk the array stop when they hit a zero\nsince there will be no addresses after it.\n\nChanges are based in part on code fragment provided in kernel:\nbugzilla 13006:\n\n\thttp://bugzilla.kernel.org/show_bug.cgi?id\u003d13006\n\nby Steve Howard \u003csteve@astutenetworks.com\u003e\n\nSigned-off-by: Brian Haley \u003cbrian.haley@hp.com\u003e\nSigned-off-by: Jay Vosburgh \u003cfubar@us.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2810ae8c73cbfb37891aa99dfbca46ffd40dbc91",
      "tree": "e61ec1501544b0af6a16d6bf09452029b27d334e",
      "parents": [
        "9e5ec8615209f6a5bf2a612120d972b6021790da"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri Apr 10 14:20:54 2009 -0700"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Sat Apr 11 08:18:12 2009 +0200"
      },
      "message": "docbook: make cleandocs\n\nAdd a \u0027make cleandocs\u0027 target to clean up all generated\nDocBook files.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\n"
    },
    {
      "commit": "20375bf82567b5fecd331048c6cc1fc292b67710",
      "tree": "1dc36f316f8e8d27d282f6cea6cf5adc97531b65",
      "parents": [
        "5d7d18f5bc507b60d3d8967e2739d5e6ffdd630f"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Fri Apr 10 13:18:08 2009 +0200"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Sat Apr 11 08:18:11 2009 +0200"
      },
      "message": "Documentation: explain the difference between __bitwise and __bitwise__\n\nSimply added explanation from Al Viro in the following mail:\nhttp://lkml.indiana.edu/hypermail/linux/kernel/0802.2/3164.html\n\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc:  Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\n"
    },
    {
      "commit": "c7bb349e7c25df1ae1bbb72675b9bb02e1d9c464",
      "tree": "a406b9af934e7541a9c000a74419e1ba09664c7e",
      "parents": [
        "4774bb1ced60a94d83b28e5a42d4cf01b83d9b60"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Fri Apr 10 08:52:43 2009 +0200"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Sat Apr 11 08:18:08 2009 +0200"
      },
      "message": "kbuild: introduce destination-y for exported headers\n\nxtensa and arm have asked for a possibility to export headers\nand locate them in a specific directory when exported.\nIntroduce destiantion-y to support this.\n\nThis patch in additiona adds some limited\ndocumentation for the variables used for exported headers.\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Oskar Schirmer \u003cos@emlix.com\u003e\nCc: Mikael Starvik \u003cmikael.starvik@axis.com\u003e\n"
    },
    {
      "commit": "0534c8cb5c8a8a954751fa01eef7831a475a9ec5",
      "tree": "1ba3037634378966a78a35bbdec66b384fbff20d",
      "parents": [
        "54f93b74cf8c575bb89f9bf32a40a39b83ace1e9",
        "07306c0b98a9a0399bff1b91229b4c3b55912189"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 09 16:42:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 09 16:42:26 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:\n  RDMA/nes: Add support for new SFP+ PHY\n  RDMA/nes: Add wide_ppm_offset parm for switch compatibility\n  RDMA/nes: Fix SFP+ PHY initialization\n  RDMA/nes: Fix nes_nic_cm_xmit() error handling\n  RDMA/nes: Fix error handling issues\n  RDMA/nes: Fix incorrect casts on 32-bit architectures\n  IPoIB: Document newish features\n  RDMA/cma: Create cm id even when IB port is down\n  RDMA/cma: Use rate from IPoIB broadcast when joining IPoIB multicast groups\n  IPoIB: Avoid free_netdev() BUG when destroying a child interface\n  mlx4_core: Don\u0027t leak mailbox for SET_PORT on Ethernet ports\n  RDMA/cxgb3: Release dependent resources only when endpoint memory is freed.\n  RDMA/cxgb3: Handle EEH events\n  IB/mlx4: Use pgprot_writecombine() for BlueFlame pages\n"
    },
    {
      "commit": "c2ea122cd7c4a094be71641f3961796398035513",
      "tree": "7150db3e27a078c8a4183964a882bb15ba9f3f64",
      "parents": [
        "17b2e9bf27d417bc186cc922b4d6d5eaa048f9d8",
        "66bb74888eb4bef4ba7c87c931ecb7ecca3a240c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 09 10:37:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 09 10:37:46 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  tracing: consolidate documents\n  blktrace: pass the right pointer to kfree()\n  tracing/syscalls: use a dedicated file header\n  tracing: append a comma to INIT_FTRACE_GRAPH\n"
    },
    {
      "commit": "66bb74888eb4bef4ba7c87c931ecb7ecca3a240c",
      "tree": "567e333523e16ba7285deac89efb645f72a97529",
      "parents": [
        "9eb85125ce218a8b8d9a7c982510388e227adbec"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 09 11:40:27 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 09 07:28:10 2009 +0200"
      },
      "message": "tracing: consolidate documents\n\nMove kmemtrace.txt, tracepoints.txt, ftrace.txt and mmiotrace.txt to\nthe new trace/ directory.\n\nI didnt find any references to those documents in both source\nfiles and documents, so no extra work needs to be done.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nLKML-Reference: \u003c49DD6E2B.6090200@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a0c31fdfb7f158780faa43ab83cc08b414bebd7e",
      "tree": "b30c2f8fcafa8261ccf02aab03e6e5b502c49b5d",
      "parents": [
        "8509500ac4c82c1e31515ffda6028f88693f49fd"
      ],
      "author": {
        "name": "Tilman Schmidt",
        "email": "tilman@imap.cc",
        "time": "Wed Apr 08 16:01:16 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 08 16:01:16 2009 -0700"
      },
      "message": "ISDN: update Documentation/isdn/00-INDEX\n\nAfter the merging of mISDN, state which files refer only to the\nold isdn4linux subsystem. Also add a few missing files and sort\nalphabetically.\n\nSigned-off-by: Tilman Schmidt \u003ctilman@imap.cc\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6a3335b43342b42dd6c69b4bbbde15d622cb49ca",
      "tree": "c2ec24376c3f3bac9b76c09373444bcea64a5062",
      "parents": [
        "edb5abb1e2a84fd8802a3577d95eac84fe1405ab"
      ],
      "author": {
        "name": "Or Gerlitz",
        "email": "ogerlitz@voltaire.com",
        "time": "Wed Apr 08 13:52:01 2009 -0700"
      },
      "committer": {
        "name": "Roland Dreier",
        "email": "rolandd@cisco.com",
        "time": "Wed Apr 08 13:52:01 2009 -0700"
      },
      "message": "IPoIB: Document newish features\n\nUpdate the documentation to include connected mode, stateless offloads\nand interrupt moderation, and add a reference to the connected mode RFC.\n\nSigned-off-by: Or Gerlitz \u003cogerlitz@voltaire.com\u003e\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\n"
    },
    {
      "commit": "5af8c4e0fac9838428bd718040b664043a05f37c",
      "tree": "75a01d98ed244db45fe3c734c4a81c1a3d92ac37",
      "parents": [
        "46e0bb9c12f4bab539736f1714cbf16600f681ec",
        "577c9c456f0e1371cbade38eaf91ae8e8a308555"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 08 17:25:42 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 08 17:26:00 2009 +0200"
      },
      "message": "Merge commit \u0027v2.6.30-rc1\u0027 into sched/urgent\n\nMerge reason: update to latest upstream to queue up fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ba28f22e7cf16cb310bb491cbb3f7d0d5d1f5c5d",
      "tree": "6d58e91731385281436da191e82c56cd1627482f",
      "parents": [
        "577c9c456f0e1371cbade38eaf91ae8e8a308555",
        "59cc1dd97ca9ac0363ef2f770901fbd86e2b970a"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 08 00:00:33 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 08 00:00:33 2009 -0700"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\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": "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": "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": "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": "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": "7ce5ba3c7ef26284f60babbe4465259d1f9968f3",
      "tree": "c484e2f08884fd1251afcd86e658263468f24c0c",
      "parents": [
        "d88ca815b5b3534ed2dae123ba0bf366861f850c"
      ],
      "author": {
        "name": "Michal Januszewski",
        "email": "spock@gentoo.org",
        "time": "Mon Apr 06 19:01:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:09 2009 -0700"
      },
      "message": "uvesafb: documentation update\n\nUpdate the uvesafb documentation to accurately reflect the default options\nused by the driver.\n\nSigned-off-by: Michal Januszewski \u003cspock@gentoo.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f9b15286a8ea49e997e845d02d357ed33ebd090",
      "tree": "e6d2905679a938a92982ff48994f1623c6a87031",
      "parents": [
        "de5bd88d5a5cce3cacea904d3503e5ebdb3852a2"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 06 19:01:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:08 2009 -0700"
      },
      "message": "kprobes: support kretprobe and jprobe per-probe disabling\n\nAdd disable/enable_kretprobe() and disable/enable_jprobe().\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.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"
    },
    {
      "commit": "de5bd88d5a5cce3cacea904d3503e5ebdb3852a2",
      "tree": "da24ac8b38d371ee03a21ed0f3647c518689ebd3",
      "parents": [
        "e579abeb58eb4b8d7321c6eb44dd9e2d0cbaebaa"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 06 19:01:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:08 2009 -0700"
      },
      "message": "kprobes: support per-kprobe disabling\n\nAdd disable_kprobe() and enable_kprobe() to disable/enable kprobes\ntemporarily.\n\ndisable_kprobe() asynchronously disables probe handlers of specified\nkprobe.  So, after calling it, some handlers can be called at a while.\nenable_kprobe() enables specified kprobe.\n\naggr_pre_handler and aggr_post_handler check disabled probes.  On the\nother hand aggr_break_handler and aggr_fault_handler don\u0027t check it\nbecause these handlers will be called while executing pre or post handlers\nand usually those help error handling.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.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"
    },
    {
      "commit": "3bcfa9e47a7d1be6faef3be6c4b2049e585e2f38",
      "tree": "7cc0896fb4ee501fb08560adc1747b7e5a7544cf",
      "parents": [
        "6260a4b0521a41189b2c2a8119096c1e21dbdf2c"
      ],
      "author": {
        "name": "Herbert Valerio Riedel",
        "email": "hvr@gnu.org",
        "time": "Mon Apr 06 19:00:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:03 2009 -0700"
      },
      "message": "hwmon: add support for GMT G760A fan speed PWM controller\n\nThis controller can be found on the D-Link DNS-323 for instance, where\nit is to be configured via static i2c_board_info in the board-specific\nmach-orion/dns323-setup.c; this driver supports only the new-style\ndriver model.\n\nTested-by: Martin Michlmayr \u003ctbm@cyrius.com\u003e\nSigned-off-by: Herbert Valerio Riedel \u003chvr@gnu.org\u003e\nSigned-off-by: Matthew Palmer \u003cmpalmer@debian.org\u003e\nSigned-off-by: Laurie Bradshaw \u003cbradshaw.laurie@googlemail.com\u003e\nSigned-off-by: Martin Michlmayr \u003ctbm@cyrius.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fafd688e4c0c34da0f3de909881117d374e4c7af",
      "tree": "5c61d499b96d78f5b56507a5d34af0ccd7c69060",
      "parents": [
        "a56ed663047fc9927ec8b35750d23ece54f85dc7"
      ],
      "author": {
        "name": "Peter W Morreale",
        "email": "pmorreale@novell.com",
        "time": "Mon Apr 06 19:00:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:03 2009 -0700"
      },
      "message": "mm: add /proc controls for pdflush threads\n\nAdd /proc entries to give the admin the ability to control the minimum and\nmaximum number of pdflush threads.  This allows finer control of pdflush\non both large and small machines.\n\nThe rationale is simply one size does not fit all.  Admins on large and/or\nsmall systems may want to tune the min/max pdflush thread count to best\nsuit their needs.  Right now the min/max is hardcoded to 2/8.  While\nprobably a fair estimate for smaller machines, large machines with large\nnumbers of CPUs and large numbers of filesystems/block devices may benefit\nfrom larger numbers of threads working on different block devices.\n\nEven if the background flushing algorithm is radically changed, it is\nstill likely that multiple threads will be involved and admins would still\ndesire finer control on the min/max other than to have to recompile the\nkernel.\n\nThe patch adds \u0027/proc/sys/vm/nr_pdflush_threads_min\u0027 and\n\u0027/proc/sys/vm/nr_pdflush_threads_max\u0027 with r/w permissions.\n\nThe minimum value for nr_pdflush_threads_min is 1 and the maximum value is\nthe current value of nr_pdflush_threads_max.  This minimum is required\nsince additional thread creation is performed in a pdflush thread itself.\n\nThe minimum value for nr_pdflush_threads_max is the current value of\nnr_pdflush_threads_min and the maximum value can be 1000.\n\nDocumentation/sysctl/vm.txt is also updated.\n\n[akpm@linux-foundation.org: fix comment, fix whitespace, use __read_mostly]\nSigned-off-by: Peter W Morreale \u003cpmorreale@novell.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3fbed4c61abd8458896e38633d10110cb5a589d4",
      "tree": "6024567b36cc26c4d6fddef59fab222651310dec",
      "parents": [
        "e143858104e318263689c551543dfc3f186cea12"
      ],
      "author": {
        "name": "unsik Kim",
        "email": "donari75@gmail.com",
        "time": "Thu Apr 02 12:50:58 2009 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 07 08:12:38 2009 +0200"
      },
      "message": "mflash: initial support\n\nThis driver supports mflash IO mode for linux.\n\nMflash is embedded flash drive and mainly targeted mobile and consumer\nelectronic devices.\n\nInternally, mflash has nand flash and other hardware logics and supports 2\ndifferent operation (ATA, IO) modes.  ATA mode doesn\u0027t need any new driver\nand currently works well under standard IDE subsystem.  Actually it\u0027s one\nchip SSD.  IO mode is ATA-like custom mode for the host that doesn\u0027t have\nIDE interface.\n\nFollowings are brief descriptions about IO mode.\nA. IO mode based on ATA protocol and uses some custom command. (read confirm,\nwrite confirm)\nB. IO mode uses SRAM bus interface.\nC. IO mode supports 4kB boot area, so host can boot from mflash.\n\nThis driver is quitely similar to a standard ATA driver, but because of\nfollowing reasons it is currently seperated with ATA layer.\n\n1. ATA layer deals standard ATA protocol.  ATA layer have many low-\n   level device specific interface, but data transfer keeps ATA rule.\n   But, mflash IO mode doesn\u0027t.\n\n2. Even though currently not used in mflash driver code, mflash has\n   some custom command and modes.  (nand fusing, firmware patch, etc) If\n   this feature supported in linux kernel, ATA layer more altered.\n\n3. Currently PATA platform device driver doesn\u0027t support interrupt.\n   (I\u0027m not sure) But, mflash uses interrupt (polling mode is just for\n   debug).\n\n4. mflash is somewhat under-develop product.  Even though some company\n   already using mflash their own product, I think more time is needed for\n   standardization of custom command and mode.  That time (maybe October)\n   I will talk to with ATA people.  If they accept integration, I will\n   integrate.\n\nSigned-off-by: unsik Kim \u003cdonari75@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4ef4327b30957a16619ac7d47c749465e62de8c3",
      "tree": "5c80e853f0d9eadd01b2019d03d2432334393c5e",
      "parents": [
        "3989203290fba6fdf6bc4825fbf6526e1bf17977",
        "a938b8c5be8fe5c28800c9cef4aa43d569aa57a8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 18:08:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 18:11:41 2009 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (120 commits)\n  cx231xx: Convert to snd_card_create()\n  V4L/DVB (11440): PWC: fix build error when CONFIG_INPUT\u003dm\n  V4L/DVB (11439): UVC: uvc_status_cleanup(): undefined reference to `input_unregister_device\u0027\n  V4L/DVB (11438): au0828: fix Kconfig dependance\n  V4L/DVB (11437): pvrusb2: Drop client_register/unregister stubs\n  V4L/DVB (11436): radio-mr800: convert to to v4l2_device\n  V4L/DVB (11435): dsbr100 radio: convert to to v4l2_device\n  V4L/DVB: zr364xx: remove unused #include \u003cversion.h\u003e\n  V4L/DVB: usbvision: remove unused #include \u003cversion.h\u003e\n  V4L/DVB (11427): gspca - m5602: Minor cleanups\n  V4L/DVB (11426): gspca - m5602: Don\u0027t touch hflip/vflip register on Read/Modify/Write\n  V4L/DVB (11425): gspca - m5602: Move the vflip quirk to probe stage.\n  V4L/DVB (11424): gspca - m5602-ov9650: Use the local ctrl cache. Adjust image on vflip.\n  V4L/DVB (11423): gspca - m5602-ov9650: Add a disconnect hook, setup a ctrl cache ctrl.\n  V4L/DVB (11422): gspca - m5602-ov9650: Replace a magic constant with a define\n  V4L/DVB (11421): gspca - m5602-ov9650: Synthesize modesetting.\n  V4L/DVB (11420): gspca - m5602: Improve error handling in the ov9650 driver\n  V4L/DVB (11419): gspca - m5602-ov9650: Don\u0027t read exposure data from COM1.\n  V4L/DVB (11418): gspca - m5602-ov9650: Auto white balancing is on by default\n  V4L/DVB (11417): gspca - m5602-ov9650: Autogain is on by default\n  ...\n"
    },
    {
      "commit": "3989203290fba6fdf6bc4825fbf6526e1bf17977",
      "tree": "2fb2012e6136d3b8acbf10eaee6dce95afc6f781",
      "parents": [
        "d508afb437daee7cf07da085b635c44a4ebf9b38",
        "37efa239901493694a48f1d6f59f8de17c2c4509"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 18:05:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 18:05:43 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  b44: Use kernel DMA addresses for the kernel DMA API\n  forcedeth: Fix resume from hibernation regression.\n  xfrm: fix fragmentation on inter family tunnels\n  ibm_newemac: Fix dangerous struct assumption\n  gigaset: documentation update\n  gigaset: in file ops, check for device disconnect before anything else\n  bas_gigaset: use tasklet_hi_schedule for timing critical tasklets\n  net/802/fddi.c: add MODULE_LICENSE\n  smsc911x: remove unused #include \u003clinux/version.h\u003e\n  axnet_cs: fix phy_id detection for bogus Asix chip.\n  bnx2: Use request_firmware()\n  b44: Fix sizes passed to b44_sync_dma_desc_for_{device,cpu}()\n  socket: use percpu_add() while updating sockets_in_use\n  virtio_net: Set the mac config only when VIRITO_NET_F_MAC\n  myri_sbus: use request_firmware\n  e1000: fix loss of multicast packets\n  vxge: should include tcp.h\n\nConflict in firmware/WHENCE (SCSI vs net firmware)\n"
    },
    {
      "commit": "e6574f2fbecdb8af807169d345c10131ae060a88",
      "tree": "9923d1065397b9796a476cac238bacbdf1d820d1",
      "parents": [
        "868f985c2fb85b5f32785bb55a349d180a30f3d3"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hverkuil@xs4all.nl",
        "time": "Wed Apr 01 03:57:53 2009 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 06 21:44:24 2009 -0300"
      },
      "message": "V4L/DVB (11373): v4l2-common: add explicit v4l2_device pointer as first arg to new_(probed)_subdev\n\nThe functions v4l2_i2c_new_subdev and v4l2_i2c_new_probed_subdev relied on\ni2c_get_adapdata to return the v4l2_device. However, this is not always\npossible on embedded platforms. So modify the API to pass the v4l2_device\npointer explicitly.\n\nSigned-off-by: Hans Verkuil \u003chverkuil@xs4all.nl\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "78a3b4db2e53a1903c86e2856e175d85a3849e84",
      "tree": "c22153691d3ab5210bc02bdc478b29a938e85dc5",
      "parents": [
        "b74c0aac357e5c71ee6de98b9887fe478bc73cf4"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hverkuil@xs4all.nl",
        "time": "Wed Apr 01 03:41:09 2009 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 06 21:44:20 2009 -0300"
      },
      "message": "V4L/DVB (11367): v4l2-common: remove legacy code\n\nNow that all drivers are converted to v4l2_subdev we can remove legacy code\nin v4l2-common. Also move the documentation of the internal API to\nv4l2-subdev.h where it really belongs.\n\nSigned-off-by: Hans Verkuil \u003chverkuil@xs4all.nl\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "073d696d547ef933e1f0748086da785e95cb8395",
      "tree": "634cc2d141f5fdf47a0cba950eadc4f28182faa5",
      "parents": [
        "6acc81c394393b853e731cc67f17ef277d521123"
      ],
      "author": {
        "name": "Janne Grunau",
        "email": "j@jannau.net",
        "time": "Wed Apr 01 08:30:06 2009 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 06 21:43:59 2009 -0300"
      },
      "message": "V4L/DVB (11351): v4l: use usb_interface for v4l2_device_register\n\nIf usb_interface.dev is used as dev parameter for v4l2_device_register\nv4l2_dev.name contains the v4l driver/module name and usb device and\ninterface instead of a simple \"usb x-y\".\nIt also matches the recommendation to set the parent devices for usb\ndrivers.\n\nSigned-off-by: Janne Grunau \u003cj@jannau.net\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "256b02332a0ba1d7382d736d776e605be63ded17",
      "tree": "10f661d4bd82e23272379ecdd6acd5ed4a23ef98",
      "parents": [
        "37f5aefd537d5f98b3fa9726362effeccf1d2161"
      ],
      "author": {
        "name": "Robert Jarzmik",
        "email": "robert.jarzmik@free.fr",
        "time": "Tue Mar 31 03:44:21 2009 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 06 21:43:45 2009 -0300"
      },
      "message": "V4L/DVB (11321): pxa_camera: Redesign DMA handling\n\nThe DMA transfers in pxa_camera showed some weaknesses in\nmultiple queued buffers context :\n - poll/select problem\n   The bug shows up with capture_example tool from v4l2 hg\n   tree. The process just \"stalls\" on a \"select timeout\".\n\n - multiple buffers DMA starting\n   When multiple buffers were queued, the DMA channels were\n   always started right away. This is not optimal, as a\n   special case appears when the first EOF was not yet\n   reached, and the DMA channels were prematurely started.\n\n - Maintainability\n   DMA code was a bit obfuscated. Rationalize the code to be\n   easily maintainable by anyone.\n\n - DMA hot chaining\n   DMA is not stopped anymore to queue a buffer, the buffer\n   is queued with DMA running. As a tribute, a corner case\n   exists where chaining happens while DMA finishes the\n   chain, and the capture is restarted to deal with the\n   missed link buffer.\n\nThis patch attemps to address these issues / improvements.\n\n create mode 100644 Documentation/video4linux/pxa_camera.txt\n\nSigned-off-by: Robert Jarzmik \u003crobert.jarzmik@free.fr\u003e\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "c69c6d107ab18e330f22f9380da353fed29c296b",
      "tree": "6b8b134e6a15779fad4f5c35487c12b80e05c561",
      "parents": [
        "51370e5b21c5825cff7482e1c38f4e7c5dab3e2b"
      ],
      "author": {
        "name": "Tilman Schmidt",
        "email": "tilman@imap.cc",
        "time": "Sun Apr 05 06:39:33 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 06 17:07:57 2009 -0700"
      },
      "message": "gigaset: documentation update\n\nUpdate, correct and clarify instructions for loading the driver\nand for setting the UNDOCREQ kernel configuration option.\n\nImpact: documentation\n\nSigned-off-by: Tilman Schmidt \u003ctilman@imap.cc\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "22ae77bc7ac115b9d518d5cbc13d39317079b2b0",
      "tree": "574b7af678c0b1ad2c891ac5066292746788ece8",
      "parents": [
        "e379ec7c42343c6b6ef06a98de7c94db41c1423e",
        "30bbf1406714cf464c56e96e4ad6a291907f5023"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 14:56:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 14:56:26 2009 -0700"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6: (53 commits)\n  [MTD] struct device - replace bus_id with dev_name(), dev_set_name()\n  [MTD] [NOR] Fixup for Numonyx M29W128 chips\n  [MTD] mtdpart: Make ecc_stats more realistic.\n  powerpc/85xx: TQM8548: Update DTS file for multi-chip support\n  powerpc: NAND: FSL UPM: document new bindings\n  [MTD] [NAND] FSL-UPM: Add wait flags to support board/chip specific delays\n  [MTD] [NAND] FSL-UPM: add multi chip support\n  [MTD] [NOR] Add device parent info to physmap_of\n  [MTD] [NAND] Add support for NAND on the Socrates board\n  [MTD] [NAND] Add support for 4KiB pages.\n  [MTD] sysfs support should not depend on CONFIG_PROC_FS\n  [MTD] [NAND] Add parent info for CAFÉ controller\n  [MTD] support driver model updates\n  [MTD] driver model updates (part 2)\n  [MTD] driver model updates\n  [MTD] [NAND] move gen_nand\u0027s probe function to .devinit.text\n  [MTD] [MAPS] move sa1100 flash\u0027s probe function to .devinit.text\n  [MTD] fix use after free in register_mtd_blktrans\n  [MTD] [MAPS] Drop now unused sharpsl-flash map\n  [MTD] ofpart: Check name property to determine partition nodes.\n  ...\n\nManually fix trivial conflict in drivers/mtd/maps/Makefile\n"
    },
    {
      "commit": "e379ec7c42343c6b6ef06a98de7c94db41c1423e",
      "tree": "9858b0df876f025cad3ded0301e5ee8f58339ef0",
      "parents": [
        "91a9e99d76d71b1b16f422fae4bd844245f14638"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Apr 06 14:55:50 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 14:54:17 2009 -0700"
      },
      "message": "LANANA: Fix dates\n\nAs noted by Janne Grunau it would be good if the date was also right.\n\n(Web site also resynched)\n\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0cb55ad2ad5513f55304d026bb4319a9311163d0",
      "tree": "859bd3497e19134b86585effa4be644b65e38002",
      "parents": [
        "88cacbb21be116b4b5ce9811a90868e585efdd68"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sun Apr 05 15:55:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:43:43 2009 -0700"
      },
      "message": "docs: alphabetize entries in kernel-parameters.txt\n\nMove entries to be in alpha order as specified near the beginning\nof this file.\n\nClean up some whitespace and line-length miscues.\n\nAdd \u0027\u003d\u0027 to \"selinux\" option syntax.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88cacbb21be116b4b5ce9811a90868e585efdd68",
      "tree": "e43f8bfc0ac48f96feeebe1bd6fdb335dd56b860",
      "parents": [
        "cd5f9a4c3199b090e91ea0064cb110985ba54814"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sun Apr 05 15:45:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:43:42 2009 -0700"
      },
      "message": "docbook: fix fatal filename error\n\nFix docbook fatal error:\n\ndocproc: block/blktrace.c: No such file or directory\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a63856252d2112e7c452696037a86ceb12f47f80",
      "tree": "b1ad03fe441349069f80e58de425b3f72af9e5b7",
      "parents": [
        "b24241a09208874d5d770bee30791daae41ad762",
        "04826f43d4f0a4d56423eb8abb9f2ec9987df5b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:25:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:25:56 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.30\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.30\u0027 of git://linux-nfs.org/~bfields/linux: (81 commits)\n  nfsd41: define nfsd4_set_statp as noop for !CONFIG_NFSD_V4\n  nfsd41: define NFSD_DRC_SIZE_SHIFT in set_max_drc\n  nfsd41: Documentation/filesystems/nfs41-server.txt\n  nfsd41: CREATE_EXCLUSIVE4_1\n  nfsd41: SUPPATTR_EXCLCREAT attribute\n  nfsd41: support for 3-word long attribute bitmask\n  nfsd: dynamically skip encoded fattr bitmap in _nfsd4_verify\n  nfsd41: pass writable attrs mask to nfsd4_decode_fattr\n  nfsd41: provide support for minor version 1 at rpc level\n  nfsd41: control nfsv4.1 svc via /proc/fs/nfsd/versions\n  nfsd41: add OPEN4_SHARE_ACCESS_WANT nfs4_stateid bmap\n  nfsd41: access_valid\n  nfsd41: clientid handling\n  nfsd41: check encode size for sessions maxresponse cached\n  nfsd41: stateid handling\n  nfsd: pass nfsd4_compound_state* to nfs4_preprocess_{state,seq}id_op\n  nfsd41: destroy_session operation\n  nfsd41: non-page DRC for solo sequence responses\n  nfsd41: Add a create session replay cache\n  nfsd41: create_session operation\n  ...\n"
    },
    {
      "commit": "b24241a09208874d5d770bee30791daae41ad762",
      "tree": "7fbfe7905cc449a2593527b4510f15f0e5cfb392",
      "parents": [
        "22eb5aa6c7940861f9603581665b9d9a1c60be30",
        "abe213d7f6fb87f48f4324320733f666db1bc11b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:25:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:25:27 2009 -0700"
      },
      "message": "Merge branch \u0027i2c-for-linus\u0027 of git://jdelvare.pck.nerim.net/jdelvare-2.6\n\n* \u0027i2c-for-linus\u0027 of git://jdelvare.pck.nerim.net/jdelvare-2.6:\n  i2c: Delete unused i2c-algo-sgi helper module\n  i2c: Delete many unused driver IDs\n  i2c: Deprecate client_register and client_unregister methods\n"
    },
    {
      "commit": "22eb5aa6c7940861f9603581665b9d9a1c60be30",
      "tree": "22890bcebae5647bcc1a29e7b544a1c5de2b1f8b",
      "parents": [
        "d7ca6f8cdffa5765e486edb3dada9121fba8e6aa",
        "015640edb1f346e0b2eda703587c4cd1c310ec1d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:24:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:24:49 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (74 commits)\n  [SCSI] sg: fix q-\u003equeue_lock on scsi_error_handler path\n  [SCSI] replace __inline with inline\n  [SCSI] a2091: make 2 functions static\n  [SCSI] a3000: make 2 functions static\n  [SCSI] ses: #if 0 the unused ses_match_host()\n  [SCSI] use kmem_cache_zalloc instead of kmem_cache_alloc/memset\n  [SCSI] sg: fix iovec bugs introduced by the block layer conversion\n  [SCSI] qlogicpti: use request_firmware\n  [SCSI] advansys: use request_firmware\n  [SCSI] qla1280: use request_firmware\n  [SCSI] libiscsi: fix iscsi pool error path\n  [SCSI] cxgb3i: call ddp release function directly\n  [SCSI] cxgb3i: merge cxgb3i_ddp into cxgb3i module\n  [SCSI] cxgb3i: close all tcp connections upon chip reset\n  [SCSI] cxgb3i: re-read ddp settings information after chip reset\n  [SCSI] cxgb3i: re-initialize ddp settings after chip reset\n  [SCSI] cxgb3i: subscribe to error notification from cxgb3 driver\n  [SCSI] aacraid driver update\n  [SCSI] mptsas: remove unneeded check\n  [SCSI] config: Make need for SCSI_CDROM clearer\n  ...\n"
    },
    {
      "commit": "e3ee703366da3a4ce80f24b47a5df56cd816c5d6",
      "tree": "f3227fac0636bfc6fb4cfb01bb1b75ee42f50235",
      "parents": [
        "0221c81b1b8eb0cbb6b30a0ced52ead32d2b4e4c"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Apr 06 18:12:24 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Apr 06 18:12:24 2009 +0200"
      },
      "message": "i2c: Deprecate client_register and client_unregister methods\n\nThe new i2c binding model makes the client_register and\nclient_unregister methods of struct i2c_adapter useless, so we can\nremove them with the rest of the legacy model.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "a7d878af94b223013a48078e0c8c0a654c24a057",
      "tree": "65c288edc917ae01aec7bc14702e81ced8f6e916",
      "parents": [
        "0221c81b1b8eb0cbb6b30a0ced52ead32d2b4e4c"
      ],
      "author": {
        "name": "Trent Piepho",
        "email": "tpiepho@freescale.com",
        "time": "Sat Jan 10 17:26:01 2009 +0000"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Mon Apr 06 16:06:25 2009 +0100"
      },
      "message": "leds: Add openfirmware platform device support\n\nAdd bindings to support LEDs defined as of_platform devices in addition to\nthe existing bindings for platform devices.\n\nNew options in Kconfig allow the platform binding code and/or the\nof_platform code to be turned on.  The of_platform code is of course only\navailable on archs that have OF support.\n\nThe existing probe and remove methods are refactored to use new functions\ncreate_gpio_led(), to create and register one led, and delete_gpio_led(),\nto unregister and free one led.  The new probe and remove methods for the\nof_platform driver can then share most of the common probe and remove code\nwith the platform driver.\n\nThe suspend and resume methods aren\u0027t shared, but they are very short.  The\nactual led driving code is the same for LEDs created by either binding.\n\nThe OF bindings are based on patch by Anton Vorontsov\n\u003cavorontsov@ru.mvista.com\u003e.  They have been extended to allow multiple LEDs\nper device.\n\nSigned-off-by: Trent Piepho \u003ctpiepho@freescale.com\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Sean MacLennan \u003csmaclennan@pikatech.com\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@linux.intel.com\u003e\n"
    },
    {
      "commit": "21e9d9456f6022caa80fcd9057035af82091f58f",
      "tree": "93da52549368a71984bb37ad15c638e2c5454f4f",
      "parents": [
        "ade92a636f15d7e5b92e2df22e8fcb6c7640cd4f"
      ],
      "author": {
        "name": "Wolfgang Grandegger",
        "email": "wg@grandegger.com",
        "time": "Mon Mar 30 12:02:44 2009 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Apr 06 07:18:39 2009 -0700"
      },
      "message": "powerpc: NAND: FSL UPM: document new bindings\n\nThis patch adds documentation for the new NAND FSL UPM bindings for:\n\n NAND: FSL-UPM: add multi chip support\n NAND: FSL-UPM: Add wait flags to support board/chip specific delays\n\nIt also documents the old binding for \"chip-delay\".\n\nSigned-off-by: Wolfgang Grandegger \u003cwg@grandegger.com\u003e\nAcked-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "b114701c0e8d580a05643c874d87e2501ab729cb",
      "tree": "a4e69cc865b9b76b6737d0d8b8dc81fc40c1e88f",
      "parents": [
        "0221c81b1b8eb0cbb6b30a0ced52ead32d2b4e4c",
        "103f211d0be2bed75b5739de62a10415ef0bbc25"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Mon Apr 06 03:47:20 2009 +0200"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Mon Apr 06 03:47:20 2009 +0200"
      },
      "message": "Merge branch \u0027topic/asoc\u0027 into for-linus\n"
    },
    {
      "commit": "32fb6c17566ec66de87324a834c7776f40e35e78",
      "tree": "87b8ed5d66495536fbb452255c3eacd1cfb0c43a",
      "parents": [
        "45e36c1666aa6c8b0c538abcf984b336184d8c3f",
        "7ec0a7290797f57b780f792d12f4bcc19c83aa4f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:16:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:16:25 2009 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (140 commits)\n  ACPI: processor: use .notify method instead of installing handler directly\n  ACPI: button: use .notify method instead of installing handler directly\n  ACPI: support acpi_device_ops .notify methods\n  toshiba-acpi: remove MAINTAINERS entry\n  ACPI: battery: asynchronous init\n  acer-wmi: Update copyright notice \u0026 documentation\n  acer-wmi: Cleanup the failure cleanup handling\n  acer-wmi: Blacklist Acer Aspire One\n  video: build fix\n  thinkpad-acpi: rework brightness support\n  thinkpad-acpi: enhanced debugging messages for the fan subdriver\n  thinkpad-acpi: enhanced debugging messages for the hotkey subdriver\n  thinkpad-acpi: enhanced debugging messages for rfkill subdrivers\n  thinkpad-acpi: restrict access to some firmware LEDs\n  thinkpad-acpi: remove HKEY disable functionality\n  thinkpad-acpi: add new debug helpers and warn of deprecated atts\n  thinkpad-acpi: add missing log levels\n  thinkpad-acpi: cleanup debug helpers\n  thinkpad-acpi: documentation cleanup\n  thinkpad-acpi: drop ibm-acpi alias\n  ...\n"
    },
    {
      "commit": "45e36c1666aa6c8b0c538abcf984b336184d8c3f",
      "tree": "c1f1771d6b02ec210238081450b4a063847b3383",
      "parents": [
        "87fc94d54b639d8c39fc4a11db0e142f84096e13",
        "68b42d1b548be1840aff7122fdebeb804daf0fa3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:15:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:15:54 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (23 commits)\n  sh: sh7785lcr: Map whole PCI address space.\n  sh: Fix up DSP context save/restore.\n  sh: Fix up number of on-chip DMA channels on SH7091.\n  sh: update defconfigs.\n  sh: Kill off broken direct-mapped cache mode.\n  sh: Wire up ARCH_HAS_DEFAULT_IDLE for cpuidle.\n  sh: Add a command line option for disabling I/O trapping.\n  sh: Select ARCH_HIBERNATION_POSSIBLE.\n  sh: migor: Fix up CEU use flags.\n  input: migor_ts: add wakeup support\n  rtc: rtc-sh: use set_irq_wake()\n  input: sh_keysc: use enable/disable_irq_wake()\n  sh: intc: set_irq_wake() support\n  sh: intc: install enable, disable and shutdown callbacks\n  clocksource: sh_cmt: use remove_irq() and remove clockevent workaround\n  sh: ap325 and Migo-R use new sh_mobile_ceu_info flags\n  sh: Fix up -Wformat-security whining.\n  sh: ap325rxa: Add ov772x support, again.\n  sh: Sanitize asm/mmu.h for assembly use.\n  sh: Tidy up sh7786 pinmux table.\n  ...\n"
    },
    {
      "commit": "3516c6a8dc0b1153c611c4cf0dc4a51631f052bb",
      "tree": "c54a5fc916cbe73e43dee20902642f367f44a551",
      "parents": [
        "714f83d5d9f7c785f622259dad1f4fad12d64664",
        "ba0e1ebb7ea0616eebc29d2077355bacea62a9d8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:06:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:06:45 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (714 commits)\n  Staging: sxg: slicoss: Specify the license for Sahara SXG and Slicoss drivers\n  Staging: serqt_usb: fix build due to proc tty changes\n  Staging: serqt_usb: fix checkpatch errors\n  Staging: serqt_usb: add TODO file\n  Staging: serqt_usb: Lindent the code\n  Staging: add USB serial Quatech driver\n  staging: document that the wifi staging drivers a bit better\n  Staging: echo cleanup\n  Staging: BUG to BUG_ON changes\n  Staging: remove some pointless conditionals before kfree_skb()\n  Staging: line6: fix build error, select SND_RAWMIDI\n  Staging: line6: fix checkpatch errors in variax.c\n  Staging: line6: fix checkpatch errors in toneport.c\n  Staging: line6: fix checkpatch errors in pcm.c\n  Staging: line6: fix checkpatch errors in midibuf.c\n  Staging: line6: fix checkpatch errors in midi.c\n  Staging: line6: fix checkpatch errors in dumprequest.c\n  Staging: line6: fix checkpatch errors in driver.c\n  Staging: line6: fix checkpatch errors in audio.c\n  Staging: line6: fix checkpatch errors in pod.c\n  ...\n"
    },
    {
      "commit": "714f83d5d9f7c785f622259dad1f4fad12d64664",
      "tree": "20563541ae438e11d686b4d629074eb002a481b7",
      "parents": [
        "8901e7ffc2fa78ede7ce9826dbad68a3a25dc2dc",
        "645dae969c3b8651c5bc7c54a1835ec03820f85f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:04:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:04:19 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (413 commits)\n  tracing, net: fix net tree and tracing tree merge interaction\n  tracing, powerpc: fix powerpc tree and tracing tree interaction\n  ring-buffer: do not remove reader page from list on ring buffer free\n  function-graph: allow unregistering twice\n  trace: make argument \u0027mem\u0027 of trace_seq_putmem() const\n  tracing: add missing \u0027extern\u0027 keywords to trace_output.h\n  tracing: provide trace_seq_reserve()\n  blktrace: print out BLK_TN_MESSAGE properly\n  blktrace: extract duplidate code\n  blktrace: fix memory leak when freeing struct blk_io_trace\n  blktrace: fix blk_probes_ref chaos\n  blktrace: make classic output more classic\n  blktrace: fix off-by-one bug\n  blktrace: fix the original blktrace\n  blktrace: fix a race when creating blk_tree_root in debugfs\n  blktrace: fix timestamp in binary output\n  tracing, Text Edit Lock: cleanup\n  tracing: filter fix for TRACE_EVENT_FORMAT events\n  ftrace: Using FTRACE_WARN_ON() to check \"freed record\" in ftrace_release()\n  x86: kretprobe-booster interrupt emulation code fix\n  ...\n\nFix up trivial conflicts in\n arch/parisc/include/asm/ftrace.h\n include/linux/memory.h\n kernel/extable.c\n kernel/module.c\n"
    },
    {
      "commit": "5412b5399e095730008a14f2107331b2123733e4",
      "tree": "6b3a7aee35a2d7d97cef33a077e6c60a394f5298",
      "parents": [
        "e4c393fd551654179c46b65e4a70ea20d831c783",
        "337fff8b5ed0573ea106491c6de47bd7fe623500"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 10:26:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 10:26:36 2009 -0700"
      },
      "message": "Merge branch \u0027core/debugobjects\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core/debugobjects\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  debugobjects: delay free of internal objects\n  debugobjects: replace static objects when slab cache becomes available\n  debug_objects: add boot-parameter toggle to turn object debugging off again\n"
    },
    {
      "commit": "478c6a43fcbc6c11609f8cee7c7b57223907754f",
      "tree": "a7f7952099da60d33032aed6de9c0c56c9f8779e",
      "parents": [
        "8a3f257c704e02aee9869decd069a806b45be3f1",
        "6bb597507f9839b13498781e481f5458aea33620"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Apr 05 02:14:15 2009 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Apr 05 02:14:15 2009 -0400"
      },
      "message": "Merge branch \u0027linus\u0027 into release\n\nConflicts:\n\tarch/x86/kernel/cpu/cpufreq/longhaul.c\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "3b4dadf05d177289c279c50030c7c75e004952bb",
      "tree": "5ee1a21f5dd3d4682e7ed9f92ba97fa4a507f62f",
      "parents": [
        "59b17bf6ea06abed519dfc788fff1b6b9499d23f",
        "7e90560c50f754d65884e251e94c1efa2a4b5784"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Apr 05 01:50:46 2009 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Apr 05 01:50:46 2009 -0400"
      },
      "message": "Merge branch \u0027acpi_enforce_resources\u0027 into release\n"
    },
    {
      "commit": "336d63b8a3cadc1c678f4b16d6105633c7f6af75",
      "tree": "d8d713eb39500139ec637c55cc38e62d863d1845",
      "parents": [
        "07290bed7968c0e08fb3efe193fb148f1fea5e08",
        "0e501834f8c2ba7de2a56e332d346dcf4ac0b593"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Apr 05 01:42:09 2009 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Apr 05 01:42:09 2009 -0400"
      },
      "message": "Merge branch \u0027thinkpad-acpi\u0027 into release\n"
    },
    {
      "commit": "4f0175dc13a57cb5d2abef44eb4394b0b964bdad",
      "tree": "8bd905c4a378dc4a5d6e51fe51b866da19399ac8",
      "parents": [
        "350e32907cf72ef82bbe7d72525fa2d9dcf64682"
      ],
      "author": {
        "name": "Carlos Corbacho",
        "email": "carlos@strangeworlds.co.uk",
        "time": "Sat Apr 04 09:33:39 2009 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Apr 04 12:36:31 2009 -0400"
      },
      "message": "acer-wmi: Update copyright notice \u0026 documentation\n\nExplicitly note in the documentation that the Acer Aspire One is not\nsupported.\n\nSigned-off-by: Carlos Corbacho \u003ccarlos@strangeworlds.co.uk\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "0e501834f8c2ba7de2a56e332d346dcf4ac0b593",
      "tree": "97aa4223015bbb43ffeced0812b243e42f8ba872",
      "parents": [
        "74a60c0f828016456fc635feae388ffd12bb3bb9"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Sat Apr 04 04:25:53 2009 +0000"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Apr 04 03:14:53 2009 -0400"
      },
      "message": "thinkpad-acpi: rework brightness support\n\nRefactor and redesign the brightness control backend...\n\nIn order to fix bugzilla #11750...\n\nAdd a new brightness control mode: support direct NVRAM checkpointing\nof the backlight level (i.e. store directly to NVRAM without the need\nfor UCMS calls), and use that together with the EC-based control.\nDisallow UCMS+EC, thus avoiding races with the SMM firmware.\n\nSwitch the models that define HBRV (EC Brightness Value) in the DSDT\nto the new mode.  These are: T40-T43, R50-R52, R50e, R51e, X31-X41.\n\nChange the default for all other IBM ThinkPads to UCMS-only.  The\nLenovo models already default to UCMS-only.\n\nReported-by: Alexey Fisher \u003cbug-track@fisher-privat.net\u003e\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "74a60c0f828016456fc635feae388ffd12bb3bb9",
      "tree": "fe801c68171a2a69564a16e59c307fc2745db082",
      "parents": [
        "56e2c200945dafafb86169762eb1e88aed0ce69e"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Sat Apr 04 04:25:52 2009 +0000"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Apr 04 03:14:53 2009 -0400"
      },
      "message": "thinkpad-acpi: enhanced debugging messages for the fan subdriver\n\nEnhance debugging messages for the fan subdriver.\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "56e2c200945dafafb86169762eb1e88aed0ce69e",
      "tree": "83a89fd46c507655716f556bc9038c14ef1032e7",
      "parents": [
        "bee4cd9b9eaa8c72832e1ee7f4940604e94beb27"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Sat Apr 04 04:25:51 2009 +0000"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Apr 04 03:14:53 2009 -0400"
      },
      "message": "thinkpad-acpi: enhanced debugging messages for the hotkey subdriver\n\nEnhance debugging messages for the hotkey subdriver.\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "bee4cd9b9eaa8c72832e1ee7f4940604e94beb27",
      "tree": "55c18af3b6990ac5f6216a02d24d24ec34d890f7",
      "parents": [
        "a4d5effcc73749ee3ebbf578d162905e6fa4e07d"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Sat Apr 04 04:25:50 2009 +0000"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Apr 04 03:14:53 2009 -0400"
      },
      "message": "thinkpad-acpi: enhanced debugging messages for rfkill subdrivers\n\nEnhance debugging messages for all rfkill subdrivers in thinkpad-acpi.\n\nAlso, log a warning if the deprecated sysfs attributes are in use.\nThese attributes are going to be removed sometime in 2010.\n\nThere is an user-visible side-effect: we now coalesce attempts to\nenable/disable bluetooth or WWAN in the procfs interface, instead of\nhammering the firmware with multiple requests.\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "a4d5effcc73749ee3ebbf578d162905e6fa4e07d",
      "tree": "1160b3763004be227cfe3d6c15e4235a9ccf69b7",
      "parents": [
        "2586d5663d0a17d69383acf6110f16a979a07c4e"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Sat Apr 04 04:25:49 2009 +0000"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Apr 04 03:14:52 2009 -0400"
      },
      "message": "thinkpad-acpi: restrict access to some firmware LEDs\n\nSome of the ThinkPad LEDs indicate critical conditions that can cause\ndata loss or cause hardware damage when ignored (e.g. force-ejecting\na powered up bay; ignoring a failing battery, or empty battery; force-\nundocking with the dock buses still active, etc).\n\nOn almost all ThinkPads, LED access is write-only, and the firmware\nusually does fire-and-forget signaling on them, so you effectively\nlose whatever message the firmware was trying to convey to the user\nwhen you override the LED state, without any chance to restore it.\n\nRestrict access to all LEDs that can convey important alarms, or that\ncould mislead the user into incorrectly operating the hardware.  This\nwill make the Lenovo engineers less unhappy about the whole issue.\n\nAllow users that really want it to still control all LEDs, it is the\nunaware user that we have to worry about.\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "2586d5663d0a17d69383acf6110f16a979a07c4e",
      "tree": "5bfe1ef88ee03084175bb94c4c1079402fefbe7b",
      "parents": [
        "73a94d86a8625371f76de0ee12dc5bacd3ed42c0"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Sat Apr 04 04:25:48 2009 +0000"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Apr 04 03:14:52 2009 -0400"
      },
      "message": "thinkpad-acpi: remove HKEY disable functionality\n\nThe HKEY disable functionality basically cripples the entire event\nmodel of the ThinkPad firmware and of the thinkpad-acpi driver.\nRemove this functionality from the driver.  HKEY must be enabled at\nall times while thinkpad-acpi is loaded, and disabled otherwise.\n\nFor sysfs, according to the sysfs ABI and the thinkpad-acpi sysfs\nrules of engagement, we will just remove the attributes.  This will be\ndone in two stages: disable their function now, after two kernel\nreleases, remove the attributes.\n\nFor procfs, we call WARN().  If nothing triggers it, I will simply\nremove the enable/disable commands entirely in the future along with\nthe sysfs attributes.\n\nI don\u0027t expect much, if any fallout from this.  There really isn\u0027t any\nreason to mess with hotkey_enable or with the enable/disable commands\nto /proc/acpi/ibm/hotkey, and this has been true for years...\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "73a94d86a8625371f76de0ee12dc5bacd3ed42c0",
      "tree": "db8def5a298edf3b70efefb4fd255da87ca0d2fd",
      "parents": [
        "7ff8d62f7f055aaffbeb493863136c1b876bbe2e"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Sat Apr 04 04:25:47 2009 +0000"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Apr 04 03:14:52 2009 -0400"
      },
      "message": "thinkpad-acpi: add new debug helpers and warn of deprecated atts\n\nAdd a debug helper that discloses the TGID of the userspace task\nattempting to access the driver.  This is highly useful when dealing\nwith bug reports, since often the user has no idea that some userspace\napplication is accessing thinkpad-acpi...\n\nAlso add a helper to log warnings about sysfs attributes that are\ndeprecated.\n\nUse the new helpers to issue deprecation warnings for bluetooth_enable\nand wwan_enabled, that have been deprecated for a while, now.\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "078ac19ed8f476a7c2d729712e15f5ab516ff491",
      "tree": "7ae8ffecc3405941087393d188eb5576e78e812e",
      "parents": [
        "257bc1cb3e29c8da62b9c9e0a4505011776c7040"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Sat Apr 04 04:25:44 2009 +0000"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Apr 04 03:14:52 2009 -0400"
      },
      "message": "thinkpad-acpi: documentation cleanup\n\nSome cleanups to the documentation of the driver.\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "3ef1728898f0285c13aa6901f412b52835e23578",
      "tree": "ffd9074e03bf9bd933f9fba48b5a5051e32861a2",
      "parents": [
        "79fb54abd285b442e1f30f851902f3ddf58e7704"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:29:20 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:24 2009 -0700"
      },
      "message": "nfsd41: Documentation/filesystems/nfs41-server.txt\n\nInitial nfs41 server write up describing the status of the linux\nserver implementation.\n\n[nfsd41: document unenforced nfs41 compound ordering rules.]\n[get rid of CONFIG_NFSD_V4_1]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "04c860c188ebdcf396fd50751592fb5a9f51287a",
      "tree": "c29aa2acca5c944a725cacef356d131f37bb688a",
      "parents": [
        "5fba0925fd6b67d94181055b7222e3d934b4efee"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Apr 03 14:50:52 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:27:19 2009 -0700"
      },
      "message": "LANANA: Change of management and resync\n\nBring the devices.txt back into some relationship with reality. Update the\ndocumentation a bit.\n\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5fba0925fd6b67d94181055b7222e3d934b4efee",
      "tree": "167c0e259ec94f426674d3f79563c3e556cda845",
      "parents": [
        "811158b147a503fbdf9773224004ffd32002d1fe",
        "621de593081524da2f0f7b060f5951b4155eb4a2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:25:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:25:44 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:\n  HID: remove compat stuff\n  HID: constify arrays of struct apple_key_translation\n  HID: add support for Kye/Genius Ergo 525V\n  HID: Support Apple mini aluminum keyboard\n  HID: support for Kensington slimblade device\n  HID: DragonRise game controller force feedback driver\n  HID: add support for another version of 0e8f:0003 device in hid-pl\n  HID: fix race between usb_register_dev() and hiddev_open()\n  HID: bring back possibility to specify vid/pid ignore on module load\n  HID: make HID_DEBUG defaults consistent\n  HID: autosuspend -- fix lockup of hid on reset\n  HID: hid_reset_resume() needs to be defined only when CONFIG_PM is set\n  HID: fix USB HID devices after STD with autosuspend\n  HID: do not try to compile PM code with CONFIG_PM unset\n  HID: autosuspend support for USB HID\n"
    },
    {
      "commit": "811158b147a503fbdf9773224004ffd32002d1fe",
      "tree": "0a11dcfefe721bfc38ea9f1f4a238822dbae0dda",
      "parents": [
        "4e76c5ccd5ac9bd003467d3bb0f49b18572dd4cd",
        "b26e0ed4936b743b693a4cc1413561fa3e4eaf65"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:24:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:24:35 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (28 commits)\n  trivial: Update my email address\n  trivial: NULL noise: drivers/mtd/tests/mtd_*test.c\n  trivial: NULL noise: drivers/media/dvb/frontends/drx397xD_fw.h\n  trivial: Fix misspelling of \"Celsius\".\n  trivial: remove unused variable \u0027path\u0027 in alloc_file()\n  trivial: fix a pdlfush -\u003e pdflush typo in comment\n  trivial: jbd header comment typo fix for JBD_PARANOID_IOFAIL\n  trivial: wusb: Storage class should be before const qualifier\n  trivial: drivers/char/bsr.c: Storage class should be before const qualifier\n  trivial: h8300: Storage class should be before const qualifier\n  trivial: fix where cgroup documentation is not correctly referred to\n  trivial: Give the right path in Documentation example\n  trivial: MTD: remove EOL from MODULE_DESCRIPTION\n  trivial: Fix typo in bio_split()\u0027s documentation\n  trivial: PWM: fix of #endif comment\n  trivial: fix typos/grammar errors in Kconfig texts\n  trivial: Fix misspelling of firmware\n  trivial: cgroups: documentation typo and spelling corrections\n  trivial: Update contact info for Jochen Hein\n  trivial: fix typo \"resgister\" -\u003e \"register\"\n  ...\n"
    },
    {
      "commit": "b8523c40d57f5996a467f83825cb05583a5a7da4",
      "tree": "d345233b8e97d64995d60370eca78c5f3fdefa61",
      "parents": [
        "e333720166a432ea890dbd438b465fd0cee3be32"
      ],
      "author": {
        "name": "Evgeniy Polyakov",
        "email": "zbr@ioremap.net",
        "time": "Mon Feb 09 17:02:34 2009 +0300"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 03 14:53:33 2009 -0700"
      },
      "message": "Staging: pohmelfs: documentation.\n\nThis patch includes POHMELFS design and implementation description.\nSeparate file includes mount options, default parameters and usage examples.\n\nSigned-off-by: Eveniy Polyakov \u003czbr@ioremap.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "18b34b9546dc192d978dda940673f40928d2e36e",
      "tree": "ca396840ed95fc46cd360c68bf2cefe5ab4cbda8",
      "parents": [
        "ca1ee219c070eab755712d50638bbcd1f8630fc1",
        "d6bb69cfa88b8ac9f952de4fada5b216d5ba8830"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 10:39:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 10:39:20 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6: (32 commits)\n  regulator: twl4030 VAUX3 supports 3.0V\n  regulator: Support disabling of unused regulators by machines\n  regulator: Don\u0027t increment use_count for boot_on regulators\n  twl4030-regulator: expose VPLL2\n  regulator: refcount fixes\n  regulator: Don\u0027t warn if we failed to get a regulator\n  regulator: Allow boot_on regulators to be disabled by clients\n  regulator: Implement list_voltage for WM835x LDOs and DCDCs\n  twl4030-regulator: list more VAUX4 voltages\n  regulator: Don\u0027t warn on omitted voltage constraints\n  regulator: Implement list_voltage() for WM8400 DCDCs and LDOs\n  MMC: regulator utilities\n  regulator: twl4030 voltage enumeration (v2)\n  regulator: twl4030 regulators\n  regulator: get_status() grows kerneldoc\n  regulator: enumerate voltages (v2)\n  regulator: Fix get_mode() for WM835x DCDCs\n  regulator: Allow regulators to set the initial operating mode\n  regulator: Suggest use of datasheet supply or pin names for consumers\n  regulator: email - update email address and regulator webpage.\n  ...\n"
    },
    {
      "commit": "3cc50ac0dbda5100684e570247782330155d35e0",
      "tree": "f4b8f22d1725ebe65d2fe658d292dabacd7ed564",
      "parents": [
        "d9b9be024a6628a01d8730d1fd0b5f25658a2794",
        "b797cac7487dee6bfddeb161631c1bbc54fa3cdb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 10:07:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 10:07:43 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-fscache\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-fscache: (41 commits)\n  NFS: Add mount options to enable local caching on NFS\n  NFS: Display local caching state\n  NFS: Store pages from an NFS inode into a local cache\n  NFS: Read pages from FS-Cache into an NFS inode\n  NFS: nfs_readpage_async() needs to be accessible as a fallback for local caching\n  NFS: Add read context retention for FS-Cache to call back with\n  NFS: FS-Cache page management\n  NFS: Add some new I/O counters for FS-Cache doing things for NFS\n  NFS: Invalidate FsCache page flags when cache removed\n  NFS: Use local disk inode cache\n  NFS: Define and create inode-level cache objects\n  NFS: Define and create superblock-level objects\n  NFS: Define and create server-level objects\n  NFS: Register NFS for caching and retrieve the top-level index\n  NFS: Permit local filesystem caching to be enabled for NFS\n  NFS: Add FS-Cache option bit and debug bit\n  NFS: Add comment banners to some NFS functions\n  FS-Cache: Make kAFS use FS-Cache\n  CacheFiles: A cache that backs onto a mounted filesystem\n  CacheFiles: Export things for CacheFiles\n  ...\n"
    },
    {
      "commit": "9b59f0316bc556a1b63518f0b1224cf9be48467b",
      "tree": "d6ffccbe5d9ce5f55c1b2efaf02220c701d4420a",
      "parents": [
        "ac7c1a776dfe1a9c83ea7885f858f5f1a144d8af",
        "0d8fe329a80714e0f729ae48cba8d64cbe5701cb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 09:53:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 09:53:22 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.open-osd.org/linux-open-osd\n\n* \u0027for-linus\u0027 of git://git.open-osd.org/linux-open-osd:\n  fs: Add exofs to Kernel build\n  exofs: Documentation\n  exofs: export_operations\n  exofs: super_operations and file_system_type\n  exofs: dir_inode and directory operations\n  exofs: address_space_operations\n  exofs: symlink_inode and fast_symlink_inode operations\n  exofs: file and file_inode operations\n  exofs: Kbuild, Headers and osd utils\n"
    },
    {
      "commit": "03c3fa0a3bf48dcb024263a9ea41daecacbc6efa",
      "tree": "8fcd8410094e86cb9e58efd835e8e70b6b928788",
      "parents": [
        "3e850509e19b4b013bf6aee7c0d24d047c4b968f",
        "146bca72c7e6ba52de82a63b1fce7934dc103dbc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 09:50:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 09:50:39 2009 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6:\n  udf: Don\u0027t write integrity descriptor too often\n  udf: Try anchor in block 256 first\n  udf: Some type fixes and cleanups\n  udf: use hardware sector size\n  udf: fix novrs mount option\n  udf: Fix oops when invalid character in filename occurs\n  udf: return f_fsid for statfs(2)\n  udf: Add checks to not underflow sector_t\n  udf: fix default mode and dmode options handling\n  udf: fix sparse warnings:\n  udf: unsigned last[i] cannot be less than 0\n  udf: implement mode and dmode mounting options\n  udf: reduce stack usage of udf_get_filename\n  udf: reduce stack usage of udf_load_pvoldesc\n  Fix the udf code not to pass structs on stack where possible.\n  Remove struct typedefs from fs/udf/ecma_167.h et al.\n"
    },
    {
      "commit": "3e850509e19b4b013bf6aee7c0d24d047c4b968f",
      "tree": "3775fea2ac9ff910a79611915ae873a86e9efd79",
      "parents": [
        "a0e0404fb06164100991cacf8e055f6b30f87cc9",
        "edd4070f5d943b35e3e1a2e5e95e4a2eebb11d53"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 09:50:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 09:50:14 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/rcu-doc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/rcu-doc-2.6:\n  Doc: Fix spelling in RCU/rculist_nulls.txt.\n  Doc: Fix wrong API example usage of call_rcu().\n  Doc: Fix missing whitespaces in RCU documentation.\n"
    },
    {
      "commit": "223cdea4c4b5af5181b2da00ac85711d1e0c737c",
      "tree": "dfe7226c70ddabbf2e2e63924ba636345278e79c",
      "parents": [
        "31e6e2dac575c9d21a6ec56ca52ae89086baa705",
        "c8f517c444e4f9f55b5b5ca202b8404691a35805"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 09:08:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 09:08:19 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md: (53 commits)\n  md/raid5 revise rules for when to update metadata during reshape\n  md/raid5: minor code cleanups in make_request.\n  md: remove CONFIG_MD_RAID_RESHAPE config option.\n  md/raid5: be more careful about write ordering when reshaping.\n  md: don\u0027t display meaningless values in sysfs files resync_start and sync_speed\n  md/raid5: allow layout and chunksize to be changed on active array.\n  md/raid5: reshape using largest of old and new chunk size\n  md/raid5: prepare for allowing reshape to change layout\n  md/raid5: prepare for allowing reshape to change chunksize.\n  md/raid5: clearly differentiate \u0027before\u0027 and \u0027after\u0027 stripes during reshape.\n  Documentation/md.txt update\n  md: allow number of drives in raid5 to be reduced\n  md/raid5: change reshape-progress measurement to cope with reshaping backwards.\n  md: add explicit method to signal the end of a reshape.\n  md/raid5: enhance raid5_size to work correctly with negative delta_disks\n  md/raid5: drop qd_idx from r6_state\n  md/raid6: move raid6 data processing to raid6_pq.ko\n  md: raid5 run(): Fix max_degraded for raid level 4.\n  md: \u0027array_size\u0027 sysfs attribute\n  md: centralize -\u003earray_sectors modifications\n  ...\n"
    },
    {
      "commit": "31e6e2dac575c9d21a6ec56ca52ae89086baa705",
      "tree": "a83dc42a3e4ff2e49e532031ec3e86c402e4baa1",
      "parents": [
        "ea02259fdf47ca81ff3ca0c22906d989094fb8ff",
        "67a52bb90b515c2a96ec51a3571bcd70a2fadb50"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 09:05:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 09:05:40 2009 -0700"
      },
      "message": "Merge master.kernel.org:/home/rmk/linux-2.6-arm\n\n* master.kernel.org:/home/rmk/linux-2.6-arm:\n  [ARM] fix build-breaking 7a192ec commit\n  ARM: Add SMSC911X support to Overo platform (V2)\n  arm: update omap_ldp defconfig to use smsc911x\n  arm: update realview defconfigs to use smsc911x\n  arm: update pcm037 defconfig to use smsc911x\n  arm: convert omap ldp platform to use smsc911x\n  arm: convert realview platform to use smsc911x\n  arm: convert pcm037 platform to use smsc911x\n  [ARM] 5444/1: ARM: Realview: Fix event-device multiplicators in localtimer.c\n  [ARM] 5442/1: pxa/cm-x255: fix reverse RDY gpios in PCMCIA driver\n  [ARM] 5441/1: Use pr_err on error paths in at91 pm\n  [ARM] 5440/1: Fix VFP state corruption due to preemption during VFP exceptions\n  [ARM] 5439/1: Do not clear bit 10 of DFSR during abort handling on ARMv6\n  [ARM] 5437/1: Add documentation for \"nohlt\" kernel parameter\n  [ARM] 5436/1: ARM: OMAP: Fix compile for rx51\n  [ARM] arch_reset() now takes a second parameter\n  [ARM] Kirkwood: small L2 code cleanup\n  [ARM] Kirkwood: invalidate L2 cache before enabling it\n"
    },
    {
      "commit": "9ae326a69004dea8af2dae4fde58de27db700a8d",
      "tree": "3a1d88a6e297989bfbd17648b398c7aa5ef9bf30",
      "parents": [
        "800a964787faef3509d194fa33268628c3d1daa9"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:41 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:41 2009 +0100"
      },
      "message": "CacheFiles: A cache that backs onto a mounted filesystem\n\nAdd an FS-Cache cache-backend that permits a mounted filesystem to be used as a\nbacking store for the cache.\n\nCacheFiles uses a userspace daemon to do some of the cache management - such as\nreaping stale nodes and culling.  This is called cachefilesd and lives in\n/sbin.  The source for the daemon can be downloaded from:\n\n\thttp://people.redhat.com/~dhowells/cachefs/cachefilesd.c\n\nAnd an example configuration from:\n\n\thttp://people.redhat.com/~dhowells/cachefs/cachefilesd.conf\n\nThe filesystem and data integrity of the cache are only as good as those of the\nfilesystem providing the backing services.  Note that CacheFiles does not\nattempt to journal anything since the journalling interfaces of the various\nfilesystems are very specific in nature.\n\nCacheFiles creates a misc character device - \"/dev/cachefiles\" - that is used\nto communication with the daemon.  Only one thing may have this open at once,\nand whilst it is open, a cache is at least partially in existence.  The daemon\nopens this and sends commands down it to control the cache.\n\nCacheFiles is currently limited to a single cache.\n\nCacheFiles attempts to maintain at least a certain percentage of free space on\nthe filesystem, shrinking the cache by culling the objects it contains to make\nspace if necessary - see the \"Cache Culling\" section.  This means it can be\nplaced on the same medium as a live set of data, and will expand to make use of\nspare space and automatically contract when the set of data requires more\nspace.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nREQUIREMENTS\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe use of CacheFiles and its daemon requires the following features to be\navailable in the system and in the cache filesystem:\n\n\t- dnotify.\n\n\t- extended attributes (xattrs).\n\n\t- openat() and friends.\n\n\t- bmap() support on files in the filesystem (FIBMAP ioctl).\n\n\t- The use of bmap() to detect a partial page at the end of the file.\n\nIt is strongly recommended that the \"dir_index\" option is enabled on Ext3\nfilesystems being used as a cache.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nCONFIGURATION\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe cache is configured by a script in /etc/cachefilesd.conf.  These commands\nset up cache ready for use.  The following script commands are available:\n\n (*) brun \u003cN\u003e%\n (*) bcull \u003cN\u003e%\n (*) bstop \u003cN\u003e%\n (*) frun \u003cN\u003e%\n (*) fcull \u003cN\u003e%\n (*) fstop \u003cN\u003e%\n\n\tConfigure the culling limits.  Optional.  See the section on culling\n\tThe defaults are 7% (run), 5% (cull) and 1% (stop) respectively.\n\n\tThe commands beginning with a \u0027b\u0027 are file space (block) limits, those\n\tbeginning with an \u0027f\u0027 are file count limits.\n\n (*) dir \u003cpath\u003e\n\n\tSpecify the directory containing the root of the cache.  Mandatory.\n\n (*) tag \u003cname\u003e\n\n\tSpecify a tag to FS-Cache to use in distinguishing multiple caches.\n\tOptional.  The default is \"CacheFiles\".\n\n (*) debug \u003cmask\u003e\n\n\tSpecify a numeric bitmask to control debugging in the kernel module.\n\tOptional.  The default is zero (all off).  The following values can be\n\tOR\u0027d into the mask to collect various information:\n\n\t\t1\tTurn on trace of function entry (_enter() macros)\n\t\t2\tTurn on trace of function exit (_leave() macros)\n\t\t4\tTurn on trace of internal debug points (_debug())\n\n\tThis mask can also be set through sysfs, eg:\n\n\t\techo 5 \u003e/sys/modules/cachefiles/parameters/debug\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nSTARTING THE CACHE\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe cache is started by running the daemon.  The daemon opens the cache device,\nconfigures the cache and tells it to begin caching.  At that point the cache\nbinds to fscache and the cache becomes live.\n\nThe daemon is run as follows:\n\n\t/sbin/cachefilesd [-d]* [-s] [-n] [-f \u003cconfigfile\u003e]\n\nThe flags are:\n\n (*) -d\n\n\tIncrease the debugging level.  This can be specified multiple times and\n\tis cumulative with itself.\n\n (*) -s\n\n\tSend messages to stderr instead of syslog.\n\n (*) -n\n\n\tDon\u0027t daemonise and go into background.\n\n (*) -f \u003cconfigfile\u003e\n\n\tUse an alternative configuration file rather than the default one.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nTHINGS TO AVOID\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nDo not mount other things within the cache as this will cause problems.  The\nkernel module contains its own very cut-down path walking facility that ignores\nmountpoints, but the daemon can\u0027t avoid them.\n\nDo not create, rename or unlink files and directories in the cache whilst the\ncache is active, as this may cause the state to become uncertain.\n\nRenaming files in the cache might make objects appear to be other objects (the\nfilename is part of the lookup key).\n\nDo not change or remove the extended attributes attached to cache files by the\ncache as this will cause the cache state management to get confused.\n\nDo not create files or directories in the cache, lest the cache get confused or\nserve incorrect data.\n\nDo not chmod files in the cache.  The module creates things with minimal\npermissions to prevent random users being able to access them directly.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nCACHE CULLING\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe cache may need culling occasionally to make space.  This involves\ndiscarding objects from the cache that have been used less recently than\nanything else.  Culling is based on the access time of data objects.  Empty\ndirectories are culled if not in use.\n\nCache culling is done on the basis of the percentage of blocks and the\npercentage of files available in the underlying filesystem.  There are six\n\"limits\":\n\n (*) brun\n (*) frun\n\n     If the amount of free space and the number of available files in the cache\n     rises above both these limits, then culling is turned off.\n\n (*) bcull\n (*) fcull\n\n     If the amount of available space or the number of available files in the\n     cache falls below either of these limits, then culling is started.\n\n (*) bstop\n (*) fstop\n\n     If the amount of available space or the number of available files in the\n     cache falls below either of these limits, then no further allocation of\n     disk space or files is permitted until culling has raised things above\n     these limits again.\n\nThese must be configured thusly:\n\n\t0 \u003c\u003d bstop \u003c bcull \u003c brun \u003c 100\n\t0 \u003c\u003d fstop \u003c fcull \u003c frun \u003c 100\n\nNote that these are percentages of available space and available files, and do\n_not_ appear as 100 minus the percentage displayed by the \"df\" program.\n\nThe userspace daemon scans the cache to build up a table of cullable objects.\nThese are then culled in least recently used order.  A new scan of the cache is\nstarted as soon as space is made in the table.  Objects will be skipped if\ntheir atimes have changed or if the kernel module says it is still using them.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nCACHE STRUCTURE\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe CacheFiles module will create two directories in the directory it was\ngiven:\n\n (*) cache/\n\n (*) graveyard/\n\nThe active cache objects all reside in the first directory.  The CacheFiles\nkernel module moves any retired or culled objects that it can\u0027t simply unlink\nto the graveyard from which the daemon will actually delete them.\n\nThe daemon uses dnotify to monitor the graveyard directory, and will delete\nanything that appears therein.\n\nThe module represents index objects as directories with the filename \"I...\" or\n\"J...\".  Note that the \"cache/\" directory is itself a special index.\n\nData objects are represented as files if they have no children, or directories\nif they do.  Their filenames all begin \"D...\" or \"E...\".  If represented as a\ndirectory, data objects will have a file in the directory called \"data\" that\nactually holds the data.\n\nSpecial objects are similar to data objects, except their filenames begin\n\"S...\" or \"T...\".\n\nIf an object has children, then it will be represented as a directory.\nImmediately in the representative directory are a collection of directories\nnamed for hash values of the child object keys with an \u0027@\u0027 prepended.  Into\nthis directory, if possible, will be placed the representations of the child\nobjects:\n\n\tINDEX     INDEX      INDEX                             DATA FILES\n\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\tcache/@4a/I03nfs/@30/Ji000000000000000--fHg8hi8400\n\tcache/@4a/I03nfs/@30/Ji000000000000000--fHg8hi8400/@75/Es0g000w...DB1ry\n\tcache/@4a/I03nfs/@30/Ji000000000000000--fHg8hi8400/@75/Es0g000w...N22ry\n\tcache/@4a/I03nfs/@30/Ji000000000000000--fHg8hi8400/@75/Es0g000w...FP1ry\n\nIf the key is so long that it exceeds NAME_MAX with the decorations added on to\nit, then it will be cut into pieces, the first few of which will be used to\nmake a nest of directories, and the last one of which will be the objects\ninside the last directory.  The names of the intermediate directories will have\n\u0027+\u0027 prepended:\n\n\tJ1223/@23/+xy...z/+kl...m/Epqr\n\nNote that keys are raw data, and not only may they exceed NAME_MAX in size,\nthey may also contain things like \u0027/\u0027 and NUL characters, and so they may not\nbe suitable for turning directly into a filename.\n\nTo handle this, CacheFiles will use a suitably printable filename directly and\n\"base-64\" encode ones that aren\u0027t directly suitable.  The two versions of\nobject filenames indicate the encoding:\n\n\tOBJECT TYPE\tPRINTABLE\tENCODED\n\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\tIndex\t\t\"I...\"\t\t\"J...\"\n\tData\t\t\"D...\"\t\t\"E...\"\n\tSpecial\t\t\"S...\"\t\t\"T...\"\n\nIntermediate directories are always \"@\" or \"+\" as appropriate.\n\nEach object in the cache has an extended attribute label that holds the object\ntype ID (required to distinguish special objects) and the auxiliary data from\nthe netfs.  The latter is used to detect stale objects in the cache and update\nor retire them.\n\nNote that CacheFiles will erase from the cache any file it doesn\u0027t recognise or\nany file of an incorrect type (such as a FIFO file or a device file).\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nSECURITY MODEL AND SELINUX\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nCacheFiles is implemented to deal properly with the LSM security features of\nthe Linux kernel and the SELinux facility.\n\nOne of the problems that CacheFiles faces is that it is generally acting on\nbehalf of a process, and running in that process\u0027s context, and that includes a\nsecurity context that is not appropriate for accessing the cache - either\nbecause the files in the cache are inaccessible to that process, or because if\nthe process creates a file in the cache, that file may be inaccessible to other\nprocesses.\n\nThe way CacheFiles works is to temporarily change the security context (fsuid,\nfsgid and actor security label) that the process acts as - without changing the\nsecurity context of the process when it the target of an operation performed by\nsome other process (so signalling and suchlike still work correctly).\n\nWhen the CacheFiles module is asked to bind to its cache, it:\n\n (1) Finds the security label attached to the root cache directory and uses\n     that as the security label with which it will create files.  By default,\n     this is:\n\n\tcachefiles_var_t\n\n (2) Finds the security label of the process which issued the bind request\n     (presumed to be the cachefilesd daemon), which by default will be:\n\n\tcachefilesd_t\n\n     and asks LSM to supply a security ID as which it should act given the\n     daemon\u0027s label.  By default, this will be:\n\n\tcachefiles_kernel_t\n\n     SELinux transitions the daemon\u0027s security ID to the module\u0027s security ID\n     based on a rule of this form in the policy.\n\n\ttype_transition \u003cdaemon\u0027s-ID\u003e kernel_t : process \u003cmodule\u0027s-ID\u003e;\n\n     For instance:\n\n\ttype_transition cachefilesd_t kernel_t : process cachefiles_kernel_t;\n\nThe module\u0027s security ID gives it permission to create, move and remove files\nand directories in the cache, to find and access directories and files in the\ncache, to set and access extended attributes on cache objects, and to read and\nwrite files in the cache.\n\nThe daemon\u0027s security ID gives it only a very restricted set of permissions: it\nmay scan directories, stat files and erase files and directories.  It may\nnot read or write files in the cache, and so it is precluded from accessing the\ndata cached therein; nor is it permitted to create new files in the cache.\n\nThere are policy source files available in:\n\n\thttp://people.redhat.com/~dhowells/fscache/cachefilesd-0.8.tar.bz2\n\nand later versions.  In that tarball, see the files:\n\n\tcachefilesd.te\n\tcachefilesd.fc\n\tcachefilesd.if\n\nThey are built and installed directly by the RPM.\n\nIf a non-RPM based system is being used, then copy the above files to their own\ndirectory and run:\n\n\tmake -f /usr/share/selinux/devel/Makefile\n\tsemodule -i cachefilesd.pp\n\nYou will need checkpolicy and selinux-policy-devel installed prior to the\nbuild.\n\nBy default, the cache is located in /var/fscache, but if it is desirable that\nit should be elsewhere, than either the above policy files must be altered, or\nan auxiliary policy must be installed to label the alternate location of the\ncache.\n\nFor instructions on how to add an auxiliary policy to enable the cache to be\nlocated elsewhere when SELinux is in enforcing mode, please see:\n\n\t/usr/share/doc/cachefilesd-*/move-cache.txt\n\nWhen the cachefilesd rpm is installed; alternatively, the document can be found\nin the sources.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nA NOTE ON SECURITY\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nCacheFiles makes use of the split security in the task_struct.  It allocates\nits own task_security structure, and redirects current-\u003eact_as to point to it\nwhen it acts on behalf of another process, in that process\u0027s context.\n\nThe reason it does this is that it calls vfs_mkdir() and suchlike rather than\nbypassing security and calling inode ops directly.  Therefore the VFS and LSM\nmay deny the CacheFiles access to the cache data because under some\ncircumstances the caching code is running in the security context of whatever\nprocess issued the original syscall on the netfs.\n\nFurthermore, should CacheFiles create a file or directory, the security\nparameters with that object is created (UID, GID, security label) would be\nderived from that process that issued the system call, thus potentially\npreventing other processes from accessing the cache - including CacheFiles\u0027s\ncache management daemon (cachefilesd).\n\nWhat is required is to temporarily override the security of the process that\nissued the system call.  We can\u0027t, however, just do an in-place change of the\nsecurity data as that affects the process as an object, not just as a subject.\nThis means it may lose signals or ptrace events for example, and affects what\nthe process looks like in /proc.\n\nSo CacheFiles makes use of a logical split in the security between the\nobjective security (task-\u003esec) and the subjective security (task-\u003eact_as).  The\nobjective security holds the intrinsic security properties of a process and is\nnever overridden.  This is what appears in /proc, and is what is used when a\nprocess is the target of an operation by some other process (SIGKILL for\nexample).\n\nThe subjective security holds the active security properties of a process, and\nmay be overridden.  This is not seen externally, and is used whan a process\nacts upon another object, for example SIGKILLing another process or opening a\nfile.\n\nLSM hooks exist that allow SELinux (or Smack or whatever) to reject a request\nfor CacheFiles to run in a context of a specific security label, or to create\nfiles and directories with another security label.\n\nThis documentation is added by the patch to:\n\n\tDocumentation/filesystems/caching/cachefiles.txt\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "952efe7b7840e1c726ae88222245e4efe6bd88f3",
      "tree": "fed43da6709707d0eb51b8695b6b382a221e99bd",
      "parents": [
        "ccc4fc3d11e91477036d1f82bfa2d442f6ce77f0"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:39 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:39 2009 +0100"
      },
      "message": "FS-Cache: Add and document asynchronous operation handling\n\nAdd and document asynchronous operation handling for use by FS-Cache\u0027s data\nstorage and retrieval routines.\n\nThe following documentation is added to:\n\n\tDocumentation/filesystems/caching/operations.txt\n\n\t\t       \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\t\t       ASYNCHRONOUS OPERATIONS HANDLING\n\t\t       \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nOVERVIEW\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nFS-Cache has an asynchronous operations handling facility that it uses for its\ndata storage and retrieval routines.  Its operations are represented by\nfscache_operation structs, though these are usually embedded into some other\nstructure.\n\nThis facility is available to and expected to be be used by the cache backends,\nand FS-Cache will create operations and pass them off to the appropriate cache\nbackend for completion.\n\nTo make use of this facility, \u003clinux/fscache-cache.h\u003e should be #included.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nOPERATION RECORD INITIALISATION\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAn operation is recorded in an fscache_operation struct:\n\n\tstruct fscache_operation {\n\t\tunion {\n\t\t\tstruct work_struct fast_work;\n\t\t\tstruct slow_work slow_work;\n\t\t};\n\t\tunsigned long\t\tflags;\n\t\tfscache_operation_processor_t processor;\n\t\t...\n\t};\n\nSomeone wanting to issue an operation should allocate something with this\nstruct embedded in it.  They should initialise it by calling:\n\n\tvoid fscache_operation_init(struct fscache_operation *op,\n\t\t\t\t    fscache_operation_release_t release);\n\nwith the operation to be initialised and the release function to use.\n\nThe op-\u003eflags parameter should be set to indicate the CPU time provision and\nthe exclusivity (see the Parameters section).\n\nThe op-\u003efast_work, op-\u003eslow_work and op-\u003eprocessor flags should be set as\nappropriate for the CPU time provision (see the Parameters section).\n\nFSCACHE_OP_WAITING may be set in op-\u003eflags prior to each submission of the\noperation and waited for afterwards.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nPARAMETERS\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThere are a number of parameters that can be set in the operation record\u0027s flag\nparameter.  There are three options for the provision of CPU time in these\noperations:\n\n (1) The operation may be done synchronously (FSCACHE_OP_MYTHREAD).  A thread\n     may decide it wants to handle an operation itself without deferring it to\n     another thread.\n\n     This is, for example, used in read operations for calling readpages() on\n     the backing filesystem in CacheFiles.  Although readpages() does an\n     asynchronous data fetch, the determination of whether pages exist is done\n     synchronously - and the netfs does not proceed until this has been\n     determined.\n\n     If this option is to be used, FSCACHE_OP_WAITING must be set in op-\u003eflags\n     before submitting the operation, and the operating thread must wait for it\n     to be cleared before proceeding:\n\n\t\twait_on_bit(\u0026op-\u003eflags, FSCACHE_OP_WAITING,\n\t\t\t    fscache_wait_bit, TASK_UNINTERRUPTIBLE);\n\n (2) The operation may be fast asynchronous (FSCACHE_OP_FAST), in which case it\n     will be given to keventd to process.  Such an operation is not permitted\n     to sleep on I/O.\n\n     This is, for example, used by CacheFiles to copy data from a backing fs\n     page to a netfs page after the backing fs has read the page in.\n\n     If this option is used, op-\u003efast_work and op-\u003eprocessor must be\n     initialised before submitting the operation:\n\n\t\tINIT_WORK(\u0026op-\u003efast_work, do_some_work);\n\n (3) The operation may be slow asynchronous (FSCACHE_OP_SLOW), in which case it\n     will be given to the slow work facility to process.  Such an operation is\n     permitted to sleep on I/O.\n\n     This is, for example, used by FS-Cache to handle background writes of\n     pages that have just been fetched from a remote server.\n\n     If this option is used, op-\u003eslow_work and op-\u003eprocessor must be\n     initialised before submitting the operation:\n\n\t\tfscache_operation_init_slow(op, processor)\n\nFurthermore, operations may be one of two types:\n\n (1) Exclusive (FSCACHE_OP_EXCLUSIVE).  Operations of this type may not run in\n     conjunction with any other operation on the object being operated upon.\n\n     An example of this is the attribute change operation, in which the file\n     being written to may need truncation.\n\n (2) Shareable.  Operations of this type may be running simultaneously.  It\u0027s\n     up to the operation implementation to prevent interference between other\n     operations running at the same time.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nPROCEDURE\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nOperations are used through the following procedure:\n\n (1) The submitting thread must allocate the operation and initialise it\n     itself.  Normally this would be part of a more specific structure with the\n     generic op embedded within.\n\n (2) The submitting thread must then submit the operation for processing using\n     one of the following two functions:\n\n\tint fscache_submit_op(struct fscache_object *object,\n\t\t\t      struct fscache_operation *op);\n\n\tint fscache_submit_exclusive_op(struct fscache_object *object,\n\t\t\t\t\tstruct fscache_operation *op);\n\n     The first function should be used to submit non-exclusive ops and the\n     second to submit exclusive ones.  The caller must still set the\n     FSCACHE_OP_EXCLUSIVE flag.\n\n     If successful, both functions will assign the operation to the specified\n     object and return 0.  -ENOBUFS will be returned if the object specified is\n     permanently unavailable.\n\n     The operation manager will defer operations on an object that is still\n     undergoing lookup or creation.  The operation will also be deferred if an\n     operation of conflicting exclusivity is in progress on the object.\n\n     If the operation is asynchronous, the manager will retain a reference to\n     it, so the caller should put their reference to it by passing it to:\n\n\tvoid fscache_put_operation(struct fscache_operation *op);\n\n (3) If the submitting thread wants to do the work itself, and has marked the\n     operation with FSCACHE_OP_MYTHREAD, then it should monitor\n     FSCACHE_OP_WAITING as described above and check the state of the object if\n     necessary (the object might have died whilst the thread was waiting).\n\n     When it has finished doing its processing, it should call\n     fscache_put_operation() on it.\n\n (4) The operation holds an effective lock upon the object, preventing other\n     exclusive ops conflicting until it is released.  The operation can be\n     enqueued for further immediate asynchronous processing by adjusting the\n     CPU time provisioning option if necessary, eg:\n\n\top-\u003eflags \u0026\u003d ~FSCACHE_OP_TYPE;\n\top-\u003eflags |\u003d ~FSCACHE_OP_FAST;\n\n     and calling:\n\n\tvoid fscache_enqueue_operation(struct fscache_operation *op)\n\n     This can be used to allow other things to have use of the worker thread\n     pools.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nASYNCHRONOUS CALLBACK\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nWhen used in asynchronous mode, the worker thread pool will invoke the\nprocessor method with a pointer to the operation.  This should then get at the\ncontainer struct by using container_of():\n\n\tstatic void fscache_write_op(struct fscache_operation *_op)\n\t{\n\t\tstruct fscache_storage *op \u003d\n\t\t\tcontainer_of(_op, struct fscache_storage, op);\n\t...\n\t}\n\nThe caller holds a reference on the operation, and will invoke\nfscache_put_operation() when the processor function returns.  The processor\nfunction is at liberty to call fscache_enqueue_operation() or to take extra\nreferences.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "36c9559022850f919269564a74bf17fdabf4bb30",
      "tree": "f163afcf8f8a9eb1a5d63fd6198fcb3e29564493",
      "parents": [
        "2868cbea72dc89ae0eb17693596b1dedaafff1c5"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:38 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:38 2009 +0100"
      },
      "message": "FS-Cache: Object management state machine\n\nImplement the cache object management state machine.\n\nThe following documentation is added to illuminate the working of this state\nmachine.  It will also be added as:\n\n\tDocumentation/filesystems/caching/object.txt\n\n\t     \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\t     IN-KERNEL CACHE OBJECT REPRESENTATION AND MANAGEMENT\n\t     \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nREPRESENTATION\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nFS-Cache maintains an in-kernel representation of each object that a netfs is\ncurrently interested in.  Such objects are represented by the fscache_cookie\nstruct and are referred to as cookies.\n\nFS-Cache also maintains a separate in-kernel representation of the objects that\na cache backend is currently actively caching.  Such objects are represented by\nthe fscache_object struct.  The cache backends allocate these upon request, and\nare expected to embed them in their own representations.  These are referred to\nas objects.\n\nThere is a 1:N relationship between cookies and objects.  A cookie may be\nrepresented by multiple objects - an index may exist in more than one cache -\nor even by no objects (it may not be cached).\n\nFurthermore, both cookies and objects are hierarchical.  The two hierarchies\ncorrespond, but the cookies tree is a superset of the union of the object trees\nof multiple caches:\n\n\t    NETFS INDEX TREE               :      CACHE 1     :      CACHE 2\n\t                                   :                  :\n\t                                   :   +-----------+  :\n\t                          +-----------\u003e|  IObject  |  :\n\t      +-----------+       |        :   +-----------+  :\n\t      |  ICookie  |-------+        :         |        :\n\t      +-----------+       |        :         |        :   +-----------+\n\t            |             +------------------------------\u003e|  IObject  |\n\t            |                      :         |        :   +-----------+\n\t            |                      :         V        :         |\n\t            |                      :   +-----------+  :         |\n\t            V             +-----------\u003e|  IObject  |  :         |\n\t      +-----------+       |        :   +-----------+  :         |\n\t      |  ICookie  |-------+        :         |        :         V\n\t      +-----------+       |        :         |        :   +-----------+\n\t            |             +------------------------------\u003e|  IObject  |\n\t      +-----+-----+                :         |        :   +-----------+\n\t      |           |                :         |        :         |\n\t      V           |                :         V        :         |\n\t+-----------+     |                :   +-----------+  :         |\n\t|  ICookie  |-------------------------\u003e|  IObject  |  :         |\n\t+-----------+     |                :   +-----------+  :         |\n\t      |           V                :         |        :         V\n\t      |     +-----------+          :         |        :   +-----------+\n\t      |     |  ICookie  |--------------------------------\u003e|  IObject  |\n\t      |     +-----------+          :         |        :   +-----------+\n\t      V           |                :         V        :         |\n\t+-----------+     |                :   +-----------+  :         |\n\t|  DCookie  |-------------------------\u003e|  DObject  |  :         |\n\t+-----------+     |                :   +-----------+  :         |\n\t                  |                :                  :         |\n\t          +-------+-------+        :                  :         |\n\t          |               |        :                  :         |\n\t          V               V        :                  :         V\n\t    +-----------+   +-----------+  :                  :   +-----------+\n\t    |  DCookie  |   |  DCookie  |------------------------\u003e|  DObject  |\n\t    +-----------+   +-----------+  :                  :   +-----------+\n\t                                   :                  :\n\nIn the above illustration, ICookie and IObject represent indices and DCookie\nand DObject represent data storage objects.  Indices may have representation in\nmultiple caches, but currently, non-index objects may not.  Objects of any type\nmay also be entirely unrepresented.\n\nAs far as the netfs API goes, the netfs is only actually permitted to see\npointers to the cookies.  The cookies themselves and any objects attached to\nthose cookies are hidden from it.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nOBJECT MANAGEMENT STATE MACHINE\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nWithin FS-Cache, each active object is managed by its own individual state\nmachine.  The state for an object is kept in the fscache_object struct, in\nobject-\u003estate.  A cookie may point to a set of objects that are in different\nstates.\n\nEach state has an action associated with it that is invoked when the machine\nwakes up in that state.  There are four logical sets of states:\n\n (1) Preparation: states that wait for the parent objects to become ready.  The\n     representations are hierarchical, and it is expected that an object must\n     be created or accessed with respect to its parent object.\n\n (2) Initialisation: states that perform lookups in the cache and validate\n     what\u0027s found and that create on disk any missing metadata.\n\n (3) Normal running: states that allow netfs operations on objects to proceed\n     and that update the state of objects.\n\n (4) Termination: states that detach objects from their netfs cookies, that\n     delete objects from disk, that handle disk and system errors and that free\n     up in-memory resources.\n\nIn most cases, transitioning between states is in response to signalled events.\nWhen a state has finished processing, it will usually set the mask of events in\nwhich it is interested (object-\u003eevent_mask) and relinquish the worker thread.\nThen when an event is raised (by calling fscache_raise_event()), if the event\nis not masked, the object will be queued for processing (by calling\nfscache_enqueue_object()).\n\nPROVISION OF CPU TIME\n---------------------\n\nThe work to be done by the various states is given CPU time by the threads of\nthe slow work facility (see Documentation/slow-work.txt).  This is used in\npreference to the workqueue facility because:\n\n (1) Threads may be completely occupied for very long periods of time by a\n     particular work item.  These state actions may be doing sequences of\n     synchronous, journalled disk accesses (lookup, mkdir, create, setxattr,\n     getxattr, truncate, unlink, rmdir, rename).\n\n (2) Threads may do little actual work, but may rather spend a lot of time\n     sleeping on I/O.  This means that single-threaded and 1-per-CPU-threaded\n     workqueues don\u0027t necessarily have the right numbers of threads.\n\nLOCKING SIMPLIFICATION\n----------------------\n\nBecause only one worker thread may be operating on any particular object\u0027s\nstate machine at once, this simplifies the locking, particularly with respect\nto disconnecting the netfs\u0027s representation of a cache object (fscache_cookie)\nfrom the cache backend\u0027s representation (fscache_object) - which may be\nrequested from either end.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nTHE SET OF STATES\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe object state machine has a set of states that it can be in.  There are\npreparation states in which the object sets itself up and waits for its parent\nobject to transit to a state that allows access to its children:\n\n (1) State FSCACHE_OBJECT_INIT.\n\n     Initialise the object and wait for the parent object to become active.  In\n     the cache, it is expected that it will not be possible to look an object\n     up from the parent object, until that parent object itself has been looked\n     up.\n\nThere are initialisation states in which the object sets itself up and accesses\ndisk for the object metadata:\n\n (2) State FSCACHE_OBJECT_LOOKING_UP.\n\n     Look up the object on disk, using the parent as a starting point.\n     FS-Cache expects the cache backend to probe the cache to see whether this\n     object is represented there, and if it is, to see if it\u0027s valid (coherency\n     management).\n\n     The cache should call fscache_object_lookup_negative() to indicate lookup\n     failure for whatever reason, and should call fscache_obtained_object() to\n     indicate success.\n\n     At the completion of lookup, FS-Cache will let the netfs go ahead with\n     read operations, no matter whether the file is yet cached.  If not yet\n     cached, read operations will be immediately rejected with ENODATA until\n     the first known page is uncached - as to that point there can be no data\n     to be read out of the cache for that file that isn\u0027t currently also held\n     in the pagecache.\n\n (3) State FSCACHE_OBJECT_CREATING.\n\n     Create an object on disk, using the parent as a starting point.  This\n     happens if the lookup failed to find the object, or if the object\u0027s\n     coherency data indicated what\u0027s on disk is out of date.  In this state,\n     FS-Cache expects the cache to create\n\n     The cache should call fscache_obtained_object() if creation completes\n     successfully, fscache_object_lookup_negative() otherwise.\n\n     At the completion of creation, FS-Cache will start processing write\n     operations the netfs has queued for an object.  If creation failed, the\n     write ops will be transparently discarded, and nothing recorded in the\n     cache.\n\nThere are some normal running states in which the object spends its time\nservicing netfs requests:\n\n (4) State FSCACHE_OBJECT_AVAILABLE.\n\n     A transient state in which pending operations are started, child objects\n     are permitted to advance from FSCACHE_OBJECT_INIT state, and temporary\n     lookup data is freed.\n\n (5) State FSCACHE_OBJECT_ACTIVE.\n\n     The normal running state.  In this state, requests the netfs makes will be\n     passed on to the cache.\n\n (6) State FSCACHE_OBJECT_UPDATING.\n\n     The state machine comes here to update the object in the cache from the\n     netfs\u0027s records.  This involves updating the auxiliary data that is used\n     to maintain coherency.\n\nAnd there are terminal states in which an object cleans itself up, deallocates\nmemory and potentially deletes stuff from disk:\n\n (7) State FSCACHE_OBJECT_LC_DYING.\n\n     The object comes here if it is dying because of a lookup or creation\n     error.  This would be due to a disk error or system error of some sort.\n     Temporary data is cleaned up, and the parent is released.\n\n (8) State FSCACHE_OBJECT_DYING.\n\n     The object comes here if it is dying due to an error, because its parent\n     cookie has been relinquished by the netfs or because the cache is being\n     withdrawn.\n\n     Any child objects waiting on this one are given CPU time so that they too\n     can destroy themselves.  This object waits for all its children to go away\n     before advancing to the next state.\n\n (9) State FSCACHE_OBJECT_ABORT_INIT.\n\n     The object comes to this state if it was waiting on its parent in\n     FSCACHE_OBJECT_INIT, but its parent died.  The object will destroy itself\n     so that the parent may proceed from the FSCACHE_OBJECT_DYING state.\n\n(10) State FSCACHE_OBJECT_RELEASING.\n(11) State FSCACHE_OBJECT_RECYCLING.\n\n     The object comes to one of these two states when dying once it is rid of\n     all its children, if it is dying because the netfs relinquished its\n     cookie.  In the first state, the cached data is expected to persist, and\n     in the second it will be deleted.\n\n(12) State FSCACHE_OBJECT_WITHDRAWING.\n\n     The object transits to this state if the cache decides it wants to\n     withdraw the object from service, perhaps to make space, but also due to\n     error or just because the whole cache is being withdrawn.\n\n(13) State FSCACHE_OBJECT_DEAD.\n\n     The object transits to this state when the in-memory object record is\n     ready to be deleted.  The object processor shouldn\u0027t ever see an object in\n     this state.\n\nTHE SET OF EVENTS\n-----------------\n\nThere are a number of events that can be raised to an object state machine:\n\n (*) FSCACHE_OBJECT_EV_UPDATE\n\n     The netfs requested that an object be updated.  The state machine will ask\n     the cache backend to update the object, and the cache backend will ask the\n     netfs for details of the change through its cookie definition ops.\n\n (*) FSCACHE_OBJECT_EV_CLEARED\n\n     This is signalled in two circumstances:\n\n     (a) when an object\u0027s last child object is dropped and\n\n     (b) when the last operation outstanding on an object is completed.\n\n     This is used to proceed from the dying state.\n\n (*) FSCACHE_OBJECT_EV_ERROR\n\n     This is signalled when an I/O error occurs during the processing of some\n     object.\n\n (*) FSCACHE_OBJECT_EV_RELEASE\n (*) FSCACHE_OBJECT_EV_RETIRE\n\n     These are signalled when the netfs relinquishes a cookie it was using.\n     The event selected depends on whether the netfs asks for the backing\n     object to be retired (deleted) or retained.\n\n (*) FSCACHE_OBJECT_EV_WITHDRAW\n\n     This is signalled when the cache backend wants to withdraw an object.\n     This means that the object will have to be detached from the netfs\u0027s\n     cookie.\n\nBecause the withdrawing releasing/retiring events are all handled by the object\nstate machine, it doesn\u0027t matter if there\u0027s a collision with both ends trying\nto sever the connection at the same time.  The state machine can just pick\nwhich one it wants to honour, and that effects the other.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "7394daa8c61dfda4baa687f133748fa0b599b017",
      "tree": "32d2c55ed60596918ec62ce6ecca186337bf4660",
      "parents": [
        "06b3db1b9bccdc8c2c743122a89745279e5ecc46"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:37 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:37 2009 +0100"
      },
      "message": "FS-Cache: Add use of /proc and presentation of statistics\n\nMake FS-Cache create its /proc interface and present various statistical\ninformation through it.  Also provide the functions for updating this\ninformation.\n\nThese features are enabled by:\n\n\tCONFIG_FSCACHE_PROC\n\tCONFIG_FSCACHE_STATS\n\tCONFIG_FSCACHE_HISTOGRAM\n\nThe /proc directory for FS-Cache is also exported so that caching modules can\nadd their own statistics there too.\n\nThe FS-Cache module is loadable at this point, and the statistics files can be\nexamined by userspace:\n\n\tcat /proc/fs/fscache/stats\n\tcat /proc/fs/fscache/histogram\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "0dfc41d1efcc4180abfd32f68f0ade540e636ff6",
      "tree": "f066d08e2c33d2b475e55c5b18e4e4bff537ee75",
      "parents": [
        "2d6fff637037395cc946ef910a880b5fa67b5370"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:36 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:36 2009 +0100"
      },
      "message": "FS-Cache: Add the FS-Cache cache backend API and documentation\n\nAdd the API for a generic facility (FS-Cache) by which caches may declare them\nselves open for business, and may obtain work to be done from network\nfilesystems.  The header file is included by:\n\n\t#include \u003clinux/fscache-cache.h\u003e\n\nDocumentation for the API is also added to:\n\n\tDocumentation/filesystems/caching/backend-api.txt\n\nThis API is not usable without the implementation of the utility functions\nwhich will be added in further patches.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "2d6fff637037395cc946ef910a880b5fa67b5370",
      "tree": "a369011a976d5faf4fe45cf237503078cbbfb9b4",
      "parents": [
        "266cf658efcf6ac33541a46740f74f50c79d2b6b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:36 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:36 2009 +0100"
      },
      "message": "FS-Cache: Add the FS-Cache netfs API and documentation\n\nAdd the API for a generic facility (FS-Cache) by which filesystems (such as AFS\nor NFS) may call on local caching capabilities without having to know anything\nabout how the cache works, or even if there is a cache:\n\n\t+---------+\n\t|         |                        +--------------+\n\t|   NFS   |--+                     |              |\n\t|         |  |                 +--\u003e|   CacheFS    |\n\t+---------+  |   +----------+  |   |  /dev/hda5   |\n\t             |   |          |  |   +--------------+\n\t+---------+  +--\u003e|          |  |\n\t|         |      |          |--+\n\t|   AFS   |-----\u003e| FS-Cache |\n\t|         |      |          |--+\n\t+---------+  +--\u003e|          |  |\n\t             |   |          |  |   +--------------+\n\t+---------+  |   +----------+  |   |              |\n\t|         |  |                 +--\u003e|  CacheFiles  |\n\t|  ISOFS  |--+                     |  /var/cache  |\n\t|         |                        +--------------+\n\t+---------+\n\nGeneral documentation and documentation of the netfs specific API are provided\nin addition to the header files.\n\nAs this patch stands, it is possible to build a filesystem against the facility\nand attempt to use it.  All that will happen is that all requests will be\nimmediately denied as if no cache is present.\n\nFurther patches will implement the core of the facility.  The facility will\ntransfer requests from networking filesystems to appropriate caches if\npossible, or else gracefully deny them.\n\nIf this facility is disabled in the kernel configuration, then all its\noperations will trivially reduce to nothing during compilation.\n\nWHY NOT I_MAPPING?\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nI have added my own API to implement caching rather than using i_mapping to do\nthis for a number of reasons.  These have been discussed a lot on the LKML and\nCacheFS mailing lists, but to summarise the basics:\n\n (1) Most filesystems don\u0027t do hole reportage.  Holes in files are treated as\n     blocks of zeros and can\u0027t be distinguished otherwise, making it difficult\n     to distinguish blocks that have been read from the network and cached from\n     those that haven\u0027t.\n\n (2) The backing inode must be fully populated before being exposed to\n     userspace through the main inode because the VM/VFS goes directly to the\n     backing inode and does not interrogate the front inode\u0027s VM ops.\n\n     Therefore:\n\n     (a) The backing inode must fit entirely within the cache.\n\n     (b) All backed files currently open must fit entirely within the cache at\n     \t the same time.\n\n     (c) A working set of files in total larger than the cache may not be\n     \t cached.\n\n     (d) A file may not grow larger than the available space in the cache.\n\n     (e) A file that\u0027s open and cached, and remotely grows larger than the\n     \t cache is potentially stuffed.\n\n (3) Writes go to the backing filesystem, and can only be transferred to the\n     network when the file is closed.\n\n (4) There\u0027s no record of what changes have been made, so the whole file must\n     be written back.\n\n (5) The pages belong to the backing filesystem, and all metadata associated\n     with that page are relevant only to the backing filesystem, and not\n     anything stacked atop it.\n\nOVERVIEW\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nFS-Cache provides (or will provide) the following facilities:\n\n (1) Caches can be added / removed at any time, even whilst in use.\n\n (2) Adds a facility by which tags can be used to refer to caches, even if\n     they\u0027re not available yet.\n\n (3) More than one cache can be used at once.  Caches can be selected\n     explicitly by use of tags.\n\n (4) The netfs is provided with an interface that allows either party to\n     withdraw caching facilities from a file (required for (1)).\n\n (5) A netfs may annotate cache objects that belongs to it.  This permits the\n     storage of coherency maintenance data.\n\n (6) Cache objects will be pinnable and space reservations will be possible.\n\n (7) The interface to the netfs returns as few errors as possible, preferring\n     rather to let the netfs remain oblivious.\n\n (8) Cookies are used to represent indices, files and other objects to the\n     netfs.  The simplest cookie is just a NULL pointer - indicating nothing\n     cached there.\n\n (9) The netfs is allowed to propose - dynamically - any index hierarchy it\n     desires, though it must be aware that the index search function is\n     recursive, stack space is limited, and indices can only be children of\n     indices.\n\n(10) Indices can be used to group files together to reduce key size and to make\n     group invalidation easier.  The use of indices may make lookup quicker,\n     but that\u0027s cache dependent.\n\n(11) Data I/O is effectively done directly to and from the netfs\u0027s pages.  The\n     netfs indicates that page A is at index B of the data-file represented by\n     cookie C, and that it should be read or written.  The cache backend may or\n     may not start I/O on that page, but if it does, a netfs callback will be\n     invoked to indicate completion.  The I/O may be either synchronous or\n     asynchronous.\n\n(12) Cookies can be \"retired\" upon release.  At this point FS-Cache will mark\n     them as obsolete and the index hierarchy rooted at that point will get\n     recycled.\n\n(13) The netfs provides a \"match\" function for index searches.  In addition to\n     saying whether a match was made or not, this can also specify that an\n     entry should be updated or deleted.\n\nFS-Cache maintains a virtual index tree in which all indices, files, objects\nand pages are kept.  Bits of this tree may actually reside in one or more\ncaches.\n\n                                           FSDEF\n                                             |\n                        +------------------------------------+\n                        |                                    |\n                       NFS                                  AFS\n                        |                                    |\n           +--------------------------+                +-----------+\n           |                          |                |           |\n        homedir                     mirror          afs.org   redhat.com\n           |                          |                            |\n     +------------+           +---------------+              +----------+\n     |            |           |               |              |          |\n   00001        00002       00007           00125        vol00001   vol00002\n     |            |           |               |                         |\n +---+---+     +-----+      +---+      +------+------+            +-----+----+\n |   |   |     |     |      |   |      |      |      |            |     |    |\nPG0 PG1 PG2   PG0  XATTR   PG0 PG1   DIRENT DIRENT DIRENT        R/W   R/O  Bak\n                     |                                            |\n                    PG0                                       +-------+\n                                                              |       |\n                                                            00001   00003\n                                                              |\n                                                          +---+---+\n                                                          |   |   |\n                                                         PG0 PG1 PG2\n\nIn the example above, two netfs\u0027s can be seen to be backed: NFS and AFS.  These\nhave different index hierarchies:\n\n (*) The NFS primary index will probably contain per-server indices.  Each\n     server index is indexed by NFS file handles to get data file objects.\n     Each data file objects can have an array of pages, but may also have\n     further child objects, such as extended attributes and directory entries.\n     Extended attribute objects themselves have page-array contents.\n\n (*) The AFS primary index contains per-cell indices.  Each cell index contains\n     per-logical-volume indices.  Each of volume index contains up to three\n     indices for the read-write, read-only and backup mirrors of those volumes.\n     Each of these contains vnode data file objects, each of which contains an\n     array of pages.\n\nThe very top index is the FS-Cache master index in which individual netfs\u0027s\nhave entries.\n\nAny index object may reside in more than one cache, provided it only has index\nchildren.  Any index with non-index object children will be assumed to only\nreside in one cache.\n\nThe FS-Cache overview can be found in:\n\n\tDocumentation/filesystems/caching/fscache.txt\n\nThe netfs API to FS-Cache can be found in:\n\n\tDocumentation/filesystems/caching/netfs-api.txt\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "8f0aa2f25b31ba27db84259141e52ee6ec0d2820",
      "tree": "f2935c02ac8508dacd125bb1c8bb6f4879fe778e",
      "parents": [
        "12e22c5e4bc08ab4b05ac079fe40d9891c5e81a0"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:35 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:35 2009 +0100"
      },
      "message": "Document the slow work thread pool\n\nDocument the slow work thread pool.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "d8e965076514dcb16410c0d18c6c8de4dcba19fc",
      "tree": "8793c7b73c1af93200a4fe01bf6ca67c977e6c71",
      "parents": [
        "d58069adc6f59f48bf96a72e6df68a670ff1b3bc"
      ],
      "author": {
        "name": "Leubner, Achim",
        "email": "Achim_Leubner@adaptec.com",
        "time": "Wed Apr 01 07:16:08 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Apr 03 09:23:11 2009 -0500"
      },
      "message": "[SCSI] aacraid driver update\n\nchanges:\n\n- set aac_cache\u003d2 as default value to avoid performance problem\n  (Novell bugzilla #469922)\n\n- Dell/PERC controller boot problem fixed (RedHat bugzilla #457552)\n\n- WWN flag added to fix SLES10 SP1/SP2 drive detection problems\n\n- 64-bit support changes\n\n- DECLARE_PCI_DEVICE_TABLE macro added\n\n- controller type changes\n\nSigned-off-by: Achim Leubner \u003caacraid@adaptec.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "ef8a97bbc92ec07e3a07a81cc011dc549f8c7a23",
      "tree": "82a95f16d9236bc35a4cfd42ba8cab61981efda8",
      "parents": [
        "4f032ac4122a77dbabf7a24b2739b2790448180f",
        "6c8ad3b07f7d9efdc41396db6da0aed906922701"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 21:05:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 21:05:30 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (54 commits)\n  glge: remove unused #include \u003cversion.h\u003e\n  dnet: remove unused #include \u003cversion.h\u003e\n  tcp: miscounts due to tcp_fragment pcount reset\n  tcp: add helper for counter tweaking due mid-wq change\n  hso: fix for the \u0027invalid frame length\u0027 messages\n  hso: fix for crash when unplugging the device\n  fsl_pq_mdio: Fix compile failure\n  fsl_pq_mdio: Revive UCC MDIO support\n  ucc_geth: Pass proper device to DMA routines, otherwise oops happens\n  i.MX31: Fixing cs89x0 network building to i.MX31ADS\n  tc35815: Fix build error if NAPI enabled\n  hso: add Vendor/Product ID\u0027s for new devices\n  ucc_geth: Remove unused header\n  gianfar: Remove unused header\n  kaweth: Fix locking to be SMP-safe\n  net: allow multiple dev per napi with GRO\n  r8169: reset IntrStatus after chip reset\n  ixgbe: Fix potential memory leak/driver panic issue while setting up Tx \u0026 Rx ring parameters\n  ixgbe: fix ethtool -A|a behavior\n  ixgbe: Patch to fix driver panic while freeing up tx \u0026 rx resources\n  ...\n"
    },
    {
      "commit": "0b7f569e45bb6be142d87017030669a6a7d327a1",
      "tree": "8df7877b95c093ebf4cb4e1006cea16f75fc79b7",
      "parents": [
        "81d39c20f5ee2437d71709beb82597e2a38efbbc"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: fix OOM killer under memcg\n\nThis patch tries to fix OOM Killer problems caused by hierarchy.\nNow, memcg itself has OOM KILL function (in oom_kill.c) and tries to\nkill a task in memcg.\n\nBut, when hierarchy is used, it\u0027s broken and correct task cannot\nbe killed. For example, in following cgroup\n\n\t/groupA/\thierarchy\u003d1, limit\u003d1G,\n\t\t01\tnolimit\n\t\t02\tnolimit\nAll tasks\u0027 memory usage under /groupA, /groupA/01, groupA/02 is limited to\ngroupA\u0027s 1Gbytes but OOM Killer just kills tasks in groupA.\n\nThis patch provides makes the bad process be selected from all tasks\nunder hierarchy. BTW, currently, oom_jiffies is updated against groupA\nin above case. oom_jiffies of tree should be updated.\n\nTo see how oom_jiffies is used, please check mem_cgroup_oom_called()\ncallers.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: const fix]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b6719ec1ad54e47e40633b19703f2c1254708842",
      "tree": "3db0fe0ec0a92a006562de9b012d2a89ddce19eb",
      "parents": [
        "66bdc9cfc77ba89a9ee6c82d28375b646ab4bb1d"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroups: more documentation for remount and release_agent\n\nThis won\u0027t remove cpuacct from the mounted hierachy:\n # mount -t cgroup -o cpu,cpuacct xxx /mnt\n # mount -o remount,cpu /mnt\n\nBecause for this usage mount(8) will append the new options to the original\noptions.\n\nAnd this will get you right:\n # mount [-t cgroup] -o remount,cpu xxx /mnt\n\nAlso document how to specify or change release_agent.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewd-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec64f51545fffbc4cb968f0cea56341a4b07e85a",
      "tree": "575d890a6759d81f3324fa2a22ca6ab14a41eefc",
      "parents": [
        "38460b48d06440de46b34cb778bd6c4855030754"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroup: fix frequent -EBUSY at rmdir\n\nIn following situation, with memory subsystem,\n\n\t/groupA use_hierarchy\u003d\u003d1\n\t\t/01 some tasks\n\t\t/02 some tasks\n\t\t/03 some tasks\n\t\t/04 empty\n\nWhen tasks under 01/02/03 hit limit on /groupA, hierarchical reclaim\nis triggered and the kernel walks tree under groupA. In this case,\nrmdir /groupA/04 fails with -EBUSY frequently because of temporal\nrefcnt from the kernel.\n\nIn general. cgroup can be rmdir\u0027d if there are no children groups and\nno tasks. Frequent fails of rmdir() is not useful to users.\n(And the reason for -EBUSY is unknown to users.....in most cases)\n\nThis patch tries to modify above behavior, by\n\t- retries if css_refcnt is got by someone.\n\t- add \"return value\" to pre_destroy() and allows subsystem to\n\t  say \"we\u0027re really busy!\"\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.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": "45dad7bd9d9b65a30d6e790b111f6f2d8f746d22",
      "tree": "ab00afe099eb226d5f365124ee591b2518ebe0f0",
      "parents": [
        "760df93ecdd59fc1c213a491b5adee79f53606da"
      ],
      "author": {
        "name": "Li Xiaodong",
        "email": "lixd@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:53 2009 -0700"
      },
      "message": "documentation: fix unix_dgram_qlen description\n\nPrevious description about system parameter in /proc/sys/net/unix/ is\nwrong (or missed).  Simply add a new description about unix_dgram_qlen\naccording to latest kernel.\n\nSigned-off-by: Li Xiaodong \u003clixd@cn.fujitsu.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"
    },
    {
      "commit": "760df93ecdd59fc1c213a491b5adee79f53606da",
      "tree": "305a4e0fae43549eb24a3ebcf9bcc15a16ef2138",
      "parents": [
        "70eed8d06601ca3810a0e56035eae6496d57856b"
      ],
      "author": {
        "name": "Shen Feng",
        "email": "shen@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:53 2009 -0700"
      },
      "message": "documentation: update Documentation/filesystem/proc.txt and Documentation/sysctls\n\nNow /proc/sys is described in many places and much information is\nredundant.  This patch updates the proc.txt and move the /proc/sys\ndesciption out to the files in Documentation/sysctls.\n\nDetails are:\n\nmerge\n-  2.1  /proc/sys/fs - File system data\n-  2.11 /proc/sys/fs/mqueue - POSIX message queues filesystem\n-  2.17 /proc/sys/fs/epoll - Configuration options for the epoll interface\nwith Documentation/sysctls/fs.txt.\n\nremove\n-  2.2  /proc/sys/fs/binfmt_misc - Miscellaneous binary formats\nsince it\u0027s not better then the Documentation/binfmt_misc.txt.\n\nmerge\n-  2.3  /proc/sys/kernel - general kernel parameters\nwith Documentation/sysctls/kernel.txt\n\nremove\n-  2.5  /proc/sys/dev - Device specific parameters\nsince it\u0027s obsolete the sysfs is used now.\n\nremove\n-  2.6  /proc/sys/sunrpc - Remote procedure calls\nsince it\u0027s not better then the Documentation/sysctls/sunrpc.txt\n\nmove\n-  2.7  /proc/sys/net - Networking stuff\n-  2.9  Appletalk\n-  2.10 IPX\nto newly created Documentation/sysctls/net.txt.\n\nremove\n-  2.8  /proc/sys/net/ipv4 - IPV4 settings\nsince it\u0027s not better then the Documentation/networking/ip-sysctl.txt.\n\nadd\n- Chapter 3 Per-Process Parameters\nto descibe /proc/\u003cpid\u003e/xxx parameters.\n\nSigned-off-by: Shen Feng \u003cshen@cn.fujitsu.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.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"
    },
    {
      "commit": "70eed8d06601ca3810a0e56035eae6496d57856b",
      "tree": "0451b872264c1c71bb9275caffaf4844232b440f",
      "parents": [
        "880fe76ee6f38eda82e9f3de9a7a206dfd1bab9d"
      ],
      "author": {
        "name": "Henrik Austad",
        "email": "henrik@austad.us",
        "time": "Thu Apr 02 16:57:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:53 2009 -0700"
      },
      "message": "documentation: ignore byproducts from latex\n\nWhen using \u0027make pdfdocs\u0027, auto-generated files should be ignored\n\nSigned-off-by: Henrik Austad \u003chenrik@austad.us\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8a0cecffeb52363a57257bbbbd58f4c4537a75bb",
      "tree": "ee7f754d49a2f2ad75b72ec59e90e6fa2c0753eb",
      "parents": [
        "926b663ce8215ba448960e1ff6e58b67a2c3b99b"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Thu Apr 02 16:57:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:51 2009 -0700"
      },
      "message": "gpio: gpio_{request,free}() now required (feature removal)\n\nWe want to phase out the GPIO \"autorequest\" mechanism in gpiolib and\nrequire all callers to use gpio_request().\n\n - Update feature-removal-schedule\n - Update the documentation now\n - Convert the relevant pr_warning() in gpiolib to a WARN()\n   so folk using this mechanism get a noisy stack dump\n\nSome drivers and board init code will probably need to change.\nImplementations not using gpiolib will still be fine; they are already\nrequired to implement gpio_{request,free}() stubs.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e90560c50f754d65884e251e94c1efa2a4b5784",
      "tree": "97ae68b0ae4edaebf3de66716759fc09a97deff6",
      "parents": [
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84"
      ],
      "author": {
        "name": "Luca Tettamanti",
        "email": "kronos.it@gmail.com",
        "time": "Mon Mar 30 00:01:27 2009 +0200"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Apr 02 18:57:46 2009 -0400"
      },
      "message": "ACPI: acpi_enforce_resource\u003dstrict by default\n\nEnforce strict resource checking - disallowing access by native\ndrivers to IO ports and memory regions claimed by ACPI firmware.\n\nThe patch is mainly aimed to block native hwmon drivers from touching\nmonitoring chips that ACPI thinks it own.\n\nIf this causes a regression, boot with \"acpi_enforce_resources\u003dlax\"\nwhich was the previous default.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12376\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12541\n\nSigned-off-by: Luca Tettamanti \u003ckronos.it@gmail.com\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nAcked-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "cd02938a828f4b2098a074afb7454f106f2e8df5",
      "tree": "7b543fd6aa82a62dc3a9614c26f89daca83e77d5",
      "parents": [
        "9d681f3a1b27fdfc17ea251cf8d5f627dab34670",
        "172ef275444efa12d834fb9d1b1acdac92db47f7"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Thu Apr 02 23:22:11 2009 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Apr 02 23:22:11 2009 +0100"
      },
      "message": "Merge branch \u0027smsc911x-armplatforms\u0027 of git://github.com/steveglen/linux-2.6\n"
    },
    {
      "commit": "a7808331f1ea6c7f89a14d1d94eafc62615b997b",
      "tree": "dec6cc87f8b9995bd79bc07a0df0ab8d09d3bb5d",
      "parents": [
        "6984992bf0520a07b931124d33f46b46437f6e1c"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Mar 27 17:14:52 2009 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Apr 02 16:34:20 2009 +0100"
      },
      "message": "ASoC: Add some documentation for the ASoC jack API\n\nA brief overview of how the components of the API fit together.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "7ac9bcd5da59dd96eb1153d3fc04c3471fa5c09d",
      "tree": "e9c5470783e9ec098fb7a056d89872c9e225f5c3",
      "parents": [
        "530f1a5e3e93a038a457faf716975ed19f82831d"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Sun Nov 16 20:52:19 2008 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 02 12:29:50 2009 +0200"
      },
      "message": "udf: implement mode and dmode mounting options\n\n\"dmode\" allows overriding permissions of directories and\n\"mode\" allows overriding permissions of files.\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "edd4070f5d943b35e3e1a2e5e95e4a2eebb11d53",
      "tree": "c945fbb71586a458611fce5c2ac10097e557a4d7",
      "parents": [
        "3943ac5d99ec024f97442e5f3def1034bb0b1bb0"
      ],
      "author": {
        "name": "Jesper Dangaard Brouer",
        "email": "hawk@comx.dk",
        "time": "Tue Mar 31 09:36:48 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 02 01:33:51 2009 -0700"
      },
      "message": "Doc: Fix spelling in RCU/rculist_nulls.txt.\n\nDoc: Fix spelling in RCU/rculist_nulls.txt.\n\nTrival spelling fixes in RCU/rculist_nulls.txt.\n\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n\nSigned-off-by: Jesper Dangaard Brouer \u003chawk@comx.dk\u003e\nTested-by: Jarek Poplawski \u003cjarkao2@gmail.com;-\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3943ac5d99ec024f97442e5f3def1034bb0b1bb0",
      "tree": "d3167de5bbe5d566f58f951381f2cbcde28cde90",
      "parents": [
        "9ba30d74446dd0629d797ecd038379725d351bc6"
      ],
      "author": {
        "name": "Jesper Dangaard Brouer",
        "email": "hawk@comx.dk",
        "time": "Sun Mar 29 23:03:01 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 02 01:33:50 2009 -0700"
      },
      "message": "Doc: Fix wrong API example usage of call_rcu().\n\nAt some point the API of call_rcu() changed from three parameters\nto two parameters, correct the documentation.\n\nOne confusing thing in RCU/listRCU.txt, which is NOT fixed in this patch,\nis that no reason or explaination is given for using call_rcu() instead of\nthe normal synchronize_rcu() call.\n\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n\nSigned-off-by: Jesper Dangaard Brouer \u003chawk@comx.dk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9ba30d74446dd0629d797ecd038379725d351bc6",
      "tree": "9164955780ed732fe9e426f73df10550fedefe8c",
      "parents": [
        "833bb3046b6cb320e775ea2160ddca87d53260d5"
      ],
      "author": {
        "name": "Jesper Dangaard Brouer",
        "email": "hawk@comx.dk",
        "time": "Sun Mar 29 23:02:56 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 02 01:33:50 2009 -0700"
      },
      "message": "Doc: Fix missing whitespaces in RCU documentation.\n\nTrivial fix while reading through the RCU docs.\n\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n\nSigned-off-by: Jesper Dangaard Brouer \u003chawk@comx.dk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5adfb64bdd4eee07e0677cbad12a2f80fecc6715",
      "tree": "9d188748764841ed15d54a11c16aefaadb408670",
      "parents": [
        "7e765cb4a07356e4f01cc57959c3c798a586f749"
      ],
      "author": {
        "name": "Ramkrishna Vepa",
        "email": "ram.vepa@neterion.com",
        "time": "Wed Apr 01 18:14:23 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 02 00:33:39 2009 -0700"
      },
      "message": "Neterion: Driver help file\n\n- vxge driver help text file.\n\n- No change from previous submission.\n\n- Changes in previous submissions -\n  Removed the performance tuning section with instructions to disable\n  time stamps and change sysctl settings - Reported by Dave Miller\n  General clean up.\n - Removed tx/rx_pause, exec_mode, tx_steering_type, rx_steering_type, gro,\n   intr_type, rx \u0026 tx max_indicate_pkts and exec_mode loadable parameters. The\n   driver default settings work well in most if not all cases. Another patch\n   to configure these parameters with ethtool will be released in the future -\n   Reported by Stephen Hemminger.\n- Incorporated following fixes based on comments from Ben Hutchings\n        Removed references to earlier kernel versions.\n        Removed sections that are similar for all drivers -\n                Load/Unload\n                Identifying the adapter/interface\n                Boot time configuration\n        Removed loadable parameter -\n                NAPI - Napi is always enabled.\n                rx_steering_type \u0026 ring_blocks - The driver default settings\n                work well in most if not all cases. Another patch to configure\n                these parameters with ethtool will be released in the future.\n        Removed ethtool support section - No need to duplicate ethtool\n                docs here.\n        Removed Known Issue on SUSE 9 - Doesn\u0027t apply when using a\n                current kernel.\n        Removed Common Problems section - These don\u0027t apply to in-tree modules.\n        Removed Available Downloads section - Not sure this belongs in-tree.\n        Removed Copyright information - This notice doesn\u0027t belong in\n                the kernel.\n\nSigned-off-by: Sivakumar Subramani \u003csivakumar.subramani@neterion.com\u003e\nSigned-off-by: Rastapur Santosh \u003csantosh.rastapur@neterion.com\u003e\nSigned-off-by: Ramkrishna Vepa \u003cram.vepa@neterion.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eeee7853c4ffaf5b9eb58f39708e3c78f66cee15",
      "tree": "55506c48a8e841573f1d869cd6e0fbfc6e8443e1",
      "parents": [
        "8dafc34616282c1fd79d42a4353ee5322767d720"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Apr 02 12:31:16 2009 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Apr 02 12:31:16 2009 +0900"
      },
      "message": "sh: Add a command line option for disabling I/O trapping.\n\nThis adds a \u0027noiotrap\u0027 kernel command line option to permit disabling of\nI/O trapping. This is mostly useful for running on emulators where the\nphysical device limitations are not an issue.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    }
  ],
  "next": "8302294f43250dc337108c51882a6007f2b1e2e0"
}
