)]}'
{
  "log": [
    {
      "commit": "2da06b4e5da96fff4f07cc35af1db407e1e21aa7",
      "tree": "fd52474cbfd2b280a9fbfd837adb016d316993c6",
      "parents": [
        "99b9cdf758af7004a716cf304dd5cd41af7db227"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jan 30 13:30:08 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:08 2008 +0100"
      },
      "message": "x86: clean up arch/x86/ia32/ipc32.c\n\nWhite space and coding style cleanup.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "99b9cdf758af7004a716cf304dd5cd41af7db227",
      "tree": "058a5bc930789d92831e115068d6e5200163b979",
      "parents": [
        "8edf8bee889a3d13ae2db0f7992821fb5dc78bfa"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jan 30 13:30:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:07 2008 +0100"
      },
      "message": "x86: clean up arch/x86/ia32/ia32_signal.c\n\nWhite space and coding style clenaup.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8edf8bee889a3d13ae2db0f7992821fb5dc78bfa",
      "tree": "92a2d0ca107dfdb6e041c11f770107bd22500ea8",
      "parents": [
        "d94448b1fdc91ee1d235607f6bbe595464e4fbb9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jan 30 13:30:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:07 2008 +0100"
      },
      "message": "x86: clean up arch/x86/ia32/aout32.c\n\nWhite space and coding style clenaup.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d94448b1fdc91ee1d235607f6bbe595464e4fbb9",
      "tree": "594a451b936fe3332009fd40d6e182b5629a69ed",
      "parents": [
        "7b11fb51567dedeaf6dc03f0135c0a8bb2399818"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jan 30 13:30:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:07 2008 +0100"
      },
      "message": "x86: clean up arch/x86/ia32/fpu32.c\n\nWhite space and coding style clenaup.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7b11fb51567dedeaf6dc03f0135c0a8bb2399818",
      "tree": "e4fd6f20d2aea1c4addddb01bf7dc2fa2b1cd5f4",
      "parents": [
        "e845c06bced7f5f325e0f9aefd3207cd45c21ff2"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Jan 30 13:30:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:07 2008 +0100"
      },
      "message": "x86: unify asm/cpufeature.h\n\nasm/cpufeature.h was already almost unified; this completes the job.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "e845c06bced7f5f325e0f9aefd3207cd45c21ff2",
      "tree": "ca3902e4602af2903cc8d3e9936aebb69021477d",
      "parents": [
        "39d44a51474a52bec6d72d30ebc76f5159101d90"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Jan 30 13:30:06 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:06 2008 +0100"
      },
      "message": "x86: add \u003casm/asm.h\u003e\n\nCreate \u003casm/asm.h\u003e, with common definitions suitable for assembly\nunification.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "39d44a51474a52bec6d72d30ebc76f5159101d90",
      "tree": "e8d2fa7a68b3374e347deb8dd5c1a55daab0932b",
      "parents": [
        "5ee613b6751cd91db4b6bd7c1dc9d2f9cf65cde2"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Wed Jan 30 13:30:06 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:06 2008 +0100"
      },
      "message": "x86: enable irq in default_idle on 64-bit\n\nlocal_irq_enable() is missing after sched_clock_idle_wakeup_event().\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5ee613b6751cd91db4b6bd7c1dc9d2f9cf65cde2",
      "tree": "2fa68d5c3d0e18723bed666fe087b4bbc3ed78ba",
      "parents": [
        "53d517cdbaac704352b3d0c10fecb99e0b54572e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:06 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:06 2008 +0100"
      },
      "message": "x86: idle wakeup event in the HLT loop\n\ndo a proper idle-wakeup event on HLT as well - some CPUs stop the TSC\nin HLT too, not just when going through the ACPI methods.\n\n(the ACPI idle code already does this.)\n\n[ update the 64-bit side too, as noticed by Jiri Slaby. ]\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "53d517cdbaac704352b3d0c10fecb99e0b54572e",
      "tree": "4056bc99a4e6077d7d968d30ea21895e425a83ef",
      "parents": [
        "83bd01024b1fdfc41d9b758e5669e80fca72df66"
      ],
      "author": {
        "name": "Guillaume Chazarain",
        "email": "guichaz@yahoo.fr",
        "time": "Wed Jan 30 13:30:06 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:06 2008 +0100"
      },
      "message": "x86: scale cyc_2_nsec according to CPU frequency\n\nscale the sched_clock() cyc_2_nsec scaling factor according to\nCPU frequency changes.\n\n[ mingo@elte.hu: simplified it and fixed it for SMP. ]\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "83bd01024b1fdfc41d9b758e5669e80fca72df66",
      "tree": "36e3d8ad8c2808075dc42ffa022062c9448bb459",
      "parents": [
        "f9fc58910ebc448b0b7d37af1bf57a896a78e9c4"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Jan 30 13:30:06 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:06 2008 +0100"
      },
      "message": "x86: protect against sigaltstack wraparound\n\ncf http://lkml.org/lkml/2007/10/3/41\n\nTo summarize: on Linux, SA_ONSTACK decides whether you are already on the\nsignal stack based on the value of the SP at the time of a signal.  If\nyou are not already inside the range, you are not \"on the signal stack\"\nand so the new signal handler frame starts over at the base of the signal\nstack.\n\nsigaltstack (and sigstack before it) was invented in BSD.  There, the\nSA_ONSTACK behavior has always been different.  It uses a kernel state\nflag to decide, rather than the SP value.  When you first take an\nSA_ONSTACK signal and switch to the alternate signal stack, it sets the\nSS_ONSTACK flag in the thread\u0027s sigaltstack state in the kernel.\nThereafter you are \"on the signal stack\" and don\u0027t switch SP before\npushing a handler frame no matter what the SP value is.  Only when you\nsigreturn from the original handler context do you clear the SS_ONSTACK\nflag so that a new handler frame will start over at the base of the\nalternate signal stack.\n\nThe undesireable effect of the Linux behavior is that an overflow of the\nalternate signal stack can not only go undetected, but lead to a ring\nbuffer effect of clobbering the original handler frame at the base of the\nsignal stack for each successive signal that comes just after the\noverflow.  This is what Shi Weihua\u0027s test case demonstrates.  Normally\nthis does not come up because of the signal mask, but the test case uses\nSA_NODEFER for its SIGSEGV handler.\n\nThe other subtle part of the existing Linux semantics is that a simple\nlongjmp out of a signal handler serves to take you off the signal stack\nin a safe and reliable fashion without having used sigreturn (nor having\njust returned from the handler normally, which means the same).  After\nthe longjmp (or even informal stack switching not via any proper libc or\nkernel interface), the alternate signal stack stands ready to be used\nagain.\n\nA paranoid program would allocate a PROT_NONE red zone around its\nalternate signal stack.  Then a small overflow would trigger a SIGSEGV in\nhandler setup, and be fatal (core dump) whether or not SIGSEGV is\nblocked.  As with thread stack red zones, that cannot catch all overflows\n(or underflows).  e.g., a local array as large as page size allocated in\na function called from a handler, but not actually touched before more\ncalls push more stack, could cause an overflow that silently pushes into\nsome unrelated allocated pages.\n\nThe BSD behavior does not do anything in particular about overflow.  But\nit does at least avoid the wraparound or \"ring buffer effect\", so you\u0027ll\njust get a straightforward all-out overflow down your address space past\nthe low end of the alternate signal stack.  I don\u0027t know what the BSD\nbehavior is for longjmp out of an SA_ONSTACK handler.\n\nThe POSIX wording relating to sigaltstack is pretty minimal.  I don\u0027t\nthink it speaks to this issue one way or another.  (The program that\noverflows its stack is clearly in undefined behavior territory of one\nsort or another anyhow.)\n\nGiven the longjmp issue and the potential for highly subtle complications\nin existing programs relying on this in arcane ways deep in their code, I\nam very dubious about changing the behavior to the BSD style persistent\nflag.  I think Shi Weihua\u0027s patches have a similar effect by tracking the\nSP used in the last handler setup.\n\nI think it would be sensible for the signal handler setup code to detect\nwhen it would itself be causing a stack overflow.  Maybe something like\nthe following patch (untested).  This issue exists in the same way on all\nmachines, so ideally they would all do a similar check.\n\nWhen it\u0027s the handler function itself or its callees that cause the\noverflow, rather than the signal handler frame setup alone crossing the\nboundary, this still won\u0027t help.  But I don\u0027t see any way to distinguish\nthat from the valid longjmp case.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f9fc58910ebc448b0b7d37af1bf57a896a78e9c4",
      "tree": "390b6f4d37b310a9edab4039ba5ace69e73c9dc3",
      "parents": [
        "d0049e71c6e14a3b0a5b8cedaa1325a1a91fecb0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:05 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:05 2008 +0100"
      },
      "message": "x86: add DMI quirk for io-delay hangs on Compaq Presario V6000 laptops\n\nadd the DMI strings provided by Islam Amer \u003cpharon@gmail.com\u003e, for\nthe Compaq Presario V6000 (Quanta/30B7).\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d0049e71c6e14a3b0a5b8cedaa1325a1a91fecb0",
      "tree": "6eb34ed529b06dacd5b4f5784d0b1b49adbfdec1",
      "parents": [
        "6e7c402590b75b6b45138792445ee0f0315a8473"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:05 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:05 2008 +0100"
      },
      "message": "x86: make io_delay\u003d0xed the default\n\nmake io_delay\u003d0xed the default. This frees up port 0x80 which is\na debug port on some machines and locks up certain laptops.\n\nTesting only for now. Try the io_delay\u003d0x80 boot option if this does not\nwork for you.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6e7c402590b75b6b45138792445ee0f0315a8473",
      "tree": "94db814d496502932ab55acc560a728925f87540",
      "parents": [
        "b02aae9cf52956dfe1bec73f77f81a3d05d3902b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:05 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:05 2008 +0100"
      },
      "message": "x86: various changes and cleanups to in_p/out_p delay details\n\nvarious changes to the in_p/out_p delay details:\n\n- add the io_delay\u003dnone method\n- make each method selectable from the kernel config\n- simplify the delay code a bit by getting rid of an indirect function call\n- add the /proc/sys/kernel/io_delay_type sysctl\n- change \u0027io_delay\u003dstandard|alternate\u0027 to io_delay\u003d0x80 and io_delay\u003d0xed\n- make the io delay config not depend on CONFIG_DEBUG_KERNEL\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: \"David P. Reed\" \u003cdpreed@reed.com\u003e\n"
    },
    {
      "commit": "b02aae9cf52956dfe1bec73f77f81a3d05d3902b",
      "tree": "ce715a107c853960cc9541377aeae0ff31ac25f7",
      "parents": [
        "4c6b8b4d62fb4cb843c32db71e0a8301039908f3"
      ],
      "author": {
        "name": "Rene Herman",
        "email": "rene.herman@gmail.com",
        "time": "Wed Jan 30 13:30:05 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:05 2008 +0100"
      },
      "message": "x86: provide a DMI based port 0x80 I/O delay override.\n\nx86: provide a DMI based port 0x80 I/O delay override.\n\nCertain (HP) laptops experience trouble from our port 0x80 I/O delay\nwrites. This patch provides for a DMI based switch to the \"alternate\ndiagnostic port\" 0xed (as used by some BIOSes as well) for these.\n\nDavid P. Reed confirmed that port 0xed works for him and provides a\nproper delay. The symptoms of _not_ working are a hanging machine,\nwith \"hwclock\" use being a direct trigger.\n\nEarlier versions of this attempted to simply use udelay(2), with the\n2 being a value tested to be a nicely conservative upper-bound with\nhelp from many on the linux-kernel mailinglist but that approach has\ntwo problems.\n\nFirst, pre-loops_per_jiffy calibration (which is post PIT init while\nsome implementations of the PIT are actually one of the historically\nproblematic devices that need the delay) udelay() isn\u0027t particularly\nwell-defined. We could initialise loops_per_jiffy conservatively (and\nbased on CPU family so as to not unduly delay old machines) which\nwould sort of work, but...\n\nSecond, delaying isn\u0027t the only effect that a write to port 0x80 has.\nIt\u0027s also a PCI posting barrier which some devices may be explicitly\nor implicitly relying on. Alan Cox did a survey and found evidence\nthat additionally some drivers may be racy on SMP without the bus\nlocking outb.\n\nSwitching to an inb() makes the timing too unpredictable and as such,\nthis DMI based switch should be the safest approach for now. Any more\ninvasive changes should get more rigid testing first. It\u0027s moreover\nonly very few machines with the problem and a DMI based hack seems\nto fit that situation.\n\nThis also introduces a command-line parameter \"io_delay\" to override\nthe DMI based choice again:\n\n\tio_delay\u003d\u003cstandard|alternate\u003e\n\nwhere \"standard\" means using the standard port 0x80 and \"alternate\"\nport 0xed.\n\nThis retains the udelay method as a config (CONFIG_UDELAY_IO_DELAY) and\ncommand-line (\"io_delay\u003dudelay\") choice for testing purposes as well.\n\nThis does not change the io_delay() in the boot code which is using\nthe same port 0x80 I/O delay but those do not appear to be a problem\nas David P. Reed reported the problem was already gone after using the\nudelay version. He moreover reported that booting with \"acpi\u003doff\" also\nfixed things and seeing as how ACPI isn\u0027t touched until after this DMI\nbased I/O port switch I believe it\u0027s safe to leave the ones in the boot\ncode be.\n\nThe DMI strings from David\u0027s HP Pavilion dv9000z are in there already\nand we need to get/verify the DMI info from other machines with the\nproblem, notably the HP Pavilion dv6000z.\n\nThis patch is partly based on earlier patches from Pavel Machek and\nDavid P. Reed.\n\nSigned-off-by: Rene Herman \u003crene.herman@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4c6b8b4d62fb4cb843c32db71e0a8301039908f3",
      "tree": "52cd500fb34a249214c1be9373c7176239c251bb",
      "parents": [
        "5c9c9bec0589be696c70c5efb448b17d5ab720e2"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Wed Jan 30 13:30:04 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:04 2008 +0100"
      },
      "message": "x86: fix: s2ram + P4 + tsc \u003d annoyance\n\ns2ram recently became useful here, except for the kernel\u0027s annoying\nhabit of disabling my P4\u0027s perfectly good TSC.\n\n[  107.894470] CPU 1 is now offline\n[  107.894474] SMP alternatives: switching to UP code\n[  107.895832] CPU0 attaching sched-domain:\n[  107.895836]  domain 0: span 1\n[  107.895838]   groups: 1\n[  107.896097] CPU1 is down\n[    3.726156] Intel machine check architecture supported.\n[    3.726165] Intel machine check reporting enabled on CPU#0.\n[    3.726167] CPU0: Intel P4/Xeon Extended MCE MSRs (12) available\n[    3.726170] CPU0: Thermal monitoring enabled\n[    3.726175] Back to C!\n[    3.726708] Force enabled HPET at resume\n[    3.726775] Enabling non-boot CPUs ...\n[    3.727049] CPU0 attaching NULL sched-domain.\n[    3.727165] SMP alternatives: switching to SMP code\n[    3.727858] Booting processor 1/1 eip 3000\n[    3.727862] CPU 1 irqstacks, hard\u003db042f000 soft\u003db042d000\n[    3.738173] Initializing CPU#1\n[    3.798912] Calibrating delay using timer specific routine.. 5986.12 BogoMIPS (lpj\u003d2993061)\n[    3.798920] CPU: After generic identify, caps: bfebfbff 00000000 00000000 00000000 00004400 00000000 00000000 00000000\n[    3.798931] CPU: Trace cache: 12K uops, L1 D cache: 8K\n[    3.798934] CPU: L2 cache: 512K\n[    3.798936] CPU: Physical Processor ID: 0\n[    3.798938] CPU: After all inits, caps: bfebfbff 00000000 00000000 0000b080 00004400 00000000 00000000 00000000\n[    3.798946] Intel machine check architecture supported.\n[    3.798952] Intel machine check reporting enabled on CPU#1.\n[    3.798955] CPU1: Intel P4/Xeon Extended MCE MSRs (12) available\n[    3.798959] CPU1: Thermal monitoring enabled\n[    3.799161] CPU1: Intel(R) Pentium(R) 4 CPU 3.00GHz stepping 09\n[    3.799187] checking TSC synchronization [CPU#0 -\u003e CPU#1]:\n[    3.819181] Measured 63588552840 cycles TSC warp between CPUs, turning off TSC clock.\n[    3.819184] Marking TSC unstable due to: check_tsc_sync_source failed.\n\nIf check_tsc_warp() is called after initial boot, and the TSC has in the\nmeantime been set (BIOS, user, silicon, elves) to a value lower than the\nlast stored/stale value, we blame the TSC.  Reset to pristine condition\nafter every test.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "5c9c9bec0589be696c70c5efb448b17d5ab720e2",
      "tree": "b4fe757645a01c76ed297792f03a4ba10743bd55",
      "parents": [
        "9484b1eb4d05957d3114dc63026448eb66106c06"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jan 30 13:30:04 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:04 2008 +0100"
      },
      "message": "x86: hibernation: document __save_processor_state() on x86\n\nDocument the fact that __save_processor_state() has to save all CPU\nregisters referred to by the kernel in case a different kernel is\nused to load and restore a hibernation image containing it.\n\nSigend-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "9484b1eb4d05957d3114dc63026448eb66106c06",
      "tree": "335e1c7eaa5fa66ecbb0f0914c4f41ffcc3f21a7",
      "parents": [
        "6378ddb592158db4b42197f1bc8666228800e379"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Wed Jan 30 13:30:04 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:04 2008 +0100"
      },
      "message": "x86: fix make mrproper\n\nMichael Opdenacker reported:\n\nFor backward compatibility with earlier (\u003c 2.6.24) kernels,\narch/i386/boot/bzImage or arch/x86_64/boot/bzImage symbolic links to\narch/x86/boot/bzImage are created when you build an x86 kernel. The\narch/i386 or arch/x86_64 directories are then created for this only\npurpose.\n\nIssue: these generated directories and symbolic links are *not cleaned\nup* when you run \"make mrproper\" (and thus \"make distclean\"). This\ndisturbs the production of patches, because the source tree is left with\ngenerated files and directories.\n\nSam has an alternative fix:\n\nThe directory is killed during make clean as opposed to make mrproper.\n\nReported-by: Michael Opdenacker \u003cmichael-lists@free-electrons.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6378ddb592158db4b42197f1bc8666228800e379",
      "tree": "f9b1e671dfd12fb221f6140dd231ccb14cd9f27e",
      "parents": [
        "bbe4d18ac2e058c56adb0cd71f49d9ed3216a405"
      ],
      "author": {
        "name": "Venki Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Wed Jan 30 13:30:04 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:04 2008 +0100"
      },
      "message": "time: track accurate idle time with tick_sched.idle_sleeptime\n\nCurrent idle time in kstat is based on jiffies and is coarse grained.\ntick_sched.idle_sleeptime is making some attempt to keep track of idle time\nin a fine grained manner.  But, it is not handling the time spent in\ninterrupts fully.\n\nMake tick_sched.idle_sleeptime accurate with respect to time spent on\nhandling interrupts and also add tick_sched.idle_lastupdate, which keeps\ntrack of last time when idle_sleeptime was updated.\n\nThis statistics will be crucial for cpufreq-ondemand governor, which can\nshed some conservative gaurd band that is uses today while setting the\nfrequency.  The ondemand changes that uses the exact idle time is coming\nsoon.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@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": "bbe4d18ac2e058c56adb0cd71f49d9ed3216a405",
      "tree": "bc81b3a04cc01fed11ac47673475bf4019cc013f",
      "parents": [
        "37a47db8d7f0f38dac5acf5a13abbc8f401707fa"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Wed Jan 30 13:30:03 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:03 2008 +0100"
      },
      "message": "NTP: correct inconsistent ntp interval/tick_length usage\n\nI recently noticed on one of my boxes that when synched with an NTP\nserver, the drift value reported for the system was ~283ppm. While in\nsome cases, clock hardware can be that bad, it struck me as unusual as\nthe system was using the acpi_pm clocksource, which is one of the more\ntrustworthy and accurate clocksources on x86 hardware.\n\nI brought up another system and let it sync to the same NTP server, and\nI noticed a similar 280some ppm drift.\n\nIn looking at the code, I found that the acpi_pm\u0027s constant frequency\nwas being computed correctly at boot-up, however once the system was up,\neven without the ntp daemon running, the clocksource\u0027s frequency was\nbeing modified by the clocksource_adjust() function.\n\nDigging deeper, I realized that in the code that keeps track of how much\nthe clocksource is skewing from the ntp desired time, we were using\ndifferent lengths to establish how long an time interval was.\n\nThe clocksource was being setup with the following interval:\n\tNTP_INTERVAL_LENGTH \u003d NSEC_PER_SEC/NTP_INTERVAL_FREQ\n\nWhile the ntp code was using the tick_length_base value:\n\ttick_length_base ~\u003d (tick_usec * NSEC_PER_USEC * USER_HZ)\n\t\t\t\t\t/NTP_INTERVAL_FREQ\n\nThe subtle difference is:\n\t(tick_usec * NSEC_PER_USEC * USER_HZ) !\u003d NSEC_PER_SEC\n\nThis difference in calculation was causing the clocksource correction\ncode to apply a correction factor to the clocksource so the two\nintervals were the same, however this results in the actual frequency of\nthe clocksource to be made incorrect. I believe this difference would\naffect all clocksources, although to differing degrees depending on the\nclocksource resolution.\n\nThe issue was introduced when my HZ free ntp patch landed in 2.6.21-rc1,\nso my apologies for the mistake, and for not noticing it until now.\n\nThe following patch, corrects the clocksource\u0027s initialization code so\nit uses the same interval length as the code in ntp.c. After applying\nthis patch, the drift value for the same system went from ~283ppm to\nonly 2.635ppm.\n\nI believe this patch to be good, however it does affect all arches and\nI\u0027ve only tested on x86, so some caution is advised. I do think it would\nbe a likely candidate for a stable 2.6.24.x release.\n\nAny thoughts or feedback would be appreciated.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "37a47db8d7f0f38dac5acf5a13abbc8f401707fa",
      "tree": "f3827e6b77a81680b2870f82a22bb86c4fefefee",
      "parents": [
        "e3f37a54f690d3e64995ea7ecea08c5ab3070faf"
      ],
      "author": {
        "name": "Balaji Rao",
        "email": "balajirrao@gmail.com",
        "time": "Wed Jan 30 13:30:03 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:03 2008 +0100"
      },
      "message": "x86: assign IRQs to HPET timers, fix\n\nLooks like IRQ 31 is assigned to timer 3, even without the patch!\nI wonder who wrote the number 31. But the manual says that it is\nzero by default.\n\nI think we should check whether the timer has been allocated an IRQ before\nproceeding to assign one to it.  Here is a patch that does this.\n\nSigned-off-by: Balaji Rao \u003cbalajirrao@gmail.com\u003e\nTested-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "e3f37a54f690d3e64995ea7ecea08c5ab3070faf",
      "tree": "1d9d62d95b747ef47cdf994357bd9a41d02889a3",
      "parents": [
        "45fe4fe19120a22f7339f5bb110447170c25fca9"
      ],
      "author": {
        "name": "Balaji Rao",
        "email": "balajirrao@gmail.com",
        "time": "Wed Jan 30 13:30:03 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:03 2008 +0100"
      },
      "message": "x86: assign IRQs to HPET timers\n\nThe userspace API for the HPET (see Documentation/hpet.txt) did not work. The\nHPET_IE_ON ioctl was failing as there was no IRQ assigned to the timer\ndevice. This patch fixes it by allocating IRQs to timer blocks in the HPET.\n\narch/x86/kernel/hpet.c |   13 +++++--------\ndrivers/char/hpet.c    |   45 ++++++++++++++++++++++++++++++++++++++-------\ninclude/linux/hpet.h   |    2 +-\n3 files changed, 44 insertions(+), 16 deletions(-)\n\nSigned-off-by: Balaji Rao \u003cbalajirrao@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "45fe4fe19120a22f7339f5bb110447170c25fca9",
      "tree": "06639135ca5bc60e952670dd7df40e195edb2ad9",
      "parents": [
        "1a0c009ac53de4a7664a1239936f0bc258133156"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:03 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:03 2008 +0100"
      },
      "message": "x86: make clockevents more robust\n\ndetect zero event-device multiplicators - they then cause\ndivision-by-zero crashes if a clockevent has been initialized\nincorrectly.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1a0c009ac53de4a7664a1239936f0bc258133156",
      "tree": "37ee2c0707decfaaa1e34ed74282cd004fdc3b9d",
      "parents": [
        "4713e22ce81eb8b3353e16435362eb3d0ec95640"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jan 30 13:30:03 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:03 2008 +0100"
      },
      "message": "x86: unregister PIT clocksource when PIT is disabled\n\nThe following scenario might leave PIT as a disfunctional clock source:\n\n    PIT is registered as clocksource\n    PM_TIMER is registered as clocksource and enables highres/dyntick mode\n    PIT is switched to oneshot mode\n    -\u003e now the readout of PIT is bogus, but the user might select PIT\n    via the sysfs override, which would break the box as the time\n    readout is unusable.\n\nUnregister the PIT clocksource when the PIT clock event device is switched\ninto shutdown / oneshot mode.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4713e22ce81eb8b3353e16435362eb3d0ec95640",
      "tree": "6f96151bd9b182d6b9d706d3ad3b4fe8c99e7f7e",
      "parents": [
        "316da3b3fc8efa9a5d2c99e0d449f01ff38c6aba"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jan 30 13:30:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:02 2008 +0100"
      },
      "message": "clocksource: add unregister function to disable unusable clocksources\n\nOn x86 the PIT might become an unusable clocksource. Add an unregister\nfunction to provide a possibilty to remove the PIT from the list of\navailable clock sources.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "316da3b3fc8efa9a5d2c99e0d449f01ff38c6aba",
      "tree": "bc5ddba05ab44795b39e90079fb088cdfc6e5517",
      "parents": [
        "df619e6bafeb8e129aba3173d384544d7fa6e3c2"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jan 30 13:30:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:02 2008 +0100"
      },
      "message": "x86: restrict PIT clocksource usage\n\nPIT clocksource is registered unconditionally even when HPET is enabled\nor when PIT is replaced by the local APIC timer. In both cases PIT can\nnot be used as it is stopped and the readout would be stale.\n\nPrevent registering PIT in those cases.\n\npatch depends on:\n\n  x86: offer is_hpet_enabled() on !CONFIG_HPET_TIMER too\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "df619e6bafeb8e129aba3173d384544d7fa6e3c2",
      "tree": "4481ebe17b1dec19b9b2598e66c8bc6eea4320d3",
      "parents": [
        "1ada5cba6a0318f90e45b38557e7b5206a9cba38"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:02 2008 +0100"
      },
      "message": "x86: offer is_hpet_enabled() on !CONFIG_HPET_TIMER too\n\noffer is_hpet_enabled() on !CONFIG_HPET_TIMER too.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1ada5cba6a0318f90e45b38557e7b5206a9cba38",
      "tree": "262886af88fe55e2de6fb1e878f68bd6b452a3aa",
      "parents": [
        "1077f5a917b7c630231037826b344b2f7f5b903f"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jan 30 13:30:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:02 2008 +0100"
      },
      "message": "clocksource: make clocksource watchdog cycle through online CPUs\n\nThis way it checks if the clocks are synchronized between CPUs too.\nThis might be able to detect slowly drifting TSCs which only\ngo wrong over longer time.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1077f5a917b7c630231037826b344b2f7f5b903f",
      "tree": "e0083b73450d513b16d0f5c0704ad49961dce401",
      "parents": [
        "efd9ac8630e89b9ee7ce64008bd7783952374f37"
      ],
      "author": {
        "name": "Parag Warudkar",
        "email": "parag.warudkar@gmail.com",
        "time": "Wed Jan 30 13:30:01 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:01 2008 +0100"
      },
      "message": "clocksource.c: use init_timer_deferrable for clocksource_watchdog\n\nclocksource_watchdog can use a deferrable timer - reduces wakeups from\nidle per second.\n\nSigned-off-by: Parag Warudkar \u003cparag.warudkar@gmail.com\u003e\nCc: john stultz \u003cjohnstul@us.ibm.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": "efd9ac8630e89b9ee7ce64008bd7783952374f37",
      "tree": "2b06184b9241770aff309a9940f6e400371003a4",
      "parents": [
        "1d76c2622813fbc692b0d323028cfef9ee36051a"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "Geert.Uytterhoeven@sonycom.com",
        "time": "Wed Jan 30 13:30:01 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:01 2008 +0100"
      },
      "message": "time: fold __get_realtime_clock_ts() into getnstimeofday()\n\n  - getnstimeofday() was just a wrapper around __get_realtime_clock_ts()\n  - Replace calls to __get_realtime_clock_ts() by calls to getnstimeofday()\n  - Fix bogus reference to get_realtime_clock_ts(), which never existed\n\nSigned-off-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nCc: john stultz \u003cjohnstul@us.ibm.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": "1d76c2622813fbc692b0d323028cfef9ee36051a",
      "tree": "c94e425658e6532273e4fd0fc5185cf069b5ee3f",
      "parents": [
        "186e3cb8a465bac010ee3b020768d2fa2b505aef"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Wed Jan 30 13:30:01 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:01 2008 +0100"
      },
      "message": "clocksource: make CLOCKSOURCE_MASK bullet-proof\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nCc: john stultz \u003cjohnstul@us.ibm.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": "186e3cb8a465bac010ee3b020768d2fa2b505aef",
      "tree": "c45dd774f91cf9095915c7e4bbec9084fcd06026",
      "parents": [
        "b10db7f0d2b589a7f88dc3026e150756cb437a28"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jan 30 13:30:01 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:01 2008 +0100"
      },
      "message": "timer: clean up tick-broadcast.c\n\nclean up tick-broadcast.c\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b10db7f0d2b589a7f88dc3026e150756cb437a28",
      "tree": "92942041770257c78f7271b79d9860eec10bd77c",
      "parents": [
        "4c9dc6412247abf4972080c51cd16a58c4009c19"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Wed Jan 30 13:30:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:00 2008 +0100"
      },
      "message": "time: more timer related cleanups\n\nI was confused by FSEC \u003d 10^15 NSEC statement, plus small whitespace\nfixes. When there\u0027s copyright, there should be GPL.\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4c9dc6412247abf4972080c51cd16a58c4009c19",
      "tree": "a6c9b22da4ff5537219c03fbbfc919b95a27df2a",
      "parents": [
        "a6fa8e5a6172a5a5bc06ed04f34e50b36c978127"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Wed Jan 30 13:30:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:00 2008 +0100"
      },
      "message": "time: timer cleanups\n\nSmall cleanups to tick-related code. Wrong preempt count is followed\nby BUG(), so it is hardly KERN_WARNING.\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nCc: john stultz \u003cjohnstul@us.ibm.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": "a6fa8e5a6172a5a5bc06ed04f34e50b36c978127",
      "tree": "ec7750ea6438f85e2a1a94722962c7dbc3767100",
      "parents": [
        "213eca7f4888e9817e8076cdab6b9f7295c181f6"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Wed Jan 30 13:30:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:00 2008 +0100"
      },
      "message": "time: clean hungarian notation from timers\n\nClean up hungarian notation from timer code.\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nCc: john stultz \u003cjohnstul@us.ibm.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": "213eca7f4888e9817e8076cdab6b9f7295c181f6",
      "tree": "94b88ee10d6748f20d944eebb2447390ae5b62a4",
      "parents": [
        "85004cc367abc000aa36c0d0e270ab609a68b0cb"
      ],
      "author": {
        "name": "Greg KH",
        "email": "gregkh@suse.de",
        "time": "Wed Jan 30 13:29:58 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:29:58 2008 +0100"
      },
      "message": "kobj: fix threshold_init_device/kobject_uevent_env oops\n\nthe logic in this function is just crazy.  It\u0027s recursive, but we\ncan circumvent the creation for the kobject and whole creation of the\nthreshold_block if some conditions are met.  That\u0027s why we see the\nallocate_threshold_blocks so many times in the callstack, yet only a few\nkobjects created.\n\nThen we blow up in kobject_uevent_env() on the first debug printk.\nWhich means that we are just passing in garbage.\n\nMan, this is one time that comments in code would have been very nice to\nhave, and why forward goto\u0027s into major code blocks are just evil...\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "85004cc367abc000aa36c0d0e270ab609a68b0cb",
      "tree": "5739aae778d67b6d119fe5c668313fc2823e9836",
      "parents": [
        "149a051f82d2b3860fe32fa182dbc83a66274894",
        "3fbd67ad61f6d5a09ea717b56c50bc5c3d8042a8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 30 19:54:24 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 30 19:54:24 2008 +1100"
      },
      "message": "Merge git://git.linux-nfs.org/pub/linux/nfs-2.6\n\n* git://git.linux-nfs.org/pub/linux/nfs-2.6: (118 commits)\n  NFSv4: Iterate through all nfs_clients when the server recalls a delegation\n  NFSv4: Deal more correctly with duplicate delegations\n  NFS: Fix a potential race between umount and nfs_access_cache_shrinker()\n  NFS: Add an asynchronous delegreturn operation for use in nfs_clear_inode\n  nfs: convert NFS_*(inode) helpers to static inline\n  nfs: obliterate NFS_FLAGS macro\n  NFS: Address memory leaks in the NFS client mount option parser\n  nfs4: allow nfsv4 acls on non-regular-files\n  NFS: Optimise away the sigmask code in aio/dio reads and writes\n  SUNRPC: Don\u0027t bother changing the sigmask for asynchronous RPC calls\n  SUNRPC: rpcb_getport_sync() passes incorrect address size to rpc_create()\n  SUNRPC: Clean up block comment preceding rpcb_getport_sync()\n  SUNRPC: Use appropriate argument types in rpcb client\n  SUNRPC: rpcb_getport_sync() should use built-in hostname generator\n  SUNRPC: Clean up functions that free address_strings array\n  NFS: NFS version number is unsigned\n  NLM: Fix a bogus \u0027return\u0027 in nlmclnt_rpc_release\n  NLM: Introduce an arguments structure for nlmclnt_init()\n  NLM/NFS: Use cached nlm_host when calling nlmclnt_proc()\n  NFS: Invoke nlmclnt_init during NFS mount processing\n  ...\n"
    },
    {
      "commit": "149a051f82d2b3860fe32fa182dbc83a66274894",
      "tree": "4ca660bb2ee8ac25661a38587d785cd9f78b2125",
      "parents": [
        "5b10ca19ea4859d3884d10a3eb8495de92089792"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jan 29 22:25:18 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Jan 30 09:11:10 2008 +0100"
      },
      "message": "as-iosched: fix double locking bug in as_merged_requests()\n\nIf the two requests belong to the same io context, we will attempt\nto lock the same lock twice. But swapping contexts is pointless in\nthat case, so just check for rioc \u003d\u003d nioc before doing the double\nlock and copy.\n\nTested-by: Olof Johansson \u003colof@lixom.net\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\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": "34f5b4662bf4b54f22b32ce76ce70eccd7ebc68a",
      "tree": "0c79a6f5579244f56c4c9eb1d9e686f29e6c3c67",
      "parents": [
        "afc881124b8aff83c7a28269ef9d9cfce543256c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 15 14:17:11 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:10 2008 -0500"
      },
      "message": "SUNRPC: Don\u0027t bother changing the sigmask for asynchronous RPC calls\n\nThe caller will never sleep in rpc_execute, so don\u0027t bother setting the\nsigmask.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "afc881124b8aff83c7a28269ef9d9cfce543256c",
      "tree": "856e5196fb781622b21a1c3834f0bea1f0d09137",
      "parents": [
        "67d60213627ec4391cc402bf95753eefde8522af"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jan 14 15:12:08 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:09 2008 -0500"
      },
      "message": "SUNRPC: rpcb_getport_sync() passes incorrect address size to rpc_create()\n\nThe variable \"sin\" is a pointer, so sizeof(sin) is the size of a pointer,\nnot the size of thing that sin points to.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "67d60213627ec4391cc402bf95753eefde8522af",
      "tree": "609efe0d90a01b3ab1b6cedc629b2626c29772b9",
      "parents": [
        "f1ec08cb9492cab579f85f9d937c79788b1dfde3"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jan 14 15:12:01 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:09 2008 -0500"
      },
      "message": "SUNRPC: Clean up block comment preceding rpcb_getport_sync()\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f1ec08cb9492cab579f85f9d937c79788b1dfde3",
      "tree": "d43da0c7d36c547f562b678bb725f688a9be470f",
      "parents": [
        "b91e101fca70319f9ca839311bceff5f44dfc1ed"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jan 14 15:11:53 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:09 2008 -0500"
      },
      "message": "SUNRPC: Use appropriate argument types in rpcb client\n\nClean up: Follow recommendations of Chapter 5 of Documentation/CodingStyle\nand use \"u32\" instead of \"__u32\" for types in definitions that are not\nshared with user space.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b91e101fca70319f9ca839311bceff5f44dfc1ed",
      "tree": "0438cbd52b64b7396e3ff852e0661b06b65bbb67",
      "parents": [
        "33e01dc7f578813cda074ceaeaf68b0f3ffcc393"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jan 14 15:11:46 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:09 2008 -0500"
      },
      "message": "SUNRPC: rpcb_getport_sync() should use built-in hostname generator\n\nrpc_create() can already fill in the hostname with a string representation\nof the server\u0027s IP address, so remove redundant logic in in\nrpcb_getport_sync() that does that.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "33e01dc7f578813cda074ceaeaf68b0f3ffcc393",
      "tree": "a1a84d98ae900b8960bd59742f1e2b767e7cb4f8",
      "parents": [
        "c0e07cb68db353c0ffbb0f82401cf6d79c253aed"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jan 14 12:32:20 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:08 2008 -0500"
      },
      "message": "SUNRPC: Clean up functions that free address_strings array\n\nClean up: document the rule (kfree) and the exceptions\n(RPC_DISPLAY_PROTO and RPC_DISPLAY_NETID) when freeing the objects in\na transport\u0027s address_strings array.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c0e07cb68db353c0ffbb0f82401cf6d79c253aed",
      "tree": "9f27b46baf81d544aef9bdfa4ecec937c5343f93",
      "parents": [
        "65fdf7d264213a9a8de44f9a20e002a26c267a76"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jan 14 12:32:05 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:08 2008 -0500"
      },
      "message": "NFS: NFS version number is unsigned\n\nRPC protocol version numbers are unsigned.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\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": "86d61d8638ddf9cdf87df26c7fa69b2804425fbe",
      "tree": "881e245cd44cc3354e5d60adc3a5b8907ef4f4bf",
      "parents": [
        "b454ae906085cf7774fb4756746680c9b03b6f84"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 07 21:16:56 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:06 2008 -0500"
      },
      "message": "SUNRPC: Fix up constant string declarations in struct rpcbind_args\n\n...and eliminate an unnecessary cast.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b454ae906085cf7774fb4756746680c9b03b6f84",
      "tree": "c5f84a9524dd7a9c7470ef0782e2d79df94d3f5e",
      "parents": [
        "cab6fc1b77c3ec4471d7d54ff6db9ad2dd59c2f5"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jan 07 18:34:48 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:04 2008 -0500"
      },
      "message": "SUNRPC: fewer conditionals in the format_ip_address routines\n\nClean up: have the set up routines explicitly pass the strings to be used\nfor the transport name and NETID.  This removes a number of conditionals\nand dependencies on rpc_xprt.prot, which is overloaded.\n\nTighten up type checking on the address_strings array while we\u0027re at it.\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": "7df089952fca41cb336733e1167c0a25e5a025d8",
      "tree": "8258f098e1b43cc15fa4c6299d77b6d69a7f45ff",
      "parents": [
        "59dca3b28cb915745019d4f4c27d97b6b6ab12c6"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 20 14:54:27 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:00 2008 -0500"
      },
      "message": "SUNRPC: Fix use of copy_to_user() in gss_pipe_upcall()\n\nThe gss_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\nCan rpc_pipefs actually retry a partially completed upcall read?  If\nnot, then gss_pipe_upcall() should punt any partial read, just like the\nupcall logic in net/sunrpc/cache.c.\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": "ba7392bb37cb12781890f45d7ddee1618e33a036",
      "tree": "4c9a6cb3b22cae407f810c214275ab107ee3fc77",
      "parents": [
        "2881ae74e68ecfe3b32a90936e5d93a9ba598c3a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 20 16:03:55 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:59 2008 -0500"
      },
      "message": "SUNRPC: Add support for per-client timeout values\n\nIn order to be able to support setting the timeo and retrans parameters on\na per-mountpoint basis, we move the rpc_timeout structure into the\nrpc_clnt.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2881ae74e68ecfe3b32a90936e5d93a9ba598c3a",
      "tree": "d454fdf3b5da159935ca268648d45b5d1a29027d",
      "parents": [
        "698b6d088e8a5d907596c689d5ae9109611c5b59"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 20 16:03:54 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:58 2008 -0500"
      },
      "message": "SUNRPC: Clean up the transport timeout initialisation\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "698b6d088e8a5d907596c689d5ae9109611c5b59",
      "tree": "0e6465b1647fbd731fb2794d34ab5efa14e2465d",
      "parents": [
        "69dd716c5ffd89f5ba14ffb871d633ecea74d13a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 20 16:03:53 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:58 2008 -0500"
      },
      "message": "SUNRPC: cleanup for rpc_new_client()\n\nThere is no reason why we shouldn\u0027t just pass the rpc_create_args.\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": "4392f2592297876967191238a341667a6d4fc456",
      "tree": "752a74033c647bd659d17e57155d23418d6e333d",
      "parents": [
        "cc38bac3a0093b3b7928efc6ff8e9faf9e75f41d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:57:01 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:51 2008 -0500"
      },
      "message": "NFS: Increase size of cl_ipaddr field to hold IPv6 addresses\n\nThe nfs_client\u0027s cl_ipaddr field needs to be larger to hold strings that\nrepresent 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": "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": "0fb2b7e945f55a8317e5f58db7c068aab5b825a1",
      "tree": "3463c1bfe730486292309d0851ad2dd94c081e23",
      "parents": [
        "0a48f5d70fa9e87269d076fe27f3563f4375c479"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:56:46 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:50 2008 -0500"
      },
      "message": "SUNRPC: Move universal address definitions to global header\n\nUniversal addresses are defined in RFC 1833 and clarified in RFC 3530.  We\nneed to use them in several places in the NFS and RPC clients, so move the\nrelevant definition and block comment to an appropriate global include\nfile.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0a48f5d70fa9e87269d076fe27f3563f4375c479",
      "tree": "07190661a43c9492d305c25a9615c2340b91b6a5",
      "parents": [
        "9f6ad26d2abfd9a2ec4a34b934ca75c4239ab8cf"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:56:38 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:50 2008 -0500"
      },
      "message": "SUNRPC: RPC version numbers are u32\n\nClean up: use correct type for RPC version numbers in rpcbind client.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9f6ad26d2abfd9a2ec4a34b934ca75c4239ab8cf",
      "tree": "9b02d2180d4ff4bfce6db27f856aa119bbc1ac18",
      "parents": [
        "510deb0d7035d4fd465627deb3a119ca854f9e00"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:56:31 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:50 2008 -0500"
      },
      "message": "SUNRPC: Fix socket address handling in rpcb_clnt\n\nMake sure rpcb_clnt passes the correct address length to rpc_create().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "510deb0d7035d4fd465627deb3a119ca854f9e00",
      "tree": "ffc7af675601c88ef8843ddb5a64db8b8da7ee91",
      "parents": [
        "40c553193df41920de659f0446e5d214c862e827"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:56:24 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:49 2008 -0500"
      },
      "message": "SUNRPC: rpc_create() default hostname should support AF_INET6 addresses\n\nIf the ULP doesn\u0027t pass a hostname string to rpc_create(), it manufactures\none based on the passed-in address.  Be smart enough to handle an AF_INET6\naddress properly in this case.\n\nMove the default servername logic before the xprt_create_transport() call\nto simplify error handling in rpc_create().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "40c553193df41920de659f0446e5d214c862e827"
}
