)]}'
{
  "log": [
    {
      "commit": "0ef97dcfce4179a2eba046b855ee2f91d6f1b414",
      "tree": "d5a29275a427dafd8fce0131b58f215c6252d3e2",
      "parents": [
        "16b1c1cd71176ab0a76b26818fbf12db9183ed57"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:20 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:12:02 2012 -0400"
      },
      "message": "nfs: don\u0027t open in -\u003ed_revalidate\n\nNFSv4 can\u0027t do reliable opens in d_revalidate, since it cannot know whether a\nmount needs to be followed or not.  It does check d_mountpoint() on the dentry,\nwhich can result in a weird error if the VFS found that the mount does not in\nfact need to be followed, e.g.:\n\n  # mount --bind /mnt/nfs /mnt/nfs-clone\n  # echo something \u003e /mnt/nfs/tmp/bar\n  # echo x \u003e /tmp/file\n  # mount --bind /tmp/file /mnt/nfs-clone/tmp/bar\n  # cat  /mnt/nfs/tmp/bar\n  cat: /mnt/nfs/tmp/bar: Not a directory\n\nWhich should, by any sane filesystem, result in \"something\" being printed.\n\nSo instead do the open in f_op-\u003eopen() and in the unlikely case that the cached\ndentry turned out to be invalid, drop the dentry and return EOPENSTALE to let\nthe VFS retry.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2701d086dbfca03b2d28b25c6dc11dd78d0e26ad",
      "tree": "69f81dd2a979600cd3ff4f1861c6d7ef5c25b1ed",
      "parents": [
        "82be417aa37c05116e310b0f2171187ea389f89b"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu May 24 13:13:24 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 24 16:15:48 2012 -0400"
      },
      "message": "NFSv4.1 add nfs_inode book keeping for mdsthreshold\n\nKeep track of the number of bytes read or written via buffered, direct, and\nmem-mapped i/o for use by mdsthreshold size_io hints.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "14546c337588370dced50dcaf43398939be9829e",
      "tree": "4eca561ff63c86ce9fcbd4dd2cc96cdf3989283e",
      "parents": [
        "1385b8117325e79f74c1e7d1cbf45c789deb85c5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun May 06 19:10:59 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 08 12:53:21 2012 -0400"
      },
      "message": "NFS: Don\u0027t do a full flush to disk on close() if we hold a delegation\n\nIf we hold a delegation then we know that it should be safe to continue\nto cache the data beyond the close(). However since the process that wrote\nthe data may die after close(), we may still want to send the data to\nserver before those RPCSEC_GSS credentials expire. We therefore compromise\nby starting writeback to the server, but don\u0027t wait for completion.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0195c00244dc2e9f522475868fa278c473ba7339",
      "tree": "f97ca98ae64ede2c33ad3de05ed7bbfa4f4495ed",
      "parents": [
        "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
        "141124c02059eee9dbc5c86ea797b1ca888e77f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "message": "Merge tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system\n\nPull \"Disintegrate and delete asm/system.h\" from David Howells:\n \"Here are a bunch of patches to disintegrate asm/system.h into a set of\n  separate bits to relieve the problem of circular inclusion\n  dependencies.\n\n  I\u0027ve built all the working defconfigs from all the arches that I can\n  and made sure that they don\u0027t break.\n\n  The reason for these patches is that I recently encountered a circular\n  dependency problem that came about when I produced some patches to\n  optimise get_order() by rewriting it to use ilog2().\n\n  This uses bitops - and on the SH arch asm/bitops.h drags in\n  asm-generic/get_order.h by a circuituous route involving asm/system.h.\n\n  The main difficulty seems to be asm/system.h.  It holds a number of\n  low level bits with no/few dependencies that are commonly used (eg.\n  memory barriers) and a number of bits with more dependencies that\n  aren\u0027t used in many places (eg.  switch_to()).\n\n  These patches break asm/system.h up into the following core pieces:\n\n    (1) asm/barrier.h\n\n        Move memory barriers here.  This already done for MIPS and Alpha.\n\n    (2) asm/switch_to.h\n\n        Move switch_to() and related stuff here.\n\n    (3) asm/exec.h\n\n        Move arch_align_stack() here.  Other process execution related bits\n        could perhaps go here from asm/processor.h.\n\n    (4) asm/cmpxchg.h\n\n        Move xchg() and cmpxchg() here as they\u0027re full word atomic ops and\n        frequently used by atomic_xchg() and atomic_cmpxchg().\n\n    (5) asm/bug.h\n\n        Move die() and related bits.\n\n    (6) asm/auxvec.h\n\n        Move AT_VECTOR_SIZE_ARCH here.\n\n  Other arch headers are created as needed on a per-arch basis.\"\n\nFixed up some conflicts from other header file cleanups and moving code\naround that has happened in the meantime, so David\u0027s testing is somewhat\nweakened by that.  We\u0027ll find out anything that got broken and fix it..\n\n* tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)\n  Delete all instances of asm/system.h\n  Remove all #inclusions of asm/system.h\n  Add #includes needed to permit the removal of asm/system.h\n  Move all declarations of free_initmem() to linux/mm.h\n  Disintegrate asm/system.h for OpenRISC\n  Split arch_align_stack() out from asm-generic/system.h\n  Split the switch_to() wrapper out of asm-generic/system.h\n  Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\n  Create asm-generic/barrier.h\n  Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h\n  Disintegrate asm/system.h for Xtensa\n  Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]\n  Disintegrate asm/system.h for Tile\n  Disintegrate asm/system.h for Sparc\n  Disintegrate asm/system.h for SH\n  Disintegrate asm/system.h for Score\n  Disintegrate asm/system.h for S390\n  Disintegrate asm/system.h for PowerPC\n  Disintegrate asm/system.h for PA-RISC\n  Disintegrate asm/system.h for MN10300\n  ...\n"
    },
    {
      "commit": "9ffc93f203c18a70623f21950f1dd473c9ec48cd",
      "tree": "1eb3536ae183b0bfbf7f5152a6fe4f430ae881c2",
      "parents": [
        "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Remove all #inclusions of asm/system.h\n\nRemove all #inclusions of asm/system.h preparatory to splitting and killing\nit.  Performed with the following command:\n\nperl -p -i -e \u0027s!^#\\s*include\\s*\u003casm/system[.]h\u003e.*\\n!!\u0027 `grep -Irl \u0027^#\\s*include\\s*\u003casm/system[.]h\u003e\u0027 *`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "2aeb98f498ce37742b743080fdc6c8cf64053599",
      "tree": "7ee6fddcb6006adfb40c90d5be00f5029ee0c1eb",
      "parents": [
        "536e43d12b9517bbbf6114cd1a12be27857a4d7a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 17 22:04:26 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:08 2012 -0500"
      },
      "message": "NFS: Ensure that mmapped pages remain stable during writeback\n\nEnsure that nfs_vm_page_mkwrite() waits for the page writeback to\ncomplete before the application is allowed to modify page\ncontents.\nThe main reason for wanting to do this in NFS is to ensure that the\nserver doesn\u0027t get confused if we have to resend the RPC request\ndue to a dropped/missed reply.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2edb6bc3852c681c0d948245bd55108dc6407604",
      "tree": "3a84180074a9b84eed53beec526e20ea6f4109b0",
      "parents": [
        "43717c7daebf10b43f12e68512484b3095bb1ba5"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Nov 16 11:46:31 2011 +1100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 05 10:42:39 2012 -0500"
      },
      "message": "NFS - fix recent breakage to NFS error handling.\n\nFrom c6d615d2b97fe305cbf123a8751ced859dca1d5e Mon Sep 17 00:00:00 2001\nFrom: NeilBrown \u003cneilb@suse.de\u003e\nDate: Wed, 16 Nov 2011 09:39:05 +1100\nSubject: [PATCH] NFS - fix recent breakage to NFS error handling.\n\ncommit 02c24a82187d5a628c68edfe71ae60dc135cd178 made a small and\npresumably unintended change to write error handling in NFS.\n\nPreviously an error from filemap_write_and_wait_range would only be of\ninterest if nfs_file_fsync did not return an error.  After this commit,\nan error from filemap_write_and_wait_range would mean that (the rest of)\nnfs_file_fsync would not even be called.\n\nThis means that:\n 1/ you are more likely to see EIO than e.g. EDQUOT or ENOSPC.\n 2/ NFS_CONTEXT_ERROR_WRITE remains set for longer so more writes are\n    synchronous.\n\nThis patch restores previous behaviour.\n\nCc: stable@kernel.org\nCc: Josef Bacik \u003cjosef@redhat.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6c52961743f38747401b47127b82159ab6d8a7a4",
      "tree": "cfc3ba22db14f6402e567b70cad424ffd43545a6",
      "parents": [
        "652f89f64fabcdae9143ee2b4253cfa838fb0279"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 15 18:38:10 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 15 18:44:36 2011 -0500"
      },
      "message": "NFS: Fix a regression in nfs_file_llseek()\n\nAfter commit 06222e491e663dac939f04b125c9dc52126a75c4 (fs: handle\nSEEK_HOLE/SEEK_DATA properly in all fs\u0027s that define their own llseek)\nthe behaviour of llseek() was changed so that it always revalidates\nthe file size. The bug appears to be due to a logic error in the\nafore-mentioned commit, which always evaluates to \u0027true\u0027.\n\nReported-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org [\u003e\u003d3.1]\n"
    },
    {
      "commit": "0486958f57a496212e3c1e3d9194deebba3dc3d4",
      "tree": "f8a0c8987f077a97ed4f4a6150de6aadbf83af7a",
      "parents": [
        "1788ea6e3b2a58cf4fb00206e362d9caff8d86a7"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Nov 04 13:31:22 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 16:39:11 2011 -0400"
      },
      "message": "nfs: move nfs_file_operations declaration to bottom of file.c (try #2)\n\n...a remove a set of forward declarations.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1788ea6e3b2a58cf4fb00206e362d9caff8d86a7",
      "tree": "24846fddf8b55f516f365a735defd79b6ea6d28a",
      "parents": [
        "1583171492eb514e267c7b51e96846b38de0f544"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Nov 04 13:31:21 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 16:39:04 2011 -0400"
      },
      "message": "nfs: when attempting to open a directory, fall back on normal lookup (try #5)\n\ncommit d953126 changed how nfs_atomic_lookup handles an -EISDIR return\nfrom an OPEN call. Prior to that patch, that caused the client to fall\nback to doing a normal lookup. When that patch went in, the code began\nreturning that error to userspace. The d_revalidate codepath however\nnever had the corresponding change, so it was still possible to end up\nwith a NULL ctx-\u003estate pointer after that.\n\nThat patch caused a regression. When we attempt to open a directory that\ndoes not have a cached dentry, that open now errors out with EISDIR. If\nyou attempt the same open with a cached dentry, it will succeed.\n\nFix this by reverting the change in nfs_atomic_lookup and allowing\nattempts to open directories to fall back to a normal lookup\n\nAlso, add a NFSv4-specific f_ops-\u003eopen routine that just returns\n-ENOTDIR. This should never be called if things are working properly,\nbut if it ever is, then the dprintk may help in debugging.\n\nTo facilitate this, a new file_operations field is also added to the\nnfs_rpc_ops struct.\n\nCc: stable@kernel.org\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "31cbecb4ab538f433145bc5a46f3bea9b9627031",
      "tree": "d6206d42dea7298f7ef05fd1f7bf474245f0d43a",
      "parents": [
        "2b72c9ccd22c4a3299e5a358dcd639fb253730f4",
        "278c023a99b0d6b471d0f4a79835c703482e29ac"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:56:40 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:56:40 2011 -0400"
      },
      "message": "Merge branch \u0027osd-devel\u0027 into nfs-for-next\n"
    },
    {
      "commit": "6f276e49fd108362be3fd67154aaaacf872ea026",
      "tree": "e44765996007b20727873ae26784ee682c23e425",
      "parents": [
        "e414966b81a74745ac8d6bfeda0d95fb721e6d91"
      ],
      "author": {
        "name": "Rakib Mullick",
        "email": "rakib.mullick@gmail.com",
        "time": "Tue Nov 01 12:16:15 2011 +0600"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:49:09 2011 -0400"
      },
      "message": "nfs: Fix unused variable warning from file.c\n\nFix the following unused variable warning.\n\nfs/nfs/file.c: In function ‘nfs_file_release’:\nfs/nfs/file.c:140:17: warning: unused variable ‘dentry’\nfs/nfs/file.c: In function ‘nfs_file_read’:\nfs/nfs/file.c:237:9: warning: unused variable ‘count’\n\nSigned-off-by: Rakib Mullick \u003crakib.mullick@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "79835a710d6ff811659c8de46f89c7577c3b8cc6",
      "tree": "0c0c3ab2fc4bfb506bc32e7afc18cad31e4086b9",
      "parents": [
        "4cce0e28b932c11454f75d1c1fae674600c23fbf"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Sep 15 16:06:52 2011 -0700"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:59:00 2011 +0200"
      },
      "message": "nfs: drop unnecessary locking in llseek\n\nThis makes NFS follow the standard generic_file_llseek locking scheme.\n\nCc: Trond.Myklebust@netapp.com\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "ef3d0fd27e90f67e35da516dafc1482c82939a60",
      "tree": "dea852eab2a52782867becffb11bce2577ed2b91",
      "parents": [
        "847cc6371ba820763773e993000410d6d8d23515"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Sep 15 16:06:48 2011 -0700"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:58:58 2011 +0200"
      },
      "message": "vfs: do (nearly) lockless generic_file_llseek\n\nThe i_mutex lock use of generic _file_llseek hurts.  Independent processes\naccessing the same file synchronize over a single lock, even though\nthey have no need for synchronization at all.\n\nUnder high utilization this can cause llseek to scale very poorly on larger\nsystems.\n\nThis patch does some rethinking of the llseek locking model:\n\nFirst the 64bit f_pos is not necessarily atomic without locks\non 32bit systems. This can already cause races with read() today.\nThis was discussed on linux-kernel in the past and deemed acceptable.\nThe patch does not change that.\n\nLet\u0027s look at the different seek variants:\n\nSEEK_SET: Doesn\u0027t really need any locking.\nIf there\u0027s a race one writer wins, the other loses.\n\nFor 32bit the non atomic update races against read()\nstay the same. Without a lock they can also happen\nagainst write() now.  The read() race was deemed\nacceptable in past discussions, and I think if it\u0027s\nok for read it\u0027s ok for write too.\n\n\u003d\u003e Don\u0027t need a lock.\n\nSEEK_END: This behaves like SEEK_SET plus it reads\nthe maximum size too. Reading the maximum size would have the\n32bit atomic problem. But luckily we already have a way to read\nthe maximum size without locking (i_size_read), so we\ncan just use that instead.\n\nWithout i_mutex there is no synchronization with write() anymore,\nhowever since the write() update is atomic on 64bit it just behaves\nlike another racy SEEK_SET.  On non atomic 32bit it\u0027s the same\nas SEEK_SET.\n\n\u003d\u003e Don\u0027t need a lock, but need to use i_size_read()\n\nSEEK_CUR: This has a read-modify-write race window\non the same file. One could argue that any application\ndoing unsynchronized seeks on the same file is already broken.\nBut for the sake of not adding a regression here I\u0027m\nusing the file-\u003ef_lock to synchronize this. Using this\nlock is much better than the inode mutex because it doesn\u0027t\nsynchronize between processes.\n\n\u003d\u003e So still need a lock, but can use a f_lock.\n\nThis patch implements this new scheme in generic_file_llseek.\nI dropped generic_file_llseek_unlocked and changed all callers.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "02c24a82187d5a628c68edfe71ae60dc135cd178",
      "tree": "c8dbaba4d82e2b20ed4335910a564a1f7d90fcf6",
      "parents": [
        "22735068d53c7115e384bc88dea95b17e76a6839"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sat Jul 16 20:44:56 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:59 2011 -0400"
      },
      "message": "fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n\nBtrfs needs to be able to control how filemap_write_and_wait_range() is called\nin fsync to make it less of a painful operation, so push down taking i_mutex and\nthe calling of filemap_write_and_wait() down into the -\u003efsync() handlers.  Some\nfile systems can drop taking the i_mutex altogether it seems, like ext3 and\nocfs2.  For correctness sake I just pushed everything down in all cases to make\nsure that we keep the current behavior the same for everybody, and then each\nindividual fs maintainer can make up their mind about what to do from there.\nThanks,\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "06222e491e663dac939f04b125c9dc52126a75c4",
      "tree": "99636fd666c8148a5bf58ea4844263d4b3a36310",
      "parents": [
        "c334b1138bd44bea578eab7971c59bd9212a1093"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Jul 18 13:21:38 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:58 2011 -0400"
      },
      "message": "fs: handle SEEK_HOLE/SEEK_DATA properly in all fs\u0027s that define their own llseek\n\nThis converts everybody to handle SEEK_HOLE/SEEK_DATA properly.  In some cases\nwe just return -EINVAL, in others we do the normal generic thing, and in others\nwe\u0027re simply making sure that the properly due-dilligence is done.  For example\nin NFS/CIFS we need to make sure the file size is update properly for the\nSEEK_HOLE and SEEK_DATA case, but since it calls the generic llseek stuff itself\nthat is all we have to do.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "ef31153786bc1e4304e6b9422cc8b9efef455611",
      "tree": "32739af2c6b0f2ab0fdf05e84b674d94721ffa6d",
      "parents": [
        "de4b15c7e9fe9fdd1eb6333be0a08c822db1ca0e"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Sat Mar 12 02:58:10 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 24 15:49:48 2011 -0400"
      },
      "message": "NFSv4.1 convert layoutcommit sync to boolean\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "863a3c6c686d5773f7192a4818769e15db12ce08",
      "tree": "3ff8bf04c583aa0c16ae30b0821bc9148d49a47a",
      "parents": [
        "e0c2b3801828aadb65dec9f67f7c6b7a675ad007"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Mar 23 13:27:54 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 23 15:29:04 2011 -0400"
      },
      "message": "NFSv4.1: layoutcommit\n\nThe filelayout driver sends LAYOUTCOMMIT only when COMMIT goes to\nthe data server (as opposed to the MDS) and the data server WRITE\nis not NFS_FILE_SYNC.\n\nOnly whole file layout support means that there is only one IOMODE_RW layout\nsegment.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildeb@us.ibm.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Mingyang Guo \u003cguomingyang@nrchpc.ac.cn\u003e\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\nSigned-off-by: Zhang Jingwang \u003czhangjingwang@nrchpc.ac.cn\u003e\nTested-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bae724ef95b0d0a1f4518f5451e7c8aabc41f820",
      "tree": "07a2c1866698f183235f7133ac7c004121717bf8",
      "parents": [
        "94ad1c80e28f9700c84b4d28d1e5302ddf63a6fd"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Tue Mar 01 01:34:15 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:38:42 2011 -0500"
      },
      "message": "NFSv4.1: shift pnfs_update_layout locations\n\nMove the pnfs_update_layout call location to nfs_pageio_do_add_request().\nGrab the lseg sent in the doio function to nfs_read_rpcsetup and attach\nit to each nfs_read_data so it can be sent to the layout driver.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildeb@us.ibm.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Oleg Drokin \u003cgreen@linuxhacker.ru\u003e\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "21ac19d484a8ffb66f64487846c8d53afef04d2b",
      "tree": "684f635b6d009a05e50499dfec4f7a7f96e0829d",
      "parents": [
        "08a22b392a141c201d7ed4d435de942aa853acd3"
      ],
      "author": {
        "name": "Sergey Vlasov",
        "email": "vsu@altlinux.ru",
        "time": "Sun Nov 28 21:04:05 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 07 19:30:43 2010 -0500"
      },
      "message": "NFS: Fix fcntl F_GETLK not reporting some conflicts\n\nThe commit 129a84de2347002f09721cda3155ccfd19fade40 (locks: fix F_GETLK\nregression (failure to find conflicts)) fixed the posix_test_lock()\nfunction by itself, however, its usage in NFS changed by the commit\n9d6a8c5c213e34c475e72b245a8eb709258e968c (locks: give posix_test_lock\nsame interface as -\u003elock) remained broken - subsequent NFS-specific\nlocking code received F_UNLCK instead of the user-specified lock type.\nTo fix the problem, fl-\u003efl_type needs to be saved before the\nposix_test_lock() call and restored if no local conflicts were reported.\n\nReference: https://bugzilla.kernel.org/show_bug.cgi?id\u003d23892\nTested-by: Alexander Morozov \u003camorozov@etersoft.ru\u003e\nSigned-off-by: Sergey Vlasov \u003cvsu@altlinux.ru\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "51ee4b84f5c86935b438d6636f34b523edb415a8",
      "tree": "c60e0da8f8b6393477d79ef6d6ce321ee3b8ecaa",
      "parents": [
        "96f935934591b72f5b05fd6923bc8cdcae92f2e5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 31 08:35:10 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 31 06:35:15 2010 -0700"
      },
      "message": "locks: let the caller free file_lock on -\u003esetlease failure\n\nThe caller allocated it, the caller should free it.\n\nThe only issue so far is that we could change the flp pointer even on an\nerror return if the fl_change callback failed.  But we can simply move\nthe flp assignment after the fl_change invocation, as the callers don\u0027t\ncare about the flp return value if the setlease call failed.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05fa3135fdc7b9b510b502a35b6b97d2b38c6f48",
      "tree": "d533e8112111202ae890b2061c0386669002d080",
      "parents": [
        "096657b65e1ac197e20be5ce7cff6b6ca2532787"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 30 17:31:15 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 18:08:15 2010 -0700"
      },
      "message": "locks: fix setlease methods to free passed-in lock\n\nWe modified setlease to require the caller to allocate the new lease in\nthe case of creating a new lease, but forgot to fix up the filesystem\nmethods.\n\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Steve French \u003csfrench@samba.org\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a4dd8dce14014665862ce7911b38cb2c69e366dd",
      "tree": "00e79b2845d5d49abcd83cf253db83a52d482265",
      "parents": [
        "b18cae4224bde7e5a332c19bc99247b2098ea232",
        "411b5e05617593efebc06241dbc56f42150f2abe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:52:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:52:09 2010 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  net/sunrpc: Use static const char arrays\n  nfs4: fix channel attribute sanity-checks\n  NFSv4.1: Use more sensible names for \u0027initialize_mountpoint\u0027\n  NFSv4.1: pnfs: filelayout: add driver\u0027s LAYOUTGET and GETDEVICEINFO infrastructure\n  NFSv4.1: pnfs: add LAYOUTGET and GETDEVICEINFO infrastructure\n  NFS: client needs to maintain list of inodes with active layouts\n  NFS: create and destroy inode\u0027s layout cache\n  NFSv4.1: pnfs: filelayout: introduce minimal file layout driver\n  NFSv4.1: pnfs: full mount/umount infrastructure\n  NFS: set layout driver\n  NFS: ask for layouttypes during v4 fsinfo call\n  NFS: change stateid to be a union\n  NFSv4.1: pnfsd, pnfs: protocol level pnfs constants\n  SUNRPC: define xdr_decode_opaque_fixed\n  NFSD: remove duplicate NFS4_STATEID_SIZE\n"
    },
    {
      "commit": "74eb94b218d087798a52c0b4f1379b635287a4b8",
      "tree": "4e467c3014c2b1169f6f71d88cf5d1598f3ce28e",
      "parents": [
        "7b6181e06841f5ad15c4ff708b967b4db65a64de",
        "9a84d38031c258a17bb39beed1e500eadee67407"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 13:48:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 13:48:29 2010 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (67 commits)\n  SUNRPC: Cleanup duplicate assignment in rpcauth_refreshcred\n  nfs: fix unchecked value\n  Ask for time_delta during fsinfo probe\n  Revalidate caches on lock\n  SUNRPC: After calling xprt_release(), we must restart from call_reserve\n  NFSv4: Fix up the \u0027dircount\u0027 hint in encode_readdir\n  NFSv4: Clean up nfs4_decode_dirent\n  NFSv4: nfs4_decode_dirent must clear entry-\u003efattr-\u003evalid\n  NFSv4: Fix a regression in decode_getfattr\n  NFSv4: Fix up decode_attr_filehandle() to handle the case of empty fh pointer\n  NFS: Ensure we check all allocation return values in new readdir code\n  NFS: Readdir plus in v4\n  NFS: introduce generic decode_getattr function\n  NFS: check xdr_decode for errors\n  NFS: nfs_readdir_filler catch all errors\n  NFS: readdir with vmapped pages\n  NFS: remove page size checking code\n  NFS: decode_dirent should use an xdr_stream\n  SUNRPC: Add a helper function xdr_inline_peek\n  NFS: remove readdir plus limit\n  ...\n"
    },
    {
      "commit": "e5e940170b2136ad4d5483ef293ae284b9cc8d53",
      "tree": "1568bf55addee6a6fdc091026083426b087e68df",
      "parents": [
        "7ab672ce312133ee4a5d85b71447b2b334403681"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Oct 20 00:18:01 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:10 2010 -0400"
      },
      "message": "NFS: create and destroy inode\u0027s layout cache\n\nAt the start of the io paths, try to grab the relevant layout\ninformation.  This will initiate the inode\u0027s layout cache, but\nstubs ensure the cache stays empty.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildebz@umich.edu\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6b96724e507fecc3e6440e86426fe4f44359ed66",
      "tree": "5b38131405301f4dd536a11f44ff0d5e6785d266",
      "parents": [
        "118df3d17f11733b294ea2cd988d56ee376ef9fd"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Tue Oct 12 16:30:05 2010 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 17:59:56 2010 -0400"
      },
      "message": "Revalidate caches on lock\n\nInstead of blindly zapping the caches, attempt to revalidate them if\nthe server has indicated that it uses high resolution timestamps.\n\nNFSv4 should be able to always revalidate the cache since the\nprotocol requires the update of the change attribute on modification of\nthe data.  In reality, there are servers (the Linux NFS server\nfor example) that do not obey this requirement and use ctime as the\nbasis for change attribute.  Long term, the server needs to be fixed.\nAt this time, and to be on the safe side, continue zapping caches if\nthe server indicates that it does not have a high resolution timestamp.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bc4866b6e0b44f8ea0df22a16e5927714beb4983",
      "tree": "be5249600ca096b2ea4cf0ad6d8eea73cdeed966",
      "parents": [
        "955a857e062642cd3ebe1dc7bb38c0f85d8f8f17"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 04 17:59:08 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 19 19:37:54 2010 -0400"
      },
      "message": "NFS: Don\u0027t SIGBUS if nfs_vm_page_mkwrite races with a cache invalidation\n\nIn the case where we lock the page, and then find out that the page has\nbeen thrown out of the page cache, we should just return VM_FAULT_NOPAGE.\nThis is what block_page_mkwrite() does in these situations.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "5eebde23223aeb0ad2d9e3be6590ff8bbfab0fc2",
      "tree": "7cfabe0191855550292b0a0c9b317315dffb2a50",
      "parents": [
        "63185942c5f138c62de16b4cbc7eee494a58fea8"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Thu Sep 23 08:55:58 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Sep 23 08:55:58 2010 -0400"
      },
      "message": "nfs: introduce mount option \u0027-olocal_lock\u0027 to make locks local\n\nNFS clients since 2.6.12 support flock locks by emulating fcntl byte-range\nlocks. Due to this, some windows applications which seem to use both flock\n(share mode lock mapped as flock by Samba) and fcntl locks sequentially on\nthe same file, can\u0027t lock as they falsely assume the file is already locked.\nThe problem was reported on a setup with windows clients accessing excel files\non a Samba exported share which is originally a NFS mount from a NetApp filer.\n\nOlder NFS clients (\u003c 2.6.12) did not see this problem as flock locks were\nconsidered local. To support legacy flock behavior, this patch adds a mount\noption \"-olocal_lock\u003d\" which can take the following values:\n\n   \u0027none\u0027  \t\t- Neither flock locks nor POSIX locks are local\n   \u0027flock\u0027 \t\t- flock locks are local\n   \u0027posix\u0027 \t\t- fcntl/POSIX locks are local\n   \u0027all\u0027\t\t- Both flock locks and POSIX locks are local\n\nTesting:\n\n   - This patch was tested by using -olocal_lock option with different values\n     and the NLM calls were noted from the network packet captured.\n\n     \u0027none\u0027  - NLM calls were seen during both flock() and fcntl(), flock lock\n   \t       was granted, fcntl was denied\n     \u0027flock\u0027 - no NLM calls for flock(), NLM call was seen for fcntl(),\n   \t       granted\n     \u0027posix\u0027 - NLM call was seen for flock() - granted, no NLM call for fcntl()\n     \u0027all\u0027   - no NLM calls were seen during both flock() and fcntl()\n\n   - No bugs were seen during NFSv4 locking/unlocking in general and NFSv4\n     reboot recovery.\n\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b1bde04c6d9a120dec602cc8a70b8a7f21600883",
      "tree": "2d2a53e0978e3f8e3d320260dc78bbbbbe749651",
      "parents": [
        "55576244eba805307a2b2b6a145b8f85f8c7c124"
      ],
      "author": {
        "name": "Fabio Olive Leite",
        "email": "fleite@redhat.com",
        "time": "Sun Sep 12 19:55:25 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Sep 12 19:55:25 2010 -0400"
      },
      "message": "Remove incorrect do_vfs_lock message\n\nThe do_vfs_lock function on fs/nfs/file.c is only called if NLM is\nnot being used, via the -onolock mount option. Therefore it cannot\nreally be \"out of sync with lock manager\" when the local locking\nfunction called returns an error, as there will be no corresponding\ncall to the NLM. For details, simply check the if/else on do_setlk\nand do_unlk on fs/nfs/file.c.\n\nSigned-Off-By: Fabio Olive Leite \u003cfleite@redhat.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0702099bd86c33c2dcdbd3963433a61f3f503901",
      "tree": "ebbee6ecfe26f139f44aa3b973f4728ebc9d11a9",
      "parents": [
        "15cdc644b268a9a9ce73ce0b153129222c254b7b"
      ],
      "author": {
        "name": "J. R. Okajima",
        "email": "hooanon05@yahoo.co.jp",
        "time": "Wed Aug 11 13:10:16 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 11 13:10:16 2010 -0400"
      },
      "message": "NFS: fix the return value of nfs_file_fsync()\n\nBy the commit af7fa16 2010-08-03 NFS: Fix up the fsync code\nclose(2) became returning the non-zero value even if it went well.\nnfs_file_fsync() should return 0 when \"status\" is positive.\n\nSigned-off-by: J. R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5df6b8e65ad0f2eaee202ff002ac00d1ac605315",
      "tree": "2eff6606f8e39dc1fd7eb8a05feb2a9927151805",
      "parents": [
        "fe21ea18c742ab0eb8f6f8ebc543374839a02a87",
        "3dce9a5c3a39a664e372886ea86c42ae7ae33dfc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:19:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:19:36 2010 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.36\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.36\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (42 commits)\n  NFS: NFSv4.1 is no longer a \"developer only\" feature\n  NFS: NFS_V4 is no longer an EXPERIMENTAL feature\n  NFS: Fix /proc/mount for legacy binary interface\n  NFS: Fix the locking in nfs4_callback_getattr\n  SUNRPC: Defer deleting the security context until gss_do_free_ctx()\n  SUNRPC: prevent task_cleanup running on freed xprt\n  SUNRPC: Reduce asynchronous RPC task stack usage\n  SUNRPC: Move the bound cred to struct rpc_rqst\n  SUNRPC: Clean up of rpc_bindcred()\n  SUNRPC: Move remaining RPC client related task initialisation into clnt.c\n  SUNRPC: Ensure that rpc_exit() always wakes up a sleeping task\n  SUNRPC: Make the credential cache hashtable size configurable\n  SUNRPC: Store the hashtable size in struct rpc_cred_cache\n  NFS: Ensure the AUTH_UNIX credcache is allocated dynamically\n  NFS: Fix the NFS users of rpc_restart_call()\n  SUNRPC: The function rpc_restart_call() should return success/failure\n  NFSv4: Get rid of the bogus RPC_ASSASSINATED(task) checks\n  NFSv4: Clean up the process of renewing the NFSv4 lease\n  NFSv4.1: Handle NFS4ERR_DELAY on SEQUENCE correctly\n  NFS: nfs_rename() should not have to flush out writebacks\n  ...\n"
    },
    {
      "commit": "af7fa16506bf9b6323e862a61e14c20555152bb3",
      "tree": "a9d5e5713d1d4662c0fb2097f506e60036404a37",
      "parents": [
        "77041ed9b49a9e10f374bfa6e482d30ee7a3d46e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jul 31 14:29:06 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Aug 03 22:06:07 2010 -0400"
      },
      "message": "NFS: Fix up the fsync code\n\nChristoph points out that the VFS will always flush out data before calling\nnfs_fsync(), so we can dispense with a full call to nfs_wb_all(), and\nreplace that with a simpler call to nfs_commit_inode().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b608b283a962caaa280756bc8563016a71712acf",
      "tree": "217a745ab305219fab676d4a215c1a709004bd57",
      "parents": [
        "674b2222920012244ca59978b356b25412a8dcc7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jul 30 15:31:54 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jul 30 15:38:42 2010 -0400"
      },
      "message": "NFS: kswapd must not block in nfs_release_page\n\nSee https://bugzilla.kernel.org/show_bug.cgi?id\u003d16056\n\nIf other processes are blocked waiting for kswapd to free up some memory so\nthat they can make progress, then we cannot allow kswapd to block on those\nprocesses.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "7ea8085910ef3dd4f3cad6845aaa2b580d39b115",
      "tree": "d9c1edb5906f943f7d70bfb4b65106e29772d379",
      "parents": [
        "cc967be54710d97c05229b2e5ba2d00df84ddd64"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed May 26 17:53:25 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:05:02 2010 -0400"
      },
      "message": "drop unused dentry argument to -\u003efsync\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d7cf8dd01289b3c64057e38d34c2857f6633d52c",
      "tree": "600143a42314da064fc0b8dec236c85f2f45d16b",
      "parents": [
        "a8ce4a8f37fef0a09a1e920c2e09f67a80426c7e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 16 16:42:46 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 14 15:09:30 2010 -0400"
      },
      "message": "NFSv4: Allow attribute caching with \u0027noac\u0027 mounts if client holds a delegation\n\nIf the server has given us a delegation on a file, we _know_ that we can\ncache the attribute information even when the user has specified \u0027noac\u0027.\n\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "d812e575822a2b7ab1a7cadae2571505ec6ec2bd",
      "tree": "b94dad3a91d968a7851b65ce9f3f4960d9d99d6b",
      "parents": [
        "fc7f99cf36ebae853639dabb43bc2f0098c59aef"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 19 13:55:17 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 19 13:55:17 2010 -0400"
      },
      "message": "NFS: Prevent another deadlock in nfs_release_page()\n\nWe should not attempt to free the page if __GFP_FS is not set. Otherwise we\ncan deadlock as per\n\n  http://bugzilla.kernel.org/show_bug.cgi?id\u003d15578\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "7e381172cf6e0282a56374e50667515aed55166a",
      "tree": "46d41f354f1bb58153b0bdbea883e7abe94ebddc",
      "parents": [
        "aa2f1ef10e6ad65c9138ec576f82c08f32e6f32c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Feb 01 14:17:41 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 10 08:31:04 2010 -0500"
      },
      "message": "NFS: Improve NFS iostat byte count accuracy for writes\n\nThe bytes counted by the performance counters for NFS writes should\nreflect write and sync errors.  If the write(2) system call reports\nan error, the bytes should not be counted.  And, if the write is\nshort, the actual number of bytes that was written should be counted,\nnot the number of bytes that was requested.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "aa2f1ef10e6ad65c9138ec576f82c08f32e6f32c",
      "tree": "8a44d88ca97828af2ec7cfae3b779504ed2f2b79",
      "parents": [
        "4184dcf2dbde481b34d370e1704f2b91a8c9f0d1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Feb 01 14:17:32 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 10 08:31:03 2010 -0500"
      },
      "message": "NFS: Account for NFS bytes read via the splice API\n\nBytes read via the splice API should be accounted for in the NFS\nperformance statistics.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4184dcf2dbde481b34d370e1704f2b91a8c9f0d1",
      "tree": "fed7dd67648a78c00bd687ed38bdd133fe45124a",
      "parents": [
        "c2459dc46269728e4a080ec8d5a316b2bba2e142"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Feb 01 14:17:23 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 10 08:31:03 2010 -0500"
      },
      "message": "NFS: Fix byte accounting for generic NFS reads\n\nCurrently, the NFS I/O counters count the number of bytes requested\nby applications, rather than the number of bytes actually read by the\nsystem calls.\n\nThe number of bytes requested for reads is actually not that useful,\nbecause the value is usually a buffer size for reads.  That is, that\nrequested number is usually a maximum, and frequently doesn\u0027t reflect\nthe actual number of bytes read.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c2459dc46269728e4a080ec8d5a316b2bba2e142",
      "tree": "668ef0e63ad02c56910edb18d4864b203cc15169",
      "parents": [
        "ba17686f62db88f6a591121e768a0c83a2a2647d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Feb 01 14:17:14 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 10 08:31:02 2010 -0500"
      },
      "message": "NFS: Proper accounting for NFS VFS calls\n\nNit: The VFSOPEN and VFSFLUSH counters are function call counters.\nCount every call to these routines.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "82be934a59ff891cac598727e5a862ba2b9d1fac",
      "tree": "7b5763df79774ef9a27aaf4901621fc8015b3e2e",
      "parents": [
        "c9edda7140ec6a22accf7f2f86da362dfbfd41fc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 26 15:41:53 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 26 15:41:53 2010 -0500"
      },
      "message": "NFS: Try to commit unstable writes in nfs_release_page()\n\nIf someone calls nfs_release_page(), we presumably already know that the\npage is clean, however it may be holding an unstable write.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\n"
    },
    {
      "commit": "6b2f3d1f769be5779b479c37800229d9a4809fc3",
      "tree": "046ef6736ec6c25ab1c68741ba715d13645af336",
      "parents": [
        "59bc055211b8d266ab6089158058bf8268e02006"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Oct 27 11:05:28 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Dec 10 15:02:50 2009 +0100"
      },
      "message": "vfs: Implement proper O_SYNC semantics\n\nWhile Linux provided an O_SYNC flag basically since day 1, it took until\nLinux 2.4.0-test12pre2 to actually get it implemented for filesystems,\nsince that day we had generic_osync_around with only minor changes and the\ngreat \"For now, when the user asks for O_SYNC, we\u0027ll actually give\nO_DSYNC\" comment.  This patch intends to actually give us real O_SYNC\nsemantics in addition to the O_DSYNC semantics.  After Jan\u0027s O_SYNC\npatches which are required before this patch it\u0027s actually surprisingly\nsimple, we just need to figure out when to set the datasync flag to\nvfs_fsync_range and when not.\n\nThis patch renames the existing O_SYNC flag to O_DSYNC while keeping it\u0027s\nnumerical value to keep binary compatibility, and adds a new real O_SYNC\nflag.  To guarantee backwards compatiblity it is defined as expanding to\nboth the O_DSYNC and the new additional binary flag (__O_SYNC) to make\nsure we are backwards-compatible when compiled against the new headers.\n\nThis also means that all places that don\u0027t care about the differences can\njust check O_DSYNC and get the right behaviour for O_SYNC, too - only\nplaces that actuall care need to check __O_SYNC in addition.  Drivers and\nnetwork filesystems have been updated in a fail safe way to always do the\nfull sync magic if O_DSYNC is set.  The few places setting O_SYNC for\nlower layers are kept that way for now to stay failsafe.\n\nWe enforce that O_DSYNC is set when __O_SYNC is set early in the open path\nto make sure we always get these sane options.\n\nNote that parisc really screwed up their headers as they already define a\nO_DSYNC that has always been a no-op.  We try to repair it by using it for\nthe new O_DSYNC and redefinining O_SYNC to send both the traditional\nO_SYNC numerical value _and_ the O_DSYNC one.\n\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "f0f37e2f77731b3473fa6bd5ee53255d9a9cdb40",
      "tree": "3c26d3ed1a453156e9c208ccb5567a8954dba064",
      "parents": [
        "6f5071020d5ec89b5d095aa488db604adb921aec"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Sep 27 22:29:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 11:39:25 2009 -0700"
      },
      "message": "const: mark struct vm_struct_operations\n\n* mark struct vm_area_struct::vm_ops as const\n* mark vm_ops in AGP code\n\nBut leave TTM code alone, something is fishy there with global vm_ops\nbeing used.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f590f333fb15444d2971f979d434ecad56c09698",
      "tree": "c314ba6a451a84e4232699a5794cd91ffa71e7d8",
      "parents": [
        "aa261f549d7652258331ebb12795f3bc4395d213"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Sep 16 11:50:17 2009 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Sep 16 11:50:17 2009 +0200"
      },
      "message": "HWPOISON: Enable error_remove_page for NFS\n\nEnable hardware memory error handling for NFS\n\nTruncation of data pages at runtime should be safe in NFS,\neven when it doesn\u0027t support migration so far.\n\nTrond tells me migration is also queued up for 2.6.32.\n\nAcked-by: Trond.Myklebust@netapp.com\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "38c73044f5f4da2ef4339319b170e5e19f8dec87",
      "tree": "68f8bde12bf64eba00164cacdb895a164b5795d4",
      "parents": [
        "074cc1deec5dee63fcd5d966b36fa4f3765b50fc"
      ],
      "author": {
        "name": "Peter Staubach",
        "email": "staubach@redhat.com",
        "time": "Mon Aug 10 08:54:16 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 08:54:16 2009 -0400"
      },
      "message": "NFS: read-modify-write page updating\n\nHi.\n\nI have a proposal for possibly resolving this issue.\n\nI believe that this situation occurs due to the way that the\nLinux NFS client handles writes which modify partial pages.\n\nThe Linux NFS client handles partial page modifications by\nallocating a page from the page cache, copying the data from\nthe user level into the page, and then keeping track of the\noffset and length of the modified portions of the page.  The\npage is not marked as up to date because there are portions\nof the page which do not contain valid file contents.\n\nWhen a read call comes in for a portion of the page, the\ncontents of the page must be read in the from the server.\nHowever, since the page may already contain some modified\ndata, that modified data must be written to the server\nbefore the file contents can be read back in the from server.\nAnd, since the writing and reading can not be done atomically,\nthe data must be written and committed to stable storage on\nthe server for safety purposes.  This means either a\nFILE_SYNC WRITE or a UNSTABLE WRITE followed by a COMMIT.\nThis has been discussed at length previously.\n\nThis algorithm could be described as modify-write-read.  It\nis most efficient when the application only updates pages\nand does not read them.\n\nMy proposed solution is to add a heuristic to decide whether\nto do this modify-write-read algorithm or switch to a read-\nmodify-write algorithm when initially allocating the page\nin the write system call path.  The heuristic uses the modes\nthat the file was opened with, the offset in the page to\nread from, and the size of the region to read.\n\nIf the file was opened for reading in addition to writing\nand the page would not be filled completely with data from\nthe user level, then read in the old contents of the page\nand mark it as Uptodate before copying in the new data.  If\nthe page would be completely filled with data from the user\nlevel, then there would be no reason to read in the old\ncontents because they would just be copied over.\n\nThis would optimize for applications which randomly access\nand update portions of files.  The linkage editor for the\nC compiler is an example of such a thing.\n\nI tested the attached patch by using rpmbuild to build the\ncurrent Fedora rawhide kernel.  The kernel without the\npatch generated about 269,500 WRITE requests.  The modified\nkernel containing the patch generated about 261,000 WRITE\nrequests.  Thus, about 8,500 fewer WRITE requests were\ngenerated.  I suspect that many of these additional\nWRITE requests were probably FILE_SYNC requests to WRITE\na single page, but I didn\u0027t test this theory.\n\nThe difference between this patch and the previous one was\nto remove the unneeded PageDirty() test.  I then retested to\nensure that the resulting system continued to behave as\ndesired.\n\n\tThanx...\n\n\t\tps\n\nSigned-off-by: Peter Staubach \u003cstaubach@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "074cc1deec5dee63fcd5d966b36fa4f3765b50fc",
      "tree": "14508949385a168ab2e43ca5bf7423473f25d839",
      "parents": [
        "c140aa91357c415c91269884518fa1d6fdebc20d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 08:54:13 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 08:54:13 2009 -0400"
      },
      "message": "NFS: Add a -\u003emigratepage() aop for NFS\n\nMake NFS a bit more friendly to NUMA and memory hot removal...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "405f55712dfe464b3240d7816cc4fe4174831be2",
      "tree": "96c425ea7fa8b31058b8f83a433c5e5265c8ebc7",
      "parents": [
        "f9fabcb58a6d26d6efde842d1703ac7cfa9427b6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jul 11 22:08:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 12 12:22:34 2009 -0700"
      },
      "message": "headers: smp_lock.h redux\n\n* Remove smp_lock.h from files which don\u0027t need it (including some headers!)\n* Add smp_lock.h to files which do need it\n* Make smp_lock.h include conditional in hardirq.h\n  It\u0027s needed only for one kernel_locked() usage which is under CONFIG_PREEMPT\n\n  This will make hardirq.h inclusion cheaper for every PREEMPT\u003dn config\n  (which includes allmodconfig/allyesconfig, BTW)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf40d3435caf49369058b1ed6bbc92f8e2bd92f1",
      "tree": "386cfc460a65febcbfbf46aeab3f1a817a9bd3ba",
      "parents": [
        "5cd973c44a92f4abf8f7084c804089b3eaa7b4bf"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Wed Jun 17 18:02:09 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 18:02:09 2009 -0700"
      },
      "message": "NFS: add support for splice writes\n\nAdds support for splice writes. It effectively calls\ngeneric_file_splice_write() to do the writes.\n\nWe need not worry about O_APPEND case as the combination of splice()\nwrites and O_APPEND is disallowed. This patch propagates NFS write\nerrors back to the caller. The number of bytes written via splice are\nbeing added to NFSIO_NORMALWRITTENBYTES as these are effectively\ncached writes.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5cd973c44a92f4abf8f7084c804089b3eaa7b4bf",
      "tree": "7bea559ab6c0a2ab4885a6064147b0cae20b8293",
      "parents": [
        "3f09df70e3a33590ae5a97b8a15486d3711c7065"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 13:23:01 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 13:23:01 2009 -0700"
      },
      "message": "NFSv4/NLM: Push file locking BKL dependencies down into the NLM layer\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7fdf523067666b0eaff330f362401ee50ce187c4",
      "tree": "83088db2c3e9b61fd08bdcd0bbba5ace5a35b943",
      "parents": [
        "b4348f32dae3cb6eb4bc21c7ed8f76c0b11e9d6a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 24 17:32:22 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 02 19:42:39 2009 -0700"
      },
      "message": "NFS: Close page_mkwrite() races\n\nFollow up to Nick Piggin\u0027s patches to ensure that nfs_vm_page_mkwrite\nreturns with the page lock held, and sets the VM_FAULT_LOCKED flag.\n\nSee http://bugzilla.kernel.org/show_bug.cgi?id\u003d12913\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b2ec7554cf7ec5e4412f89a5af6abe8ce950700",
      "tree": "373355d53c547896ec1fbc8486311efa37dbd18e",
      "parents": [
        "8e2c4f2844c0e8dcdfe312e5f2204854ca8532c6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 07 14:02:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:07:03 2009 -0700"
      },
      "message": "NFS: Fix the return value in nfs_page_mkwrite()\n\nCommit c2ec175c39f62949438354f603f4aa170846aabb (\"mm: page_mkwrite\nchange prototype to match fault\") exposed a bug in the NFS\nimplementation of page_mkwrite.  We should be returning 0 on success...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "545db45f0fc0d4203b045047798ce156972a3056",
      "tree": "783db1091f5d6f21dafece81f6c94caf0aec98b8",
      "parents": [
        "6a51091d0775cdc4a923f2172c61925ad416aa32"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:44 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:44 2009 +0100"
      },
      "message": "NFS: FS-Cache page management\n\nFS-Cache page management for NFS.  This includes hooking the releasing and\ninvalidation of pages marked with PG_fscache (aka PG_private_2) and waiting for\ncompletion of the write-to-cache flag (PG_fscache_write aka PG_owner_priv_2).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "6b9b3514aa188183e74049853be43380ad49314f",
      "tree": "738f333421c2f57447dc4534ae83a19708e487cf",
      "parents": [
        "9b3f26c9110dcea62716aca9b8c68ceb482227ef"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:41 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:41 2009 +0100"
      },
      "message": "NFS: Add comment banners to some NFS functions\n\nAdd comment banners to some NFS functions so that they can be modified by the\nNFS fscache patches for further information.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "cc85906110e26fe8537c3bdbc08a74ae8110030b",
      "tree": "891813098ede3dba4d5ff3b83b1f7b491367ad2f",
      "parents": [
        "c09bca786ff941ed17c5f381c4eca5b106808c51",
        "c69da774b28e01e062e0a3aba7509f2dcfd2a11a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 01 13:28:15 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 01 13:28:15 2009 -0400"
      },
      "message": "Merge branch \u0027devel\u0027 into for-linus\n"
    },
    {
      "commit": "c2ec175c39f62949438354f603f4aa170846aabb",
      "tree": "f2c9bf1bec2deabe2d3a5092405b027637b6ead3",
      "parents": [
        "c2fdf3a9b2d52842808a8e551b53b55dd9b45030"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Mar 31 15:23:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "mm: page_mkwrite change prototype to match fault\n\nChange the page_mkwrite prototype to take a struct vm_fault, and return\nVM_FAULT_xxx flags.  There should be no functional change.\n\nThis makes it possible to return much more detailed error information to\nthe VM (and also can provide more information eg.  virtual_address to the\ndriver, which might be important in some special cases).\n\nThis is required for a subsequent fix.  And will also make it easier to\nmerge page_mkwrite() with fault() in future.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nCc: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7fe5c398fc2186ed586db11106a6692d871d0d58",
      "tree": "1133bd775a23fb07ca759e4d6c44132c14576b75",
      "parents": [
        "b1e4adf4ea41bb8b5a7bfc1a7001f137e65495df"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:35:50 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:35:50 2009 -0400"
      },
      "message": "NFS: Optimise NFS close()\n\nClose-to-open cache consistency rules really only require us to flush out\nwrites on calls to close(), and require us to revalidate attributes on the\nvery last close of the file.\n\nCurrently we appear to be doing a lot of extra attribute revalidation\nand cache flushes.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e1ebfd33be068ec933f8954060a499bd22ad6f69",
      "tree": "eede58106b4c2e10198a73f47ad14850d617f4c1",
      "parents": [
        "72cb77f4a5ace37b12dcb47a0e8637a2c28ad881"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:54 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:54 2009 -0400"
      },
      "message": "NFS: Kill the \"defined but not used\" compile error on nommu machines\n\nBryan Wu reports that when compiling NFS on nommu machines he gets a\n\"defined but not used\" error on nfs_file_mmap().\n\nThe easiest fix is simply to get rid of the special casing in NFS, and\njust always call generic_file_mmap() to set up the file.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "72cb77f4a5ace37b12dcb47a0e8637a2c28ad881",
      "tree": "62fbdd7a34884f3ea9e1b0ba6bd5a4d78263f847",
      "parents": [
        "fb8a1f11b64e213d94dfa1cebb2a42a7b8c115c4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:30 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:30 2009 -0400"
      },
      "message": "NFS: Throttle page dirtying while we\u0027re flushing to disk\n\nThe following patch is a combination of a patch by myself and Peter\nStaubach.\n\nTrond: If we allow other processes to dirty pages while a process is doing\na consistency sync to disk, we can end up never making progress.\n\nPeter: Attached is a patch which addresses a continuing problem with\nthe NFS client generating out of order WRITE requests.  While\nthis is compliant with all of the current protocol\nspecifications, there are servers in the market which can not\nhandle out of order WRITE requests very well.  Also, this may\nlead to sub-optimal block allocations in the underlying file\nsystem on the server.  This may cause the read throughputs to\nbe reduced when reading the file from the server.\n\nPeter: There has been a lot of work recently done to address out of\norder issues on a systemic level.  However, the NFS client is\nstill susceptible to the problem.  Out of order WRITE\nrequests can occur when pdflush is in the middle of writing\nout pages while the process dirtying the pages calls\ngeneric_file_buffered_write which calls\ngeneric_perform_write which calls\nbalance_dirty_pages_rate_limited which ends up calling\nwriteback_inodes which ends up calling back into the NFS\nclient to writes out dirty pages for the same file that\npdflush happens to be working with.\n\nSigned-off-by: Peter Staubach \u003cstaubach@redhat.com\u003e\n[modification by Trond to merge the two similar patches]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "54566b2c1594c2326a645a3551f9d989f7ba3c5e",
      "tree": "b373f3283fe5e197d0df29cd6b645c35adf1076c",
      "parents": [
        "e687d691cb3790d25e31c74f5941fd7c565e9df5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun Jan 04 12:00:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "fs: symlink write_begin allocation context fix\n\nWith the write_begin/write_end aops, page_symlink was broken because it\ncould no longer pass a GFP_NOFS type mask into the point where the\nallocations happened.  They are done in write_begin, which would always\nassume that the filesystem can be entered from reclaim.  This bug could\ncause filesystem deadlocks.\n\nThe funny thing with having a gfp_t mask there is that it doesn\u0027t really\nallow the caller to arbitrarily tinker with the context in which it can be\ncalled.  It couldn\u0027t ever be GFP_ATOMIC, for example, because it needs to\ntake the page lock.  The only thing any callers care about is __GFP_FS\nanyway, so turn that into a single flag.\n\nAdd a new flag for write_begin, AOP_FLAG_NOFS.  Filesystems can now act on\nthis flag in their write_begin function.  Change __grab_cache_page to\naccept a nofs argument as well, to honour that flag (while we\u0027re there,\nchange the name to grab_cache_page_write_begin which is more instructive\nand does away with random leading underscores).\n\nThis is really a more flexible way to go in the end anyway -- if a\nfilesystem happens to want any extra allocations aside from the pagecache\nones in ints write_begin function, it may now use GFP_KERNEL (rather than\nGFP_NOFS) for common case allocations (eg.  ocfs2_alloc_write_ctxt, for a\nrandom example).\n\n[kosaki.motohiro@jp.fujitsu.com: fix ubifs]\n[kosaki.motohiro@jp.fujitsu.com: fix fuse]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n[ Cleaned up the calling convention: just pass in the AOP flags\n  untouched to the grab_cache_page_write_begin() function.  That\n  just simplifies everybody, and may even allow future expansion of the\n  logic.   - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f200c11c257b8db5c49dfc0b7f84bceae3109779",
      "tree": "ade25b51f12ee12ad4f58dd7020264e7ff695426",
      "parents": [
        "44d5759d3fdad660f000ef319f0ec33a6ac6ae28"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Aug 14 18:32:55 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 18:16:21 2008 -0400"
      },
      "message": "nfs: remove an obsolete nfs_flock comment\n\nWe *do* now allow bsd flocks over nfs.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d5e66348bbe39dc78509e7561f7252aa443df8c0",
      "tree": "7e67858cbc6968d39c17e55499d11d24a958cdab",
      "parents": [
        "4330ed8ed4da360ac1ca14b0fddff4c05b10de16"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 23 17:28:35 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 06 20:08:26 2008 -0400"
      },
      "message": "NFS: Fix nfs_file_llseek()\n\nAfter the BKL removal patches were applied to the rest of the NFS code, the\nBKL protection in nfs_file_llseek() is no longer sufficient to ensure that\ninode-\u003ei_size is read safely in generic_file_llseek_unlocked().\n\nIn order to fix the situation, we either have to replace the naked read of\ninode-\u003ei_size in generic_file_llseek_unlocked() with i_size_read(), or the\nwhole thing needs to be executed under the inode-\u003ei_lock;\nIn order to avoid disrupting other filesystems, avoid touching\ngeneric_file_llseek_unlocked() for now...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cadc723cc19ce6b881d973d3c04e25ebb83058e6",
      "tree": "9256b4bc0685bca22469eab87cd3ec3c2deba60d",
      "parents": [
        "e89e896d31b11a51a54ddcd3f72a76bd286dd86c",
        "f839c4c1991cc9b580ae38f98f54554938a7f49c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:34:58 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:34:58 2008 -0400"
      },
      "message": "Merge branch \u0027bkl-removal\u0027 into next\n"
    },
    {
      "commit": "e89e896d31b11a51a54ddcd3f72a76bd286dd86c",
      "tree": "105a9a93a4021caeeba76e479778ad2dd2b87b57",
      "parents": [
        "3a628b0fd42f7eaf9d052447784d48ceae9ffb8e",
        "d67d1c7bf948341fd8678c8e337ec27f4b46b206"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:34:16 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:34:16 2008 -0400"
      },
      "message": "Merge branch \u0027devel\u0027 into next\n\nConflicts:\n\n\tfs/nfs/file.c\n\nFix up the conflict with Jon Corbet\u0027s bkl-removal tree\n"
    },
    {
      "commit": "bba67e0e3f4caba2b2b90b48ed798fb0461bcb86",
      "tree": "c13781f1265ccd73b4f71a33e9bb22931e954c1e",
      "parents": [
        "b6a2e569e2157509951c9f3f58dfa18b44ce91b3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 13:26:23 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:53 2008 -0400"
      },
      "message": "NFS: Remove BKL usage from open()\n\nAll the NFSv4 stateful operations are already protected by other locks (in\nparticular by the rpc_sequence locks.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b6a2e569e2157509951c9f3f58dfa18b44ce91b3",
      "tree": "1398d38574357e8f89948102f2df1e86634b91f1",
      "parents": [
        "4d80f2ecd506d9732ad94a6da104580bb47680d6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 13:26:16 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:52 2008 -0400"
      },
      "message": "NFS: Remove BKL usage from the write path\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2fceef397f9880b212a74c418290ce69e7ac00eb",
      "tree": "d9cc09ab992825ef7fede4a688103503e3caf655",
      "parents": [
        "feae1ef116ed381625d3731c5ae4f4ebcb3fa302",
        "bce7f793daec3e65ec5c5705d2457b81fe7b5725"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Jul 14 15:29:34 2008 -0600"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Jul 14 15:29:34 2008 -0600"
      },
      "message": "Merge commit \u0027v2.6.26\u0027 into bkl-removal\n"
    },
    {
      "commit": "46cb650c224bb8e64a749090105d74b9e8eda669",
      "tree": "03c6b21bc70a983a63642c2bec6c0e26f07e4efb",
      "parents": [
        "b22602a673b1743bba4b62bb404ffd3b269d2f09"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 16:32:46 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:16 2008 -0400"
      },
      "message": "NFS: Remove the redundant file_open entry from struct nfs_rpc_ops\n\nAll instances are set to nfs_open(), so we should just remove the redundant\nindirection. Ditto for the file_release op\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6da24bc9cfc645c619992e39aab09747164c9f14",
      "tree": "a2d092a395d219db6b251d4d7f481ca0f9f7ecb0",
      "parents": [
        "b7eaefaa8722fd98e5c2632640d1abd2b0c83e84"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jun 11 17:55:58 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:04 2008 -0400"
      },
      "message": "NFS: Use NFSDBG_FILE for all fops\n\nClean up: some fops use NFSDBG_FILE, some use NFSDBG_VFS.  Let\u0027s use\nNFSDBG_FILE for all fops, and consistently report file names instead\nof inode numbers.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b7eaefaa8722fd98e5c2632640d1abd2b0c83e84",
      "tree": "58547b04f1286e65081536fbf37c60ddbc66244a",
      "parents": [
        "cc0dd2d1052aede2946ad1338a8f6f5d5c604740"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jun 11 17:55:50 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:03 2008 -0400"
      },
      "message": "NFS: Add debugging facility for NFS aops\n\nRecent work in fs/nfs/file.c neglected to add appropriate trace debugging\nfor the NFS client\u0027s address space operations.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cc0dd2d1052aede2946ad1338a8f6f5d5c604740",
      "tree": "e4566796e958935c4d21988c8c43b1d798f2c1d6",
      "parents": [
        "b84e06c58fdefdc42931f771dc295e63f4b27365"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jun 11 17:55:42 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:02 2008 -0400"
      },
      "message": "NFS: Make nfs_open methods consistent\n\nClean up: Report the same debugging info and count function calls the\nsame for files and directories in nfs_opendir() and nfs_file_open().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b84e06c58fdefdc42931f771dc295e63f4b27365",
      "tree": "1018cbbb7559b928ee1ae7e29663de81ba56ef6b",
      "parents": [
        "549177863bac22f23663ee9f70c4e3b9fb269f2c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jun 11 17:55:34 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:01 2008 -0400"
      },
      "message": "NFS: Make nfs_llseek methods consistent\n\nClean up: Report the same debugging info in nfs_llseek_dir() and\nnfs_llseek_file().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "549177863bac22f23663ee9f70c4e3b9fb269f2c",
      "tree": "06ced21ed11c050cbb10f552b30e8e4368ccb487",
      "parents": [
        "cb3997b5a0b21864368bd1bd1d0929f9304fb6d9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue May 27 16:29:07 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:00 2008 -0400"
      },
      "message": "NFS: Make nfs_fsync methods consistent\n\nClean up: Report the same debugging info, count function calls the same,\nand use similar function naming in nfs_fsync_dir() and nfs_fsync().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b5418383ef13f70528281546d02c15edc03d8567",
      "tree": "a25d5e9c78c14af25a71046541eaa9f77819d9a9",
      "parents": [
        "0f38b873aeaae698c3693748438547c8493165fb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 10 18:31:02 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:08:50 2008 -0400"
      },
      "message": "NFS: do_setlk(): don\u0027t flush caches when we have a delegation\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "efc91ed0191e3fc62bb1c556ac93fc4e661214d2",
      "tree": "291dba382da5d609c5bd35b5e369324ecbb95c00",
      "parents": [
        "b390c2b55c830eb3b64633fa8d8b8837e073e458"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 10 18:31:00 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:08:45 2008 -0400"
      },
      "message": "NFS: Optimise append writes with holes\n\nIf a file is being extended, and we\u0027re creating a hole, we might as well\ndeclare the entire page to be up to date.\n\nThis patch significantly improves the write performance for sparse files\nin the case where lseek(SEEK_END) is used to append several non-contiguous\nwrites at intervals of \u003c PAGE_SIZE.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2116271a347d1181b5497602c2bfada1de8fd53b",
      "tree": "537498aa91bbe1fbbfc7f2c1e00910ca7fbc2261",
      "parents": [
        "f3d47a3a6a1484a93c8cfe1e8c8d4399c95199c7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 20 19:34:39 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:08:40 2008 -0400"
      },
      "message": "NFS: Add correct bounds checking to NFSv2 locks\n\nNFSv2 file locking currently fails the Connectathon tests, because the\ncalls to the VFS locking code do not return an EINVAL error if the\nstruct file_lock overflows the 32-bit boundaries.\n\nThe problem is due to the fact that we occasionally call helpers from\nfs/locks.c in order to avoid RPC calls to the server when we know that a\nlocal process holds the lock. These helpers are, of course, always\n64-bit enabled, so EINVAL is not returned in cases when it would if\nthe call had gone to the NLM code.\n\nFor consistency, we therefore add support for a bounds-checking helper.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9465efc9e96135a2cec8154c0c766fa59984a298",
      "tree": "079b94123ab65ff80c4869bcf25192c8596b049c",
      "parents": [
        "9c20616c385ebeaa30257ef5d35e8f346db4ee32"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Fri Jun 27 11:05:24 2008 +0200"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Wed Jul 02 15:06:27 2008 -0600"
      },
      "message": "Remove BKL from remote_llseek v2\n\n- Replace remote_llseek with generic_file_llseek_unlocked (to force compilation\nfailures in all users)\n- Change all users to either use generic_file_llseek_unlocked directly or\ntake the BKL around. I changed the file systems who don\u0027t use the BKL\nfor anything (CIFS, GFS) to call it directly. NCPFS and SMBFS and NFS\ntake the BKL, but explicitely in their own source now.\n\nI moved them all over in a single patch to avoid unbisectable sections.\n\nOpen problem: 32bit kernels can corrupt fpos because its modification\nis not atomic, but they can do that anyways because there\u0027s other paths who\nmodify it without BKL.\n\nDo we need a special lock for the pos/f_version \u003d 0 checks?\n\nTrond says the NFS BKL is likely not needed, but keep it for now\nuntil his full audit.\n\nv2: Use generic_file_llseek_unlocked instead of remote_llseek_unlocked\n    and factor duplicated code (suggested by hch)\n\nCc: Trond.Myklebust@netapp.com\nCc: swhiteho@redhat.com\nCc: sfrench@samba.org\nCc: vandrove@vc.cvut.cz\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "3110ff8048fb757b36112b044b384aea9c44d6e4",
      "tree": "5260f4973bd0848ddef3fb3c111386e59616abbc",
      "parents": [
        "46c8ac74250a396aca855e494f49a960797a6b5e"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri May 02 13:42:44 2008 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 16 09:43:29 2008 -0700"
      },
      "message": "nfs: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "233607dbbc823caf685e778cabc49fb7f679900b",
      "tree": "13840137ee10788061cbec60fcfe8ea4c274558e",
      "parents": [
        "3dc5063786b273f1aee545844f6bd4e9651ebffe",
        "b48633bd086d21f4a2a5bea96c7e6c7ba58eb60c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 24 14:01:02 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 24 14:01:02 2008 -0400"
      },
      "message": "Merge branch \u0027devel\u0027\n"
    },
    {
      "commit": "c4d7c402b788b73dc24f1e54a57f89d3dc5eb7bc",
      "tree": "51c0e7fa84f7eff745dc17a7bffd81adb3d207d3",
      "parents": [
        "5f50c0c6d644d6c8180d9079c13c5d9de3adeb34"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 01 20:26:52 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:53:52 2008 -0400"
      },
      "message": "NFS: Remove the buggy lock-if-signalled case from do_setlk()\n\nBoth NLM and NFSv4 should be able to clean up adequately in the case where\nthe user interrupts the RPC call...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "240ee831187e000704cba3208ef6b0a8ad49bd64",
      "tree": "185d0a366d121ca0dd58cd382696b4bc01452165",
      "parents": [
        "66d3aac04175c35564cc5982934b68bc4f89a76d"
      ],
      "author": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Tue Apr 01 20:23:39 2008 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 08 21:06:56 2008 -0400"
      },
      "message": "fix bug - executing FDPIC ELF on NFS mount triggers BUG() at mm/nommu.c:862:/do_mmap_private()\n\nNFS needs a NOMMU version mmap function to support uClinux on NOMMU machine\nhttp://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action\u003dTrackerItemEdit\u0026tracker_id\u003d141\u0026tracker_item_id\u003d3992\n\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\nCc: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ecfc555a8327ff09b07066d73a98c04115007eec",
      "tree": "304691e77d21b8cecfd529eddfdfb2ba3fdfac31",
      "parents": [
        "82d101d58a2312297ee79f96d44c1d8c7fe1032d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 14 14:14:56 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 18:00:34 2008 -0400"
      },
      "message": "NFS: Always enable NFS direct I/O\n\nSince O_DIRECT is a standard feature that is enabled in most distros,\neliminate the CONFIG_NFS_DIRECTIO build option, and change the\nfs/nfs/Makefile to always build in the NFS direct I/O engine.\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": "8b1f9ee56e21e505a3d5d3e33f823006d1abdbaf",
      "tree": "4f26bf0ceb4f834040e02cefc6385087a25ad6ba",
      "parents": [
        "77f111929d024165e736e919187cff017279bebe"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 22 17:13:06 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:23 2008 -0500"
      },
      "message": "NFS: Optimise nfs_vm_page_mkwrite()\n\nThe current model locks the page twice for no good reason. Optimise by\ninlining the parts of nfs_write_begin()/nfs_write_end() that we care about.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a49c3c7736a2e77931dabc5bc4a83fb4b2da013e",
      "tree": "1921900be210540ee53a4011c9e8f781deb0367e",
      "parents": [
        "565277f63c616e11c37309a1e98c052d18ebbb55"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 18 18:03:27 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 19 17:19:25 2007 -0400"
      },
      "message": "NFSv4: Ensure that we wait for the CLOSE request to complete\n\nOtherwise, we do end up breaking close-to-open semantics. We also end up\nbreaking some of the silly-rename tests in Connectathon on some setups.\n\nPlease refer to the bug-report at\n\thttp://bugzilla.linux-nfs.org/show_bug.cgi?id\u003d150\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4899f9c852564ce7b6d0ca932ac6674bf471fd28",
      "tree": "4248794207b9b82077f48ce08655a018d89d2683",
      "parents": [
        "a20fa20c549ed569885d871f689a59cfd2f6ff77"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:57 2007 -0700"
      },
      "message": "nfs: convert to new aops\n\n[akpm@linux-foundation.org: fix against git-nfs]\n[peterz@infradead.org: fix against git-nfs]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "541010e4b8921cd781ff02ae68028501457045b6",
      "tree": "58bd529d4c6e69899a0aa20afa2d7f1c23326417",
      "parents": [
        "e457f790d8b05977853aa238bbc667b3bb375671",
        "5e7fc436426b1f9e106f511a049de91c82ec2c53"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 16:07:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 16:07:40 2007 -0700"
      },
      "message": "Merge branch \u0027locks\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027locks\u0027 of git://linux-nfs.org/~bfields/linux:\n  nfsd: remove IS_ISMNDLCK macro\n  Rework /proc/locks via seq_files and seq_list helpers\n  fs/locks.c: use list_for_each_entry() instead of list_for_each()\n  NFS: clean up explicit check for mandatory locks\n  AFS: clean up explicit check for mandatory locks\n  9PFS: clean up explicit check for mandatory locks\n  GFS2: clean up explicit check for mandatory locks\n  Cleanup macros for distinguishing mandatory locks\n  Documentation: move locks.txt in filesystems/\n  locks: add warning about mandatory locking races\n  Documentation: move mandatory locking documentation to filesystems/\n  locks: Fix potential OOPS in generic_setlease()\n  Use list_first_entry in locks_wake_up_blocks\n  locks: fix flock_lock_file() comment\n  Memory shortage can result in inconsistent flocks state\n  locks: kill redundant local variable\n  locks: reverse order of posix_locks_conflict() arguments\n"
    },
    {
      "commit": "dfad9441be82f1eadc3fa3f1bbc93f93d48d1bdf",
      "tree": "059c9e1d075de6a800af3c95bbc837a2e0239819",
      "parents": [
        "fc5846e555177c2ae01bcded7fddf60cb10dcfd0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Oct 01 14:41:15 2007 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 09 18:32:46 2007 -0400"
      },
      "message": "NFS: clean up explicit check for mandatory locks\n\nThe __mandatory_lock(inode) macro makes the same check, but makes the code\nmore readable.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd3758e37ddea66fccca7d93c4b601e8a2e51926",
      "tree": "07566d3ee457524a97b534a4f214b9178b1278c8",
      "parents": [
        "c03025d55540bd648f2546659090140ecc835572"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 10 17:44:32 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:18:31 2007 -0400"
      },
      "message": "NFS: Replace file-\u003eprivate_data with calls to nfs_file_open_context()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7b159fc18d417980f57aef64cab3417ee6af70f8",
      "tree": "880f31179a9836ad9cd63b91dd6d77b61b01017c",
      "parents": [
        "34901f70d119d88126e7390351b8c780646628e1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 25 14:09:54 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:15:23 2007 -0400"
      },
      "message": "NFS: Fall back to synchronous writes when a background write errors...\n\nThis helps prevent huge queues of background writes from building up\nwhenever the server runs out of disk or quota space, or if someone changes\nthe file access modes behind our backs.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9cccef95052c7169040c3577e17d4f6fa230cc28",
      "tree": "56d0cfc610272f67bde429565d3b23b83d2df6af",
      "parents": [
        "94387fb1aa16ee853d00f959373132a181b0196b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 22 17:09:05 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:15:11 2007 -0400"
      },
      "message": "NFS: Clean up write code...\n\nThe addition of nfs_page_mkwrite means that We should no longer need to\ncreate requests inside nfs_writepage()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "94387fb1aa16ee853d00f959373132a181b0196b",
      "tree": "e41d802c5f6aa8f1d9077b6e15337e2d143098e6",
      "parents": [
        "bbf25010f1a6b761914430f5fca081ec8c7accd1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 22 17:09:05 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:15:08 2007 -0400"
      },
      "message": "NFS: Add the helper nfs_vm_page_mkwrite\n\nThis is needed in order to set up a proper nfs_page request for mmapped\nfiles.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1b3b4a1a2deb7d3e5d66063bd76304d840c966b3",
      "tree": "dfa71fe35420aa18997cabff53afcf3a0db0825a",
      "parents": [
        "7d1cca72994c0e910ca443076dcfcfd473871dda"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Aug 28 10:29:36 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Sep 01 10:14:54 2007 -0400"
      },
      "message": "NFS: Fix a write request leak in nfs_invalidate_page()\n\nRyusuke Konishi says:\n\nThe recent truncate_complete_page() clears the dirty flag from a page\nbefore calling a_ops-\u003einvalidatepage(),\n^^^^^^\nstatic void\ntruncate_complete_page(struct address_space *mapping, struct page *page)\n{\n        ...\n        cancel_dirty_page(page, PAGE_CACHE_SIZE);  \u003c--- Inserted here at\nkernel 2.6.20\n\n        if (PagePrivate(page))\n                do_invalidatepage(page, 0);   ---\u003e will call\na_ops-\u003einvalidatepage()\n        ...\n}\n\nand this is disturbing nfs_wb_page_priority() from calling \nnfs_writepage_locked() that is expected to handle the pending\nrequest (\u003dnfs_page) associated with the page.\n\nint nfs_wb_page_priority(struct inode *inode, struct page *page, int how)\n{\n        ...\n        if (clear_page_dirty_for_io(page)) {\n                ret \u003d nfs_writepage_locked(page, \u0026wbc);\n                if (ret \u003c 0)\n                        goto out;\n        }\n        ...\n}\n\nSince truncate_complete_page() will get rid of the page after\na_ops-\u003einvalidatepage() returns, the request (\u003dnfs_page) associated\nwith the page becomes a garbage in nfs_inode-\u003enfs_page_tree.\n------------------------\n\nFix this by ensuring that nfs_wb_page_priority() recognises that it may\nalso need to clear out non-dirty pages that have an nfs_page associated\nwith them.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6d34ac199a4af5c678a3a8f3275aeb2586b72da3",
      "tree": "4ab6cffcfe993baa0afb2ab361a8c94ebfc3a444",
      "parents": [
        "370f6599e8bc03fd9fc6d1a1be00ae0c6373ca59"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri May 11 16:09:32 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 18 19:17:19 2007 -0400"
      },
      "message": "locks: make posix_test_lock() interface more consistent\n\nSince posix_test_lock(), like fcntl() and -\u003elock(), indicates absence or\npresence of a conflict lock by setting fl_type to, respectively, F_UNLCK\nor something other than F_UNLCK, the return value is no longer needed.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "370f6599e8bc03fd9fc6d1a1be00ae0c6373ca59",
      "tree": "a68ac809ec45dd09d9a24250f8ebcf3825ccea23",
      "parents": [
        "60446067ba7a8e890a91db3b4a7436fe0ebd2dee"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Jun 08 15:23:34 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 18 19:17:19 2007 -0400"
      },
      "message": "nfs: disable leases over NFS\n\nAs Peter Staubach says elsewhere\n(http://marc.info/?l\u003dlinux-kernel\u0026m\u003d118113649526444\u0026w\u003d2):\n\n\u003e The problem is that some file system such as NFSv2 and NFSv3 do\n\u003e not have sufficient support to be able to support leases correctly.\n\u003e In particular for these two file systems, there is no over the wire\n\u003e protocol support.\n\u003e\n\u003e Currently, these two file systems fail the fcntl(F_SETLEASE) call\n\u003e accidentally, due to a reference counting difference.  These file\n\u003e systems should fail more consciously, with a proper error to\n\u003e indicate that the call is invalid for them.\n\nDefine an nfs setlease method that just returns -EINVAL.\n\nIf someone can demonstrate a real need, perhaps we could reenable\nthem in the presence of the \"nolock\" mount option.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\nCc: Peter Staubach \u003cstaubach@redhat.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f0930fffa99e7fe0a0c4b6c7d9a244dc88288c27",
      "tree": "16f6b9e5df9e3ef5aa0f8bc096ea22a196f73e44",
      "parents": [
        "fd5821404e6823997666d668f62c76eae228abc9"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 01 11:51:43 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 10 08:04:14 2007 +0200"
      },
      "message": "sendfile: convert nfs to using splice_read()\n\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e8edc6e03a5c8562dc70a6d969f732bdb355a7e7",
      "tree": "fc86c863655128a7041dfe613d14393d761fa7b9",
      "parents": [
        "ff1be9ad61e3e17ba83702d8ed0b534e5b8ee15c"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon May 21 01:22:52 2007 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 21 09:18:19 2007 -0700"
      },
      "message": "Detach sched.h from mm.h\n\nFirst thing mm.h does is including sched.h solely for can_do_mlock() inline\nfunction which has \"current\" dereference inside. By dealing with can_do_mlock()\nmm.h can be detached from sched.h which is good. See below, why.\n\nThis patch\na) removes unconditional inclusion of sched.h from mm.h\nb) makes can_do_mlock() normal function in mm/mlock.c\nc) exports can_do_mlock() to not break compilation\nd) adds sched.h inclusions back to files that were getting it indirectly.\ne) adds less bloated headers to some files (asm/signal.h, jiffies.h) that were\n   getting them indirectly\n\nNet result is:\na) mm.h users would get less code to open, read, preprocess, parse, ... if\n   they don\u0027t need sched.h\nb) sched.h stops being dependency for significant number of files:\n   on x86_64 allmodconfig touching sched.h results in recompile of 4083 files,\n   after patch it\u0027s only 3744 (-8.3%).\n\nCross-compile tested on\n\n\tall arm defconfigs, all mips defconfigs, all powerpc defconfigs,\n\talpha alpha-up\n\tarm\n\ti386 i386-up i386-defconfig i386-allnoconfig\n\tia64 ia64-up\n\tm68k\n\tmips\n\tparisc parisc-up\n\tpowerpc powerpc-up\n\ts390 s390-up\n\tsparc sparc-up\n\tsparc64 sparc64-up\n\tum-x86_64\n\tx86_64 x86_64-up x86_64-defconfig x86_64-allnoconfig\n\nas well as my two usual configs.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d6a8c5c213e34c475e72b245a8eb709258e968c",
      "tree": "96110535c2bd9485129c0753a9e0f012083b220f",
      "parents": [
        "70cc6487a4e08b8698c0e2ec935fb48d10490162"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Wed Feb 21 00:55:18 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 17:39:00 2007 -0400"
      },
      "message": "locks: give posix_test_lock same interface as -\u003elock\n\nposix_test_lock() and -\u003elock() do the same job but have gratuitously\ndifferent interfaces.  Modify posix_test_lock() so the two agree,\nsimplifying some code in the process.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "92e1d5be91a0e3ffa5c4697eeb09b2aa22792122",
      "tree": "4eb22a9f6c38e9f4cc2a5100cd6659b0af08b7ae",
      "parents": [
        "754661f143e70d66eae6c48532ca245aa05dec0e"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:39 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:46 2007 -0800"
      },
      "message": "[PATCH] mark struct inode_operations const 2\n\nMany struct inode_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "46bae1a9a767f3ae8e636d96f9b95703df34b398"
}
