)]}'
{
  "log": [
    {
      "commit": "0fc9655ec67ec5d4dfd08e469e0e9f0a494bf5bc",
      "tree": "fc67e000acb43601a0dcb9c0288a94a3d737b6a2",
      "parents": [
        "95820a36516d12dcb49d066dd3d5b187a2557612"
      ],
      "author": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Mon Oct 13 20:36:17 2008 -0500"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Oct 17 11:04:42 2008 -0500"
      },
      "message": "9p: consolidate read/write functions\n\nCurrently there are two separate versions of read and write.  One for\ndealing with user buffers and the other for dealing with kernel buffers.\nThere is a tremendous amount of code duplication in the otherwise\nidentical versions of these functions.  This patch adds an additional\nuser buffer parameter to read and write and conditionalizes handling of\nthe buffer on whether the kernel buffer or the user buffer is populated.\n\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n\n\n\n\n"
    },
    {
      "commit": "8b81ef589ad1483dd977ef47fe00d4ce4d91a0ab",
      "tree": "380a19ca0f55fefc60c4a45771f5273c80539c07",
      "parents": [
        "992b3f1dbeec401e19a80bdb8c81e5df5381f4c5"
      ],
      "author": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@ericvh-desktop.austin.ibm.com",
        "time": "Mon Oct 13 18:45:25 2008 -0500"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Oct 17 11:04:41 2008 -0500"
      },
      "message": "9p: consolidate transport structure\n\nRight now there is a transport module structure which provides per-transport\ntype functions and data and a transport structure which contains per-instance\npublic data as well as function pointers to instance specific functions.\n\nThis patch moves public transport visible instance data to the client\nstructure (which in some cases had duplicate data) and consolidates the\nfunctions into the transport module structure.\n\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n\n"
    },
    {
      "commit": "52ad096465d60ee7fdc99583f969a99a1166c7c3",
      "tree": "0cf33926ce8b5eb4f6675d3b1332b35e914f4846",
      "parents": [
        "8cde1ad6683f8738ad71f788dca8ab4810cf5afe",
        "6925bac120097b823fc990c143b9789c21cc60b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 15:39:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 15:39:20 2008 -0700"
      },
      "message": "Merge git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (53 commits)\n  NFS: Fix a resolution problem with nfs_inode-\u003ecache_change_attribute\n  NFS: Fix the resolution problem with nfs_inode_attrs_need_update()\n  NFS: Changes to inode-\u003ei_nlinks must set the NFS_INO_INVALID_ATTR flag\n  RPC/RDMA: ensure connection attempt is complete before signalling.\n  RPC/RDMA: correct the reconnect timer backoff\n  RPC/RDMA: optionally emit useful transport info upon connect/disconnect.\n  RPC/RDMA: reformat a debug printk to keep lines together.\n  RPC/RDMA: harden connection logic against missing/late rdma_cm upcalls.\n  RPC/RDMA: fix connect/reconnect resource leak.\n  RPC/RDMA: return a consistent error, when connect fails.\n  RPC/RDMA: adhere to protocol for unpadded client trailing write chunks.\n  RPC/RDMA: avoid an oops due to disconnect racing with async upcalls.\n  RPC/RDMA: maintain the RPC task bytes-sent statistic.\n  RPC/RDMA: suppress retransmit on RPC/RDMA clients.\n  RPC/RDMA: fix connection IRD/ORD setting\n  RPC/RDMA: support FRMR client memory registration.\n  RPC/RDMA: check selected memory registration mode at runtime.\n  RPC/RDMA: add data types and new FRMR memory registration enum.\n  RPC/RDMA: refactor the inline memory registration code.\n  NFS: fix nfs_parse_ip_address() corner case\n  ...\n"
    },
    {
      "commit": "c813b4e16ead3c3df98ac84419d4df2adf33fe01",
      "tree": "2ca4a5b6966d833b6149e3dda7a4e85d1255779c",
      "parents": [
        "c8d8a2321f9c4ee18fbcc399fdc2a77e580a03b9",
        "02683ffdf655b4ae15245376ba6fea6d9e5829a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 12:40:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 12:40:26 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (46 commits)\n  UIO: Fix mapping of logical and virtual memory\n  UIO: add automata sercos3 pci card support\n  UIO: Change driver name of uio_pdrv\n  UIO: Add alignment warnings for uio-mem\n  Driver core: add bus_sort_breadthfirst() function\n  NET: convert the phy_device file to use bus_find_device_by_name\n  kobject: Cleanup kobject_rename and !CONFIG_SYSFS\n  kobject: Fix kobject_rename and !CONFIG_SYSFS\n  sysfs: Make dir and name args to sysfs_notify() const\n  platform: add new device registration helper\n  sysfs: use ilookup5() instead of ilookup5_nowait()\n  PNP: create device attributes via default device attributes\n  Driver core: make bus_find_device_by_name() more robust\n  usb: turn dev_warn+WARN_ON combos into dev_WARN\n  debug: use dev_WARN() rather than WARN_ON() in device_pm_add()\n  debug: Introduce a dev_WARN() function\n  sysfs: fix deadlock\n  device model: Do a quickcheck for driver binding before doing an expensive check\n  Driver core: Fix cleanup in device_create_vargs().\n  Driver core: Clarify device cleanup.\n  ...\n"
    },
    {
      "commit": "c8d8a2321f9c4ee18fbcc399fdc2a77e580a03b9",
      "tree": "edfd028285e21ba549d047c0caa4ffe523272f94",
      "parents": [
        "e4856a70cfc23266631a78e78277cf2b195babee",
        "118a9069f06ff591d51a3133e242f0c256ba2db7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 12:38:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 12:38:34 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  module: remove CONFIG_KMOD in comment after #endif\n  remove CONFIG_KMOD from fs\n  remove CONFIG_KMOD from drivers\n\nManually fix conflict due to include cleanups in drivers/md/md.c\n"
    },
    {
      "commit": "e4856a70cfc23266631a78e78277cf2b195babee",
      "tree": "e163aa148bf6ec00e1506a870adf3aeabf083f52",
      "parents": [
        "d1b5726358ccebcf614fc9f97cdf3354178dcb80",
        "0b59268285ca6cdc46191f2995bf632088e3e277"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 12:32:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 12:32:52 2008 -0700"
      },
      "message": "Merge branch \u0027personality\u0027 of git://git390.osdl.marist.edu/pub/scm/linux-2.6\n\n* \u0027personality\u0027 of git://git390.osdl.marist.edu/pub/scm/linux-2.6:\n  [PATCH] remove unused ibcs2/PER_SVR4 in SET_PERSONALITY\n"
    },
    {
      "commit": "ebf3f09c634906d371f2bfd71b41c7e0c52efe7e",
      "tree": "4205040f47fba2675dc4c6b1407d15c9d6f8b355",
      "parents": [
        "d8273674721faaf84bec2190c0c7a82972b37f73"
      ],
      "author": {
        "name": "Thomas Petazzoni",
        "email": "thomas.petazzoni@free-electrons.com",
        "time": "Wed Oct 15 22:05:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:51 2008 -0700"
      },
      "message": "Configure out AIO support\n\nThis patchs adds the CONFIG_AIO option which allows to remove support\nfor asynchronous I/O operations, that are not necessarly used by\napplications, particularly on embedded devices. As this is a\nsize-reduction option, it depends on CONFIG_EMBEDDED. It allows to\nsave ~7 kilobytes of kernel code/data:\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n1115067\t 119180\t 217088\t1451335\t 162547\tvmlinux\n1108025\t 119048\t 217088\t1444161\t 160941\tvmlinux.new\n  -7042    -132       0   -7174   -1C06 +/-\n\nThis patch has been originally written by Matt Mackall\n\u003cmpm@selenic.com\u003e, and is part of the Linux Tiny project.\n\n[randy.dunlap@oracle.com: build fix]\nSigned-off-by: Thomas Petazzoni \u003cthomas.petazzoni@free-electrons.com\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: 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": "15b4650e55e06d2cc05115767551cd3ace875431",
      "tree": "5542e01b8651140b707b6b9ebe81acb6e6ca41b3",
      "parents": [
        "8360e81b5dd23c153301f08937a68fd67d9b46c0"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Oct 15 22:04:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:48 2008 -0700"
      },
      "message": "afs: convert to new aops\n\nCannot assume writes will fully complete, so this conversion goes the easy\nway and always brings the page uptodate before the write.\n\n[dhowells@redhat.com: style tweaks]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: David Howells \u003cdhowells@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": "07edbde508869be63c38c5f2504bd8e8279cc535",
      "tree": "696b78b5eae2716f07261f6c037ec770332e10f4",
      "parents": [
        "f221e726bf4e082a05dcd573379ac859bfba7126"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Oct 15 22:04:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:47 2008 -0700"
      },
      "message": "pid_ns: de_thread: kill the now unneeded -\u003echild_reaper change\n\nde_thread() checks if the old leader was the -\u003echild_reaper, this is not\npossible any longer.  With the previous patch -\u003egroup_leader itself will\nchange -\u003echild_reaper on exit.\n\nHenceforth find_new_reaper() is the only function (apart from\ninitialization) which plays with -\u003echild_reaper.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f40cbaa5b0a4719489e6e7947351c99a159aca30",
      "tree": "3e5ce20d5f56acabe588344dd187228d12343541",
      "parents": [
        "ac0d86f5809598ddcd6bfa0ea8245ccc910e9eac"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 15 22:04:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:47 2008 -0700"
      },
      "message": "proc: move sysrq-trigger out of fs/proc/\n\nMove it into sysrq.c, along with the rest of the sysrq implementation.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac0d86f5809598ddcd6bfa0ea8245ccc910e9eac",
      "tree": "09d874a29ca655faefc5fc5cb637aebd1a732744",
      "parents": [
        "6722e45c2de622eaf5f26d370b9de19632ac7478"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Wed Oct 15 22:04:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:47 2008 -0700"
      },
      "message": "block: sanitize invalid partition table entries\n\nWe currently follow blindly what the partition table lies about the\ndisk, and let the kernel create block devices which can not be accessed.\nTrying to identify the device leads to kernel logs full of:\n  sdb: rw\u003d0, want\u003d73392, limit\u003d28800\n  attempt to access beyond end of device\n\nHere is an example of a broken partition table, where sda2 starts\nbehind the end of the disk, and sdb3 is larger than the entire disk:\n  Disk /dev/sdb: 14 MB, 14745600 bytes\n  1 heads, 29 sectors/track, 993 cylinders, total 28800 sectors\n     Device Boot      Start         End      Blocks   Id  System\n  /dev/sdb1              29        7800        3886   83  Linux\n  /dev/sdb2           37801       45601        3900+  83  Linux\n  /dev/sdb3           15602       73402       28900+  83  Linux\n  /dev/sdb4           23403       28796        2697   83  Linux\n\nThe kernel creates these completely invalid devices, which can not be\naccessed, or may lead to other unpredictable failures:\n  grep . /sys/class/block/sdb*/{start,size}\n  /sys/class/block/sdb/size:28800\n  /sys/class/block/sdb1/start:29\n  /sys/class/block/sdb1/size:7772\n  /sys/class/block/sdb2/start:37801\n  /sys/class/block/sdb2/size:7801\n  /sys/class/block/sdb3/start:15602\n  /sys/class/block/sdb3/size:57801\n  /sys/class/block/sdb4/start:23403\n  /sys/class/block/sdb4/size:5394\n\nWith this patch, we ignore partitions which start behind the end of the disk,\nand limit partitions to the end of the disk if they pretend to be larger:\n  grep . /sys/class/block/sdb*/{start,size}\n  /sys/class/block/sdb/size:28800\n  /sys/class/block/sdb1/start:29\n  /sys/class/block/sdb1/size:7772\n  /sys/class/block/sdb3/start:15602\n  /sys/class/block/sdb3/size:13198\n  /sys/class/block/sdb4/start:23403\n  /sys/class/block/sdb4/size:5394\n\nThese warnings are printed to the kernel log:\n  sdb: p2 ignored, start 37801 is behind the end of the disk\n  sdb: p3 size 57801 limited to end of disk\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Herton Ronaldo Krzesinski \u003cherton@mandriva.com.br\u003e\nCc: Jens Axboe \u003cjens.axboe@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": "6722e45c2de622eaf5f26d370b9de19632ac7478",
      "tree": "a378b34f2e5045530462ecc05613d370ac7484fb",
      "parents": [
        "266a813c083d67886d89f1066ea6355857b51f83"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Oct 15 22:04:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:47 2008 -0700"
      },
      "message": "fs/partitions/acorn.c: remove dead code\n\nI missed this when I did the arm26 removal.\n\nReported-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4cea5ceb4c692ff42a2848f1b559977caff3c64e",
      "tree": "1e31f5538cb5adc57d82ee1c2590fecb703bb6d0",
      "parents": [
        "5edc2a5123a7c3d9bcb19ffcf3b91e8d6c246092"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 15 22:04:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:47 2008 -0700"
      },
      "message": "COMPAT_BINFMT_ELF definition tweak\n\nDon\u0027t repeat BINFMT_ELF definition, simply multiply COMPAT and BINFMT_ELF.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5edc2a5123a7c3d9bcb19ffcf3b91e8d6c246092",
      "tree": "82a131956b8c4b1a52ea67ae73cf6674b97dd5bb",
      "parents": [
        "c7637941d16ae426a94058fe3b5460a31f68f61b"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Oct 15 22:04:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:46 2008 -0700"
      },
      "message": "binfmt_elf_fdpic: wire up AT_EXECFD, AT_EXECFN, AT_SECURE\n\nThese auxvec entries are the only ones left unhandled out of the current\nbase implementation. This syncs up binfmt_elf_fdpic with linux/auxvec.h\nand current binfmt_elf.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: David Howells \u003cdhowells@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": "c7637941d16ae426a94058fe3b5460a31f68f61b",
      "tree": "61ae6860d2e58acf17ca2c3c774b99db6994a5a4",
      "parents": [
        "ec23847d6cfe445ba9a1a5ec513297f4cc0ada53"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Oct 15 22:04:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:46 2008 -0700"
      },
      "message": "binfmt_elf_fdpic: convert initial stack alignment to arch_align_stack()\n\nbinfmt_elf_fdpic seems to have grabbed a hard-coded hack from an ancient\nversion of binfmt_elf in order to try and fix up initial stack alignment\non multi-threaded x86, which while in addition to being unused, was also\npushed down beyond the first set of operations on the stack pointer,\nnegating the entire purpose.\n\nThese days, we have an architecture independent arch_align_stack(), so we\nswitch to using that instead. Move the initial alignment up before the\ninitial stores while we\u0027re at it.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: David Howells \u003cdhowells@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": "ec23847d6cfe445ba9a1a5ec513297f4cc0ada53",
      "tree": "3c4dbdec1546023cc87ab058355e01a7c817e1af",
      "parents": [
        "758222f84261a6a808c4d1dcd443f90c1baaa875"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Oct 15 22:04:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:46 2008 -0700"
      },
      "message": "binfmt_elf_fdpic: support auxvec base platform string\n\nCommit 483fad1c3fa1060d7e6710e84a065ad514571739 (\"ELF loader support for\nauxvec base platform string\") introduced AT_BASE_PLATFORM, but only\nimplemented it for binfmt_elf.\n\nGiven that AT_VECTOR_SIZE_BASE is unconditionally enlarged for us, and\nit\u0027s only optionally added in for the platforms that set\nELF_BASE_PLATFORM, wire it up for binfmt_elf_fdpic, too.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: David Howells \u003cdhowells@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": "b73c29f6b0ddbcf07b43c5c5e6354e5839b5e68d",
      "tree": "6aa4b36d5c90a5d82b7995329fd329d4111c762f",
      "parents": [
        "67b172c097177835fbf5b0666885c4059a4f67ff"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Oct 15 22:04:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:46 2008 -0700"
      },
      "message": "quota: remove CVS keywords\n\nRemove CVS keywords that weren\u0027t updated for a long time from comments.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "67b172c097177835fbf5b0666885c4059a4f67ff",
      "tree": "2885ade2f6f3fdaae986f4724390adc404c42a2f",
      "parents": [
        "6b23ea7679978e6e1148aae9245021dfbcd989d7"
      ],
      "author": {
        "name": "Julien Brunel",
        "email": "brunel@diku.dk",
        "time": "Wed Oct 15 22:04:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:46 2008 -0700"
      },
      "message": "fs/reiserfs: use an IS_ERR test rather than a NULL test\n\nIn case of error, the function open_xa_dir returns an ERR pointer, but\nnever returns a NULL pointer.  So a NULL test that comes after an IS_ERR\ntest should be deleted.\n\nThe semantic match that finds this problem is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@match_bad_null_test@\nexpression x, E;\nstatement S1,S2;\n@@\nx \u003d open_xa_dir(...)\n... when !\u003d x \u003d E\n(\n*  if (x \u003d\u003d NULL \u0026\u0026 ...) S1 else S2\n|\n*  if (x \u003d\u003d NULL || ...) S1 else S2\n)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julien Brunel \u003cbrunel@diku.dk\u003e\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b23ea7679978e6e1148aae9245021dfbcd989d7",
      "tree": "564ac3ac52d3f7a4cd85ccf686f61c17d9650e56",
      "parents": [
        "d38b7aa7fc3371b52d036748028db50b585ade2e"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Oct 15 22:04:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:46 2008 -0700"
      },
      "message": "reiserfs/procfs.c: remove CVS keywords\n\nRemove CVS keywords that weren\u0027t updated for a long time from comments.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d38b7aa7fc3371b52d036748028db50b585ade2e",
      "tree": "fd4193112378362a5c12999d467bdaaf8875d1b0",
      "parents": [
        "649f1ee6c705aab644035a7998d7b574193a598a"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Wed Oct 15 22:04:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:46 2008 -0700"
      },
      "message": "hfs: fix namelength memory corruption\n\nFix a stack corruption caused by a corrupted hfs filesystem.  If the\ncatalog name length is corrupted the memcpy overwrites the catalog btree\nstructure.  Since the field is limited to HFS_NAMELEN bytes in the\nstructure and the file format, we throw an error if it is too long.\n\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "649f1ee6c705aab644035a7998d7b574193a598a",
      "tree": "81dcf2be969b90b8cda18c72229bb1ca71577749",
      "parents": [
        "efc7ffcb4237f8cb9938909041c4ed38f6e1bf40"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Wed Oct 15 22:04:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:46 2008 -0700"
      },
      "message": "hfsplus: check read_mapping_page() return value\n\nWhile testing more corrupted images with hfsplus, i came across\none which triggered the following bug:\n\n[15840.675016] BUG: unable to handle kernel paging request at fffffffb\n[15840.675016] IP: [\u003cc0116a4f\u003e] kmap+0x15/0x56\n[15840.675016] *pde \u003d 00008067 *pte \u003d 00000000\n[15840.675016] Oops: 0000 [#1] PREEMPT DEBUG_PAGEALLOC\n[15840.675016] Modules linked in:\n[15840.675016]\n[15840.675016] Pid: 11575, comm: ln Not tainted (2.6.27-rc4-00123-gd3ee1b4-dirty #29)\n[15840.675016] EIP: 0060:[\u003cc0116a4f\u003e] EFLAGS: 00010202 CPU: 0\n[15840.675016] EIP is at kmap+0x15/0x56\n[15840.675016] EAX: 00000246 EBX: fffffffb ECX: 00000000 EDX: cab919c0\n[15840.675016] ESI: 000007dd EDI: cab0bcf4 EBP: cab0bc98 ESP: cab0bc94\n[15840.675016]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068\n[15840.675016] Process ln (pid: 11575, ti\u003dcab0b000 task\u003dcab919c0 task.ti\u003dcab0b000)\n[15840.675016] Stack: 00000000 cab0bcdc c0231cfb 00000000 cab0bce0 00000800 ca9290c0 fffffffb\n[15840.675016]        cab145d0 cab919c0 cab15998 22222222 22222222 22222222 00000001 cab15960\n[15840.675016]        000007dd cab0bcf4 cab0bd04 c022cb3a cab0bcf4 cab15a6c ca9290c0 00000000\n[15840.675016] Call Trace:\n[15840.675016]  [\u003cc0231cfb\u003e] ? hfsplus_block_allocate+0x6f/0x2d3\n[15840.675016]  [\u003cc022cb3a\u003e] ? hfsplus_file_extend+0xc4/0x1db\n[15840.675016]  [\u003cc022ce41\u003e] ? hfsplus_get_block+0x8c/0x19d\n[15840.675016]  [\u003cc06adde4\u003e] ? sub_preempt_count+0x9d/0xab\n[15840.675016]  [\u003cc019ece6\u003e] ? __block_prepare_write+0x147/0x311\n[15840.675016]  [\u003cc0161934\u003e] ? __grab_cache_page+0x52/0x73\n[15840.675016]  [\u003cc019ef4f\u003e] ? block_write_begin+0x79/0xd5\n[15840.675016]  [\u003cc022cdb5\u003e] ? hfsplus_get_block+0x0/0x19d\n[15840.675016]  [\u003cc019f22a\u003e] ? cont_write_begin+0x27f/0x2af\n[15840.675016]  [\u003cc022cdb5\u003e] ? hfsplus_get_block+0x0/0x19d\n[15840.675016]  [\u003cc0139ebe\u003e] ? tick_program_event+0x28/0x4c\n[15840.675016]  [\u003cc013bd35\u003e] ? trace_hardirqs_off+0xb/0xd\n[15840.675016]  [\u003cc022b723\u003e] ? hfsplus_write_begin+0x2d/0x32\n[15840.675016]  [\u003cc022cdb5\u003e] ? hfsplus_get_block+0x0/0x19d\n[15840.675016]  [\u003cc0161988\u003e] ? pagecache_write_begin+0x33/0x107\n[15840.675016]  [\u003cc01879e5\u003e] ? __page_symlink+0x3c/0xae\n[15840.675016]  [\u003cc019ad34\u003e] ? __mark_inode_dirty+0x12f/0x137\n[15840.675016]  [\u003cc0187a70\u003e] ? page_symlink+0x19/0x1e\n[15840.675016]  [\u003cc022e6eb\u003e] ? hfsplus_symlink+0x41/0xa6\n[15840.675016]  [\u003cc01886a9\u003e] ? vfs_symlink+0x99/0x101\n[15840.675016]  [\u003cc018a2f6\u003e] ? sys_symlinkat+0x6b/0xad\n[15840.675016]  [\u003cc018a348\u003e] ? sys_symlink+0x10/0x12\n[15840.675016]  [\u003cc01038bd\u003e] ? sysenter_do_call+0x12/0x31\n[15840.675016]  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[15840.675016] Code: 00 00 75 10 83 3d 88 2f ec c0 02 75 07 89 d0 e8 12 56 05 00 5d c3 55 ba 06 00 00 00 89 e5 53 89 c3 b8 3d eb 7e c0 e8 16 74 00 00 \u003c8b\u003e 03 c1 e8 1e 69 c0 d8 02 00 00 05 b8 69 8e c0 2b 80 c4 02 00\n[15840.675016] EIP: [\u003cc0116a4f\u003e] kmap+0x15/0x56 SS:ESP 0068:cab0bc94\n[15840.675016] ---[ end trace 4fea40dad6b70e5f ]---\n\nThis happens because the return value of read_mapping_page() is passed on\nto kmap unchecked.  The bug is triggered after the first\nread_mapping_page() in hfsplus_block_allocate(), this patch fixes all\nthree usages in this functions but leaves the ones further down in the\nfile unchanged.\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "efc7ffcb4237f8cb9938909041c4ed38f6e1bf40",
      "tree": "94cc5d6fa4f8760b677de5cd90ce6c3e5551f597",
      "parents": [
        "81a73719d1bc77774f6ac91e2476f22c56f18baf"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Wed Oct 15 22:04:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:46 2008 -0700"
      },
      "message": "hfsplus: fix Buffer overflow with a corrupted image\n\nWhen an hfsplus image gets corrupted it might happen that the catalog\nnamelength field gets b0rked.  If we mount such an image the memcpy() in\nhfsplus_cat_build_key_uni() writes more than the 255 that fit in the name\nfield.  Depending on the size of the overwritten data, we either only get\nmemory corruption or also trigger an oops like this:\n\n[  221.628020] BUG: unable to handle kernel paging request at c82b0000\n[  221.629066] IP: [\u003cc022d4b1\u003e] hfsplus_find_cat+0x10d/0x151\n[  221.629066] *pde \u003d 0ea29163 *pte \u003d 082b0160\n[  221.629066] Oops: 0002 [#1] PREEMPT DEBUG_PAGEALLOC\n[  221.629066] Modules linked in:\n[  221.629066]\n[  221.629066] Pid: 4845, comm: mount Not tainted (2.6.27-rc4-00123-gd3ee1b4-dirty #28)\n[  221.629066] EIP: 0060:[\u003cc022d4b1\u003e] EFLAGS: 00010206 CPU: 0\n[  221.629066] EIP is at hfsplus_find_cat+0x10d/0x151\n[  221.629066] EAX: 00000029 EBX: 00016210 ECX: 000042c2 EDX: 00000002\n[  221.629066] ESI: c82d70ca EDI: c82b0000 EBP: c82d1bcc ESP: c82d199c\n[  221.629066]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068\n[  221.629066] Process mount (pid: 4845, ti\u003dc82d1000 task\u003dc8224060 task.ti\u003dc82d1000)\n[  221.629066] Stack: c080b3c4 c82aa8f8 c82d19c2 00016210 c080b3be c82d1bd4 c82aa8f0 00000300\n[  221.629066]        01000000 750008b1 74006e00 74006900 65006c00 c82d6400 c013bd35 c8224060\n[  221.629066]        00000036 00000046 c82d19f0 00000082 c8224548 c8224060 00000036 c0d653cc\n[  221.629066] Call Trace:\n[  221.629066]  [\u003cc013bd35\u003e] ? trace_hardirqs_off+0xb/0xd\n[  221.629066]  [\u003cc013bca3\u003e] ? trace_hardirqs_off_caller+0x14/0x9b\n[  221.629066]  [\u003cc013bd35\u003e] ? trace_hardirqs_off+0xb/0xd\n[  221.629066]  [\u003cc013bca3\u003e] ? trace_hardirqs_off_caller+0x14/0x9b\n[  221.629066]  [\u003cc013bd35\u003e] ? trace_hardirqs_off+0xb/0xd\n[  221.629066]  [\u003cc0107aa3\u003e] ? native_sched_clock+0x82/0x96\n[  221.629066]  [\u003cc01302d2\u003e] ? __kernel_text_address+0x1b/0x27\n[  221.629066]  [\u003cc010487a\u003e] ? dump_trace+0xca/0xd6\n[  221.629066]  [\u003cc0109e32\u003e] ? save_stack_address+0x0/0x2c\n[  221.629066]  [\u003cc0109eaf\u003e] ? save_stack_trace+0x1c/0x3a\n[  221.629066]  [\u003cc013b571\u003e] ? save_trace+0x37/0x8d\n[  221.629066]  [\u003cc013b62e\u003e] ? add_lock_to_list+0x67/0x8d\n[  221.629066]  [\u003cc013ea1c\u003e] ? validate_chain+0x8a4/0x9f4\n[  221.629066]  [\u003cc013553d\u003e] ? down+0xc/0x2f\n[  221.629066]  [\u003cc013f1f6\u003e] ? __lock_acquire+0x68a/0x6e0\n[  221.629066]  [\u003cc013bd35\u003e] ? trace_hardirqs_off+0xb/0xd\n[  221.629066]  [\u003cc013bca3\u003e] ? trace_hardirqs_off_caller+0x14/0x9b\n[  221.629066]  [\u003cc013bd35\u003e] ? trace_hardirqs_off+0xb/0xd\n[  221.629066]  [\u003cc0107aa3\u003e] ? native_sched_clock+0x82/0x96\n[  221.629066]  [\u003cc013da5d\u003e] ? mark_held_locks+0x43/0x5a\n[  221.629066]  [\u003cc013dc3a\u003e] ? trace_hardirqs_on+0xb/0xd\n[  221.629066]  [\u003cc013dbf4\u003e] ? trace_hardirqs_on_caller+0xf4/0x12f\n[  221.629066]  [\u003cc06abec8\u003e] ? _spin_unlock_irqrestore+0x42/0x58\n[  221.629066]  [\u003cc013555c\u003e] ? down+0x2b/0x2f\n[  221.629066]  [\u003cc022aa68\u003e] ? hfsplus_iget+0xa0/0x154\n[  221.629066]  [\u003cc022b0b9\u003e] ? hfsplus_fill_super+0x280/0x447\n[  221.629066]  [\u003cc0107aa3\u003e] ? native_sched_clock+0x82/0x96\n[  221.629066]  [\u003cc013bca3\u003e] ? trace_hardirqs_off_caller+0x14/0x9b\n[  221.629066]  [\u003cc013bca3\u003e] ? trace_hardirqs_off_caller+0x14/0x9b\n[  221.629066]  [\u003cc013f1f6\u003e] ? __lock_acquire+0x68a/0x6e0\n[  221.629066]  [\u003cc041c9e4\u003e] ? string+0x2b/0x74\n[  221.629066]  [\u003cc041cd16\u003e] ? vsnprintf+0x2e9/0x512\n[  221.629066]  [\u003cc010487a\u003e] ? dump_trace+0xca/0xd6\n[  221.629066]  [\u003cc0109eaf\u003e] ? save_stack_trace+0x1c/0x3a\n[  221.629066]  [\u003cc0109eaf\u003e] ? save_stack_trace+0x1c/0x3a\n[  221.629066]  [\u003cc013b571\u003e] ? save_trace+0x37/0x8d\n[  221.629066]  [\u003cc013b62e\u003e] ? add_lock_to_list+0x67/0x8d\n[  221.629066]  [\u003cc013ea1c\u003e] ? validate_chain+0x8a4/0x9f4\n[  221.629066]  [\u003cc01354d3\u003e] ? up+0xc/0x2f\n[  221.629066]  [\u003cc013f1f6\u003e] ? __lock_acquire+0x68a/0x6e0\n[  221.629066]  [\u003cc013bd35\u003e] ? trace_hardirqs_off+0xb/0xd\n[  221.629066]  [\u003cc013bca3\u003e] ? trace_hardirqs_off_caller+0x14/0x9b\n[  221.629066]  [\u003cc013bd35\u003e] ? trace_hardirqs_off+0xb/0xd\n[  221.629066]  [\u003cc0107aa3\u003e] ? native_sched_clock+0x82/0x96\n[  221.629066]  [\u003cc041cfb7\u003e] ? snprintf+0x1b/0x1d\n[  221.629066]  [\u003cc01ba466\u003e] ? disk_name+0x25/0x67\n[  221.629066]  [\u003cc0183960\u003e] ? get_sb_bdev+0xcd/0x10b\n[  221.629066]  [\u003cc016ad92\u003e] ? kstrdup+0x2a/0x4c\n[  221.629066]  [\u003cc022a7b3\u003e] ? hfsplus_get_sb+0x13/0x15\n[  221.629066]  [\u003cc022ae39\u003e] ? hfsplus_fill_super+0x0/0x447\n[  221.629066]  [\u003cc0183583\u003e] ? vfs_kern_mount+0x3b/0x76\n[  221.629066]  [\u003cc0183602\u003e] ? do_kern_mount+0x32/0xba\n[  221.629066]  [\u003cc01960d4\u003e] ? do_new_mount+0x46/0x74\n[  221.629066]  [\u003cc0196277\u003e] ? do_mount+0x175/0x193\n[  221.629066]  [\u003cc013dbf4\u003e] ? trace_hardirqs_on_caller+0xf4/0x12f\n[  221.629066]  [\u003cc01663b2\u003e] ? __get_free_pages+0x1e/0x24\n[  221.629066]  [\u003cc06ac07b\u003e] ? lock_kernel+0x19/0x8c\n[  221.629066]  [\u003cc01962e6\u003e] ? sys_mount+0x51/0x9b\n[  221.629066]  [\u003cc01962f9\u003e] ? sys_mount+0x64/0x9b\n[  221.629066]  [\u003cc01038bd\u003e] ? sysenter_do_call+0x12/0x31\n[  221.629066]  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[  221.629066] Code: 89 c2 c1 e2 08 c1 e8 08 09 c2 8b 85 e8 fd ff ff 66 89 50 06 89 c7 53 83 c7 08 56 57 68 c4 b3 80 c0 e8 8c 5c ef ff 89 d9 c1 e9 02 \u003cf3\u003e a5 89 d9 83 e1 03 74 02 f3 a4 83 c3 06 8b 95 e8 fd ff ff 0f\n[  221.629066] EIP: [\u003cc022d4b1\u003e] hfsplus_find_cat+0x10d/0x151 SS:ESP 0068:c82d199c\n[  221.629066] ---[ end trace e417a1d67f0d0066 ]---\n\nSince hfsplus_cat_build_key_uni() returns void and only has one callsite,\nthe check is performed at the callsite.\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "81a73719d1bc77774f6ac91e2476f22c56f18baf",
      "tree": "f760f4f4a31ff371476057e2d2a16857a7077155",
      "parents": [
        "152b95a1ed499075006cc6552ef49407deeb815b"
      ],
      "author": {
        "name": "Mike Crowe",
        "email": "mac@mcrowe.com",
        "time": "Wed Oct 15 22:04:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:46 2008 -0700"
      },
      "message": "hfsplus: quieten down mounting hfsplus journaled fs read only\n\nCheck whether the file system was to be mounted read only anyway before\nwarning about changing the mount to read only.\n\nSigned-off-by: Mike Crowe \u003cmac@mcrowe.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "152b95a1ed499075006cc6552ef49407deeb815b",
      "tree": "d77fdf0382669cd541ebb5c723d4e0757cc52e18",
      "parents": [
        "bd39597cbd42a784105a04010100e27267481c67"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Oct 15 22:04:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:46 2008 -0700"
      },
      "message": "befs: annotate fs32 on tests for superblock endianness\n\nDoes compile-time byteswapping rather than runtime.\n\nNoticed by sparse:\nfs/befs/super.c:29:6: warning: cast to restricted __le32\nfs/befs/super.c:29:6: warning: cast from restricted fs32\nfs/befs/super.c:31:11: warning: cast to restricted __be32\nfs/befs/super.c:31:11: warning: cast from restricted fs32\nfs/befs/super.c:31:11: warning: cast to restricted __be32\nfs/befs/super.c:31:11: warning: cast from restricted fs32\nfs/befs/super.c:31:11: warning: cast to restricted __be32\nfs/befs/super.c:31:11: warning: cast from restricted fs32\nfs/befs/super.c:31:11: warning: cast to restricted __be32\nfs/befs/super.c:31:11: warning: cast from restricted fs32\nfs/befs/super.c:31:11: warning: cast to restricted __be32\nfs/befs/super.c:31:11: warning: cast from restricted fs32\nfs/befs/super.c:31:11: warning: cast to restricted __be32\nfs/befs/super.c:31:11: warning: cast from restricted fs32\nfs/befs/linuxvfs.c:811:7: warning: cast to restricted __le32\nfs/befs/linuxvfs.c:811:7: warning: cast from restricted fs32\nfs/befs/linuxvfs.c:812:7: warning: cast to restricted __be32\nfs/befs/linuxvfs.c:812:7: warning: cast from restricted fs32\nfs/befs/linuxvfs.c:812:7: warning: cast to restricted __be32\nfs/befs/linuxvfs.c:812:7: warning: cast from restricted fs32\nfs/befs/linuxvfs.c:812:7: warning: cast to restricted __be32\nfs/befs/linuxvfs.c:812:7: warning: cast from restricted fs32\nfs/befs/linuxvfs.c:812:7: warning: cast to restricted __be32\nfs/befs/linuxvfs.c:812:7: warning: cast from restricted fs32\nfs/befs/linuxvfs.c:812:7: warning: cast to restricted __be32\nfs/befs/linuxvfs.c:812:7: warning: cast from restricted fs32\nfs/befs/linuxvfs.c:812:7: warning: cast to restricted __be32\nfs/befs/linuxvfs.c:812:7: warning: cast from restricted fs32\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: \"Sergey S. Kostyliov\" \u003crathamahata@php4.ru\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd39597cbd42a784105a04010100e27267481c67",
      "tree": "afe3e40d871f4581146f5679ea546670fe93f4f2",
      "parents": [
        "d707d31c972b657dfc2efefd0b99cc4e14223dab"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Oct 15 22:04:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:46 2008 -0700"
      },
      "message": "ext2: avoid printk floods in the face of directory corruption\n\nA very large directory with many read failures (either due to storage\nproblems, or due to invalid size \u0026 blocks from corruption) will generate a\nprintk storm as the filesystem continues to try to read all the blocks.\nThis flood of messages can tie up the box until it is complete - which may\nbe a very long time, especially for very large corrupted values.\n\nThis is fixed by only reporting the corruption once each time we try to\nread the directory.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Eugene Teo \u003ceugeneteo@kernel.sg\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d707d31c972b657dfc2efefd0b99cc4e14223dab",
      "tree": "9a6e5a1b3295ead8932022e715baaee955c57d16",
      "parents": [
        "60836eb63b941f407dc2a609f3f0f34fd74ef6c3"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Wed Oct 15 22:04:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:45 2008 -0700"
      },
      "message": "ext2: fix ext2 block reservation early ENOSPC issue\n\nWe could run into ENOSPC error on ext2, even when there is free blocks on\nthe filesystem.\n\nThe problem is triggered in the case the goal block group has 0 free\nblocks , and the rest block groups are skipped due to the check of\n\"free_blocks \u003c windowsz/2\".  Current code could fall back to non\nreservation allocation to prevent early ENOSPC after examing all the block\ngroups with reservation on , but this code was bypassed if the reservation\nwindow is turned off already, which is true in this case.\n\nThis patch fixed two issues:\n1) We don\u0027t need to turn off block reservation if the goal block group has\n0 free blocks left and continue search for the rest of block groups.\n\nCurrent code the intention is to turn off the block reservation if the\ngoal allocation group has a few (some) free blocks left (not enough for\nmake the desired reservation window),to try to allocation in the goal\nblock group, to get better locality.  But if the goal blocks have 0 free\nblocks, it should leave the block reservation on, and continues search for\nthe next block groups,rather than turn off block reservation completely.\n\n2) we don\u0027t need to check the window size if the block reservation is off.\n\nThe problem was originally found and fixed in ext4.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d7b48e0bc5fa01a818eac713d4cb0763090cd0e",
      "tree": "4477b2f23f8596901f38582242a40ff869fb798c",
      "parents": [
        "4b22ff13415fa30b6282c88da790c82b4c6e5127"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Oct 15 22:02:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:39 2008 -0700"
      },
      "message": "autofs4: add miscellaneous device for ioctls\n\nAdd a miscellaneous device to the autofs4 module for routing ioctls.  This\nprovides the ability to obtain an ioctl file handle for an autofs mount\npoint that is possibly covered by another mount.\n\nThe actual problem with autofs is that it can\u0027t reconnect to existing\nmounts.  Immediately one things of just adding the ability to remount\nautofs file systems would solve it, but alas, that can\u0027t work.  This is\nbecause autofs direct mounts and the implementation of \"on demand mount\nand expire\" of nested mount trees have the file system mounted on top of\nthe mount trigger dentry.\n\nTo resolve this a miscellaneous device node for routing ioctl commands to\nthese mount points has been implemented in the autofs4 kernel module and a\nlibrary added to autofs.  This provides the ability to open a file\ndescriptor for these over mounted autofs mount points.\n\nPlease refer to Documentation/filesystems/autofs4-mount-control.txt for a\ndiscussion of the problem, implementation alternatives considered and a\ndescription of the interface.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0f54d3e54fd7ac6723b2125d881f1b25d21ed16",
      "tree": "3215eeae82b4c81094227b78ad668943c69b46e5",
      "parents": [
        "bb979d7fc360bc37cbaff43a6fafceb897cb5e47"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Oct 15 22:02:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:39 2008 -0700"
      },
      "message": "autofs4: track uid and gid of last mount requester\n\nTrack the uid and gid of the last process to request a mount for on an\nautofs dentry.\n\n[akpm@linux-foundation.org: fix tpyo in comment]\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb979d7fc360bc37cbaff43a6fafceb897cb5e47",
      "tree": "b99f90b4cacebf1e8cd5725917fd14cf8d1c50ac",
      "parents": [
        "624ae5284516870657505103ada531c64dba2a9a"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Oct 15 22:02:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:39 2008 -0700"
      },
      "message": "autofs4: cleanup autofs mount type usage\n\nUsage of the AUTOFS_TYPE_* defines is a little confusing and appears\ninconsistent.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "624ae5284516870657505103ada531c64dba2a9a",
      "tree": "1098d75abc1f4d335e2276dd9dde00a60ee568b5",
      "parents": [
        "807b7ebe41ab80d96e89a53bc290d49613e56f48"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Wed Oct 15 22:02:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:39 2008 -0700"
      },
      "message": "eCryptfs: remove netlink transport\n\nThe netlink transport code has not worked for a while and the miscdev\ntransport is a simpler solution.  This patch removes the netlink code and\nmakes the miscdev transport the only eCryptfs kernel to userspace\ntransport.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "807b7ebe41ab80d96e89a53bc290d49613e56f48",
      "tree": "79a73c4982d4572c33bf7ad71e92b42650c1636e",
      "parents": [
        "7d6c7045581d3736c5f14053eb59342aa0b2cc07"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Wed Oct 15 22:02:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:39 2008 -0700"
      },
      "message": "ecryptfs: convert to use new aops\n\nConvert ecryptfs to use write_begin/write_end\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nAcked-by: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d6c7045581d3736c5f14053eb59342aa0b2cc07",
      "tree": "3906a3e8b0d4a2e4752c4eb19defc62691d200d7",
      "parents": [
        "9d793b0bcbbbc37d80241862dfa5257963d5415e"
      ],
      "author": {
        "name": "Michael Halcrow",
        "email": "mhalcrow@us.ibm.com",
        "time": "Wed Oct 15 22:02:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:38 2008 -0700"
      },
      "message": "eCryptfs: remove retry loop in ecryptfs_readdir()\n\nThe retry block in ecryptfs_readdir() has been in the eCryptfs code base\nfor a while, apparently for no good reason.  This loop could potentially\nrun without terminating.  This patch removes the loop, instead erroring\nout if vfs_readdir() on the lower file fails.\n\nSigned-off-by: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nReported-by: Al Viro \u003cviro@ZinIV.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf2a9a39639b8b51377905397a5005f444e9a892",
      "tree": "1919ad1abea804ce4cb1e7e8b1ac44b5b9a8f110",
      "parents": [
        "53112488bebe25c0f5f8a002470046c0fe9a6c61"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Wed Oct 15 22:02:39 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:38 2008 -0700"
      },
      "message": "Allow recursion in binfmt_script and binfmt_misc\n\nbinfmt_script and binfmt_misc disallow recursion to avoid stack overflow\nusing sh_bang and misc_bang.  It causes problem in some cases:\n\n$ echo \u0027#!/bin/ls\u0027 \u003e /tmp/t0\n$ echo \u0027#!/tmp/t0\u0027 \u003e /tmp/t1\n$ echo \u0027#!/tmp/t1\u0027 \u003e /tmp/t2\n$ chmod +x /tmp/t*\n$ /tmp/t2\nzsh: exec format error: /tmp/t2\n\nSimilar problem with binfmt_misc.\n\nThis patch introduces field \u0027recursion_depth\u0027 into struct linux_binprm to\ntrack recursion level in binfmt_misc and binfmt_script.  If recursion\nlevel more then BINPRM_MAX_RECURSION it generates -ENOEXEC.\n\n[akpm@linux-foundation.org: make linux_binprm.recursion_depth a uint]\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "53112488bebe25c0f5f8a002470046c0fe9a6c61",
      "tree": "6f685c176c7802e356d729984648d759f0ae0ba4",
      "parents": [
        "cde162c2a963dba6d1b6921b58917ef8f27f4150"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Wed Oct 15 22:02:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:38 2008 -0700"
      },
      "message": "alpha: introduce field \u0027taso\u0027 into struct linux_binprm\n\nThis change is Alpha-specific.  It adds field \u0027taso\u0027 into struct\nlinux_binprm to remember if the application is TASO.  Previously, field\nsh_bang was used for this purpose.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cde162c2a963dba6d1b6921b58917ef8f27f4150",
      "tree": "b72bf1d76d3dce7d5992a5e92578082d4c8ef56b",
      "parents": [
        "6e144ee546b4bb4902524e639dc9c2cd4f7f97a4"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Oct 15 22:02:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:38 2008 -0700"
      },
      "message": "binfmt_som.c: add MODULE_LICENSE\n\nAdd the missing MODULE_LICENSE(\"GPL\").\n\nReported-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f7a5000f7a8924e9c5fad1801616601d6dc65a17",
      "tree": "82bd7f554378b26fe23707a3755359787b252574",
      "parents": [
        "f7ad160b49c49dc9cd383b9184c6fa4a9b4f7ebb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Oct 15 22:02:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:33 2008 -0700"
      },
      "message": "compat: move cp_compat_stat to common code\n\nstruct stat / compat_stat is the same on all architectures, so\ncp_compat_stat should be, too.\n\nTurns out it is, except that various architectures have slightly and some\nhigh2lowuid/high2lowgid or the direct assignment instead of the\nSET_UID/SET_GID that expands to the correct one anyway.\n\nThis patch replaces the arch-specific cp_compat_stat implementations with\na common one based on the x86-64 one.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e [ sparc bits ]\nAcked-by: Kyle McMartin \u003ckyle@mcmartin.ca\u003e [ parisc bits ]\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1f8e87449147ffe5ea3de64a46af7de450ce279",
      "tree": "304e90a6747f5a7586a67305b7225ed4b4dbb53a",
      "parents": [
        "8033fe65a6d6c0e47ba9e3cb2e4e6902f9dfb8dd"
      ],
      "author": {
        "name": "Francois Cami",
        "email": "francois.cami@free.fr",
        "time": "Wed Oct 15 22:01:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:32 2008 -0700"
      },
      "message": "Remove Andrew Morton\u0027s old email accounts\n\nPeople can use the real name an an index into MAINTAINERS to find the\ncurrent email address.\n\nSigned-off-by: Francois Cami \u003cfrancois.cami@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f337b9c58332bdecde965b436e47ea4c94d30da0",
      "tree": "0b630e4cd2cc19f29d56716162defa301f82bf65",
      "parents": [
        "8b6e47ad062e6ac993fb80256344fc499c1e827b"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Wed Oct 15 22:01:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:32 2008 -0700"
      },
      "message": "epoll: drop unnecessary test\n\nThomas found that there is an unnecessary (always true) test in\nep_send_events().  The callback never inserts into -\u003erdllink while the\nsend loop is performed, and also does the ~EP_PRIVATE_BITS test.  Given\nwe\u0027re holding the mutex during this time, the conditions tested inside the\nloop are always true.  This patch drops the test done inside the\nre-insertion loop.\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "362e6663ef2369d77251496d865ad02a2376f962",
      "tree": "48155cf15d85a303623a3f672f719652b0585178",
      "parents": [
        "9679e4dd628743b9ef4375d60ae69923c3766173"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Wed Oct 15 22:01:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:32 2008 -0700"
      },
      "message": "exec.c, compat.c: fix count(), compat_count() bounds checking\n\nWith MAX_ARG_STRINGS set to 0x7FFFFFFF, and being passed to \u0027count()\u0027 and\ncompat_count(), it would appear that the current max bounds check of\nfs/exec.c:394:\n\n\tif(++i \u003e max)\n\t\treturn -E2BIG;\n\nwould never trigger. Since \u0027i\u0027 is of type int, so values would wrap and the\nfunction would continue looping.\n\nSimple fix seems to be chaning ++i to i++ and checking for \u0027\u003e\u003d\u0027.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Ollie Wild\" \u003caaw@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": "f4cfb18d7917ecb397b3497e931a2a23175709b7",
      "tree": "bb891b0f478e2ed7fa9dcefacc0b8342ce1b43d6",
      "parents": [
        "0c6aa2639ea83bfb7f91d72118bad70b3f60012a"
      ],
      "author": {
        "name": "Volodymyr G. Lukiianyk",
        "email": "volodymyrgl@gmail.com",
        "time": "Wed Oct 15 22:01:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:29 2008 -0700"
      },
      "message": "uclinux: fix gzip header parsing in binfmt_flat.c\n\nThere are off-by-one errors in decompress_exec() when calculating the length of\noptional \"original file name\" and \"comment\" fields: the \"ret\" index is not\nincremented when terminating \u0027\\0\u0027 character is reached. The check of the buffer\noverflow (after an \"extra-field\" length was taken into account) is also fixed.\n\nI\u0027ve encountered this off-by-one error when tried to reuse\ngzip-header-parsing part of the decompress_exec() function.  There was an\n\"original file name\" field in the payload (with miscalculated length) and\nzlib_inflate() returned Z_DATA_ERROR.  But after the fix similar to this\none all worked fine.\n\nSigned-off-by: Volodymyr G Lukiianyk \u003cvolodymyrgl@gmail.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@snapgear.com\u003e\nAcked-by: David Howells \u003cdhowells@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": "0b4a4fea253e1296222603ccc55430ed7cd9413a",
      "tree": "5ce1810393a0f3a48ac208e0dbf994b63a481f18",
      "parents": [
        "030c1d2bfcc2187650fb975456ca0b61a5bb77f4"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Jul 03 18:05:28 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:52 2008 -0700"
      },
      "message": "kobject: Cleanup kobject_rename and !CONFIG_SYSFS\n\nIt finally dawned on me what the clean fix to sysfs_rename_dir\ncalling kobject_set_name is.  Move the work into kobject_rename\nwhere it belongs.  The callers serialize us anyway so this is\nsafe.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "8c0e3998f5b71e68fe6b6e489a92e052715e563c",
      "tree": "df57b05090964df2138c8b59d3796c8509e92ed5",
      "parents": [
        "d8bf254089a6c31d7d01a4d1d2f1861662900855"
      ],
      "author": {
        "name": "Trent Piepho",
        "email": "tpiepho@freescale.com",
        "time": "Thu Sep 25 16:45:13 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:51 2008 -0700"
      },
      "message": "sysfs: Make dir and name args to sysfs_notify() const\n\nBecause they can be, and because code like this produces a warning if\nthey\u0027re not:\n\nstruct device_attribute dev_attr;\n\nsysfs_notify(\u0026kobj, NULL, dev_attr.attr.name);\n\nSigned-off-by: Trent Piepho \u003ctpiepho@freescale.com\u003e\nCC: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "45c076c5d71e6e644e2eae64f80922d162c900ac",
      "tree": "68e188af66201219f41681d57975a1bdf7ec9347",
      "parents": [
        "8a89efd18aa15bb832778baa4e6eee3857ecada4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Sep 28 07:48:08 2008 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:51 2008 -0700"
      },
      "message": "sysfs: use ilookup5() instead of ilookup5_nowait()\n\nAs inode creation is protected by sysfs_mutex, ilookup5_nowait()\nalways either fails to find at all or finds one which is fully\ninitialized, so using ilookup5_nowait() or ilookup5() doesn\u0027t make any\ndifference.  Switch to ilookup5() as it\u0027s planned to be removed.  This\nchange also makes lookup return value handling a bit simpler.\n\nThis change was suggested by Al Viro.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Al Viro \u003cviro@hera.kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "b31ca3f5dfc89c3f1f654b30f0760d0e2fb15e45",
      "tree": "64bcc432070e090ce236308ef7d077b1db2a3d8f",
      "parents": [
        "6cd49586090187a2a145bb6570fb2392f121aa22"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Sep 12 11:24:11 2008 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:50 2008 -0700"
      },
      "message": "sysfs: fix deadlock\n\nOn Thu, Sep 11, 2008 at 10:27:10AM +0200, Ingo Molnar wrote:\n\n\u003e and it\u0027s working fine on most boxes. One testbox found this new locking\n\u003e scenario:\n\u003e\n\u003e PM: Adding info for No Bus:vcsa7\n\u003e EDAC DEBUG: MC0: i82860_check()\n\u003e\n\u003e \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\u003e [ INFO: possible circular locking dependency detected ]\n\u003e 2.6.27-rc6-tip #1\n\u003e -------------------------------------------------------\n\u003e X/4873 is trying to acquire lock:\n\u003e  (\u0026bb-\u003emutex){--..}, at: [\u003cc020ba20\u003e] mmap+0x40/0xa0\n\u003e\n\u003e but task is already holding lock:\n\u003e  (\u0026mm-\u003emmap_sem){----}, at: [\u003cc0125a1e\u003e] sys_mmap2+0x8e/0xc0\n\u003e\n\u003e which lock already depends on the new lock.\n\u003e\n\u003e\n\u003e the existing dependency chain (in reverse order) is:\n\u003e\n\u003e -\u003e #1 (\u0026mm-\u003emmap_sem){----}:\n\u003e        [\u003cc017dc96\u003e] validate_chain+0xa96/0xf50\n\u003e        [\u003cc017ef2b\u003e] __lock_acquire+0x2cb/0x5b0\n\u003e        [\u003cc017f299\u003e] lock_acquire+0x89/0xc0\n\u003e        [\u003cc01aa8fb\u003e] might_fault+0x6b/0x90\n\u003e        [\u003cc040b618\u003e] copy_to_user+0x38/0x60\n\u003e        [\u003cc020bcfb\u003e] read+0xfb/0x170\n\u003e        [\u003cc01c09a5\u003e] vfs_read+0x95/0x110\n\u003e        [\u003cc01c1443\u003e] sys_pread64+0x63/0x80\n\u003e        [\u003cc012146f\u003e] sysenter_do_call+0x12/0x43\n\u003e        [\u003cffffffff\u003e] 0xffffffff\n\u003e\n\u003e -\u003e #0 (\u0026bb-\u003emutex){--..}:\n\u003e        [\u003cc017d8b7\u003e] validate_chain+0x6b7/0xf50\n\u003e        [\u003cc017ef2b\u003e] __lock_acquire+0x2cb/0x5b0\n\u003e        [\u003cc017f299\u003e] lock_acquire+0x89/0xc0\n\u003e        [\u003cc0d6f2ab\u003e] __mutex_lock_common+0xab/0x3c0\n\u003e        [\u003cc0d6f698\u003e] mutex_lock_nested+0x38/0x50\n\u003e        [\u003cc020ba20\u003e] mmap+0x40/0xa0\n\u003e        [\u003cc01b111e\u003e] mmap_region+0x14e/0x450\n\u003e        [\u003cc01b170f\u003e] do_mmap_pgoff+0x2ef/0x310\n\u003e        [\u003cc0125a3d\u003e] sys_mmap2+0xad/0xc0\n\u003e        [\u003cc012146f\u003e] sysenter_do_call+0x12/0x43\n\u003e        [\u003cffffffff\u003e] 0xffffffff\n\u003e\n\u003e other info that might help us debug this:\n\u003e\n\u003e 1 lock held by X/4873:\n\u003e  #0:  (\u0026mm-\u003emmap_sem){----}, at: [\u003cc0125a1e\u003e] sys_mmap2+0x8e/0xc0\n\u003e\n\u003e stack backtrace:\n\u003e Pid: 4873, comm: X Not tainted 2.6.27-rc6-tip #1\n\u003e  [\u003cc017cd09\u003e] print_circular_bug_tail+0x79/0xc0\n\u003e  [\u003cc017d8b7\u003e] validate_chain+0x6b7/0xf50\n\u003e  [\u003cc017a5b5\u003e] ? trace_hardirqs_off_caller+0x15/0xb0\n\u003e  [\u003cc017ef2b\u003e] __lock_acquire+0x2cb/0x5b0\n\u003e  [\u003cc017f299\u003e] lock_acquire+0x89/0xc0\n\u003e  [\u003cc020ba20\u003e] ? mmap+0x40/0xa0\n\u003e  [\u003cc0d6f2ab\u003e] __mutex_lock_common+0xab/0x3c0\n\u003e  [\u003cc020ba20\u003e] ? mmap+0x40/0xa0\n\u003e  [\u003cc0d6f698\u003e] mutex_lock_nested+0x38/0x50\n\u003e  [\u003cc020ba20\u003e] ? mmap+0x40/0xa0\n\u003e  [\u003cc020ba20\u003e] mmap+0x40/0xa0\n\u003e  [\u003cc01b111e\u003e] mmap_region+0x14e/0x450\n\u003e  [\u003cc01afb88\u003e] ? arch_get_unmapped_area_topdown+0xf8/0x160\n\u003e  [\u003cc01b170f\u003e] do_mmap_pgoff+0x2ef/0x310\n\u003e  [\u003cc0125a3d\u003e] sys_mmap2+0xad/0xc0\n\u003e  [\u003cc012146f\u003e] sysenter_do_call+0x12/0x43\n\u003e  [\u003cc0120000\u003e] ? __switch_to+0x130/0x220\n\u003e  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003e evbug.c: Event. Dev: input3, Type: 20, Code: 0, Value: 500\n\u003e warning: `sudo\u0027 uses deprecated v2 capabilities in a way that may be insecure.\n\u003e\n\u003e i\u0027ve attached the config.\n\u003e\n\u003e at first sight it looks like a genuine bug in fs/sysfs/bin.c?\n\nYes, it is a real bug by the looks. bin.c takes bb-\u003emutex under mmap_sem\nwhen it is mmapped, and then does its copy_*_user under bb-\u003emutex too.\n\nHere is a basic fix for the sysfs lor.\n\n\nFrom: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f1282c844e86db5a041afa41335b5f9eea6cec0c",
      "tree": "3736285f2f7ce145fb06538d616a9c1165ffc125",
      "parents": [
        "ec748fa9ed3fec44aeebbf86ae050b0cc7a978d9"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 16 08:58:04 2008 +1000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:47 2008 -0700"
      },
      "message": "sysfs: Support sysfs_notify from atomic context with new sysfs_notify_dirent\n\nSupport sysfs_notify from atomic context with new sysfs_notify_dirent\n\nsysfs_notify currently takes sysfs_mutex.\nThis means that it cannot be called in atomic context.\nsysfs_mutex  is sometimes held over a malloc (sysfs_rename_dir)\nso it can block on low memory.\n\nIn md I want to be able to notify on a sysfs attribute from\natomic context, and I don\u0027t want to block on low memory because I\ncould be in the writeout path for freeing memory.\n\nSo:\n - export the \"sysfs_dirent\" structure along with sysfs_get, sysfs_put\n   and sysfs_get_dirent so I can get the sysfs_dirent that I want to\n   notify on and hold it in an md structure.\n - split sysfs_notify_dirent out of sysfs_notify so the sysfs_dirent\n   can be notified on with no blocking (just a spinlock).\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a9b12619f7b6f19c871437ec24a088787a04b1de",
      "tree": "ff1b11e7affedccfd69fc20e14876d0821f6e555",
      "parents": [
        "91bd418fdc8526ee70a0e8f7970b584c8870ae10"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 20:03:34 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:43 2008 -0700"
      },
      "message": "device create: misc: convert device_create_drvdata to device_create\n\nNow that device_create() has been audited, rename things back to the\noriginal call to be sane.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "ae87221d3ce49d9de1e43756da834fd0bf05a2ad",
      "tree": "f96792656b00e95c307f3f37369c98a85ce38207",
      "parents": [
        "e94320939f44e0cbaccc3f259a5778abced4949c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Aug 24 16:11:54 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:41 2008 -0700"
      },
      "message": "sysfs: crash debugging\n\nPrint the name of the last-accessed sysfs file when we oops, to help track\ndown oopses which occur in sysfs store/read handlers.  Because these oopses\ntend to not leave any trace of the offending code in the stack traces.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "5f4123be3cdb1dbd77fa9d6d2bb96bb9689a0a19",
      "tree": "e636c2ae7d5a5459f4f4625d44754737f45a984f",
      "parents": [
        "a65e5d782f9db2a61a914dc01a329e0c2dcf92a1"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Jul 09 10:28:40 2008 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Oct 17 02:38:36 2008 +1100"
      },
      "message": "remove CONFIG_KMOD from fs\n\nJust always compile the code when the kernel is modular.\nConvert load_nls to use try_then_request_module to tidy\nup the code.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "0b59268285ca6cdc46191f2995bf632088e3e277",
      "tree": "91f95eeb809c5fe13d0ba5b055e26879f9ec9357",
      "parents": [
        "04ab591808565f968d4406f6435090ad671ebdab"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Oct 16 15:39:57 2008 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Oct 16 15:40:05 2008 +0200"
      },
      "message": "[PATCH] remove unused ibcs2/PER_SVR4 in SET_PERSONALITY\n\nThe SET_PERSONALITY macro is always called with a second argument of 0.\nRemove the ibcs argument and the various tests to set the PER_SVR4\npersonality.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "6925bac120097b823fc990c143b9789c21cc60b5",
      "tree": "0f92e1b22122fba623aeff4c271c16df673244eb",
      "parents": [
        "04ab591808565f968d4406f6435090ad671ebdab",
        "011935a0a710c20bb7ae63523b78856848db1926"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 15 15:54:56 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 15 15:54:56 2008 -0400"
      },
      "message": "Merge branch \u0027next\u0027\n"
    },
    {
      "commit": "6c5e51dae2c37127e00be392f40842e08077e96a",
      "tree": "ee2d925339271f53b321d53c885e738fccffd75b",
      "parents": [
        "eae82541cf62cd8b585377d799335b8f9a701c4a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Oct 12 14:30:44 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 15 10:00:00 2008 -0700"
      },
      "message": "xfs: fix remount rw with unrecognized options\n\nWhen we skip unrecognized options in xfs_fs_remount we should just break\nout of the switch and not return because otherwise we may skip clearing\nthe xfs-internal read-only flag.  This will only show up on some\noperations like touch because most read-only checks are done by the VFS\nwhich thinks this filesystem is r/w.  Eventually we should replace the\nXFS read-only flag with a helper that always checks the VFS flag to make\nsure they can never get out of sync.\n\nBug reported and fix verified by Marcel Beister on #xfs.\nBug fix verified by updated xfstests/189.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nSigned-off-by: Timothy Shimmin \u003ctes@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1efd47f87317030cb7e37821b8562a8162c1223f",
      "tree": "0597427ead70c515b7626b0467200aebe0ab1b43",
      "parents": [
        "278429cff8809958d25415ba0ed32b59866ab1a8"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 18:31:46 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 18:31:46 2008 -0700"
      },
      "message": "ocfs2: fix build error\n\nI merged the latest ocfs2_read_blocks() changes in xattr.c wrong. This makes\nOcfs2 compile again.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "acd15a836053ff6b48e78dc6de388b225ba9e40d",
      "tree": "9dec0be18d746c5fb0d105233f50ebe7df455708",
      "parents": [
        "72f22b1eb6ca5e4676a632a04d40d46cb61d4562",
        "d4a8c93c8248534bdedb07f83c9aebd6f7d1d579"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 14 16:34:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 14 16:34:11 2008 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2: (56 commits)\n  ocfs2: Make cached block reads the common case.\n  ocfs2: Kill the last naked wait_on_buffer() for cached reads.\n  ocfs2: Move ocfs2_bread() into dir.c\n  ocfs2: Simplify ocfs2_read_block()\n  ocfs2: Require an inode for ocfs2_read_block(s)().\n  ocfs2: Separate out sync reads from ocfs2_read_blocks()\n  ocfs2: Refactor xattr list and remove ocfs2_xattr_handler().\n  ocfs2: Calculate EA hash only by its suffix.\n  ocfs2: Move trusted and user attribute support into xattr.c\n  ocfs2: Uninline ocfs2_xattr_name_hash()\n  ocfs2: Don\u0027t check for NULL before brelse()\n  ocfs2: use smaller counters in ocfs2_remove_xattr_clusters_from_cache\n  ocfs2: Documentation update for user_xattr / nouser_xattr mount options\n  ocfs2: make la_debug_mutex static\n  ocfs2: Remove pointless !!\n  ocfs2: Add empty bucket support in xattr.\n  ocfs2/xattr.c: Fix a bug when inserting xattr.\n  ocfs2: Add xattr mount option in ocfs2_show_options()\n  ocfs2: Switch over to JBD2.\n  ocfs2: Add the \u0027inode64\u0027 mount option.\n  ...\n"
    },
    {
      "commit": "011935a0a710c20bb7ae63523b78856848db1926",
      "tree": "aabfb595ce38eabd95ae1f79546d604aba663b7d",
      "parents": [
        "4704f0e274829e3af00737d2d9adace2d71a9605"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 14 19:24:50 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 14 19:24:50 2008 -0400"
      },
      "message": "NFS: Fix a resolution problem with nfs_inode-\u003ecache_change_attribute\n\nThe cache_change_attribute is used to decide whether or not a directory has\nchanged, in which case we may need to look it up again. Again, the use of\n\u0027jiffies\u0027 leads to an issue of resolution.\n\nOnce again, the fix is to change nfs_inode-\u003ecache_change_attribute, and\njust make it a simple counter.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4704f0e274829e3af00737d2d9adace2d71a9605",
      "tree": "048404f927dc210f1d7c695cb39e28e4e7d49030",
      "parents": [
        "921615f111108258820226a3258a047d9bf1d96a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 14 19:16:07 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 14 19:23:17 2008 -0400"
      },
      "message": "NFS: Fix the resolution problem with nfs_inode_attrs_need_update()\n\nIt appears that \u0027jiffies\u0027 timestamps do not have high enough resolution for\nnfs_inode_attrs_need_update(). One problem is that a GETATTR can be\nlaunched within \u003c 1 jiffy of the last operation that updated the attribute.\nAnother problem is that RPC calls can take \u003c 1 jiffy to execute.\n\nWe can fix this by switching the variables to use a simple global counter\nthat gets incremented every time we start another GETATTR call.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "921615f111108258820226a3258a047d9bf1d96a",
      "tree": "c78cd59a6b5c2eed79f6f9fa28498996f7147c33",
      "parents": [
        "c055551e97e1ca00781bc41523f829e05a8afed7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 14 19:23:07 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 14 19:23:07 2008 -0400"
      },
      "message": "NFS: Changes to inode-\u003ei_nlinks must set the NFS_INO_INVALID_ATTR flag\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8acd3a60bcca17c6d89c73cee3ad6057eb83ba1e",
      "tree": "d610c8d39246c33c499ee9d92d302d3ca9e89ae3",
      "parents": [
        "c269bc00fcb876ae3b85f178f1e34601185c8ccc",
        "107e0008dfb8bd6366bc8827f5bbbc0c1f795d2d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 14 12:31:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 14 12:31:14 2008 -0700"
      },
      "message": "Merge branch \u0027for-2.6.28\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.28\u0027 of git://linux-nfs.org/~bfields/linux: (59 commits)\n  svcrdma: Fix IRD/ORD polarity\n  svcrdma: Update svc_rdma_send_error to use DMA LKEY\n  svcrdma: Modify the RPC reply path to use FRMR when available\n  svcrdma: Modify the RPC recv path to use FRMR when available\n  svcrdma: Add support to svc_rdma_send to handle chained WR\n  svcrdma: Modify post recv path to use local dma key\n  svcrdma: Add a service to register a Fast Reg MR with the device\n  svcrdma: Query device for Fast Reg support during connection setup\n  svcrdma: Add FRMR get/put services\n  NLM: Remove unused argument from svc_addsock() function\n  NLM: Remove \"proto\" argument from lockd_up()\n  NLM: Always start both UDP and TCP listeners\n  lockd: Remove unused fields in the nlm_reboot structure\n  lockd: Add helper to sanity check incoming NOTIFY requests\n  lockd: change nlmclnt_grant() to take a \"struct sockaddr *\"\n  lockd: Adjust nlmsvc_lookup_host() to accomodate AF_INET6 addresses\n  lockd: Adjust nlmclnt_lookup_host() signature to accomodate non-AF_INET\n  lockd: Support non-AF_INET addresses in nlm_lookup_host()\n  NLM: Convert nlm_lookup_host() to use a single argument\n  svcrdma: Add Fast Reg MR Data Types\n  ...\n"
    },
    {
      "commit": "d4a8c93c8248534bdedb07f83c9aebd6f7d1d579",
      "tree": "f978a7b36d515c29657f271ca5b70281c911a82f",
      "parents": [
        "5e0b3dec0107540244ba343f983ef4f972db20de"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 09 17:20:34 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 11:58:22 2008 -0700"
      },
      "message": "ocfs2: Make cached block reads the common case.\n\nocfs2_read_blocks() currently requires the CACHED flag for cached I/O.\nHowever, that\u0027s the common case.  Let\u0027s flip it around and provide an\nIGNORE_CACHE flag for the special users.  This has the added benefit of\ncleaning up the code some (ignore_cache takes on its special meaning\nearlier in the loop).\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "5e0b3dec0107540244ba343f983ef4f972db20de",
      "tree": "b279c196c84abc01b61fcd70ec7aaa7f6e74e78b",
      "parents": [
        "07446dc72cffcc6e2672d0e54061dcd1858725ba"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 09 17:20:33 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 11:58:11 2008 -0700"
      },
      "message": "ocfs2: Kill the last naked wait_on_buffer() for cached reads.\n\nocfs2\u0027s cached buffer I/O goes through ocfs2_read_block(s)().  dir.c had\na naked wait_on_buffer() to wait for some readahead, but it should\nuse ocfs2_read_block() instead.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "07446dc72cffcc6e2672d0e54061dcd1858725ba",
      "tree": "43ac4e257d6300b2bf767a953a8e2138e6894c18",
      "parents": [
        "0fcaa56a2a020dd6f90c202b7084e6f4cbedb6c2"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 09 17:20:32 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 11:58:03 2008 -0700"
      },
      "message": "ocfs2: Move ocfs2_bread() into dir.c\n\ndir.c is the only place using ocfs2_bread(), so let\u0027s make it static to\nthat file.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "0fcaa56a2a020dd6f90c202b7084e6f4cbedb6c2",
      "tree": "057204016523ce0274d4a23ec02944075f084e8c",
      "parents": [
        "31d33073ca38603dea705dae45e094a64ca062d6"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 09 17:20:31 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 11:51:57 2008 -0700"
      },
      "message": "ocfs2: Simplify ocfs2_read_block()\n\nMore than 30 callers of ocfs2_read_block() pass exactly OCFS2_BH_CACHED.\nOnly six pass a different flag set.  Rather than have every caller care,\nlet\u0027s make ocfs2_read_block() take no flags and always do a cached read.\nThe remaining six places can call ocfs2_read_blocks() directly.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "31d33073ca38603dea705dae45e094a64ca062d6",
      "tree": "cf02beb489456ebc9e07bace80e96ad1150f2cbf",
      "parents": [
        "da1e90985a0e767e44397c9db0937e236033fa58"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 09 17:20:30 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 11:43:29 2008 -0700"
      },
      "message": "ocfs2: Require an inode for ocfs2_read_block(s)().\n\nNow that synchronous readers are using ocfs2_read_blocks_sync(), all\ncallers of ocfs2_read_blocks() are passing an inode.  Use it\nunconditionally.  Since it\u0027s there, we don\u0027t need to pass the\nocfs2_super either.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "da1e90985a0e767e44397c9db0937e236033fa58",
      "tree": "88d16dd378bf1b180d345a87de95316546af348a",
      "parents": [
        "936b8834366ec05f2a6993f73afd8348cac9718e"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 09 17:20:29 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 11:29:10 2008 -0700"
      },
      "message": "ocfs2: Separate out sync reads from ocfs2_read_blocks()\n\nThe ocfs2_read_blocks() function currently handles sync reads, cached,\nreads, and sometimes cached reads.  We\u0027re going to add some\nfunctionality to it, so first we should simplify it.  The uncached,\nsynchronous reads are much easer to handle as a separate function, so we\ninstroduce ocfs2_read_blocks_sync().\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "936b8834366ec05f2a6993f73afd8348cac9718e",
      "tree": "6f1d4b4e7586599bd11ff92a88a751aa78ce1a4b",
      "parents": [
        "2057e5c6780d86939a199031cdbafb81e6f88aac"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Thu Oct 09 23:06:14 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:45 2008 -0700"
      },
      "message": "ocfs2: Refactor xattr list and remove ocfs2_xattr_handler().\n\nAccording to Christoph Hellwig\u0027s advice, we really don\u0027t need\na -\u003elist to handle one xattr\u0027s list. Just a map from index to\nxattr prefix is enough. And I also refactor the old list method\nwith the reference from fs/xfs/linux-2.6/xfs_xattr.c and the\nxattr list method in btrfs.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "2057e5c6780d86939a199031cdbafb81e6f88aac",
      "tree": "f36039ea7d491f44215a880b03f37c1644bb4f41",
      "parents": [
        "99219aea68b5bff4f182858372b43181ad3bdb34"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Thu Oct 09 23:06:13 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: Calculate EA hash only by its suffix.\n\nAccording to Christoph Hellwig\u0027s advice, the hash value of EA\nis only calculated by its suffix.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "99219aea68b5bff4f182858372b43181ad3bdb34",
      "tree": "fbe3c16322ecc658e2c432dc7700bb1b19d00d54",
      "parents": [
        "40daa16a3441abe822bfcc748150116a77aee2ea"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 07 14:52:59 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: Move trusted and user attribute support into xattr.c\n\nPer Christoph Hellwig\u0027s suggestion - don\u0027t split these up. It\u0027s not like we\ngained much by having the two tiny files around.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "40daa16a3441abe822bfcc748150116a77aee2ea",
      "tree": "218d2966a03e9ed1afd3ae2945389f781fa229ce",
      "parents": [
        "a81cb88b64a479b78c6dd5666678d50171865db8"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 07 14:31:42 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: Uninline ocfs2_xattr_name_hash()\n\nThis is too big to be inlined.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "a81cb88b64a479b78c6dd5666678d50171865db8",
      "tree": "9fe0f67e30d7c70d43785827e57736ac01558c24",
      "parents": [
        "fd8351f83d413b41da956109cf429c15881886e2"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 07 14:25:16 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: Don\u0027t check for NULL before brelse()\n\nThis is pointless as brelse() already does the check.\n\nSigned-off-by: Mark Fasheh\n"
    },
    {
      "commit": "fd8351f83d413b41da956109cf429c15881886e2",
      "tree": "86557f75dd1ab2f3b1ed7d8cda479d09f2e2372d",
      "parents": [
        "696b55d768ea5ebf38a369da615f8c956750ab3f"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 07 12:50:46 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: use smaller counters in ocfs2_remove_xattr_clusters_from_cache\n\ni and b_len don\u0027t really need to be u64\u0027s. Xattr extent lengths should be\nlimited by the VFS, and then the size of our on-disk length field.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4cc8124584610fbe087ea2bed29ca52d2d0aa84a",
      "tree": "4d1da0e72b6161ba3a321ff4533ca2f1a8511adf",
      "parents": [
        "009d37502a7b9fc89741e66b4454afca4edc1c26"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 07 11:02:04 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: make la_debug_mutex static\n\nIt can also be moved into ocfs2_la_debug_read().\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "009d37502a7b9fc89741e66b4454afca4edc1c26",
      "tree": "5baff62529735bf9e1a0d72108fe3183876de18e",
      "parents": [
        "5a09561199e7f8d3feaaa01c39372050e140b775"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 06 16:16:08 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: Remove pointless !!\n\nocfs2_stack_supports_plocks() doesn\u0027t need this to properly return a zero or\none value.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "5a09561199e7f8d3feaaa01c39372050e140b775",
      "tree": "5affae979a564bae543e81d70abc58015ce44f80",
      "parents": [
        "06b240d8af21ddee4cfec3b0f02b81d9f168a98a"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Sep 19 22:17:41 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:43 2008 -0700"
      },
      "message": "ocfs2: Add empty bucket support in xattr.\n\nAs Mark mentioned, it may be time-consuming when we remove the\nempty xattr bucket, so this patch try to let empty bucket exist\nin xattr operation. The modification includes:\n1. Remove the functin of bucket and extent record deletion during\n   xattr delete.\n2. In xattr set:\n   1) Don\u0027t clean the last entry so that if the bucket is empty,\n      the hash value of the bucket is the hash value of the entry\n      which is deleted last.\n   2) During insert, if we meet with an empty bucket, just use the\n      1st entry.\n3. In binary search of xattr bucket, use the bucket hash value(which\n   stored in the 1st xattr entry) to find the right place.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "06b240d8af21ddee4cfec3b0f02b81d9f168a98a",
      "tree": "eb725cc51e755252b17efb235db4c9d9adeb7469",
      "parents": [
        "b0f73cfc36ed62decdd3f78e943bbfd00ee80e49"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Sep 19 22:16:34 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:43 2008 -0700"
      },
      "message": "ocfs2/xattr.c: Fix a bug when inserting xattr.\n\nDuring the process of xatt insertion, we use binary search\nto find the right place and \"low\" is set to it. But when\nthere is one xattr which has the same name hash as the inserted\none, low is the wrong value. So set it to the right position.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "b0f73cfc36ed62decdd3f78e943bbfd00ee80e49",
      "tree": "66449d0a071b68774edc85e17d09af737d4b83d6",
      "parents": [
        "2b4e30fbde425828b17f0e9c8f8e3fd3ecb2bc75"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Fri Sep 05 11:29:14 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:43 2008 -0700"
      },
      "message": "ocfs2: Add xattr mount option in ocfs2_show_options()\n\nPatch adds check for [no]user_xattr in ocfs2_show_options() that completes\nthe list of all mount options.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "2b4e30fbde425828b17f0e9c8f8e3fd3ecb2bc75",
      "tree": "5b340cde72e058b51642f0c7255818f62014bc91",
      "parents": [
        "12462f1d9f0b96389497438dc2730c6f7410be82"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Sep 03 20:03:41 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:43 2008 -0700"
      },
      "message": "ocfs2: Switch over to JBD2.\n\nocfs2 wants JBD2 for many reasons, not the least of which is that JBD is\nlimiting our maximum filesystem size.\n\nIt\u0027s a pretty trivial change.  Most functions are just renamed.  The\nonly functional change is moving to Jan\u0027s inode-based ordered data mode.\nIt\u0027s better, too.\n\nBecause JBD2 reads and writes JBD journals, this is compatible with any\nexisting filesystem.  It can even interact with JBD-based ocfs2 as long\nas the journal is formated for JBD.\n\nWe provide a compatibility option so that paranoid people can still use\nJBD for the time being.  This will go away shortly.\n\n[ Moved call of ocfs2_begin_ordered_truncate() from ocfs2_delete_inode() to\n  ocfs2_truncate_for_delete(). --Mark ]\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "12462f1d9f0b96389497438dc2730c6f7410be82",
      "tree": "d96dec791dd45cc8901dc6a894bdbe96ad7e7c67",
      "parents": [
        "1187c968852e3c668f3b9376083851f81f6eee22"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Sep 03 20:03:40 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:08 2008 -0700"
      },
      "message": "ocfs2: Add the \u0027inode64\u0027 mount option.\n\nNow that ocfs2 limits inode numbers to 32bits, add a mount option to\ndisable the limit.  This parallels XFS.  64bit systems can handle the\nlarger inode numbers.\n\n[ Added description of inode64 mount option in ocfs2.txt. --Mark ]\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1187c968852e3c668f3b9376083851f81f6eee22",
      "tree": "23a34ab89f724cc015f9e4f6e8bc6ed0fc20ce51",
      "parents": [
        "08413899db89d8d636c2a2d4ba5c356ab587d7ef"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Sep 03 20:03:39 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:07 2008 -0700"
      },
      "message": "ocfs2: Limit inode allocation to 32bits.\n\nocfs2 inode numbers are block numbers.  For any filesystem with less\nthan 2^32 blocks, this is not a problem.  However, when ocfs2 starts\nusing JDB2, it will be able to support filesystems with more than 2^32\nblocks.  This would result in inode numbers higher than 2^32.\n\nThe problem is that stat(2) can\u0027t handle those numbers on 32bit\nmachines.  The simple solution is to have ocfs2 allocate all inodes\nbelow that boundary.\n\nThe suballoc code is changed to honor an optional block limit.  Only the\ninode suballocator sets that limit - all other allocations stay unlimited.\n\nThe biggest trick is to grow the inode suballocator beneath that limit.\nThere\u0027s no point in allocating block groups that are above the limit,\nthen rejecting their elements later on.  We want to prevent the inode\nallocator from ever having block groups above the limit.  This involves\na little gyration with the local alloc code.  If the local alloc window\nis above the limit, it signals the caller to try the global bitmap but\ndoes not disable the local alloc file (which can be used for other\nallocations).\n\n[ Minor cleanup - removed an ML_NOTICE comment. --Mark ]\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "08413899db89d8d636c2a2d4ba5c356ab587d7ef",
      "tree": "82e65ffa9b0b30d0206259ae99e0fbc8db667936",
      "parents": [
        "28b8ca0b7f70b1b048d03dc0b9d87f58619e9791"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Aug 29 09:00:19 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:06 2008 -0700"
      },
      "message": "ocfs2: Resolve deadlock in ocfs2_xattr_free_block.\n\nIn ocfs2_xattr_free_block, we take a cluster lock on xb_alloc_inode while we\nhave a transaction open. This will deadlock the downconvert thread, so fix\nit.\n\nWe can clean up how xattr blocks are removed while here - this patch also\nmoves the mechanism of releasing xattr block (including both value, xattr\ntree and xattr block) into this function.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "28b8ca0b7f70b1b048d03dc0b9d87f58619e9791",
      "tree": "24e581b6bc0d8a71c528b3f15b081712714e291e",
      "parents": [
        "8d6220d6a74a33552cf877bcea25503d7f6a59e6"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Sep 01 08:45:18 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:06 2008 -0700"
      },
      "message": "ocfs2: bug-fix for journal extend in xattr.\n\nIn ocfs2_extend_trans, when we can\u0027t extend the current\ntransaction, it will commit current transaction and restart\na new one. So if the previous credits we have allocated aren\u0027t\nused(the block isn\u0027t dirtied before our extend), we will not\nhave enough credits for any future operation(it will cause jbd\ncomplain and bug out). So check this and re-extend it.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "8d6220d6a74a33552cf877bcea25503d7f6a59e6",
      "tree": "2c3f662c55ab4a0a22989c06edf0d027387bfbed",
      "parents": [
        "1625f8ac151743e452ec062c2989669c508ffa48"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Aug 22 12:46:09 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:05 2008 -0700"
      },
      "message": "ocfs2: Change ocfs2_get_*_extent_tree() to ocfs2_init_*_extent_tree()\n\nThe original get/put_extent_tree() functions held a reference on\net_root_bh.  However, every single caller already has a safe reference,\nmaking the get/put cycle irrelevant.\n\nWe change ocfs2_get_*_extent_tree() to ocfs2_init_*_extent_tree().  It\nno longer gets a reference on et_root_bh.  ocfs2_put_extent_tree() is\nremoved.  Callers now have a simpler init+use pattern.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1625f8ac151743e452ec062c2989669c508ffa48",
      "tree": "0da18fe83c3c0153c33ed1ad5903e4ae08e2fb6e",
      "parents": [
        "f99b9b7ccf6a691f653cec45f36bfdd1e94769c7"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Aug 21 17:11:10 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:05 2008 -0700"
      },
      "message": "ocfs2: Comment struct ocfs2_extent_tree_operations.\n\nstruct ocfs2_extent_tree_operations provides methods for the different\non-disk btrees in ocfs2.  Describing what those methods do is probably a\ngood idea.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "f99b9b7ccf6a691f653cec45f36bfdd1e94769c7",
      "tree": "1c6ff6ea1fa1bb86b70f1fd78dd725b559c729e4",
      "parents": [
        "1e61ee79e2a96f62c007486677319814ce621c3c"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 19:36:33 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:05 2008 -0700"
      },
      "message": "ocfs2: Make ocfs2_extent_tree the first-class representation of a tree.\n\nWe now have three different kinds of extent trees in ocfs2: inode data\n(dinode), extended attributes (xattr_tree), and extended attribute\nvalues (xattr_value).  There is a nice abstraction for them,\nocfs2_extent_tree, but it is hidden in alloc.c.  All the calling\nfunctions have to pick amongst a varied API and pass in type bits and\noften extraneous pointers.\n\nA better way is to make ocfs2_extent_tree a first-class object.\nEveryone converts their object to an ocfs2_extent_tree() via the\nocfs2_get_*_extent_tree() calls, then uses the ocfs2_extent_tree for all\ntree calls to alloc.c.\n\nThis simplifies a lot of callers, making for readability.  It also\nprovides an easy way to add additional extent tree types, as they only\nneed to be defined in alloc.c with a ocfs2_get_\u003cnew\u003e_extent_tree()\nfunction.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1e61ee79e2a96f62c007486677319814ce621c3c",
      "tree": "50e966441431ec036649dac3ebd17d1452937f26",
      "parents": [
        "1a09f556e5415a29cdddaf9a6ebf474194161cf3"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 18:32:45 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:05 2008 -0700"
      },
      "message": "ocfs2: Add an insertion check to ocfs2_extent_tree_operations.\n\nA couple places check an extent_tree for a valid inode.  We move that\nout to add an eo_insert_check() operation.  It can be called from\nocfs2_insert_extent() and elsewhere.\n\nWe also have the wrapper calls ocfs2_et_insert_check() and\nocfs2_et_sanity_check() ignore NULL ops.  That way we don\u0027t have to\nprovide useless operations for xattr types.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1a09f556e5415a29cdddaf9a6ebf474194161cf3",
      "tree": "902dc5cc4719ffce151c610b3441baa3511aa50e",
      "parents": [
        "943cced39ee45ed2db25efd25eee8ba49cf2dfc4"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 17:44:24 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:05 2008 -0700"
      },
      "message": "ocfs2: Create specific get_extent_tree functions.\n\nA caller knows what kind of extent tree they have.  There\u0027s no reason\nthey have to call ocfs2_get_extent_tree() with a NULL when they could\njust as easily call a specific function to their type of extent tree.\n\nIntroduce ocfs2_dinode_get_extent_tree(),\nocfs2_xattr_tree_get_extent_tree(), and\nocfs2_xattr_value_get_extent_tree().  They only take the necessary\narguments, calling into the underlying __ocfs2_get_extent_tree() to do\nthe real work.\n\n__ocfs2_get_extent_tree() is the old ocfs2_get_extent_tree(), but\nwithout needing any switch-by-type logic.\n\nocfs2_get_extent_tree() is now a wrapper around the specific calls.  It\nexists because a couple alloc.c functions can take et_type.  This will\ngo later.\n\nAnother benefit is that ocfs2_xattr_value_get_extent_tree() can take a\nstruct ocfs2_xattr_value_root* instead of void*.  This gives us\ntypechecking where we didn\u0027t have it before.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "943cced39ee45ed2db25efd25eee8ba49cf2dfc4",
      "tree": "a06ce33db4a9b918c98e38a434e7060b32255e6d",
      "parents": [
        "1c25d93a4a27c90c3ae33f9e724f7b67783d68d1"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 17:31:10 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:04 2008 -0700"
      },
      "message": "ocfs2: Determine an extent tree\u0027s max_leaf_clusters in an et_op.\n\nProvide an optional extent_tree_operation to specify the\nmax_leaf_clusters of an ocfs2_extent_tree.  If not provided, the value\nis 0 (unlimited).\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1c25d93a4a27c90c3ae33f9e724f7b67783d68d1",
      "tree": "d62c9b19fae527770939748566ce3a31ce0bce53",
      "parents": [
        "0ce1010f1a4319e02574b856d50dfdc0ed855f40"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 17:09:42 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:04 2008 -0700"
      },
      "message": "ocfs2: Use struct ocfs2_extent_tree in ocfs2_num_free_extents().\n\nocfs2_num_free_extents() re-implements the logic of\nocfs2_get_extent_tree().  Now that ocfs2_get_extent_tree() does not\nallocate, let\u0027s use it in ocfs2_num_free_extents() to simplify the code.\n\nThe inode validation code in ocfs2_num_free_extents() is not needed.\nAll callers are passing in pre-validated inodes.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "0ce1010f1a4319e02574b856d50dfdc0ed855f40",
      "tree": "6d65e00caa9c4c5310fd4f51a07678d46803adfd",
      "parents": [
        "ea5efa151265a743f48e3d371992a0100d73a0eb"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 17:19:50 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:04 2008 -0700"
      },
      "message": "ocfs2: Provide the get_root_el() method to ocfs2_extent_tree_operations.\n\nThe root_el of an ocfs2_extent_tree needs to be calculated from\net-\u003eet_object.  Make it an operation on et-\u003eet_ops.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ea5efa151265a743f48e3d371992a0100d73a0eb",
      "tree": "5e3688b0882271210b524564f5b6b42e2813f32c",
      "parents": [
        "dc0ce61af418305afa7e0d05d86ab334e0daabf7"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 16:57:27 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:04 2008 -0700"
      },
      "message": "ocfs2: Make \u0027private\u0027 into \u0027object\u0027 on ocfs2_extent_tree.\n\nThe \u0027private\u0027 pointer was a way to store off xattr values, which don\u0027t\nlive at a set place in the bh.  But the concept of \"the object\ncontaining the extent tree\" is much more generic.  For an inode it\u0027s the\nstruct ocfs2_dinode, for an xattr value its the value.  Let\u0027s save off\nthe \u0027object\u0027 at all times.  If NULL is passed to\nocfs2_get_extent_tree(), \u0027object\u0027 is set to bh-\u003eb_data;\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "dc0ce61af418305afa7e0d05d86ab334e0daabf7",
      "tree": "7122bafdcb29a77cd65e34a600d3df76b9e165fe",
      "parents": [
        "ce1d9ea621291ed5e985d6677278c6bb20d96a40"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 16:48:35 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:04 2008 -0700"
      },
      "message": "ocfs2: Make ocfs2_extent_tree get/put instead of alloc.\n\nRather than allocating a struct ocfs2_extent_tree, just put it on the\nstack.  Fill it with ocfs2_get_extent_tree() and drop it with\nocfs2_put_extent_tree().  Now the callers don\u0027t have to ENOMEM, yet\nstill safely ref the root_bh.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ce1d9ea621291ed5e985d6677278c6bb20d96a40",
      "tree": "5bd40bdd327745ab0e91fb181752062306147135",
      "parents": [
        "35dc0aa3c5e7391319754e0c19cdfc0a28eb5b25"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 16:30:07 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:04 2008 -0700"
      },
      "message": "ocfs2: Prefix the ocfs2_extent_tree structure.\n\nThe members of the ocfs2_extent_tree structure gain a prefix of \u0027et_\u0027.\nAll users are updated.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "35dc0aa3c5e7391319754e0c19cdfc0a28eb5b25",
      "tree": "709fc00742bbcf9fc8941e0fe61845a22bb5a73b",
      "parents": [
        "ff1ec20ef65d51cc3466e86912cdeaac16f3aaa0"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 16:25:06 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:04 2008 -0700"
      },
      "message": "ocfs2: Prefix the extent tree operations structure.\n\nThe ocfs2_extent_tree_operations structure gains a field prefix on its\nmembers.  The -\u003eeo_sanity_check() operation gains a wrapper function for\ncompleteness.  All of the extent tree operation wrappers gain a\nconsistent name (ocfs2_et_*()).\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ff1ec20ef65d51cc3466e86912cdeaac16f3aaa0",
      "tree": "2c5859e0f8e502ede6110397062208afe0641ad6",
      "parents": [
        "8154da3d2114241cf3edb108b43e2172be86d483"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Aug 19 10:54:29 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:03 2008 -0700"
      },
      "message": "ocfs2: fix printk format warnings\n\nThis patch fixes the following build warnings:\n\nfs/ocfs2/xattr.c: In function \u0027ocfs2_half_xattr_bucket\u0027:\nfs/ocfs2/xattr.c:3282: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 7 has type \u0027long int\u0027\nfs/ocfs2/xattr.c:3282: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 8 has type \u0027long int\u0027\nfs/ocfs2/xattr.c:3282: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 7 has type \u0027long int\u0027\nfs/ocfs2/xattr.c:3282: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 8 has type \u0027long int\u0027\nfs/ocfs2/xattr.c:3282: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 7 has type \u0027long int\u0027\nfs/ocfs2/xattr.c:3282: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 8 has type \u0027long int\u0027\nfs/ocfs2/xattr.c: In function \u0027ocfs2_xattr_set_entry_in_bucket\u0027:\nfs/ocfs2/xattr.c:4092: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 6 has type \u0027size_t\u0027\nfs/ocfs2/xattr.c:4092: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 6 has type \u0027size_t\u0027\nfs/ocfs2/xattr.c:4092: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 6 has type \u0027size_t\u0027\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "8154da3d2114241cf3edb108b43e2172be86d483",
      "tree": "a6d1c1652469d9a34b50dbdab4a435376bf3f32c",
      "parents": [
        "a394425643e1e9c3a624d629fc8ba5633d8474c6"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Mon Aug 18 17:11:46 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:03 2008 -0700"
      },
      "message": "ocfs2: Add incompatible flag for extended attribute\n\nThis patch adds the s_incompat flag for extended attribute support. This\nhelps us ensure that older versions of Ocfs2 or ocfs2-tools will not be able\nto mount a volume with xattr support.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "a394425643e1e9c3a624d629fc8ba5633d8474c6",
      "tree": "bf7ae7087452f22530448070cbccee921ba985ef",
      "parents": [
        "012255961c9ecfe22b7a1df47ac26ab37818cb1e"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:54 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:03 2008 -0700"
      },
      "message": "ocfs2: Delete all xattr buckets during inode removal\n\nIn inode removal, we need to iterate all the buckets, remove any\nexternally-stored EA values and delete the xattr buckets.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "012255961c9ecfe22b7a1df47ac26ab37818cb1e",
      "tree": "914d2a1f58734f44389bdae6e47b555ec8f81c12",
      "parents": [
        "ca12b7c48942d21b2e7890b820db9d578bc291cd"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:53 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:03 2008 -0700"
      },
      "message": "ocfs2: Enable xattr set in index btree\n\nWhere the previous patches added the ability of list/get xattr in buckets\nfor ocfs2, this patch enables ocfs2 to store large numbers of EAs.\n\nThe original design doc is written by Mark Fasheh, and it can be found in\nhttp://oss.oracle.com/osswiki/OCFS2/DesignDocs/IndexedEATrees. I only had to\nmake small modifications to it.\n\nFirst, because the bucket size is 4K, a new field named xh_free_start is added\nin ocfs2_xattr_header to indicate the next valid name/value offset in a bucket.\nIt is used when we store new EA name/value. With this field, we can find the\nplace more quickly and what\u0027s more, we don\u0027t need to sort the name/value every\ntime to let the last entry indicate the next unused space. This makes the\ninsert operation more efficient for blocksizes smaller than 4k.\n\nBecause of the new xh_free_start, another field named as xh_name_value_len is\nalso added in ocfs2_xattr_header. It records the total length of all the\nname/values in the bucket. We need this so that we can check it and defragment\nthe bucket if there is not enough contiguous free space.\n\nAn xattr insertion looks like this:\n1. xattr_index_block_find: find the right bucket by the name_hash, say bucketA.\n2. check whether there is enough space in bucketA. If yes, insert it directly\n   and modify xh_free_start and xh_name_value_len accordingly. If not, check\n   xh_name_value_len to see whether we can store this by defragment the bucket.\n   If yes, defragment it and go on insertion.\n3. If defragement doesn\u0027t work, check whether there is new empty bucket in\n   the clusters within this extent record. If yes, init the new bucket and move\n   all the buckets after bucketA one by one to the next bucket. Move half of the\n   entries in bucketA to the next bucket and go on insertion.\n4. If there is no new bucket, grow the extent tree.\n\nAs for xattr deletion, we will delete an xattr bucket when all it\u0027s xattrs\nare removed and move all the buckets after it to the previous one. When all\nthe xattr buckets in an extend record are freed, free this extend records\nfrom ocfs2_xattr_tree.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ca12b7c48942d21b2e7890b820db9d578bc291cd",
      "tree": "e051e6ceb77a05db7dd1d749d7f3f1682c69196c",
      "parents": [
        "589dc2602f2a1b7fa5e59b90f548af189f128d77"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:52 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:03 2008 -0700"
      },
      "message": "ocfs2: Optionally limit extent size in ocfs2_insert_extent()\n\nIn xattr bucket, we want to limit the maximum size of a btree leaf,\notherwise we\u0027ll lose the benefits of hashing because we\u0027ll have to search\nlarge leaves.\n\nSo add a new field in ocfs2_extent_tree which indicates the maximum leaf cluster\nsize we want so that we can prevent ocfs2_insert_extent() from merging the leaf\nrecord even if it is contiguous with an adjacent record.\n\nOther btree types are not affected by this change.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "589dc2602f2a1b7fa5e59b90f548af189f128d77",
      "tree": "0a87e16146aa06c72de8db0aed1215c8be72b5fc",
      "parents": [
        "0c044f0b24b9128ba8c297149d88bd81f2e36af3"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:51 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:03 2008 -0700"
      },
      "message": "ocfs2: Add xattr lookup code xattr btrees\n\nAdd code to lookup a given extended attribute in the xattr btree. Lookup\nfollows this general scheme:\n\n1. Use ocfs2_xattr_get_rec to find the xattr extent record\n\n2. Find the xattr bucket within the extent which may contain this xattr\n\n3. Iterate the bucket to find the xattr. In ocfs2_xattr_block_get(), we need\n   to recalcuate the block offset and name offset for the right position of\n   name/value.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "0c044f0b24b9128ba8c297149d88bd81f2e36af3",
      "tree": "2a0d6a34fca5e5a8bdfde0d1068cb56d4252e864",
      "parents": [
        "ba492615f0d32d0210b02c14b24512b4372b13d6"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:50 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:03 2008 -0700"
      },
      "message": "ocfs2: Add xattr bucket iteration for large numbers of EAs\n\nOcfs2 breaks up xattr index tree leaves into 4k regions, called buckets.\nAttributes are stored within a given bucket, depending on hash value.\n\nAfter a discussion with Mark, we decided that the per-bucket index\n(xe_entry[]) would only exist in the 1st block of a bucket. Likewise,\nname/value pairs will not straddle more than one block. This allows the\nmajority of operations to work directly on the buffer heads in a leaf block.\n\nThis patch adds code to iterate the buckets in an EA. A new abstration of\nocfs2_xattr_bucket is added. It records the bhs in this bucket and\nocfs2_xattr_header. This keeps the code neat, improving readibility.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ba492615f0d32d0210b02c14b24512b4372b13d6",
      "tree": "65275171ba8543a497037c5a159701a06277af4b",
      "parents": [
        "cf1d6c763fbcb115263114302485ad17e7933d87"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:49 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:02 2008 -0700"
      },
      "message": "ocfs2: Add xattr index tree operations\n\nWhen necessary, an ocfs2_xattr_block will embed an ocfs2_extent_list to\nstore large numbers of EAs. This patch adds a new type in\nocfs2_extent_tree_type and adds the implementation so that we can re-use the\nb-tree code to handle the storage of many EAs.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "cf1d6c763fbcb115263114302485ad17e7933d87",
      "tree": "85717dc9d20b7ac1e31b683653933f2d30099f44",
      "parents": [
        "fdd77704a8b4666a32120fcd1e4a9fedaf3263d8"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Mon Aug 18 17:11:00 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:02 2008 -0700"
      },
      "message": "ocfs2: Add extended attribute support\n\nThis patch implements storing extended attributes both in inode or a single\nexternal block. We only store EA\u0027s in-inode when blocksize \u003e 512 or that\ninode block has free space for it. When an EA\u0027s value is larger than 80\nbytes, we will store the value via b-tree outside inode or block.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    }
  ],
  "next": "fdd77704a8b4666a32120fcd1e4a9fedaf3263d8"
}
