)]}'
{
  "log": [
    {
      "commit": "b9d36d5d000294a128f7f174fe67623a10e29d61",
      "tree": "49550dd227d6d8fac3121ddea0741f302c140780",
      "parents": [
        "2f79e48ae2651fff08d08dab3acf1294467c1155"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Jan 30 13:31:46 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:46 2008 +0100"
      },
      "message": "x86: compat_binfmt_elf Kconfig\n\nThis adds Kconfig and Makefile bits to build fs/compat_binfmt_elf.c,\njust added.  Each arch that wants to use this file needs to add a\n\"select COMPAT_BINFMT_ELF\" line in its Kconfig bits that enable COMPAT.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "2f79e48ae2651fff08d08dab3acf1294467c1155",
      "tree": "c93e588f44314e5c939e4fa34d8d88a4f4295236",
      "parents": [
        "bae3f7c39dee5951bcbedeaedb6744f882a00173"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Jan 30 13:31:46 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:46 2008 +0100"
      },
      "message": "x86: compat_binfmt_elf\n\nThis adds fs/compat_binfmt_elf.c, a wrapper around fs/binfmt_elf.c for\n32-bit ELF support on 64-bit kernels.  It can replace all the hand-rolled\nversions of this that each 32/64 arch has, which are all about the same.\n\nTo use this, an arch\u0027s asm/elf.h has to define at least a few compat_*\nmacros that parallel the various macros that fs/binfmt_elf.c uses for\nnative support.\n\nThere is no attempt to deal with compat macros for the core dump format\nsupport.  To use this file, the arch has to define compat_gregset_t for\nlinux/elfcore-compat.h and #define CORE_DUMP_USE_REGSET.  The 32-bit\ncompatible formats should come automatically from task_user_regset_view\ncalled on a 32-bit task.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4206d3aa1978e44f58bfa4e1c9d8d35cbf19c187",
      "tree": "53de158bec7e6890ce9a5772f3d04f23e9a29803",
      "parents": [
        "3aba481fc94d83ff630d4b7cd2f7447010c4c6df"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Jan 30 13:31:45 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:45 2008 +0100"
      },
      "message": "elf core dump: notes user_regset\n\nThis modifies the ELF core dump code under #ifdef CORE_DUMP_USE_REGSET.\nIt changes nothing when this macro is not defined.  When it\u0027s #define\u0027d\nby some arch header (e.g. asm/elf.h), the arch must support the\nuser_regset (linux/regset.h) interface for reading thread state.\n\nThis provides an alternate version of note segment writing that is based\npurely on the user_regset interfaces.  When CORE_DUMP_USE_REGSET is set,\nthe arch need not define macros such as ELF_CORE_COPY_REGS and ELF_ARCH.\nAll that information is taken from the user_regset data structures.\nThe core dumps come out exactly the same if arch\u0027s definitions for its\nuser_regset details are correct.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "3aba481fc94d83ff630d4b7cd2f7447010c4c6df",
      "tree": "f953d24b736fa9404ad1e8e6138c056f0717a297",
      "parents": [
        "bdf88217b70dbb18c4ee27a6c497286e040a6705"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Jan 30 13:31:44 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:44 2008 +0100"
      },
      "message": "elf core dump: notes reorg\n\nThis pulls out the code for writing the notes segment of an ELF core dump\ninto separate functions.  This cleanly isolates into one cluster of\nfunctions everything that deals with the note formats and the hooks into\narch code to fill them.  The top-level elf_core_dump function itself now\ndeals purely with the generic ELF format and the memory segments.\n\nThis only moves code around into functions that can be inlined away.\nIt should not change any behavior at all.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "95c354fe9f7d6decc08a92aa26eb233ecc2155bf",
      "tree": "ec9267032ea875e84216cfb20acb2cfc7c62149f",
      "parents": [
        "a95d67f87e1a5f1b4429be3ba3bf7b4051657908"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Jan 30 13:31:20 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:20 2008 +0100"
      },
      "message": "spinlock: lockbreak cleanup\n\nThe break_lock data structure and code for spinlocks is quite nasty.\nNot only does it double the size of a spinlock but it changes locking to\na potentially less optimal trylock.\n\nPut all of that under CONFIG_GENERIC_LOCKBREAK, and introduce a\n__raw_spin_is_contended that uses the lock data itself to determine whether\nthere are waiters on the lock, to be used if CONFIG_GENERIC_LOCKBREAK is\nnot set.\n\nRename need_lockbreak to spin_needbreak, make it use spin_is_contended to\ndecouple it from the spinlock implementation, and make it typesafe (rwlocks\ndo not have any need_lockbreak sites -- why do they even get bloated up\nwith that break_lock then?).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "56c4da454de1264e381256f658f61b9ef690dd21",
      "tree": "51c57b07cda376f93db3032f24e9a28fba834573",
      "parents": [
        "6b7d190b14d478c759be22dcb7ee4695a711b562"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Jan 30 13:31:17 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:17 2008 +0100"
      },
      "message": "core: remove last users of empty FASTCALL macro\n\nFASTCALL is always empty after the x86 removal.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "bb1ad8205be4cb95e3286d7442596da6fd70409f",
      "tree": "b4804d567e4a01186a88d1c22c871197836f0a55",
      "parents": [
        "cc503c1b43e002e3f1fed70f46d947e2bf349bb6"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Jan 30 13:31:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:07 2008 +0100"
      },
      "message": "x86: PIE executable randomization, checkpatch fixes\n\n#39: FILE: arch/ia64/ia32/binfmt_elf32.c:229:\n+elf32_map (struct file *filep, unsigned long addr, struct elf_phdr *eppnt, int prot, int type, unsigned long unused)\n\nWARNING: no space between function name and open parenthesis \u0027(\u0027\n#39: FILE: arch/ia64/ia32/binfmt_elf32.c:229:\n+elf32_map (struct file *filep, unsigned long addr, struct elf_phdr *eppnt, int prot, int type, unsigned long unused)\n\nWARNING: line over 80 characters\n#67: FILE: arch/x86/kernel/sys_x86_64.c:80:\n+\t\t\tnew_begin \u003d randomize_range(*begin, *begin + 0x02000000, 0);\n\nERROR: use tabs not spaces\n#110: FILE: arch/x86/kernel/sys_x86_64.c:185:\n+ ^I        mm-\u003ecached_hole_size \u003d 0;$\n\nERROR: use tabs not spaces\n#111: FILE: arch/x86/kernel/sys_x86_64.c:186:\n+ ^I^Imm-\u003efree_area_cache \u003d mm-\u003emmap_base;$\n\nERROR: use tabs not spaces\n#112: FILE: arch/x86/kernel/sys_x86_64.c:187:\n+ ^I}$\n\nERROR: use tabs not spaces\n#141: FILE: arch/x86/kernel/sys_x86_64.c:216:\n+ ^I^I/* remember the largest hole we saw so far */$\n\nERROR: use tabs not spaces\n#142: FILE: arch/x86/kernel/sys_x86_64.c:217:\n+ ^I^Iif (addr + mm-\u003ecached_hole_size \u003c vma-\u003evm_start)$\n\nERROR: use tabs not spaces\n#143: FILE: arch/x86/kernel/sys_x86_64.c:218:\n+ ^I^I        mm-\u003ecached_hole_size \u003d vma-\u003evm_start - addr;$\n\nERROR: use tabs not spaces\n#157: FILE: arch/x86/kernel/sys_x86_64.c:232:\n+  ^Imm-\u003efree_area_cache \u003d TASK_UNMAPPED_BASE;$\n\nERROR: need a space before the open parenthesis \u0027(\u0027\n#291: FILE: arch/x86/mm/mmap_64.c:101:\n+\t} else if(mmap_is_legacy()) {\n\nWARNING: braces {} are not necessary for single statement blocks\n#302: FILE: arch/x86/mm/mmap_64.c:112:\n+\tif (current-\u003eflags \u0026 PF_RANDOMIZE) {\n+\t\tmm-\u003emmap_base +\u003d ((long)rnd) \u003c\u003c PAGE_SHIFT;\n+\t}\n\nWARNING: line over 80 characters\n#314: FILE: fs/binfmt_elf.c:48:\n+static unsigned long elf_map (struct file *, unsigned long, struct elf_phdr *, int, int, unsigned long);\n\nWARNING: no space between function name and open parenthesis \u0027(\u0027\n#314: FILE: fs/binfmt_elf.c:48:\n+static unsigned long elf_map (struct file *, unsigned long, struct elf_phdr *, int, int, unsigned long);\n\nWARNING: line over 80 characters\n#429: FILE: fs/binfmt_elf.c:438:\n+\t\t\t\t\t   eppnt, elf_prot, elf_type, total_size);\n\nERROR: need space after that \u0027,\u0027 (ctx:VxV)\n#480: FILE: fs/binfmt_elf.c:939:\n+\t\t\t\telf_prot, elf_flags,0);\n \t\t\t\t                   ^\n\ntotal: 9 errors, 7 warnings, 461 lines checked\nYour patch has style problems, please review.  If any of these errors\nare false positives report them to the maintainer, see\nCHECKPATCH in MAINTAINERS.\n\nPlease run checkpatch prior to sending patches\n\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "cc503c1b43e002e3f1fed70f46d947e2bf349bb6",
      "tree": "df0d77b7bccf0148c7b7cdd0363354499b259f99",
      "parents": [
        "82f74e7159749cc511ebf5954a7b9ea6ad634949"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jan 30 13:31:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:07 2008 +0100"
      },
      "message": "x86: PIE executable randomization\n\nmain executable of (specially compiled/linked -pie/-fpie) ET_DYN binaries\nonto a random address (in cases in which mmap() is allowed to perform a\nrandomization).\n\nThe code has been extraced from Ingo\u0027s exec-shield patch\nhttp://people.redhat.com/mingo/exec-shield/\n\n[akpm@linux-foundation.org: fix used-uninitialsied warning]\n[kamezawa.hiroyu@jp.fujitsu.com: fixed ia32 ELF on x86_64 handling]\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c1d171a002942ea2d93b4fbd0c9583c56fce0772",
      "tree": "49249c927dc1644e7c92150808269cb474bdd411",
      "parents": [
        "7b83dae7aa31db4f6d6e78c3c6d490a7ac58699c"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jan 30 13:30:40 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:40 2008 +0100"
      },
      "message": "x86: randomize brk\n\nRandomize the location of the heap (brk) for i386 and x86_64.  The range is\nrandomized in the range starting at current brk location up to 0x02000000\noffset for both architectures.  This, together with\npie-executable-randomization.patch and\npie-executable-randomization-fix.patch, should make the address space\nrandomization on i386 and x86_64 complete.\n\nArjan says:\n\nThis is known to break older versions of some emacs variants, whose dumper\ncode assumed that the last variable declared in the program is equal to the\nstart of the dynamically allocated memory region.\n\n(The dumper is the code where emacs effectively dumps core at the end of it\u0027s\ncompilation stage; this coredump is then loaded as the main program during\nnormal use)\n\niirc this was 5 years or so; we found this way back when I was at RH and we\nfirst did the security stuff there (including this brk randomization).  It\nwasn\u0027t all variants of emacs, and it got fixed as a result (I vaguely remember\nthat emacs already had code to deal with it for other archs/oses, just\nifdeffed wrongly).\n\nIt\u0027s a rare and wrong assumption as a general thing, just on x86 it mostly\nhappened to be true (but to be honest, it\u0027ll break too if gcc does\nsomething fancy or if the linker does a non-standard order).  Still its\nsomething we should at least document.\n\nNote 2: afaik it only broke the emacs *build*.  I\u0027m not 100% sure about that\n(it IS 5 years ago) though.\n\n[ akpm@linux-foundation.org: deuglification ]\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "3fbd67ad61f6d5a09ea717b56c50bc5c3d8042a8",
      "tree": "ffac0a032211517e9d0bc9ff21a09f8c21fdf1c3",
      "parents": [
        "57bfa89171e50cddf51a4f62c90e47c6259857b4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jan 26 01:06:40 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:12 2008 -0500"
      },
      "message": "NFSv4: Iterate through all nfs_clients when the server recalls a delegation\n\nThe same delegation may have been handed out to more than one nfs_client.\nEnsure that if a recall occurs, we return all instances.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "57bfa89171e50cddf51a4f62c90e47c6259857b4",
      "tree": "2c3f6d45a61b4f888544d492d78fedd797001bc8",
      "parents": [
        "6f23e3872cff238589f9bf39c71db2ea880c9a26"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 25 16:38:18 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:12 2008 -0500"
      },
      "message": "NFSv4: Deal more correctly with duplicate delegations\n\nIf a (broken?) server hands out two different delegations for the same\nfile, then we should return one of them.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6f23e3872cff238589f9bf39c71db2ea880c9a26",
      "tree": "7b118601dcd65ae2bee7eddbeae6bdd6d64f4423",
      "parents": [
        "e6f810759505bc86c009854b82cc495ffd8eb020"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 25 16:38:17 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:12 2008 -0500"
      },
      "message": "NFS: Fix a potential race between umount and nfs_access_cache_shrinker()\n\nThanks to Yawei Niu for spotting the race.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e6f810759505bc86c009854b82cc495ffd8eb020",
      "tree": "1590631fe3b222d49015dd53b421a5547e13e4dc",
      "parents": [
        "99fadcd76465842c014c88b8c9c19b457e9debc0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 24 18:14:34 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:12 2008 -0500"
      },
      "message": "NFS: Add an asynchronous delegreturn operation for use in nfs_clear_inode\n\nOtherwise, there is a potential deadlock if the last dput() from an NFSv4\nclose() or other asynchronous operation leads to nfs_clear_inode calling\nthe synchronous delegreturn.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "99fadcd76465842c014c88b8c9c19b457e9debc0",
      "tree": "34b61c6444beacc58bc643285441a553af420dc4",
      "parents": [
        "3a10c30acc4821ca000b52ed0edafd0d3bf26a52"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jan 23 08:59:08 2008 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:11 2008 -0500"
      },
      "message": "nfs: convert NFS_*(inode) helpers to static inline\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3a10c30acc4821ca000b52ed0edafd0d3bf26a52",
      "tree": "535fe870e12f9a032112b16d4e31fe1d813ea2c3",
      "parents": [
        "fc6014771bde8a215a9a4ea24b45f76afeb3c922"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jan 23 08:58:59 2008 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:11 2008 -0500"
      },
      "message": "nfs: obliterate NFS_FLAGS macro\n\nuse NFS_I(inode)-\u003eflags instead\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc6014771bde8a215a9a4ea24b45f76afeb3c922",
      "tree": "60d34b3f1fa44c42a7fd18867531dc915007dfa0",
      "parents": [
        "3d1c550874bcaf0d9b7fb66f601caed109074f4b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jan 16 16:38:10 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:11 2008 -0500"
      },
      "message": "NFS: Address memory leaks in the NFS client mount option parser\n\nDavid Howells noticed that repeating the same mount option twice during an\nNFS mount request can result in orphaned memory in certain cases.\n\nOnly the client_address and mount_server.hostname strings are initialized\nin the mount parsing loop, so those appear to be the only two pointers that\nmight be written over by repeating a mount option.  The strings in the\nnfs_server section of the nfs_parsed_mount_data structure are set only once\nafter the options are parsed, thus these are not susceptible to being\noverwritten.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3d1c550874bcaf0d9b7fb66f601caed109074f4b",
      "tree": "d3517a859cfd433ebe08f6d204d84d03581070ee",
      "parents": [
        "f3c391e89c92651105364c6645244118ec9b3952"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 15 16:43:19 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:10 2008 -0500"
      },
      "message": "nfs4: allow nfsv4 acls on non-regular-files\n\nThe rfc doesn\u0027t give any reason it shouldn\u0027t be possible to set an\nattribute on a non-regular file.  And if the server supports it, then it\nshouldn\u0027t be up to us to prevent it.\n\nThanks to Erez for the report and Trond for further analysis.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nTested-by: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f3c391e89c92651105364c6645244118ec9b3952",
      "tree": "248ea7f3f5244b4f00acc8b1f36c57324b61ff31",
      "parents": [
        "34f5b4662bf4b54f22b32ce76ce70eccd7ebc68a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 15 14:17:12 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:10 2008 -0500"
      },
      "message": "NFS: Optimise away the sigmask code in aio/dio reads and writes\n\nThere are no interruptible waits for asynchronous RPC tasks, so we don\u0027t\nneed to wrap calls to rpc_run_task() with an\nrpc_clnt_sigmask/rpc_clnt_unsigmask pair.\n\nInstead we can wrap the wait_for_completion_interruptible() in\nnfs_direct_wait(). This means that we completely optimise away sigmask\nsetting for the case of non-blocking aio/dio.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "65fdf7d264213a9a8de44f9a20e002a26c267a76",
      "tree": "c7279d26e01d0d229a8ca7dd4a5667cc8be7f9b3",
      "parents": [
        "883bb163f84e0a54b29846c61621f52db3f27393"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 11 17:41:29 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:08 2008 -0500"
      },
      "message": "NLM: Fix a bogus \u0027return\u0027 in nlmclnt_rpc_release\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "883bb163f84e0a54b29846c61621f52db3f27393",
      "tree": "ea11b2d1ba85cbb4422ae7ff615d6d186d709af1",
      "parents": [
        "1093a60ef34bb12010fe7ea4b780bee1c57cfbbe"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Jan 15 16:04:20 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:07 2008 -0500"
      },
      "message": "NLM: Introduce an arguments structure for nlmclnt_init()\n\nClean up: pass 5 arguments to nlmclnt_init() in a structure similar to the\nnew nfs_client_initdata structure.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\n"
    },
    {
      "commit": "1093a60ef34bb12010fe7ea4b780bee1c57cfbbe",
      "tree": "bc558d58ae38aab7e615883eceef1ec253c2d646",
      "parents": [
        "9289e7f91add1c09c3ec8571a2080f7507730b8d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Jan 11 17:09:59 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:07 2008 -0500"
      },
      "message": "NLM/NFS: Use cached nlm_host when calling nlmclnt_proc()\n\nNow that each NFS mount point caches its own nlm_host structure, it can be\npassed to nlmclnt_proc() for each lock request.  By pinning an nlm_host for\neach mount point, we trade the overhead of looking up or creating a fresh\nnlm_host struct during every NLM procedure call for a little extra memory.\n\nWe also restrict the nlmclnt_proc symbol to limit the use of this call to\nin-tree modules.\n\nNote that nlm_lookup_host() (just removed from the client\u0027s per-request\nNLM processing) could also trigger an nlm_host garbage collection.  Now\nclient-side nlm_host garbage collection occurs only during NFS mount\nprocessing.  Since the NFS client now holds a reference on these nlm_host\nstructures, they wouldn\u0027t have been affected by garbage collection\nanyway.\n\nGiven that nlm_lookup_host() reorders the global nlm_host chain after\nevery successful lookup, and that a garbage collection could be triggered\nduring the call, we\u0027ve removed a significant amount of per-NLM-request\nCPU processing overhead.\n\nSidebar: there are only a few remaining references to the internals of\nNFS inodes in the client-side NLM code.  The only references I found are\nrelated to extracting or comparing the inode\u0027s file handle via NFS_FH().\nOne is in nlmclnt_grant(); the other is in nlmclnt_setlockargs().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9289e7f91add1c09c3ec8571a2080f7507730b8d",
      "tree": "f8fd567e331b02efda2e09986fdfb37c1461dfc8",
      "parents": [
        "52c4044d00fe703eb3fb18e0d8dfd1c196eb28be"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Jan 11 17:09:52 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:07 2008 -0500"
      },
      "message": "NFS: Invoke nlmclnt_init during NFS mount processing\n\nCache an appropriate nlm_host structure in the NFS client\u0027s mount point\nmetadata for later use.\n\nNote that there is no need to set NFS_MOUNT_NONLM in the error case -- if\nnfs_start_lockd() returns a non-zero value, its callers ensure that the\nmount request fails outright.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "52c4044d00fe703eb3fb18e0d8dfd1c196eb28be",
      "tree": "e8ff891bc68ee10ebe3d067b13ba31e2deb645bb",
      "parents": [
        "86d61d8638ddf9cdf87df26c7fa69b2804425fbe"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Jan 11 17:09:44 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:06 2008 -0500"
      },
      "message": "NLM: Introduce external nlm_host set-up and tear-down functions\n\nWe would like to remove the per-lock-operation nlm_lookup_host() call from\nnlmclnt_proc().\n\nThe new architecture pins an nlm_host structure to each NFS client\nsuperblock that has the \"lock\" mount option set.  The NFS client passes\nin the pinned nlm_host structure during each call to nlmclnt_proc().  NFS\nclient unmount processing \"puts\" the nlm_host so it can be garbage-\ncollected later.\n\nThis patch introduces externally callable NLM functions that handle\nmount-time nlm_host set up and tear-down.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cab6fc1b77c3ec4471d7d54ff6db9ad2dd59c2f5",
      "tree": "7c863b953cf4862579ba057b3d5b4a68e8038e4d",
      "parents": [
        "3d509e5454a0a5ac88bf3191ab65d85952c1de31"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 20 14:55:11 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:02 2008 -0500"
      },
      "message": "lockd: Eliminate harmless mixed sign comparison in nlmdbg_cookie2a()\n\nThe cookie-\u003elen field is unsigned, so the loop index variable in\nnlmdbg_cookie2a() should also be unsigned.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3d509e5454a0a5ac88bf3191ab65d85952c1de31",
      "tree": "df690f78b818c9f8f9b062e3f9d10aa5dc4387d9",
      "parents": [
        "bf4285e75c3272ad9bfdeb886d247962bb2985f8"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 20 14:55:04 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:02 2008 -0500"
      },
      "message": "NFS: nfs_write_end clean up\n\nClean up: commit 4899f9c8 added nfs_write_end(), which introduces a\nconditional expression that returns an unsigned integer in one arm and\na signed integer in the other.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bf4285e75c3272ad9bfdeb886d247962bb2985f8",
      "tree": "a366fd1d3fb2591f1fce114f17aade410f1db3dc",
      "parents": [
        "d24aae41b4d4141d4f3cffdbf4c31d85637ba691"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 20 14:54:57 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:01 2008 -0500"
      },
      "message": "NFS: Fix minor mixed sign comparison in NFS client\u0027s write logic\n\nClean up: PAGE_CACHE_SIZE is unsigned, and nfs_pageio_init() takes a size_t.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d24aae41b4d4141d4f3cffdbf4c31d85637ba691",
      "tree": "837cf221908b34da1a6d5733c68578721f5b0610",
      "parents": [
        "a661b77fc12a172edea4b709e37f8cd58a6bd500"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 20 14:54:49 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:01 2008 -0500"
      },
      "message": "NFS: Use size_t for storing name lengths\n\nClean up: always use the same type when handling buffer lengths.  As a\nbonus, this prevents a mixed sign comparison in idmap_lookup_name.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a661b77fc12a172edea4b709e37f8cd58a6bd500",
      "tree": "ded0b18213329ec39682ad63530e849fafed22c0",
      "parents": [
        "369af0f1166f7a637751110395496cee156b4297"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 20 14:54:42 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:01 2008 -0500"
      },
      "message": "NFS: Fix use of copy_to_user() in idmap_pipe_upcall\n\nThe idmap_pipe_upcall() function expects the copy_to_user() function to\nreturn a negative error value if the call fails, but copy_to_user()\nreturns an unsigned long number of bytes that couldn\u0027t be copied.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "369af0f1166f7a637751110395496cee156b4297",
      "tree": "b42d4285a3e920a77c10ae0de954640efaeeebad",
      "parents": [
        "7df089952fca41cb336733e1167c0a25e5a025d8"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 20 14:54:35 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:00 2008 -0500"
      },
      "message": "NFS: Clean up fs/nfs/idmap.c\n\nClean up white space damage and use standard kernel coding conventions for\nreturn statements.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "59dca3b28cb915745019d4f4c27d97b6b6ab12c6",
      "tree": "6e3bde647bba09070ece738af13ce4bf569ba95e",
      "parents": [
        "331702337f2b2e7cef40366ee207a25604df4671"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 03 16:29:06 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:00 2008 -0500"
      },
      "message": "NFS: Fix the \u0027proto\u003d\u0027 mount option\n\nCurrently, if you have a server mounted using networking protocol, you\ncannot specify a different value using the \u0027proto\u003d\u0027 option on another\nmountpoint.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "331702337f2b2e7cef40366ee207a25604df4671",
      "tree": "72b2a1942cc7e7d0b08a119f10fb2a299f550550",
      "parents": [
        "7a3e3e18e40848b6f01d44407ce86b91b8535fbd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 20 16:03:59 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:59 2008 -0500"
      },
      "message": "NFS: Support per-mountpoint timeout parameters.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7a3e3e18e40848b6f01d44407ce86b91b8535fbd",
      "tree": "3caa0944475ac1fcb66a939b84562867c1c60e5e",
      "parents": [
        "ba7392bb37cb12781890f45d7ddee1618e33a036"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 20 16:03:57 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:59 2008 -0500"
      },
      "message": "NFS: Ensure that we respect NFS_MAX_TCP_TIMEOUT\n\nIt isn\u0027t sufficient just to limit timeout-\u003eto_initval, we also need to\nlimit to_maxval.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "69dd716c5ffd89f5ba14ffb871d633ecea74d13a",
      "tree": "bbf720dc7f16f99adc09063f934033eb9e36b307",
      "parents": [
        "3c7c7e4812e40e50a9ce9d687432ab5515cb3f2f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Dec 14 14:56:07 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:58 2008 -0500"
      },
      "message": "NFSv4: Add socket proto argument to setclientid\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3c7c7e4812e40e50a9ce9d687432ab5515cb3f2f",
      "tree": "f6c5a8d7c2e18525ca50cd08b356b7cd1ec4b764",
      "parents": [
        "4c5680177012a2b5c0f3fdf58f4375dd84a1da67"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:59:35 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:57 2008 -0500"
      },
      "message": "NFS: Pull covers off IPv6 address parsing\n\nNow that the needed IPv6 infrastructure is in place, allow the NFS client\u0027s\nIP address parser to generate AF_INET6 addresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4c5680177012a2b5c0f3fdf58f4375dd84a1da67",
      "tree": "d3d9e599291b4f9b738d02c3913b13541b100487",
      "parents": [
        "9412b92772c1d80ea8284583b6aad0260e13515f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:59:28 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:57 2008 -0500"
      },
      "message": "NFS: Support non-IPv4 addresses in nfs_parsed_mount_data\n\nReplace the nfs_server and mount_server address fields in the\nnfs_parsed_mount_data structure with a \"struct sockaddr_storage\"\ninstead of a \"struct sockaddr_in\".\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9412b92772c1d80ea8284583b6aad0260e13515f",
      "tree": "9c2032bd41d9c1e9ade36dab4ec8e4e208d96a4e",
      "parents": [
        "338320345b40eb7c63592f40d25cbd58ccf99548"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:59:21 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:56 2008 -0500"
      },
      "message": "NFS: Refactor mount option address parsing into separate function\n\nRefactor the logic to parse incoming text-based IP addresses.  Use the\nin4_pton() function instead of the older in_aton(), following the lead\nof the in-kernel CIFS client.\n\nLater we\u0027ll add IPv6 address parsing using the matching in6_pton()\nfunction.  For now we can\u0027t allow IPv6 address parsing: we must expand\nthe size of the address storage fields in the nfs_parsed_mount_options\nstruct before we can parse and store IPv6 addresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "338320345b40eb7c63592f40d25cbd58ccf99548",
      "tree": "5e0b74a1231347a8fbcbd1d655983717a54f4db7",
      "parents": [
        "6677d09513e35ac2f38d3a8c8a26fbd7bbcef192"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:59:13 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:56 2008 -0500"
      },
      "message": "NFS: Remove the NIPQUAD from nfs_try_mount\n\nIn the name of address family compatibility, we can\u0027t have the NIP_FMT and\nNIPQUAD macros in nfs_try_mount().  Instead, we can make use of an unused\nmount option to display the mount server\u0027s hostname.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6677d09513e35ac2f38d3a8c8a26fbd7bbcef192",
      "tree": "c94931a3cb51c62638fe455afbac19f2edb81efa",
      "parents": [
        "dcecae0ff44dceea7adb6bef5c8eb660fe87a93c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:59:06 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:56 2008 -0500"
      },
      "message": "NFS: Adjust nfs_clone_mount structure to store \"struct sockaddr *\"\n\nChange the addr field in the nfs_clone_mount structure to store a \"struct\nsockaddr *\" to support non-IPv4 addresses in the NFS client.\n\nNote this is mostly a cosmetic change, and does not actually allow\nreferrals using IPv6 addresses.  The existing referral code assumes that\nthe server returns a string that represents an IPv4 address.  This code\nneeds to support hostnames and IPv6 addresses as well as IPv4 addresses,\nthus it will need to be reorganized completely (to handle DNS resolution\nin user space).\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dcecae0ff44dceea7adb6bef5c8eb660fe87a93c",
      "tree": "bd17c6708b58eb1f00be2057ed662a53eeb192cd",
      "parents": [
        "d7422c472bbaa419876b91e8823c6219c4a144cb"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:58:59 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:56 2008 -0500"
      },
      "message": "NFS: Change nfs4_set_client() to accept struct sockaddr *\n\nAdjust the arguments and callers of nfs4_set_client() to pass a \"struct\nsockaddr *\" instead of a \"struct sockaddr_in *\" to support non-IPv4\naddresses in the NFS client.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d7422c472bbaa419876b91e8823c6219c4a144cb",
      "tree": "930f354403bb67124c9b218e100cac707a9abc71",
      "parents": [
        "ff052645c939b2fd8d467105adf98fa621cc244b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:58:51 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:55 2008 -0500"
      },
      "message": "NFS: Change nfs_get_client() to take sockaddr *\n\nAdjust arguments and callers of nfs_get_client() to pass a\n\"struct sockaddr *\" instead of \"struct sockaddr_in *\" to support\nnon-IPv4 addresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ff052645c939b2fd8d467105adf98fa621cc244b",
      "tree": "8f7a3030c8d052952dc08ade77da67395143cd8b",
      "parents": [
        "c1d35866566bc2b270a82445271fcce1e391c4b9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:58:44 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:55 2008 -0500"
      },
      "message": "NFS: Change nfs_find_client() to take \"struct sockaddr *\"\n\nAdjust arguments and callers of nfs_find_client() to pass a\n\"struct sockaddr *\" instead of \"struct sockaddr_in *\" to support non-IPv4\naddresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\n\nTrond: Also fix up protocol version number argument in nfs_find_client() to\nuse the correct u32 type.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c1d35866566bc2b270a82445271fcce1e391c4b9",
      "tree": "598fd6c4f2ab29bb9ecd005c54bae53344392114",
      "parents": [
        "671beed7e28d9d27eef256862f6c1783a1da147e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:58:29 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:55 2008 -0500"
      },
      "message": "NFS: Change cb_recallargs to pass \"struct sockaddr *\" instead of sockaddr_in\n\nChange the addr field in the cb_recallargs struct to a \"struct sockaddr *\"\nto support non-IPv4 addresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "671beed7e28d9d27eef256862f6c1783a1da147e",
      "tree": "425a6db6d29d6823d0247a98094dfac2ff8eb821",
      "parents": [
        "6e4cffd7b2cf86022dcf9cceeb63f16ff852caa1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:58:22 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:54 2008 -0500"
      },
      "message": "NFS: Change cb_getattrargs to pass \"struct sockaddr *\" instead of sockaddr_in\n\nChange the addr field in the cb_getattrargs struct to a \"struct sockaddr *\"\nto support non-IPv4 addresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6e4cffd7b2cf86022dcf9cceeb63f16ff852caa1",
      "tree": "9f92711937e876f2e2e143c612fcbfb7c1b7d03a",
      "parents": [
        "3b0d3f93d01bb013c3dcf9555d2d111c91ac6a1e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:58:15 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:54 2008 -0500"
      },
      "message": "NFS: Expand server address storage in nfs_client struct\n\nPrepare for managing larger addresses in the NFS client by widening the\nnfs_client struct\u0027s cl_addr field.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\n\n(Modified to work with the new parameters for nfs_alloc_client)\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3b0d3f93d01bb013c3dcf9555d2d111c91ac6a1e",
      "tree": "b59e7051ffad487d6c621ffe9526e3d9dd037a1d",
      "parents": [
        "0d0f0c192df0282600c6d11c8cc252e7e7a80afc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 03 13:28:58 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:54 2008 -0500"
      },
      "message": "NFS: Add support for AF_INET6 addresses in __nfs_find_client()\n\nIntroduce AF_INET6-specific address checking to __nfs_find_client().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0d0f0c192df0282600c6d11c8cc252e7e7a80afc",
      "tree": "06b3e96d326d243c266f9e1ae3ed3798080ab904",
      "parents": [
        "04dcd6e3aceedff9fcc96ce3014688d5b642d627"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:58:00 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:54 2008 -0500"
      },
      "message": "NFS: Set default port for NFSv4, with support for AF_INET6\n\nCreate a helper function to set the default NFS port for NFSv4 mount\npoints.  The helper supports both AF_INET and AF_INET6 family addresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "04dcd6e3aceedff9fcc96ce3014688d5b642d627",
      "tree": "814b5d9eab6f7c6600efc4d6b1553f5d346afd26",
      "parents": [
        "cdcd7f9abc8c95524376835fbe8e11c5f7bf588e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:57:53 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:53 2008 -0500"
      },
      "message": "NFS: Make setting a port number agostic\n\nWe\u0027ll need to set the port number of an AF_INET or AF_INET6 address in\nseveral places in fs/nfs/super.c, so introduce a helper that can manage\nthis for us.  We put this helper to immediate use.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cdcd7f9abc8c95524376835fbe8e11c5f7bf588e",
      "tree": "574eb3c74a70e7b872d971b262ca1f13abce2002",
      "parents": [
        "fd00a8ff8e37815c9df49f5cf09786e441e1396b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:57:45 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:53 2008 -0500"
      },
      "message": "NFS: Verify IPv6 addresses properly\n\nAdd support to nfs_verify_server_address for recognizing AF_INET6\naddresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fd00a8ff8e37815c9df49f5cf09786e441e1396b",
      "tree": "b6e4caf750834591c0991f9aa55b26f1f02b530d",
      "parents": [
        "3f43c6667acb4e02962b2829a4d4ebb6b6e6f70e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:57:38 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:53 2008 -0500"
      },
      "message": "NFS: Add support for AF_INET6 addresses in nfs_compare_super()\n\nRefactor nfs_compare_super() and add AF_INET6 support.\n\nReplace the generic memcmp() to document explicitly what parts of the\naddresses must match in this check, and make the comparison independent\nof the lengths of both addresses.\n\nA side benefit is both tests are more computationally efficient than a\nmemcmp().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3f43c6667acb4e02962b2829a4d4ebb6b6e6f70e",
      "tree": "7aacec451f882c77d624d4486ac877bf48498674",
      "parents": [
        "1d98fe6717c5786394268da430a4354f6205da54"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:57:31 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:52 2008 -0500"
      },
      "message": "NFS: Address a couple of nits in nfs_follow_referral()\n\nClean up: fix an outdated block comment, and address a comparison\nbetween a signed and unsigned integer.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1d98fe6717c5786394268da430a4354f6205da54",
      "tree": "f2deab2462455562dae67c38ac19aa653c0ce544",
      "parents": [
        "5d8515caeb99940f5ed56d22a03aba20bbe7fdcb"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:57:23 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:52 2008 -0500"
      },
      "message": "NFS: Move dprintks from callback.c to callback_proc.c\n\nClean up: The client side peer address is available in callback_proc.c,\nso move a dprintk out of fs/nfs/callback.c and into\nfs/nfs/callback_proc.c.\n\nThis is more consistent with other debugging messages, and the proc\nroutines have more information about each request to display.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5d8515caeb99940f5ed56d22a03aba20bbe7fdcb",
      "tree": "b17ec1fc7bf34a73f65bf8c4b9f837beb54a64f9",
      "parents": [
        "d4d3c507493afd3c9d19fbe9762f44e790909dbe"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:57:16 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:52 2008 -0500"
      },
      "message": "NFS: eliminate NIPQUAD(clp-\u003ecl_addr.sin_addr)\n\nTo ensure the NFS client displays IPv6 addresses properly, replace\naddress family-specific NIPQUAD() invocations with a call to the RPC\nclient to get a formatted string representing the remote peer\u0027s\naddress.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d4d3c507493afd3c9d19fbe9762f44e790909dbe",
      "tree": "1ebbc2d84e3c058258701acf3e96aa5f6c309451",
      "parents": [
        "4392f2592297876967191238a341667a6d4fc456"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:57:09 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:51 2008 -0500"
      },
      "message": "NFS: Enable NFS client to generate CLIENTID strings with IPv6 addresses\n\nWe recently added methods to RPC transports that provide string versions of\nthe remote peer address information.  Convert the NFSv4 SETCLIENTID\nprocedure to use those methods instead of building the client ID out of\nwhole cloth.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cc38bac3a0093b3b7928efc6ff8e9faf9e75f41d",
      "tree": "971f0653619e9068408d2938af37147f7448a53d",
      "parents": [
        "0fb2b7e945f55a8317e5f58db7c068aab5b825a1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:56:54 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:51 2008 -0500"
      },
      "message": "NFS: Ensure NFSv4 SETCLIENTID send buffer is large enough\n\nEnsure that the RPC buffer size specified for NFSv4 SETCLIENTID procedures\nmatches what we are encoding into the buffer.  See the definition of\nstruct nfs4_setclientid {} and the encode_setclientid() function.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "40c553193df41920de659f0446e5d214c862e827",
      "tree": "4ee62a79fae0ebba26d119a1aae89bfd1a552c10",
      "parents": [
        "c81468a1a766921f11ae44e8a99816ac8dc7b015"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Dec 14 14:56:07 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:49 2008 -0500"
      },
      "message": "NFS: Remove the redundant nfs_client-\u003ecl_nfsversion\n\nWe can get the same information from the rpc_ops structure instead.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c81468a1a766921f11ae44e8a99816ac8dc7b015",
      "tree": "8a336f5246f92be261cfc85fa8eedeef0922614b",
      "parents": [
        "3a498026eef9603c14037e73a4a94cfdb2fa44eb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Dec 14 14:56:05 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:48 2008 -0500"
      },
      "message": "NFS: Clean up the nfs_find_client function.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3a498026eef9603c14037e73a4a94cfdb2fa44eb",
      "tree": "995ef695dd329242073915cc82be8c95987c036c",
      "parents": [
        "bfc69a456642a51c89dfd8e5184468857cb44f32"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Dec 14 14:56:04 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:48 2008 -0500"
      },
      "message": "NFS: Clean up the nfs_client initialisation\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bfc69a456642a51c89dfd8e5184468857cb44f32",
      "tree": "0853b31afcc2c8bd24a0e94e9280d1c1083501de",
      "parents": [
        "5cce428d953cc3843b100e078dbc3c01c6411b85"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 15 18:18:29 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:47 2008 -0500"
      },
      "message": "NFS: define a function to update nfsi-\u003ecache_change_attribute\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5cce428d953cc3843b100e078dbc3c01c6411b85",
      "tree": "29a61ee7ae3dff46c240cd7c45ed22aa69c44064",
      "parents": [
        "d45273ed6f4613e81701c3e896d9db200c288fff"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:33:01 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:46 2008 -0500"
      },
      "message": "NFS: Remove an unneeded check in decode_compound_header_arg()\n\nClean up:  The header tag length is unsigned, so checking that it is less\nthan zero is unnecessary.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d45273ed6f4613e81701c3e896d9db200c288fff",
      "tree": "5108c42f43de3098fe6192e192b872899c8060c1",
      "parents": [
        "6a0ed1de8ecee0cde21ea667891a03f6c84ecd66"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:32:45 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:46 2008 -0500"
      },
      "message": "NFS: Clean up address comparison in __nfs_find_client()\n\nThe address comparison in the __nfs_find_client() function is deceptive.\nIt uses a memcmp() to check a pair of u32 fields for equality.  Not only is\nthis inefficient, but usually memcmp() is used for comparing two *whole*\nsockaddr_in\u0027s (which includes comparisons of the address family and port\nnumber), so it\u0027s easy to mistake the comparison here for a whole sockaddr\ncomparison, which it isn\u0027t.\n\nSo for clarity and efficiency, we replace the memcmp() with a simple test\nfor equality between the two s_addr fields.  This should have no\nbehavioral effect.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6a0ed1de8ecee0cde21ea667891a03f6c84ecd66",
      "tree": "898a769a98459e55d1ccd957c09d8cc3f0311833",
      "parents": [
        "e887cbcf911b2d16742832b38411559273ce5d77"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:32:40 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:46 2008 -0500"
      },
      "message": "NFS: Clean up: copy hostname with kstrndup during mount processing\n\nClean up: mount option parsing uses kstrndup in several places, rather than\nusing kzalloc.  Replace the few remaining uses of kzalloc with kstrndup,\nfor consistency.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e887cbcf911b2d16742832b38411559273ce5d77",
      "tree": "9a5bf1afb685ada914e441cedcc7285cccecd86b",
      "parents": [
        "ad879cef8554e20f9b5ca356c878712eb671228c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:32:29 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:46 2008 -0500"
      },
      "message": "NFS: Remove support for the \u0027mountprog\u0027 option\n\nRemove the mount option that allows users to specify an alternate mountd\nprogram number.  The client hasn\u0027t support setting an alternate mountd\nprogram number for a very long time.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ad879cef8554e20f9b5ca356c878712eb671228c",
      "tree": "a4ced497cfe4223ec84a7bcf292931c9b240ffdb",
      "parents": [
        "0eb2574121ef0ffbebe5335c66c227d1b987fa25"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:32:24 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:45 2008 -0500"
      },
      "message": "NFS: Remove support for the \u0027nfsprog\u0027 option\n\nRemove the mount option that allows users to specify an alternate NFS\nprogram number.  The client hasn\u0027t support setting an alternate NFS\nprogram number for a very long time.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0eb2574121ef0ffbebe5335c66c227d1b987fa25",
      "tree": "ff60c92740377b50e27a879b4155394dcd32844d",
      "parents": [
        "28c494c5c8d425e15b7b82571e4df6d6bc34594d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:32:19 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:45 2008 -0500"
      },
      "message": "NFS: Ensure that NFS version 4 mounts use NFS_PORT if nfsport wasn\u0027t set\n\nText-based mount option parsing introduced a minor regression in the\nbehavior of NFS version 4 mounts.  NFS version 4 is not supposed to require\na running rpcbind service on the server in order for a mount to succeed.\n\nIn other words, if the mount options don\u0027t specify a port number, the port\nnumber is supposed to default to 2049.  For earlier versions of NFS, the\ndefault port number was zero in order to cause the RPC client to autobind\nto the server\u0027s NFS service.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "28c494c5c8d425e15b7b82571e4df6d6bc34594d",
      "tree": "cbd7902da8f467182b1d5faed90349329cb8d042",
      "parents": [
        "464ad6b1ade186b53a1dae863361853326b85694"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:32:13 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:45 2008 -0500"
      },
      "message": "NFS: Prevent nfs_getattr() hang during heavy write workloads\n\nPOSIX requires that ctime and mtime, as reported by the stat(2) call,\nreflect the activity of the most recent write(2).  To that end, nfs_getattr()\nflushes pending dirty writes to a file before doing a GETATTR to allow the\nNFS server to set the file\u0027s size, ctime, and mtime properly.\n\nHowever, nfs_getattr() can be starved when a constant stream of application\nwrites to a file prevents nfs_wb_nocommit() from completing.  This usually\nresults in hangs of programs doing a stat against an NFS file that is being\nwritten.  \"ls -l\" is a common victim of this behavior.\n\nTo prevent starvation, hold the file\u0027s i_mutex in nfs_getattr() to\nfreeze applications writes temporarily so the client can more quickly obtain\nclean values for a file\u0027s size, mtime, and ctime.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "464ad6b1ade186b53a1dae863361853326b85694",
      "tree": "a8c7df2464050a6dffb5e1750355815d2336e82c",
      "parents": [
        "bcecff77a9c743ff67fdddeabc30ef76a6877886"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:32:08 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:44 2008 -0500"
      },
      "message": "NFS: Change sign of some loop indices in nfs4xdr.c\n\nNit: Eliminate some mixed sign comparisons in loop indices.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bcecff77a9c743ff67fdddeabc30ef76a6877886",
      "tree": "0e7a30f308501f87fbdad6fe65321b8bc35d89f9",
      "parents": [
        "c957c526ef86e472359dadb4204dab8a503b687d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:32:03 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:44 2008 -0500"
      },
      "message": "NFS: Use unsigned intermediates for manipulating header lengths (NFSv4 XDR)\n\nClean up: prevent length underflow and mixed sign comparison when\nunmarshalling NFS version 4 getacl, readdir, and readlink replies.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c957c526ef86e472359dadb4204dab8a503b687d",
      "tree": "1db0a284fdf0d0182432a66c7532ce7cf03aa7e2",
      "parents": [
        "6232dbbcffc617a5a47596b2ec347b24dc2dd2fd"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:31:57 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:44 2008 -0500"
      },
      "message": "NFS: Use unsigned intermediates for manipulating header lengths (NFSv3 XDR)\n\nClean up: prevent length underflow and mixed sign comparisons when\nunmarshalling NFS version 3 read, readdir, and readlink replies.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6232dbbcffc617a5a47596b2ec347b24dc2dd2fd",
      "tree": "2ebfdeaef4df7751a47dfaa4b200efd61303198b",
      "parents": [
        "8a8c74bf94fcdec058062d331b3d9777910778ab"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:31:52 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:44 2008 -0500"
      },
      "message": "NFS: Use unsigned intermediates for manipulating header lengths (NFSv2 XDR)\n\nClean up: prevent length underflow and mixed sign comparisons when\nunmarshalling NFS version 2 read, readdir, and readlink replies.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8a8c74bf94fcdec058062d331b3d9777910778ab",
      "tree": "66dd009e6d11a1bfa15d294aa2458086f80c963f",
      "parents": [
        "9b45b74ce2234ca15131ec0725010c1da818df05"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:31:47 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:43 2008 -0500"
      },
      "message": "NFS: Ensure nfs_wcc_update_inode always converts file size to loff_t\n\nThe nfs_wcc_update_inode() function omits logic to convert the type of\nthe NFS on-the-wire value of a file\u0027s size (__u64) to the type of file\nsize value stored in struct inode (loff_t, which is signed).\n\nEverywhere else in the NFS client I checked already correctly converts the\nfile size type.\n\nThis effects only very large files.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0773769191d943358a8392fa86abd756d004c4b6",
      "tree": "2eeba848f7c1e6ba90696190f05db26c2f31655e",
      "parents": [
        "e8f5d77c8029ff8f5dcd1dfc133aac0bbbffd92b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 25 18:42:54 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:39 2008 -0500"
      },
      "message": "NFS/SUNRPC: Convert users of rpc_init_task+rpc_execute to rpc_run_task()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5138fde01161cd7976fdc51f6a17da73adaa6baf",
      "tree": "57dea902155fc4c31667ffbc412782edf2593b01",
      "parents": [
        "bdc7f021f3a1fade77adf3c2d7f65690566fddfe"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jul 14 15:40:01 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:32 2008 -0500"
      },
      "message": "NFS/SUNRPC: Convert all users of rpc_call_setup()\n\nReplace use of rpc_call_setup() with rpc_init_task(), and in cases where we\nneed to initialise task-\u003etk_action, with rpc_call_start().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bdc7f021f3a1fade77adf3c2d7f65690566fddfe",
      "tree": "c076431ac83fc75cde00dc3d3a218fabae449980",
      "parents": [
        "b3ef8b3bb93300e58a4c4806207de3de4eb76f48"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jul 14 15:40:00 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:32 2008 -0500"
      },
      "message": "NFS: Clean up the (commit|read|write)_setup() callback routines\n\nMove the common code for setting up the nfs_write_data and nfs_read_data\nstructures into fs/nfs/read.c, fs/nfs/write.c and fs/nfs/direct.c.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3ff7576ddac06c3d07089e241b40826d24bbf1ac",
      "tree": "7f5998434b7d0dd1f08ff7ee65c93fab4861a6d3",
      "parents": [
        "c970aa85e71bd581726c42df843f6f129db275ac"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jul 14 15:40:00 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:30 2008 -0500"
      },
      "message": "SUNRPC: Clean up the initialisation of priority queue scheduling info.\n\nWe want the default scheduling priority (priority \u003d\u003d 0) to remain\nRPC_PRIORITY_NORMAL.\n\nAlso ensure that the priority wait queue scheduling is per process id\ninstead of sometimes being per thread, and sometimes being per inode.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c970aa85e71bd581726c42df843f6f129db275ac",
      "tree": "e7fc90ee4064196d357045fd173764e0b8fc8ca8",
      "parents": [
        "84115e1cd4a3614c4e566d4cce31381dce3dbef9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jul 14 15:39:59 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:30 2008 -0500"
      },
      "message": "SUNRPC: Clean up rpc_run_task\n\nMake it use the new task initialiser structure instead of acting as a\nwrapper.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "84115e1cd4a3614c4e566d4cce31381dce3dbef9",
      "tree": "01b2de7163deb6b3a789811183d8b8c1329b900c",
      "parents": [
        "e8914c65f7f8d4e8701b8e78a12b714872ea0402"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jul 14 15:39:59 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:30 2008 -0500"
      },
      "message": "SUNRPC: Cleanup of rpc_task initialisation\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ef818a28fac9bd214e676986d8301db0582b92a9",
      "tree": "b1825d1ecdfa6b35951a61f6bc54363236c12cd0",
      "parents": [
        "2f74c0a05612b9c2014b5b67833dba9b9f523948"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "SteveD@redhat.com",
        "time": "Thu Nov 08 04:05:04 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:24 2008 -0500"
      },
      "message": "NFS: Stop sillyname renames and unmounts from racing\n\nAdded an active/deactive mechanism to the nfs_server structure\nallowing async operations to hold off umount until the\noperations are done.\n\nSigned-off-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2f74c0a05612b9c2014b5b67833dba9b9f523948",
      "tree": "59bb49bd9a393774b65e3d39e53edfe7bab4613e",
      "parents": [
        "acee478afc6ff7e1b8852d9a4dca1ff36021414d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 08 17:56:07 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:24 2008 -0500"
      },
      "message": "NFSv4: Clean up the OPEN/CLOSE serialisation code\n\nReduce the time spent locking the rpc_sequence structure by queuing the\nnfs_seqid only when we are ready to take the lock (when calling\nnfs_wait_on_sequence).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "acee478afc6ff7e1b8852d9a4dca1ff36021414d",
      "tree": "94aa75336122b4914af0cfa91eaf1329b2c519d3",
      "parents": [
        "8b1f9ee56e21e505a3d5d3e33f823006d1abdbaf"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 22 17:13:07 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:24 2008 -0500"
      },
      "message": "NFS: Clean up the write request locking.\n\nEnsure that we set/clear NFS_PAGE_TAG_LOCKED when the nfs_page is hashed.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8b1f9ee56e21e505a3d5d3e33f823006d1abdbaf",
      "tree": "4f26bf0ceb4f834040e02cefc6385087a25ad6ba",
      "parents": [
        "77f111929d024165e736e919187cff017279bebe"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 22 17:13:06 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:23 2008 -0500"
      },
      "message": "NFS: Optimise nfs_vm_page_mkwrite()\n\nThe current model locks the page twice for no good reason. Optimise by\ninlining the parts of nfs_write_begin()/nfs_write_end() that we care about.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "77f111929d024165e736e919187cff017279bebe",
      "tree": "fb03b66823f8c60e8efcdb40f93fadd2fc283e80",
      "parents": [
        "d45b9d8baf41acb177abbbe6746b1dea094b8a28"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 28 19:43:19 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:22 2008 -0500"
      },
      "message": "NFS: Ensure that we eject stale inodes as soon as possible\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d45b9d8baf41acb177abbbe6746b1dea094b8a28",
      "tree": "2bb90613fb21865b6b23c676c00073d3c4729929",
      "parents": [
        "609005c319bc6062b95ed82e132884ed7e22cdb9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 28 19:43:18 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:22 2008 -0500"
      },
      "message": "NFS: Handle -ENOENT errors in unlink()/rmdir()/rename()\n\nIf the server returns an ENOENT error, we still need to do a d_delete() in\norder to ensure that the dentry is deleted.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "609005c319bc6062b95ed82e132884ed7e22cdb9",
      "tree": "ed798efb3dde26d9072fb44af743db638f76157e",
      "parents": [
        "fccca7fc6aab4e6b519e2d606ef34632e4f50e33"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 28 19:42:59 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:22 2008 -0500"
      },
      "message": "NFS: Sillyrename: in the case of a race, check aliases are really positive\n\nIn nfs_do_call_unlink() we check that we haven\u0027t raced, and that lookup()\nhasn\u0027t created an aliased dentry to our sillydeleted dentry. If somebody\nhas deleted the file on the server and the lookup() resulted in a negative\ndentry, then ignore...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fccca7fc6aab4e6b519e2d606ef34632e4f50e33",
      "tree": "4d12d88039d229263a610647df6c751585f714dc",
      "parents": [
        "5b10ca19ea4859d3884d10a3eb8495de92089792"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jan 26 17:37:47 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:21 2008 -0500"
      },
      "message": "NFS: Fix a sillyrename race...\n\nEnsure that readdir revalidates its data cache after blocking on\nsillyrename.\n\nAlso fix a typo in nfs_do_call_unlink(): swap the ^\u003d for an |\u003d. The result\nis the same, since we\u0027ve already checked that the flag is unset, but it\nmakes the code more readable.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9e97198dbf318be7958b57900d05b37c7e09ad7c",
      "tree": "f74fdf942c1b4c09c59d7f2b8ac4a48e8a471a71",
      "parents": [
        "12f32bb31772e72d8cf52a29f961561bccc54c37"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jan 29 21:05:57 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jan 29 21:55:20 2008 +0100"
      },
      "message": "splice: fix problem with atime not being updated\n\nA bug report on nfsd that states that since it was switched to use\nsplice instead of sendfile, the atime was no longer being updated\non the input file. do_generic_mapping_read() does this when accessing\nthe file, make splice do it for the direct splice handler.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0ba6c33bcddc64a54b5f1c25a696c4767dc76292",
      "tree": "62e616f97a4762d8e75bf732e4827af2d15d52c5",
      "parents": [
        "21af0297c7e56024a5ccc4d8ad2a590f9ec371ba",
        "85040bcb4643cba578839e953f25e2d1965d83d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 29 22:54:01 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 29 22:54:01 2008 +1100"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.25\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.25: (1470 commits)\n  [IPV6] ADDRLABEL: Fix double free on label deletion.\n  [PPP]: Sparse warning fixes.\n  [IPV4] fib_trie: remove unneeded NULL check\n  [IPV4] fib_trie: More whitespace cleanup.\n  [NET_SCHED]: Use nla_policy for attribute validation in ematches\n  [NET_SCHED]: Use nla_policy for attribute validation in actions\n  [NET_SCHED]: Use nla_policy for attribute validation in classifiers\n  [NET_SCHED]: Use nla_policy for attribute validation in packet schedulers\n  [NET_SCHED]: sch_api: introduce constant for rate table size\n  [NET_SCHED]: Use typeful attribute parsing helpers\n  [NET_SCHED]: Use typeful attribute construction helpers\n  [NET_SCHED]: Use NLA_PUT_STRING for string dumping\n  [NET_SCHED]: Use nla_nest_start/nla_nest_end\n  [NET_SCHED]: Propagate nla_parse return value\n  [NET_SCHED]: act_api: use PTR_ERR in tcf_action_init/tcf_action_get\n  [NET_SCHED]: act_api: use nlmsg_parse\n  [NET_SCHED]: act_api: fix netlink API conversion bug\n  [NET_SCHED]: sch_netem: use nla_parse_nested_compat\n  [NET_SCHED]: sch_atm: fix format string warning\n  [NETNS]: Add namespace for ICMP replying code.\n  ...\n"
    },
    {
      "commit": "5ea293a9048d3a58cb0c840fa719d85ad14cba47",
      "tree": "88d1dd1eece2cfcbd858ff2c00fb0240dcfab3c7",
      "parents": [
        "03bc26cfefd6db756e6bc7fcda11dc17ada7be16",
        "d3883ecebbf9e095b9e379dabbbe8b2c1ee7a41c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 29 22:46:14 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 29 22:46:14 2008 +1100"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild: (79 commits)\n  Remove references to \"make dep\"\n  kconfig: document use of HAVE_*\n  Introduce new section reference annotations tags: __ref, __refdata, __refconst\n  kbuild: warn about ld added unique sections\n  kbuild: add verbose option to Section mismatch reporting in modpost\n  kconfig: tristate choices with mixed tristate and boolean values\n  asm-generic/vmlix.lds.h: simplify __mem{init,exit}* dependencies\n  remove __attribute_used__\n  kbuild: support ARCH\u003dx86 in buildtar\n  kconfig: remove \"enable\"\n  kbuild: simplified warning report in modpost\n  kbuild: introduce a few helpers in modpost\n  kbuild: use simpler section mismatch warnings in modpost\n  kbuild: link vmlinux.o before kallsyms passes\n  kbuild: introduce new option to enhance section mismatch analysis\n  Use separate sections for __dev/__cpu/__mem code/data\n  compiler.h: introduce __section()\n  all archs: consolidate init and exit sections in vmlinux.lds.h\n  kbuild: check section names consistently in modpost\n  kbuild: introduce blacklisting in modpost\n  ...\n"
    },
    {
      "commit": "8cd226ca3f64f28c8123ebfaa6afe8dc8c18b174",
      "tree": "6a668a8e899dca090ded0d3b8d6badda8f97d1b0",
      "parents": [
        "6b11d8179d1c6e560edc02c40a53b65fde83bf3f",
        "4019191be7316ed4a39e1c1c2b623baa7dc6c843"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 29 22:43:38 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 29 22:43:38 2008 +1100"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (50 commits)\n  jbd2: sparse pointer use of zero as null\n  jbd2: Use round-jiffies() function for the \"5 second\" ext4/jbd2 wakeup\n  jbd2: Mark jbd2 slabs as SLAB_TEMPORARY\n  jbd2: add lockdep support\n  ext4: Use the ext4_ext_actual_len() helper function\n  ext4: fix uniniatilized extent splitting error\n  ext4: Check for return value from sb_set_blocksize\n  ext4: Add stripe\u003d option to /proc/mounts\n  ext4: Enable the multiblock allocator by default\n  ext4: Add multi block allocator for ext4\n  ext4: Add new functions for searching extent tree\n  ext4: Add ext4_find_next_bit()\n  ext4: fix up EXT4FS_DEBUG builds\n  ext4: Fix ext4_show_options to show the correct mount options.\n  ext4: Add EXT4_IOC_MIGRATE ioctl\n  ext4: Add inode version support in ext4\n  vfs: Add 64 bit i_version support\n  ext4: Add the journal checksum feature\n  jbd2: jbd2 stats through procfs\n  ext4: Take read lock during overwrite case.\n  ...\n"
    },
    {
      "commit": "4019191be7316ed4a39e1c1c2b623baa7dc6c843",
      "tree": "60e86b4c004a4f5206369f099302c38ad621e86a",
      "parents": [
        "db857da3369cd4eb6a28be1cce89d33162caa4a0"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "jbd2: sparse pointer use of zero as null\n\nGet rid of sparse related warnings from places that use integer as NULL\npointer.  (Ported from upstream ext3/jbd changes.)\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "db857da3369cd4eb6a28be1cce89d33162caa4a0",
      "tree": "08dcac7ef1db552a771df1a9dd12c13ca70224b0",
      "parents": [
        "77160957e29e9413f7420e85fca37a47d4ffac7f"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "jbd2: Use round-jiffies() function for the \"5 second\" ext4/jbd2 wakeup\n\nWhile \"every 5 seconds\" doesn\u0027t sound as a problem, there can be many\nof these (and these timers do add up over all the kernel).  The \"5\nsecond\" wakeup isn\u0027t really timing sensitive; in addition even with\nrounding it\u0027ll still happen every 5 seconds (with the exception of the\nvery first time, which is likely to be rounded up to somewhere closer\nto 6 seconds)\n\n(Ported from similar JBD patch made by Arjan van de Ven to\nfs/jbd/transaction.c)\n\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "77160957e29e9413f7420e85fca37a47d4ffac7f",
      "tree": "d7930fbe9129dcadcda2941fd38a27692b6870ba",
      "parents": [
        "7b7510662f4d05ddcc45d435769860e73e6aa20e"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "jbd2: Mark jbd2 slabs as SLAB_TEMPORARY\n\nThis patch marks slab allocations by jbd2 as short-lived in support of\nMel Gorman\u0027s \"Group short-lived and reclaimable kernel allocations\"\npatch.  (Ported from similar changes made to fs/jbd/journal.c and\nfs/jbd/revoke.c in Mel\u0027s patch.)\n\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "7b7510662f4d05ddcc45d435769860e73e6aa20e",
      "tree": "adf0fe32c57c53099b6604bcf40d914398a5504c",
      "parents": [
        "b939e3766ec19eb556cb784c2faace253c6e1560"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "jbd2: add lockdep support\n\nPorted from similar patch for the jbd layer.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "b939e3766ec19eb556cb784c2faace253c6e1560",
      "tree": "0e088db3593d032ce9ee7090ae82b8ed213ccb23",
      "parents": [
        "dbf9d7da33f79302fb1e4d7c6b2f6598e8608e72"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "ext4: Use the ext4_ext_actual_len() helper function\n\next4 uses the high bit of the extent length to encode whether the extent\nis intialized or not. The helper function ext4_ext_get_actual_len should\nbe used to get the actual length of the extent.\n\nThis addresses the kernel bug documented here: \n     http://bugzilla.kernel.org/show_bug.cgi?id\u003d9732\n\nkernel BUG at fs/ext4/extents.c:1056!\n....\nCall Trace:\n[\u003cffffffff88366073\u003e] :ext4dev:ext4_ext_get_blocks+0x5ba/0x8c1\n[\u003cffffffff81053c91\u003e] lock_release_holdtime+0x27/0x49\n[\u003cffffffff812748f6\u003e] _spin_unlock+0x17/0x20\n[\u003cffffffff883400a6\u003e] :jbd2:start_this_handle+0x4e0/0x4fe\n[\u003cffffffff88366564\u003e] :ext4dev:ext4_fallocate+0x175/0x39a\n[\u003cffffffff81053c91\u003e] lock_release_holdtime+0x27/0x49\n[\u003cffffffff81056480\u003e] __lock_acquire+0x4e7/0xc4d\n[\u003cffffffff81053c91\u003e] lock_release_holdtime+0x27/0x49\n[\u003cffffffff810a8de7\u003e] sys_fallocate+0xe4/0x10d\n[\u003cffffffff8100c043\u003e] tracesys+0xd5/0xda\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "dbf9d7da33f79302fb1e4d7c6b2f6598e8608e72",
      "tree": "0065fa9b23765b42aed171cc3e070aabb655d9de",
      "parents": [
        "ce40733ce93de402ed629762f0e912d9af187cef"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "ext4: fix uniniatilized extent splitting error\n\nFix bug reported by Dmitry Monakhov caused by lost error code\n\n    Testcase: \n\n    blksize \u003d 0x1000;\n    fd \u003d open(argv[1], O_RDWR|O_CREAT, 0700);\n    unsigned long long sz \u003d 0x10000000UL;\n    /* allocating big blocks chunk */\n    syscall(__NR_fallocate, fd, 0, 0UL, sz)\n\n    /* grab all other available filesystem space */\n    tfd \u003d open(\"tmp\", O_RDWR|O_CREAT|O_DIRECT, 0700);\n    while( write(tfd, buf, 4096) \u003e 0); /* loop untill ENOSPC */\n    fsync(fd); /* just in case */\n    while (pos \u003c sz) {\n    \t/* each seek+ write operation result in splits uninitialized extent\n    \tin three extents. Splitting may result in new extent allocation\n    \twhich probably will fail because of ENOSPC*/\n\n    \tlseek(fd, blksize*2 -1, SEEK_CUR);\n    \tif ((ret \u003d write(fd, \u0027a\u0027, 1)) !\u003d 1)\n    \t\texit(1);\n    \tpos +\u003d blksize * 2;\n    }\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "ce40733ce93de402ed629762f0e912d9af187cef",
      "tree": "b52c78ac15120151ea688550ba4f6ce619d471c0",
      "parents": [
        "cb45bbe44b09f35bb12d67ffa7ecff862608aeae"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "ext4: Check for return value from sb_set_blocksize\n\nsb_set_blocksize validates whether the specfied block size can be used by\nthe file system. Make sure we fail mounting the file system if the\nblocksize specfied cannot be used.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "cb45bbe44b09f35bb12d67ffa7ecff862608aeae",
      "tree": "4b5a7f95772fcab8d1caac6171a06c970189f3e2",
      "parents": [
        "3dbd0ede4d5320bd4c3cb914fec0595135b6d9a1"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "ext4: Add stripe\u003d option to /proc/mounts\nAdd stripe\u003d option to /proc/mounts for ext4 filesystems.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "3dbd0ede4d5320bd4c3cb914fec0595135b6d9a1",
      "tree": "4b985bdd423deaea51688857320c1a53a4e61999",
      "parents": [
        "c9de560ded61faa5b754137b7753da252391c55a"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Jan 28 23:58:26 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:26 2008 -0500"
      },
      "message": "ext4: Enable the multiblock allocator by default\n\nEnable the multiblock allocator by default.\n\nFix ext4_show_options() so if it is not enabled, the nomballoc option\nincluded in /proc/mounts.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nAcked-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "c9de560ded61faa5b754137b7753da252391c55a",
      "tree": "2c4311377c4aa72450e27f531e198fe3e1c67db0",
      "parents": [
        "1988b51e476bd097d910c9245b53f2e38aedaf0d"
      ],
      "author": {
        "name": "Alex Tomas",
        "email": "alex@clusterfs.com",
        "time": "Tue Jan 29 00:19:52 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 29 00:19:52 2008 -0500"
      },
      "message": "ext4: Add multi block allocator for ext4\n\nSigned-off-by: Alex Tomas \u003calex@clusterfs.com\u003e\nSigned-off-by: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1988b51e476bd097d910c9245b53f2e38aedaf0d",
      "tree": "a36b860ac1a49b359d6dc5fd7af9916cf034cac8",
      "parents": [
        "aa02ad67d9b308290fde390682cd039b29f7ab85"
      ],
      "author": {
        "name": "Alex Tomas",
        "email": "alex@clusterfs.com",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "ext4: Add new functions for searching extent tree\n\nAdd the functions ext4_ext_search_left() and ext4_ext_search_right(),\nwhich are used by mballoc during ext4_ext_get_blocks to decided whether\nto merge extent information.\n\nSigned-off-by: Alex Tomas \u003calex@clusterfs.com\u003e\nSigned-off-by: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nSigned-off-by: Johann Lombardi \u003cjohann@clusterfs.com\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c549a95d40efd83fc054785dd1634e8b71fba890",
      "tree": "3d4623829ceb02b34f1e8a110eb2b8d741db8b14",
      "parents": [
        "aa22df2cc84011808ad7227437ac8f0e01030480"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "ext4: fix up EXT4FS_DEBUG builds\n\nBuilds with EXT4FS_DEBUG defined (to enable ext4_debug()) fail\nwithout these changes.  Clean up some format warnings too.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    }
  ],
  "next": "aa22df2cc84011808ad7227437ac8f0e01030480"
}
