)]}'
{
  "log": [
    {
      "commit": "a0d24b295aed7a9daf4ca36bd4784e4d40f82303",
      "tree": "2cda7bf3b4514cf13158a557f3ab82d384ce5349",
      "parents": [
        "59a3759d0fe8d969888c741bb33f4946e4d3750d"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Tue May 19 12:03:15 2009 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed May 27 17:40:06 2009 -0400"
      },
      "message": "nfsd: fix hung up of nfs client while sync write data to nfs server\n\nCommit \u0027Short write in nfsd becomes a full write to the client\u0027\n(31dec2538e45e9fff2007ea1f4c6bae9f78db724) broken the sync write.\nWith the following commands to reproduce:\n\n  $ mount -t nfs -o sync 192.168.0.21:/nfsroot /mnt\n  $ cd /mnt\n  $ echo aaaa \u003e temp.txt\n\nThen nfs client is hung up.\n\nIn SYNC mode the server alaways return the write count 0 to the\nclient. This is because the value of host_err in nfsd_vfs_write()\nwill be overwrite in SYNC mode by \u0027host_err\u003dnfsd_sync(file);\u0027,\nand then we return host_err(which is now 0) as write count.\n\nThis patch fixed the problem.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8daed1e549b55827758b3af7b8132a73fc51526f",
      "tree": "242d014706cb4b588e5fdda00a231bd50a9f0356",
      "parents": [
        "89996df4b5b1a09c279f50b3fd03aa9df735f5cb"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon May 11 16:10:19 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon May 11 17:23:14 2009 -0400"
      },
      "message": "nfsd: silence lockdep warning\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b2c0cea6b1cb210e962f07047df602875564069e",
      "tree": "f6327b45df075955d8ef9e9ad93c453ea5fc7a4c",
      "parents": [
        "ccecee1e5e42981f5eb37f4411e8552b9db04d30"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 05 19:04:29 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed May 06 16:16:36 2009 -0400"
      },
      "message": "nfsd4: check for negative dentry before use in nfsv4 readdir\n\nAfter 2f9092e1020246168b1309b35e085ecd7ff9ff72 \"Fix i_mutex vs.  readdir\nhandling in nfsd\" (and 14f7dd63 \"Copy XFS readdir hack into nfsd code\"),\nan entry may be removed between the first mutex_unlock and the second\nmutex_lock. In this case, lookup_one_len() will return a negative\ndentry.  Check for this case to avoid a NULL dereference.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nReviewed-by: J. R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "ccecee1e5e42981f5eb37f4411e8552b9db04d30",
      "tree": "e78f5af87832e18dc29bd48c430967e6d5509783",
      "parents": [
        "21515e46bc6a6279dd13f6c01898ada9720100a3"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri May 01 11:33:53 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 03 14:45:02 2009 -0400"
      },
      "message": "nfsd41: slots are freed with session\n\nThe session and slots are allocated all in one piece.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2f9092e1020246168b1309b35e085ecd7ff9ff72",
      "tree": "f8318c1e62e789718ae7637869f6c075b815bcb2",
      "parents": [
        "1ba0c7dbbbc24230394100c5f0d0df38cb400cff"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Mon Apr 20 23:18:37 2009 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 20 23:01:16 2009 -0400"
      },
      "message": "Fix i_mutex vs. readdir handling in nfsd\n\nCommit 14f7dd63 (\"Copy XFS readdir hack into nfsd code\") introduced a\nbug to generic code which had been extant for a long time in the XFS\nversion -- it started to call through into lookup_one_len() and hence\ninto the file systems\u0027 -\u003elookup() methods without i_mutex held on the\ndirectory.\n\nThis patch fixes it by locking the directory\u0027s i_mutex again before\ncalling the filldir functions. The original deadlocks which commit\n14f7dd63 was designed to avoid are still avoided, because they were due\nto fs-internal locking, not i_mutex.\n\nWhile we\u0027re at it, fix the return type of nfsd_buffered_readdir() which\nshould be a __be32 not an int -- it\u0027s an NFS errno, not a Linux errno.\nAnd return nfserrno(-ENOMEM) when allocation fails, not just -ENOMEM.\nSparse would have caught that, if it wasn\u0027t so busy bitching about\n__cold__.\n\nCommit 05f4f678 (\"nfsd4: don\u0027t do lookup within readdir in recovery\ncode\") introduced a similar problem with calling lookup_one_len()\nwithout i_mutex, which this patch also addresses. To fix that, it was\nnecessary to fix the called functions so that they expect i_mutex to be\nheld; that part was done by J. Bruce Fields.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nUmm-I-can-live-with-that-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nReported-by: J. R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nTested-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nLKML-Reference: \u003c8036.1237474444@jrobl\u003e\nCc: stable@kernel.org\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1644ccc8a99ae73859c39372f96afdbf03c9f80d",
      "tree": "27b568d2fcc00738a505fd562d7fa4728aa43d7f",
      "parents": [
        "e5d67f0715bc60f6c19abdd86d007d7bb29c9951"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 02:32:31 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 20 23:01:15 2009 -0400"
      },
      "message": "Safer nfsd_cross_mnt()\n\nAFAICS, we have a subtle bug there: if we have crossed mountpoint\n*and* it got mount --move\u0027d away, we\u0027ll be holding only one\nreference to fs containing dentry - exp-\u003eex_path.mnt.  IOW, we\nought to dput() before exp_put().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a63856252d2112e7c452696037a86ceb12f47f80",
      "tree": "b1ad03fe441349069f80e58de425b3f72af9e5b7",
      "parents": [
        "b24241a09208874d5d770bee30791daae41ad762",
        "04826f43d4f0a4d56423eb8abb9f2ec9987df5b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:25:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:25:56 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.30\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.30\u0027 of git://linux-nfs.org/~bfields/linux: (81 commits)\n  nfsd41: define nfsd4_set_statp as noop for !CONFIG_NFSD_V4\n  nfsd41: define NFSD_DRC_SIZE_SHIFT in set_max_drc\n  nfsd41: Documentation/filesystems/nfs41-server.txt\n  nfsd41: CREATE_EXCLUSIVE4_1\n  nfsd41: SUPPATTR_EXCLCREAT attribute\n  nfsd41: support for 3-word long attribute bitmask\n  nfsd: dynamically skip encoded fattr bitmap in _nfsd4_verify\n  nfsd41: pass writable attrs mask to nfsd4_decode_fattr\n  nfsd41: provide support for minor version 1 at rpc level\n  nfsd41: control nfsv4.1 svc via /proc/fs/nfsd/versions\n  nfsd41: add OPEN4_SHARE_ACCESS_WANT nfs4_stateid bmap\n  nfsd41: access_valid\n  nfsd41: clientid handling\n  nfsd41: check encode size for sessions maxresponse cached\n  nfsd41: stateid handling\n  nfsd: pass nfsd4_compound_state* to nfs4_preprocess_{state,seq}id_op\n  nfsd41: destroy_session operation\n  nfsd41: non-page DRC for solo sequence responses\n  nfsd41: Add a create session replay cache\n  nfsd41: create_session operation\n  ...\n"
    },
    {
      "commit": "f0ad670d7061efad138df19aefe569263c4ea37b",
      "tree": "d68d7a2deb01814aa5c8e1d32b867010a3284bd2",
      "parents": [
        "3ef1728898f0285c13aa6901f412b52835e23578"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Mon Apr 06 12:00:36 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Apr 06 09:17:53 2009 -0700"
      },
      "message": "nfsd41: define NFSD_DRC_SIZE_SHIFT in set_max_drc\n\nFixes the following compiler error:\nfs/nfsd/nfssvc.c: In function \u0027set_max_drc\u0027:\nfs/nfsd/nfssvc.c:240: error: \u0027NFSD_DRC_SIZE_SHIFT\u0027 undeclared\n\nCONFIG_NFSD_V4 is not set\n\nReported-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "79fb54abd285b442e1f30f851902f3ddf58e7704",
      "tree": "93c8278368e7f6328e1cfa695ce96d5c95f3e338",
      "parents": [
        "8c18f2052e756e7d5dea712fc6e7ed70c00e8a39"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:29:17 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:23 2009 -0700"
      },
      "message": "nfsd41: CREATE_EXCLUSIVE4_1\n\nImplement the CREATE_EXCLUSIVE4_1 open mode conforming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26\n\nThis mode allows the client to atomically create a file\nif it doesn\u0027t exist while setting some of its attributes.\n\nIt must be implemented if the server supports persistent\nreply cache and/or pnfs.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8c18f2052e756e7d5dea712fc6e7ed70c00e8a39",
      "tree": "66762e98af4caa4774b8229fb6fd007fccaab74e",
      "parents": [
        "7e70570647827345352cf6c17461c9fa166f570a"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:29:14 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:23 2009 -0700"
      },
      "message": "nfsd41: SUPPATTR_EXCLCREAT attribute\n\nReturn bitmask for supported EXCLUSIVE4_1 create attributes.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7e70570647827345352cf6c17461c9fa166f570a",
      "tree": "a200662bb68cd9a1396c365a47b50e46f0ea9f73",
      "parents": [
        "95ec28cda323104bbff64fc7ec8ee4c9042e51fa"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:29:11 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:23 2009 -0700"
      },
      "message": "nfsd41: support for 3-word long attribute bitmask\n\nAlso, use client minorversion to generate supported attrs\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "95ec28cda323104bbff64fc7ec8ee4c9042e51fa",
      "tree": "bde294959fdf288cd69e0f6f33570f62ec57dcbf",
      "parents": [
        "c0d6fc8a2d55a8235c301aeb6d5254d5992895d1"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:29:08 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:22 2009 -0700"
      },
      "message": "nfsd: dynamically skip encoded fattr bitmap in _nfsd4_verify\n\n_nfsd4_verify currently skips 3 words from the encoded buffer begining.\nWith support for 3-word attr bitmaps in nfsd41, nfsd4_encode_fattr\nmay encode 1, 2, or 3 words, and not always 2 as it used to be, hence\nwe need to find out where to skip using the encoded bitmap length.\n\nNote: This patch may be applied over pre-nfsd41 nfsd.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c0d6fc8a2d55a8235c301aeb6d5254d5992895d1",
      "tree": "6823f69f411cf37cebf65d1862f4fa9071c40597",
      "parents": [
        "f3ec22b5b0b4b220ee600bf1a8b6dc045b4e72bd"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:29:05 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:22 2009 -0700"
      },
      "message": "nfsd41: pass writable attrs mask to nfsd4_decode_fattr\n\nIn preparation for EXCLUSIVE4_1\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8daf220a6a83c47b9648c28bb819c14c60bad7f9",
      "tree": "e762cf2c8f0b31dac96989ac14c4cc8756e1af1d",
      "parents": [
        "84459a1162801fb84734e5f9e6dc5194f791d69b"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:28:59 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:21 2009 -0700"
      },
      "message": "nfsd41: control nfsv4.1 svc via /proc/fs/nfsd/versions\n\nSupport enabling and disabling nfsv4.1 via /proc/fs/nfsd/versions\nby writing the strings \"+4.1\" or \"-4.1\" correspondingly.\n\nUse user mode nfs-utils (rpc.nfsd option) to enable.\nThis will allow us to get rid of CONFIG_NFSD_V4_1\n\n[nfsd41: disable support for minorversion by default]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "84459a1162801fb84734e5f9e6dc5194f791d69b",
      "tree": "696c4ff2e7ac80a076fd1c6dc56c202893743b0c",
      "parents": [
        "d87a8ade95288f28c729e076cd74929f3f199b6c"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:56 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:21 2009 -0700"
      },
      "message": "nfsd41: add OPEN4_SHARE_ACCESS_WANT nfs4_stateid bmap\n\nSeparate the access bits from the want bits and enable __set_bit to\nwork correctly with st_access_bmap.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d87a8ade95288f28c729e076cd74929f3f199b6c",
      "tree": "700a10f87def9db1c9657f2f7a61286bc06c8d03",
      "parents": [
        "60adfc50de3855628dea8f8896a65f471f51301c"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:53 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:21 2009 -0700"
      },
      "message": "nfsd41: access_valid\n\nFor nfs41, the open share flags are used also for\ndelegation \"wants\" and \"signals\".  Check that they are valid.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "60adfc50de3855628dea8f8896a65f471f51301c",
      "tree": "56b0b32f5c46cee80128ffaec1ac41588a821673",
      "parents": [
        "496c262cf01106a546ffb7df6fea84b8b881ee19"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:50 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:20 2009 -0700"
      },
      "message": "nfsd41: clientid handling\n\nExtract the clientid from sessionid to set the op_clientid on open.\nVerify that the clid for other stateful ops is zero for minorversion !\u003d 0\nDo all other checks for stateful ops without sessions.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[fixed whitespace indent]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41 remove sl_session from nfsd4_open]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "496c262cf01106a546ffb7df6fea84b8b881ee19",
      "tree": "c1b609cd82d7f64a14eedfc308ce21bdf5b05431",
      "parents": [
        "6668958fac1d05f55420de702f3678d46c1e93a5"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:48 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:20 2009 -0700"
      },
      "message": "nfsd41: check encode size for sessions maxresponse cached\n\nCalculate the space the compound response has taken after encoding the current\noperation.\n\npad: add on 8 bytes for the next operation\u0027s op_code and status so that\nthere is room to cache a failure on the next operation.\n\nCompare this length to the session se_fmaxresp_cached and return\nnfserr_rep_too_big_to_cache if the length is too large.\n\nOur se_fmaxresp_cached will always be a multiple of PAGE_SIZE, and so\nwill be at least a page and will therefore hold the xdr_buf head.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfsd41: non-page DRC for solo sequence responses]\n[fixed nfsd4_check_drc_limit cosmetics]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use cstate session in nfsd4_check_drc_limit]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6668958fac1d05f55420de702f3678d46c1e93a5",
      "tree": "2ee7fe01bb6720ecb1147c5c7f7e3d0289fc71bb",
      "parents": [
        "dd453dfd70538cadc02cb47ff8d8cfd0cb8cf435"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:45 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:19 2009 -0700"
      },
      "message": "nfsd41: stateid handling\n\nWhen sessions are used, stateful operation sequenceid and stateid handling\nare not used. When sessions are used,  on the first open set the seqid to 1,\nmark state confirmed and skip seqid processing.\n\nWhen sessionas are used the stateid generation number is ignored when it is zero\nwhereas without sessions bad_stateid or stale stateid is returned.\n\nAdd flags to propagate session use to all stateful ops and down to\ncheck_stateid_generation.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfsd4_has_session should return a boolean, not u32]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: pass nfsd4_compoundres * to nfsd4_process_open1]\n[nfsd41: calculate HAS_SESSION in nfs4_preprocess_stateid_op]\n[nfsd41: calculate HAS_SESSION in nfs4_preprocess_seqid_op]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "dd453dfd70538cadc02cb47ff8d8cfd0cb8cf435",
      "tree": "c55174fec4f6c7ddd803a598bcd755ec87e7ff0e",
      "parents": [
        "e10e0cfc2f27364c73b28adbd3c8688d97049e73"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:28:41 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:19 2009 -0700"
      },
      "message": "nfsd: pass nfsd4_compound_state* to nfs4_preprocess_{state,seq}id_op\n\nCurrently we only use cstate-\u003ecurrent_fh,\nwill also be used by nfsd41 code.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e10e0cfc2f27364c73b28adbd3c8688d97049e73",
      "tree": "bc674e4140ea34b7893c14425ad43a930655743c",
      "parents": [
        "bf864a31d50e3e94d6e76537b97d664913906ff8"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:28:38 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:19 2009 -0700"
      },
      "message": "nfsd41: destroy_session operation\n\nImplement the destory_session operation confoming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26\n\n[use sessionid_lock spin lock]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "bf864a31d50e3e94d6e76537b97d664913906ff8",
      "tree": "8de829d0cdc0c88fe523fc4a288b8e16eedc6a2e",
      "parents": [
        "38eb76a54d803e6792816623651b1a9cb85f8d01"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:35 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:19 2009 -0700"
      },
      "message": "nfsd41: non-page DRC for solo sequence responses\n\nA session inactivity time compound (lease renewal) or a compound where the\nsequence operation has sa_cachethis set to FALSE do not require any pages\nto be held in the v4.1 DRC. This is because struct nfsd4_slot is already\ncaching the session information.\n\nAdd logic to the nfs41 server to not cache response pages for solo sequence\nresponses.\n\nReturn nfserr_replay_uncached_rep on the operation following the sequence\noperation when sa_cachethis is FALSE.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use cstate session in nfsd4_replay_cache_entry]\n[nfsd41: rename nfsd4_no_page_in_cache]\n[nfsd41 rename nfsd4_enc_no_page_replay]\n[nfsd41 nfsd4_is_solo_sequence]\n[nfsd41 change nfsd4_not_cached return]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[changed return type to bool]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41 drop parens in nfsd4_is_solo_sequence call]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[changed \"\u003d\u003d 0\" to \"!\"]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "38eb76a54d803e6792816623651b1a9cb85f8d01",
      "tree": "090f34b2d92bd92637dabf0fc287cbf544c0cb38",
      "parents": [
        "ec6b5d7b5064fde27aee798b81107ea3a830de85"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:32 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:18 2009 -0700"
      },
      "message": "nfsd41: Add a create session replay cache\n\nReplace the nfs4_client cl_seqid field with a single struct nfs41_slot used\nfor the create session replay cache.\n\nThe CREATE_SESSION slot sets the sl_session pointer to NULL. Otherwise, the\nslot and it\u0027s replay cache are used just like the session slots.\n\nFix unconfirmed create_session replay response by initializing the\ncreate_session slot sequence id to 0.\n\nA future patch will set the CREATE_SESSION cache when a SEQUENCE operation\npreceeds the CREATE_SESSION operation. This compound is currently only cached\nin the session slot table.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use bool inuse for slot state]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: revert portion of nfsd4_set_cache_entry]\nSigned-off-by: Andy Adamson \u003candros@netpp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ec6b5d7b5064fde27aee798b81107ea3a830de85",
      "tree": "de1571b6773201268796fe5bf3db9bb0f8d23812",
      "parents": [
        "14778a133e3be332be77d981552a79260a61ee17"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:28 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:18 2009 -0700"
      },
      "message": "nfsd41: create_session operation\n\nImplement the create_session operation confoming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26\n\nLook up the client id (generated by the server on exchange_id,\ngiven by the client on create_session).\nIf neither a confirmed or unconfirmed client is found\nthen the client id is stale\nIf a confirmed cilent is found (i.e. we already received\ncreate_session for it) then compare the sequence id\nto determine if it\u0027s a replay or possibly a mis-ordered rpc.\nIf the seqid is in order, update the confirmed client seqid\nand procedd with updating the session parameters.\n\nIf an unconfirmed client_id is found then verify the creds\nand seqid.  If both match move the client id to confirmed state\nand proceed with processing the create_session.\n\nCurrently, we do not support persistent sessions, and RDMA.\n\nalloc_init_session generates a new sessionid and creates\na session structure.\n\nNFSD_PAGES_PER_SLOT is used for the max response cached calculation, and for\nthe counting of DRC pages using the hard limits set in struct srv_serv.\n\nA note on NFSD_PAGES_PER_SLOT:\n\nOther patches in this series allow for NFSD_PAGES_PER_SLOT + 1 pages to be\ncached in a DRC slot when the response size is less than NFSD_PAGES_PER_SLOT *\nPAGE_SIZE but xdr_buf pages are used. e.g. a READDIR operation will encode a\nsmall amount of data in the xdr_buf head, and then the READDIR in the xdr_buf\npages.  So, the hard limit calculation use of pages by a session is\nunderestimated by the number of cached operations using the xdr_buf pages.\n\nYet another patch caches no pages for the solo sequence operation, or any\ncompound where cache_this is False.  So the hard limit calculation use of\npages by a session is overestimated by the number of these operations in the\ncache.\n\nTODO: improve resource pre-allocation and negotiate session\nparameters accordingly.  Respect and possibly adjust\nbackchannel attributes.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildeb@us.ibm.com\u003e\n[nfsd41: remove headerpadsz from channel attributes]\nOur client and server only support a headerpadsz of 0.\n[nfsd41: use DRC limits in fore channel init]\n[nfsd41: do not change CREATE_SESSION back channel attrs]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[use sessionid_lock spin lock]\n[nfsd41: use bool inuse for slot state]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41 remove sl_session from alloc_init_session]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[simplify nfsd4_encode_create_session error handling]\n[nfsd41: fix comment style in init_forechannel_attrs]\n[nfsd41: allocate struct nfsd4_session and slot table in one piece]\n[nfsd41: no need to INIT_LIST_HEAD in alloc_init_session just prior to list_add]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "14778a133e3be332be77d981552a79260a61ee17",
      "tree": "f0b67f5e40481f43c74091809892aeddb4b8c043",
      "parents": [
        "da3846a2866ddf239311766ff434a82e7b4ac701"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:25 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:18 2009 -0700"
      },
      "message": "nfsd41: clear DRC cache on free_session\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "da3846a2866ddf239311766ff434a82e7b4ac701",
      "tree": "c40d6c1754999f1f572f12c4fa68f281a93b040c",
      "parents": [
        "c3d06f9ce8544fecfe13e377d1e2c2e47fe18dbc"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:22 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:17 2009 -0700"
      },
      "message": "nfsd41: nfsd DRC logic\n\nReplay a request in nfsd4_sequence.\nAdd a minorversion to struct nfsd4_compound_state.\n\nPass the current slot to nfs4svc_encode_compound res via struct\nnfsd4_compoundres to set an NFSv4.1 DRC entry.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use bool inuse for slot state]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use cstate session in nfs4svc_encode_compoundres]\n[nfsd41 replace nfsd4_set_cache_entry]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c3d06f9ce8544fecfe13e377d1e2c2e47fe18dbc",
      "tree": "f34acde5f484a8374065295e205921e1860da65c",
      "parents": [
        "074fe897536f095309c5aaffcf912952882ab2cb"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:18 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:17 2009 -0700"
      },
      "message": "nfsd41: hard page limit for DRC\n\nUse no more than 1/128th of the number of free pages at nfsd startup for the\nv4.1 DRC.\n\nThis is an arbitrary default which should probably end up under the control\nof an administrator.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[moved added fields in struct svc_serv under CONFIG_NFSD_V4_1]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[fix set_max_drc calculation of sv_drc_max_pages]\n[moved NFSD_DRC_SIZE_SHIFT\u0027s declaration up in header file]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "074fe897536f095309c5aaffcf912952882ab2cb",
      "tree": "d4bb2fff645a2df1dbdec4af6787359d888a3695",
      "parents": [
        "f9bb94c4c60f6e1d1717077bfddb614f03a607d1"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:15 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:17 2009 -0700"
      },
      "message": "nfsd41: DRC save, restore, and clear functions\n\nCache all the result pages, including the rpc header in rq_respages[0],\nfor a request in the slot table cache entry.\n\nCache the statp pointer from nfsd_dispatch which points into rq_respages[0]\njust past the rpc header. When setting a cache entry, calculate and save the\nlength of the nfs data minus the rpc header for rq_respages[0].\n\nWhen replaying a cache entry, replace the cached rpc header with the\nreplayed request rpc result header, unless there is not enough room in the\ncached results first page. In that case, use the cached rpc header.\n\nThe sessions fore channel maxresponse size cached is set to NFSD_PAGES_PER_SLOT\n* PAGE_SIZE. For compounds we are cacheing with operations such as READDIR\nthat use the xdr_buf-\u003epages to hold data, we choose to cache the extra page of\ndata rather than copying data from xdr_buf-\u003epages into the xdr_buf-\u003ehead page.\n\n[nfsd41: limit cache to maxresponsesize_cached]\n[nfsd41: mv nfsd4_set_statp under CONFIG_NFSD_V4_1]\n[nfsd41: rename nfsd4_move_pages]\n[nfsd41: rename page_no variable]\n[nfsd41: rename nfsd4_set_cache_entry]\n[nfsd41: fix nfsd41_copy_replay_data comment]\n[nfsd41: add to nfsd4_set_cache_entry]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f9bb94c4c60f6e1d1717077bfddb614f03a607d1",
      "tree": "7f194a6ceca40f3b66e1e0a40b5f39af426269e1",
      "parents": [
        "b85d4c01b76f6969a085d07a767fa45225cb14be"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:12 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:16 2009 -0700"
      },
      "message": "nfsd41: enforce NFS4ERR_SEQUENCE_POS operation order rules for minorversion !\u003d 0 only.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\n[nfsd41: do not verify nfserr_sequence_pos for minorversion 0]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b85d4c01b76f6969a085d07a767fa45225cb14be",
      "tree": "5441d0f6bcec52fab3b81ad4887239ff784c5ad9",
      "parents": [
        "a1bcecd29cdf1670df6908a620add4211c0abb7a"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:28:08 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:16 2009 -0700"
      },
      "message": "nfsd41: sequence operation\n\nImplement the sequence operation conforming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26\n\nCheck for stale clientid (as derived from the sessionid).\nEnforce slotid range and exactly-once semantics using\nthe slotid and seqid.\n\nIf everything went well renew the client lease and\nmark the slot INPROGRESS.\n\nAdd a struct nfsd4_slot pointer to struct nfsd4_compound_state.\nTo be used for sessions DRC replay.\n\n[nfsd41: rename sequence catchthis to cachethis]\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\n[pulled some code to set cstate-\u003eslot from \"nfsd DRC logic\"]\n[use sessionid_lock spin lock]\n[nfsd41: use bool inuse for slot state]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd: add a struct nfsd4_slot pointer to struct nfsd4_compound_state]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: add nfsd4_session pointer to nfsd4_compound_state]\n[nfsd41: set cstate session]\n[nfsd41: use cstate session in nfsd4_sequence]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[simplify nfsd4_encode_sequence error handling]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a1bcecd29cdf1670df6908a620add4211c0abb7a",
      "tree": "a4323b21675db5a47a45f5d292fef468b9786007",
      "parents": [
        "0733d21338747483985a5964e852af160d88e429"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:05 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:15 2009 -0700"
      },
      "message": "nfsd41: match clientid establishment method\n\nWe need to distinguish between client names provided by NFSv4.0 clients\nSETCLIENTID and those provided by NFSv4.1 via EXCHANGE_ID when looking\nup the clientid by string.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfsd41: use boolean values for use_exchange_id argument]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: simplify match_clientid_establishment logic]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0733d21338747483985a5964e852af160d88e429",
      "tree": "fb8014cc66d3bfc33e1b7cc6a0da369bccc34cd3",
      "parents": [
        "069b6ad4bb20abf175ea7875e82e8002154773af"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:01 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:15 2009 -0700"
      },
      "message": "nfsd41: exchange_id operation\n\nImplement the exchange_id operation confoming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-28\n\nBased on the client provided name, hash a client id.\nIf a confirmed one is found, compare the op\u0027s creds and\nverifier.  If the creds match and the verifier is different\nthen expire the old client (client re-incarnated), otherwise,\nif both match, assume it\u0027s a replay and ignore it.\n\nIf an unconfirmed client is found, then copy the new creds\nand verifer if need update, otherwise assume replay.\n\nThe client is moved to a confirmed state on create_session.\n\nIn the nfs41 branch set the exchange_id flags to\nEXCHGID4_FLAG_USE_NON_PNFS | EXCHGID4_FLAG_SUPP_MOVED_REFER\n(pNFS is not supported, Referrals are supported,\nMigration is not.).\n\nAddress various scenarios from section 18.35 of the spec:\n\n1. Check for EXCHGID4_FLAG_UPD_CONFIRMED_REC_A and set\n   EXCHGID4_FLAG_CONFIRMED_R as appropriate.\n\n2. Return error codes per 18.35.4 scenarios.\n\n3. Update client records or generate new client ids depending on\n   scenario.\n\nNote: 18.35.4 case 3 probably still needs revisiting.  The handling\nseems not quite right.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Andy Adamosn \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use utsname for major_id (and copy to server_scope)]\n[nfsd41: fix handling of various exchange id scenarios]\nSigned-off-by: Mike Sager \u003csager@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: reverse use of EXCHGID4_INVAL_FLAG_MASK_A]\n[simplify nfsd4_encode_exchange_id error handling]\n[nfsd41: embed an xdr_netobj in nfsd4_exchange_id]\n[nfsd41: return nfserr_serverfault for spa_how \u003d\u003d SP4_MACH_CRED]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "069b6ad4bb20abf175ea7875e82e8002154773af",
      "tree": "e3a933d4c7f0444d29f9266fc5aa77f6e87f5a69",
      "parents": [
        "2db134eb3b39faefc7fbfb200156d175edba2f68"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:27:58 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:14 2009 -0700"
      },
      "message": "nfsd41: proc stubs\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2db134eb3b39faefc7fbfb200156d175edba2f68",
      "tree": "dd07afee13667410cb64dba1de3a80c54d1bd989",
      "parents": [
        "5282fd724b667b7d65f2e41e405a825e58a78813"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:27:55 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:14 2009 -0700"
      },
      "message": "nfsd41: xdr infrastructure\n\nDefine nfsd41_dec_ops vector and add it to nfsd4_minorversion for\nminorversion 1.\n\nNote: nfsd4_enc_ops vector is shared for v4.0 and v4.1\nsince we don\u0027t need to filter out obsolete ops as this is\ndone in the decoding phase.\n\nexchange_id, create_session, destroy_session, and sequence ops are\nimplemented as stubs returning nfserr_opnotsupp at this stage.\n\n[was nfsd41: xdr stubs]\n[get rid of CONFIG_NFSD_V4_1]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5282fd724b667b7d65f2e41e405a825e58a78813",
      "tree": "6603d2895c789db0e2244e9966f3a2246a6addb9",
      "parents": [
        "c4bf7868064ce8b9c75d8049d077e593c20602b3"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Fri Apr 03 08:27:52 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:14 2009 -0700"
      },
      "message": "nfsd41: sessionid hashing\n\nSimple sessionid hashing using its monotonically increasing sequence number.\n\nLocking considerations:\nsessionid_hashtbl access is controlled by the sessionid_lock spin lock.\nIt must be taken for insert, delete, and lookup.\nnfsd4_sequence looks up the session id and if the session is found,\nit calls nfsd4_get_session (still under the sessionid_lock).\nnfsd4_destroy_session calls nfsd4_put_session after unhashing\nit, so when the session\u0027s kref reaches zero it\u0027s going to get freed.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[we don\u0027t use a prime for sessionid hash table size]\n[use sessionid_lock spin lock]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c4bf7868064ce8b9c75d8049d077e593c20602b3",
      "tree": "0e2cdb25e7733adb01350133de50740821f6bbef",
      "parents": [
        "9fb870702d02c05f9410423bfff3f63e46e26180"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Fri Apr 03 08:27:49 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:13 2009 -0700"
      },
      "message": "nfsd41: release_session when client is expired\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[add CONFIG_NFSD_V4_1 to fix v4.0 regression bug]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9fb870702d02c05f9410423bfff3f63e46e26180",
      "tree": "849fd556192da4b34cc872a36f8ad415e87775c6",
      "parents": [
        "7116ed6b9973021ff43edeb10f4cb834db94000f"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Fri Apr 03 08:27:46 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:13 2009 -0700"
      },
      "message": "nfsd41: introduce nfs4_client cl_sessions list\n\n[get rid of CONFIG_NFSD_V4_1]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7116ed6b9973021ff43edeb10f4cb834db94000f",
      "tree": "fb47a0d182cbf2afb87f482ac03d1a1763f8ee3b",
      "parents": [
        "10add806c38c022d18af48f3ec28c91b4eaf7bb3"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:27:43 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:13 2009 -0700"
      },
      "message": "nfsd41: sessions basic data types\n\nThis patch provides basic data structures representing the nfs41\nsessions and slots, plus helpers for keeping a reference count\non the session and freeing it.\n\nNote that our server only support a headerpadsz of 0 and\nit ignores backchannel attributes at the moment.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: remove headerpadsz from channel attributes]\n[nfsd41: embed nfsd4_channel in nfsd4_session]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use bool inuse for slot state]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41 remove sl_session from nfsd4_slot]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2f425878b6a71571341dcd3f9e9d1a6f6355da9c",
      "tree": "52735958c1614458bd6b459040f977dfc3c3e9a9",
      "parents": [
        "20766016329eb4985c2c8b2a1b2333e0f865fdf9"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:27:32 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:12 2009 -0700"
      },
      "message": "nfsd: don\u0027t use the deferral service, return NFS4ERR_DELAY\n\nOn an NFSv4.1 server cache miss that causes an upcall, NFS4ERR_DELAY will be\nreturned. It is up to the NFSv4.1 client to resend only the operations that\nhave not been processed.\n\nInitialize rq_usedeferral to 1 in svc_process(). It sill be turned off in\nnfsd4_proc_compound() only when NFSv4.1 Sessions are used.\n\nNote: this isn\u0027t an adequate solution on its own. It\u0027s acceptable as a way\nto get some minimal 4.1 up and working, but we\u0027re going to have to find a\nway to avoid returning DELAY in all common cases before 4.1 can really be\nconsidered ready.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: reverse rq_nodeferral negative logic]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[sunrpc: initialize rq_usedeferral]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8fe74cf053de7ad2124a894996f84fa890a81093",
      "tree": "77dcd8fbf33ce53a3821942233962fb28c6f2848",
      "parents": [
        "c2eb2fa6d2b6fe122d3479ec5b28d978418b2698",
        "ced117c73edc917e96dea7cca98c91383f0792f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 21:09:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 21:09:10 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  Remove two unneeded exports and make two symbols static in fs/mpage.c\n  Cleanup after commit 585d3bc06f4ca57f975a5a1f698f65a45ea66225\n  Trim includes of fdtable.h\n  Don\u0027t crap into descriptor table in binfmt_som\n  Trim includes in binfmt_elf\n  Don\u0027t mess with descriptor table in load_elf_binary()\n  Get rid of indirect include of fs_struct.h\n  New helper - current_umask()\n  check_unsafe_exec() doesn\u0027t care about signal handlers sharing\n  New locking/refcounting for fs_struct\n  Take fs_struct handling to new file (fs/fs_struct.c)\n  Get rid of bumping fs_struct refcount in pivot_root(2)\n  Kill unsharing fs_struct in __set_personality()\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": "3e93cd671813e204c258f1e6c797959920cf7772",
      "tree": "a1e0b2d2da7d296cc1c53be9cd6efa5b94b01b5c",
      "parents": [
        "f8ef3ed2bebd2c4cb9ece92efa185d7aead8831a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 29 19:00:13 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 31 23:00:26 2009 -0400"
      },
      "message": "Take fs_struct handling to new file (fs/fs_struct.c)\n\nPure code move; two new helper functions for nfsd and daemonize\n(unshare_fs_struct() and daemonize_fs_struct() resp.; for now -\nthe same code as used to be in callers).  unshare_fs_struct()\nexported (for nfsd, as copy_fs_struct()/exit_fs() used to be),\ncopy_fs_struct() and exit_fs() don\u0027t need exports anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "20766016329eb4985c2c8b2a1b2333e0f865fdf9",
      "tree": "14c9feb06899a2c5db58d3e7914cc2450c5e0e1f",
      "parents": [
        "e354d571bb481f1d71f2c3004b9ff570b32e83bd"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Sat Mar 28 11:32:05 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Mar 30 17:03:11 2009 -0400"
      },
      "message": "nfsd: remove nfsd4_ops array size\n\nThere\u0027s no need for it.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e354d571bb481f1d71f2c3004b9ff570b32e83bd",
      "tree": "f55f172d7412c0853187f8cb3c2e1a9fdce4d411",
      "parents": [
        "42d671c78f6486c932b68a50f88768c7b4e57ebf"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Sat Mar 28 11:30:52 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Mar 29 16:20:12 2009 -0400"
      },
      "message": "nfsd: embed nfsd4_current_state in nfsd4_compoundres\n\nRemove the allocation of struct nfsd4_compound_state.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "49a9072f29a1039f142ec98b44a72d7173651c02",
      "tree": "d2a87541cb699fb6b1fbdef492f3dc6c305aa541",
      "parents": [
        "9652ada3fb5914a67d8422114e8a76388330fa79"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:46:29 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:54:48 2009 -0400"
      },
      "message": "SUNRPC: Remove @family argument from svc_create() and svc_create_pooled()\n\nSince an RPC service listener\u0027s protocol family is specified now via\nsvc_create_xprt(), it no longer needs to be passed to svc_create() or\nsvc_create_pooled().  Remove that argument from the synopsis of those\nfunctions, and remove the sv_family field from the svc_serv struct.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9652ada3fb5914a67d8422114e8a76388330fa79",
      "tree": "b37d77bf972dda04b46794c4e50ec6f6d044dc79",
      "parents": [
        "baf01caf09e87579c2d157e5ee29975db8551522"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:46:21 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:54:36 2009 -0400"
      },
      "message": "SUNRPC: Change svc_create_xprt() to take a @family argument\n\nThe sv_family field is going away.  Pass a protocol family argument to\nsvc_create_xprt() instead of extracting the family from the passed-in\nsvc_serv struct.\n\nAgain, as this is a listener socket and not an address, we make this\nnew argument an \"int\" protocol family, instead of an \"sa_family_t.\"\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "adbbe929569e6eec8ff9feca23f1f2b40b42853d",
      "tree": "2a22bb3d333f1471c1c6629e5947f56dd850611a",
      "parents": [
        "efb3288b423d7e3533a68dccecaa05a56a281a4e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:45:51 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:53:42 2009 -0400"
      },
      "message": "NFSD: If port value written to /proc/fs/nfsd/portlist is invalid, return EINVAL\n\nMake sure port value read from user space by write_ports is valid before\npassing it to svc_find_xprt().  If it wasn\u0027t, the writer would get ENOENT\ninstead of EINVAL.\n\nNoticed-by: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2c9e15a011c55ff96b2b8d2b126d1b9a96abba20",
      "tree": "6d9b27a07f88ad4509dcd86aa74a2cdecd0d5f4b",
      "parents": [
        "805de022b100bcf796860fe88d7db4164066d1c3",
        "c16831b4cc9b0805adf8ca3001752a7ec10a17bf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 14:48:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 14:48:34 2009 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6: (27 commits)\n  ext2: Zero our b_size in ext2_quota_read()\n  trivial: fix typos/grammar errors in fs/Kconfig\n  quota: Coding style fixes\n  quota: Remove superfluous inlines\n  quota: Remove uppercase aliases for quota functions.\n  nfsd: Use lowercase names of quota functions\n  jfs: Use lowercase names of quota functions\n  udf: Use lowercase names of quota functions\n  ufs: Use lowercase names of quota functions\n  reiserfs: Use lowercase names of quota functions\n  ext4: Use lowercase names of quota functions\n  ext3: Use lowercase names of quota functions\n  ext2: Use lowercase names of quota functions\n  ramfs: Remove quota call\n  vfs: Use lowercase names of quota functions\n  quota: Remove dqbuf_t and other cleanups\n  quota: Remove NODQUOT macro\n  quota: Make global quota locks cacheline aligned\n  quota: Move quota files into separate directory\n  ext4: quota reservation for delayed allocation\n  ...\n"
    },
    {
      "commit": "8e9d2089723d08d51e66c5eea49253d76e27941e",
      "tree": "cf15609d5eeb0c1f3a39231d8ce793d3c8ad0ed0",
      "parents": [
        "ba1eb95cf3cc666769afe42eaa15a3a34ae82f94",
        "60aa49243d09afc873f082567d2e3c16634ced84"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:14:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:14:02 2009 -0700"
      },
      "message": "Merge branch \u0027bkl-removal\u0027 of git://git.lwn.net/linux-2.6\n\n* \u0027bkl-removal\u0027 of git://git.lwn.net/linux-2.6:\n  Rationalize fasync return values\n  Move FASYNC bit handling to f_op-\u003efasync()\n  Use f_lock to protect f_flags\n  Rename struct file-\u003ef_ep_lock\n"
    },
    {
      "commit": "90c0af05a5a486f7709195e20bb26ad8f67ba5af",
      "tree": "af017a87326c57f95d419477ad12c239882e42ac",
      "parents": [
        "c94d2a22f26bdb11d3dd817669b940a8c76a8cad"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Feb 09 22:22:21 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:37 2009 +0100"
      },
      "message": "nfsd: Use lowercase names of quota functions\n\nUse lowercase names of quota functions instead of old uppercase ones.\n\nCC: bfields@fieldses.org\nCC: neilb@suse.de\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "0953e620de0538cbd081f1b45126f6098112a598",
      "tree": "be82dcc6df0b6d0c1d99a2e6a2392262869d0def",
      "parents": [
        "47a14ef1af48c696b214ac168f056ddc79793d0e"
      ],
      "author": {
        "name": "Sachin S. Prabhu",
        "email": "sprabhu@redhat.com",
        "time": "Mon Feb 23 16:22:03 2009 +0000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:59:37 2009 -0400"
      },
      "message": "Inconsistent setattr behaviour\n\nThere is an inconsistency seen in the behaviour of nfs compared to other local\nfilesystems on linux when changing owner or group of a directory. If the\ndirectory has SUID/SGID flags set, on changing owner or group on the directory,\nthe flags are stripped off on nfs. These flags are maintained on other\nfilesystems such as ext3.\n\nTo reproduce on a nfs share or local filesystem, run the following commands\nmkdir test; chmod +s+g test; chown user1 test; ls -ld test\n\nOn the nfs share, the flags are stripped and the output seen is\ndrwxr-xr-x 2 user1 root 4096 Feb 23  2009 test\n\nOn other local filesystems(ex: ext3), the flags are not stripped and the output\nseen is\ndrwsr-sr-x 2 user1 root 4096 Feb 23 13:57 test\n\nchown_common() called from sys_chown() will only strip the flags if the inode is\nnot a directory.\nstatic int chown_common(struct dentry * dentry, uid_t user, gid_t group)\n{\n..\n        if (!S_ISDIR(inode-\u003ei_mode))\n                newattrs.ia_valid |\u003d\n                        ATTR_KILL_SUID | ATTR_KILL_SGID | ATTR_KILL_PRIV;\n..\n}\n\nSee: http://www.opengroup.org/onlinepubs/7990989775/xsh/chown.html\n\n\"If the path argument refers to a regular file, the set-user-ID (S_ISUID) and\nset-group-ID (S_ISGID) bits of the file mode are cleared upon successful return\nfrom chown(), unless the call is made by a process with appropriate privileges,\nin which case it is implementation-dependent whether these bits are altered. If\nchown() is successfully invoked on a file that is not a regular file, these\nbits may be cleared. These bits are defined in \u003csys/stat.h\u003e.\"\n\nThe behaviour as it stands does not appear to violate POSIX.  However the\nactions performed are inconsistent when comparing ext3 and nfs.\n\nSigned-off-by: Sachin Prabhu \u003csprabhu@redhat.com\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "026722c25e6eb018eab8b9a3c198c258f5b7a2e7",
      "tree": "b57fa768c7cdaaa21257a57e96427411bf015b0b",
      "parents": [
        "03cf6c9f49a8fea953d38648d016e3f46e814991"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 15:06:26 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:42 2009 -0400"
      },
      "message": "nfsd4: don\u0027t check ip address in setclientid\n\nThe spec allows clients to change ip address, so we shouldn\u0027t be\nrequiring that setclientid always come from the same address.  For\nexample, a client could reboot and get a new dhcpd address, but still\npresent the same clientid to the server.  In that case the server should\nrevoke the client\u0027s previous state and allow it to continue, instead of\n(as it currently does) returning a CLID_INUSE error.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "03cf6c9f49a8fea953d38648d016e3f46e814991",
      "tree": "c7e639bd9fb775af1919d2442d0bf2306dfbfca7",
      "parents": [
        "59a252ff8c0f2fa32c896f69d56ae33e641ce7ad"
      ],
      "author": {
        "name": "Greg Banks",
        "email": "gnb@sgi.com",
        "time": "Tue Jan 13 21:26:36 2009 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:42 2009 -0400"
      },
      "message": "knfsd: add file to export stats about nfsd pools\n\nAdd /proc/fs/nfsd/pool_stats to export to userspace various\nstatistics about the operation of rpc server thread pools.\n\nThis patch is based on a forward-ported version of\nknfsd-add-pool-thread-stats which has been shipping in the SGI\n\"Enhanced NFS\" product since 2006 and which was previously\nposted:\n\nhttp://article.gmane.org/gmane.linux.nfs/10375\n\nIt has also been updated thus:\n\n * moved EXPORT_SYMBOL() to near the function it exports\n * made the new struct struct seq_operations const\n * used SEQ_START_TOKEN instead of ((void *)1)\n * merged fix from SGI PV 990526 \"sunrpc: use dprintk instead of\n   printk in svc_pool_stats_*()\" by Harshula Jayasuriya.\n * merged fix from SGI PV 964001 \"Crash reading pool_stats before\n   nfsds are started\".\n\nSigned-off-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: Harshula Jayasuriya \u003charshula@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8bbfa9f3889b643fc7de82c0c761ef17097f8faf",
      "tree": "b214924c3fa4a440a1cd2dc036630e8d7e605256",
      "parents": [
        "5cb031b0afddad73ea4191c9f0b76d20ca447dc0"
      ],
      "author": {
        "name": "Greg Banks",
        "email": "gnb@sgi.com",
        "time": "Tue Jan 13 21:26:34 2009 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:41 2009 -0400"
      },
      "message": "knfsd: remove the nfsd thread busy histogram\n\nStop gathering the data that feeds the \u0027th\u0027 line in /proc/net/rpc/nfsd\nbecause the questionable data provided is not worth the scalability\nimpact of calculating it.  Instead, always report zeroes.  The current\napproach suffers from three major issues:\n\n1. update_thread_usage() increments buckets by call service\n   time or call arrival time...in jiffies.  On lightly loaded\n   machines, call service times are usually \u003c 1 jiffy; on\n   heavily loaded machines call arrival times will be \u003c\u003c 1 jiffy.\n   So a large portion of the updates to the buckets are rounded\n   down to zero, and the histogram is undercounting.\n\n2. As seen previously on the nfs mailing list, the format in which\n   the histogram is presented is cryptic, difficult to explain,\n   and difficult to use.\n\n3. Updating the histogram requires taking a global spinlock and\n   dirtying the global variables nfsd_last_call, nfsd_busy, and\n   nfsdstats *twice* on every RPC call, which is a significant\n   scaling limitation.\n\nTesting on a 4 CPU 4 NIC Altix using 4 IRIX clients each doing\n1K streaming reads at full line rate, shows the stats update code\n(inlined into nfsd()) takes about 1.7% of each CPU.  This patch drops\nthe contribution from nfsd() into the profile noise.\n\nThis patch is a forward-ported version of knfsd-remove-nfsd-threadstats\nwhich has been shipping in the SGI \"Enhanced NFS\" product since 2006.\nIn that time, exactly one customer has noticed that the threadstats\nwere missing.  It has been previously posted:\n\nhttp://article.gmane.org/gmane.linux.nfs/10376\n\nand more recently requested to be posted again.\n\nSigned-off-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5cb031b0afddad73ea4191c9f0b76d20ca447dc0",
      "tree": "74026ee23585761839ce703003e19587f2b9dbd9",
      "parents": [
        "05f4f678b0511a24795a017b5332455077be3b1c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Mar 14 16:38:41 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:41 2009 -0400"
      },
      "message": "nfsd4: remove redundant check from nfsd4_open\n\nNote that we already checked for this invalid case at the top of this\nfunction.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "05f4f678b0511a24795a017b5332455077be3b1c",
      "tree": "c646c8932bf7e78ff0960ade2f50cf43848d3bda",
      "parents": [
        "a1c8c4d1ff54c6c86930ee3c4c73c69eeb9ede61"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Mar 13 16:02:59 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:40 2009 -0400"
      },
      "message": "nfsd4: don\u0027t do lookup within readdir in recovery code\n\nThe main nfsd code was recently modified to no longer do lookups from\nwithing the readdir callback, to avoid locking problems on certain\nfilesystems.\n\nThis (rather hacky, and overdue for replacement) NFSv4 recovery code has\nthe same problem.  Fix it to build up a list of names (instead of\ndentries) and do the lookups afterwards.\n\nReported symptoms were a deadlock in the xfs code (called from\nnfsd4_recdir_load), with /var/lib/nfs on xfs.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nReported-by: David Warren \u003cwarren@atmos.washington.edu\u003e\n"
    },
    {
      "commit": "a1c8c4d1ff54c6c86930ee3c4c73c69eeb9ede61",
      "tree": "682e078f8978bee53c69e68accd7cae3bb4867ef",
      "parents": [
        "31dec2538e45e9fff2007ea1f4c6bae9f78db724"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Mar 09 12:17:29 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:40 2009 -0400"
      },
      "message": "nfsd4: support putpubfh operation\n\nCurrently putpubfh returns NFSERR_OPNOTSUPP, which isn\u0027t actually\nallowed for v4.  The right error is probably NFSERR_NOTSUPP.\n\nBut let\u0027s just implement it; though rarely seen, it can be used by\nSolaris (with a special mount option), is mandated by the rfc, and is\ntrivial for us to support.\n\nThanks to Yang Hongyang for pointing out the original problem, and to\nMike Eisler, Tom Talpey, Trond Myklebust, and Dave Noveck for further\nargument....\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "31dec2538e45e9fff2007ea1f4c6bae9f78db724",
      "tree": "c2b42679c73c1c6f31312f38a1b1d049e918d635",
      "parents": [
        "1e685ec270cb97680be4eb8cf6b615f5f7f1403a"
      ],
      "author": {
        "name": "David Shaw",
        "email": "dshaw@jabberwocky.com",
        "time": "Thu Mar 05 20:16:14 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:40 2009 -0400"
      },
      "message": "Short write in nfsd becomes a full write to the client\n\nIf a filesystem being written to via NFS returns a short write count\n(as opposed to an error) to nfsd, nfsd treats that as a success for\nthe entire write, rather than the short count that actually succeeded.\n\nFor example, given a 8192 byte write, if the underlying filesystem\nonly writes 4096 bytes, nfsd will ack back to the nfs client that all\n8192 bytes were written.  The nfs client does have retry logic for\nshort writes, but this is never called as the client is told the\ncomplete write succeeded.\n\nThere are probably other ways it could happen, but in my case it\nhappened with a fuse (filesystem in userspace) filesystem which can\nrather easily have a partial write.\n\nHere is a patch to properly return the short write count to the\nclient.\n\nSigned-off-by: David Shaw \u003cdshaw@jabberwocky.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "1e685ec270cb97680be4eb8cf6b615f5f7f1403a",
      "tree": "0ac8729d2cce07f6e1a4f1f266df0e90dc749f28",
      "parents": [
        "a601caeda21c0e94c153dbd146ec0899cc5f324f"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Mar 04 23:06:06 2009 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:39 2009 -0400"
      },
      "message": "NFSD: return nfsv4 error code nfserr_notsupp rather than nfsv[23]\u0027s nfserr_opnotsupp\n\nThanks for Bill Baker at sun.com for catching this\nat Connectathon 2009.\n\nThis bug was introduced in 2.6.27\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a601caeda21c0e94c153dbd146ec0899cc5f324f",
      "tree": "0fc46ede6bde9cf2ed6bf1417f18ef620867e2d0",
      "parents": [
        "418cd20aa19b54554cab383e2fd0d1cb8c4732ee"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 22 16:43:45 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:39 2009 -0400"
      },
      "message": "nfsd4: move rpc_client setup to a separate function\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "418cd20aa19b54554cab383e2fd0d1cb8c4732ee",
      "tree": "c101f0cd0bd6ed97bbf1781ca651e9fcf3d92c69",
      "parents": [
        "8b671b80707e4fc76adfe4387df07b3be1007c1e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 22 15:52:13 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:39 2009 -0400"
      },
      "message": "nfsd4: fix do_probe_callback errors\n\nThe errors returned aren\u0027t used.  Just return 0 and make them available\nto a dprintk().  Also, consistently use -ERRNO errors instead of nfs\nerrors.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nReviewed-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "8b671b80707e4fc76adfe4387df07b3be1007c1e",
      "tree": "d9dafb3a1174dfeb84f72ba56a04625204aab415",
      "parents": [
        "d7fdcfe0aaaf6dffca6fa857bab374182fe7ca8b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 22 14:51:34 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:38 2009 -0400"
      },
      "message": "nfsd4: remove use of mutex for file_hashtable\n\nAs part of reducing the scope of the client_mutex, and in order to\nremove the need for mutexes from the callback code (so that callbacks\ncan be done as asynchronous rpc calls), move manipulations of the\nfile_hashtable under the recall_lock.\n\nUpdate the relevant comments while we\u0027re here.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nReviewed-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "d7fdcfe0aaaf6dffca6fa857bab374182fe7ca8b",
      "tree": "f53688b2496a98da148297972b4e27318810ec89",
      "parents": [
        "18f82731b7784ba81ee9b1ed6a8179b577fa898b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 21 15:39:54 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:38 2009 -0400"
      },
      "message": "nfsd4: put_nfs4_client does not require state lock\n\nSince free_client() is guaranteed to only be called once, and to only\ntouch the client structure itself (not any common data structures), it\nhas no need for the state lock.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\n"
    },
    {
      "commit": "18f82731b7784ba81ee9b1ed6a8179b577fa898b",
      "tree": "ffb78832820057bedd98cd6e0cb6ef512bc77414",
      "parents": [
        "6150ef0dc7f734366d297e2eb5697ae458a1ea19"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 21 15:23:01 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:38 2009 -0400"
      },
      "message": "nfsd4: rename io_during_grace_disallowed\n\nUse a slightly clearer, more concise name.  Also removed unused\nargument.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6150ef0dc7f734366d297e2eb5697ae458a1ea19",
      "tree": "0a11653b66953b808d2a1a98dc8da0f649c875f3",
      "parents": [
        "7e0f7cf582abd6c85232331dfe726a4e4b0fd98e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 21 13:36:16 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:37 2009 -0400"
      },
      "message": "nfsd4: remove unused CHECK_FH flag\n\nAll users now pass this, so it\u0027s meaningless.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7e0f7cf582abd6c85232331dfe726a4e4b0fd98e",
      "tree": "a6a8aa7d51538377df5e2ce076c347ccd63b6b5b",
      "parents": [
        "203a8c8e66278a5936a230edaac29017e50c88fb"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 21 13:32:28 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:37 2009 -0400"
      },
      "message": "nfsd4: fail when delegreturn gets a non-delegation stateid\n\nPrevious cleanup reveals an obvious (though harmless) bug: when\ndelegreturn gets a stateid that isn\u0027t for a delegation, it should return\nan error rather than doing nothing.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "203a8c8e66278a5936a230edaac29017e50c88fb",
      "tree": "93165a85d0ff93271f23f2a753c93d0df754d138",
      "parents": [
        "3e633079e377d2b527a8390f63ceb887b5cabfbf"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 21 13:29:14 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:18 2009 -0400"
      },
      "message": "nfsd4: separate delegreturn case from preprocess_stateid_op\n\nDelegreturn is enough a special case for preprocess_stateid_op to\nwarrant just open-coding it in delegreturn.\n\nThere should be no change in behavior here; we\u0027re just reshuffling code.\n\nThanks to Yang Hongyang for catching a critical typo.\n\nReviewed-by: Yang Hongyang \u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3e633079e377d2b527a8390f63ceb887b5cabfbf",
      "tree": "ed2b9e5dea7b450a5d3e9ac7cb8e64c4b7ae14a5",
      "parents": [
        "819a8f539acf7838d62fec20e88401ff53303cd1"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 21 13:17:19 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:52 2009 -0400"
      },
      "message": "nfsd4: add a helper function to decide if stateid is delegation\n\nMake this check self-documenting.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "819a8f539acf7838d62fec20e88401ff53303cd1",
      "tree": "6eb00748efb8b39a3383c9a21cd2061a1b783188",
      "parents": [
        "fd03b09906c32aea7b47f1275c9cd6034141159d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 21 12:13:24 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:52 2009 -0400"
      },
      "message": "nfsd4: remove some dprintk\u0027s\n\nI can\u0027t recall ever seeing these printk\u0027s used to debug a problem.  I\u0027ll\nhappily put them back if we see a case where they\u0027d be useful.  (Though\nif we do that the find_XXX() errors would probably be better\nreported in find_XXX() functions themselves.)\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "fd03b09906c32aea7b47f1275c9cd6034141159d",
      "tree": "636b8061f70333e5a3ccf456d6f9101c0bc81eea",
      "parents": [
        "dc9bf700ed2fc3eab50f31000b13fda781e7c9f1"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 21 11:27:30 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:52 2009 -0400"
      },
      "message": "nfsd4: remove unneeded local variable\n\nWe no longer need stidp.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "dc9bf700ed2fc3eab50f31000b13fda781e7c9f1",
      "tree": "902919540f05e9cf175ce0b3942d7c2e12a8a3e2",
      "parents": [
        "0c2a498fa6d33d8ca9c8a0c29039c41e1734cb9e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 21 11:14:43 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:52 2009 -0400"
      },
      "message": "nfsd4: remove redundant \"if\" in nfs4_preprocess_stateid_op\n\nNote that we exit this first big \"if\" with stp \u003d\u003d NULL if and only if we\ntook the first branch; therefore, the second \"if\" is redundant, and we\ncan just combine the two, simplifying the logic.\n\nReviewed-by: Yang Hongyang \u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0c2a498fa6d33d8ca9c8a0c29039c41e1734cb9e",
      "tree": "c12c7bc5bddbe3a21ded2d369169f7db5fe3b75b",
      "parents": [
        "a4455be0850009f5da9a3b82523079922cd4b26e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 21 11:11:50 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:51 2009 -0400"
      },
      "message": "nfsd4: move check_stateid_generation check\n\nNo change in behavior.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a4455be0850009f5da9a3b82523079922cd4b26e",
      "tree": "b60080aed062883bd9ac80ed5c03b6b09bb012a0",
      "parents": [
        "77f18f5e4ebdea35ec3d92343b0ed7546dc87637"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 21 10:40:22 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:51 2009 -0400"
      },
      "message": "nfsd4: trivial preprocess_stateid_op cleanup\n\nRemove a couple redundant comments, adjust style; no change in behavior.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4ac35c2f794503d3acda20d98e89cf63f6e94332",
      "tree": "00a5afc26c1c59cda2c9b88cb07db5fc26e08bf6",
      "parents": [
        "e33d1ea60c3a17b8b5c2910b1eef4c1faf0ac450"
      ],
      "author": {
        "name": "wengang wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Tue Feb 10 11:27:51 2009 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:50 2009 -0400"
      },
      "message": "nfsd(v2/v3): fix the failure of creation from HPUX client\n\nsometimes HPUX nfs client sends a create request to linux nfs server(v2/v3).\nthe dump of the request is like:\n    obj_attributes\n        mode: value follows\n            set_it: value follows (1)\n            mode: 00\n        uid: no value\n            set_it: no value (0)\n        gid: value follows\n            set_it: value follows (1)\n            gid: 8030\n        size: value follows\n            set_it: value follows (1)\n            size: 0\n        atime: don\u0027t change\n            set_it: don\u0027t change (0)\n        mtime: don\u0027t change\n            set_it: don\u0027t change (0)\n\nnote that mode is 00(havs no rwx privilege even for the owner) and it requires\nto set size to 0.\n\nas current nfsd(v2/v3) implementation, the server does mainly 2 steps:\n1) creates the file in mode specified by calling vfs_create().\n2) sets attributes for the file by calling nfsd_setattr().\n\nat step 2), it finally calls file system specific setattr() function which may\nfail when checking permission because changing size needs WRITE privilege but\nit has none since mode is 000.\n\nfor this case, a new file created, we may simply ignore the request of\nsetting size to 0, so that WRITE privilege is not needed and the open\nsucceeds.\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\n--\n vfs.c |   19 +++++++++++++++++++\n 1 file changed, 19 insertions(+)\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e37da04ed145d45c2a698d7cb373a7e1191fbe86",
      "tree": "d493557917d982e1b6fa5141779ba3984f1706d9",
      "parents": [
        "6c02eaa1d1e53b9b2cc27d0c6fff3e57da4b611f"
      ],
      "author": {
        "name": "Alexandros Batsakis",
        "email": "batsakis@netapp.com",
        "time": "Thu Dec 18 19:55:16 2008 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:50 2009 -0400"
      },
      "message": "nfsd: lock state around put client and delegation in nfsd4_cb_recall\n\nnot having the state locked before putting the client/delegation causes a bug.\nAlso removed the comment from the function header about the state being already locked\n\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6c02eaa1d1e53b9b2cc27d0c6fff3e57da4b611f",
      "tree": "af558f47858043d7c326c5b3d889c9447e65aaac",
      "parents": [
        "a4773c08f2872626cb923433284488fbe8acb0ae"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 02 17:30:51 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:49 2009 -0400"
      },
      "message": "nfsd4: use helper for copying delegation filehandle\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a4773c08f2872626cb923433284488fbe8acb0ae",
      "tree": "772342b775cef615b19060158900981e0985ff9f",
      "parents": [
        "13024b7b4097d33fe6bba34b1c83602e88753270"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 02 17:23:10 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:49 2009 -0400"
      },
      "message": "nfsd4: use helper for copying filehandles for replay\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "13024b7b4097d33fe6bba34b1c83602e88753270",
      "tree": "695a3ac01b109b26fcf189ec88c38e07671629b7",
      "parents": [
        "99f88726381f676bba6e7dcf74b7412857d7946a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 02 17:04:03 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:49 2009 -0400"
      },
      "message": "nfsd4: fix misplaced comment\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "99f88726381f676bba6e7dcf74b7412857d7946a",
      "tree": "17bd2f5a3da71b538e922f06434485b3ca369a69",
      "parents": [
        "686665619e4424b4f80c3a49e3e1229f27ea565c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 02 15:12:27 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:48 2009 -0400"
      },
      "message": "nfsd: clarify exclusive create bitmask result.\n\nThe use of |\u003d is confusing--the bitmask is always initialized to zero in\nthis case, so we\u0027re effectively just doing an assignment here.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "686665619e4424b4f80c3a49e3e1229f27ea565c",
      "tree": "dc9d42d0dd883f5ef193dfaa84b6e1b411d47da9",
      "parents": [
        "12214cb78147d42da28bc0d1b2917584e0a8efcd"
      ],
      "author": {
        "name": "Manish Katiyar",
        "email": "mkatiyar@gmail.com",
        "time": "Thu Jan 29 20:53:57 2009 +0530"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:48 2009 -0400"
      },
      "message": "nfsd : Define NFSD only when FILE_LOCKING is enabled\n\nEnable NFSD only when FILE_LOCKING is enabled, since we don\u0027t want to\nsupport NFSD without FILE_LOCKING.\n\nSigned-off-by: Manish Katiyar \u003cmkatiyar@gmail.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "12214cb78147d42da28bc0d1b2917584e0a8efcd",
      "tree": "b144e1e643c4dc53ad584a5c82fb6a2c74ef04b3",
      "parents": [
        "f044ff830f1afe91e4388320f0c7b6e08d2e05f8"
      ],
      "author": {
        "name": "Qinghuang Feng",
        "email": "qhfeng.kernel@gmail.com",
        "time": "Mon Jan 12 03:13:53 2009 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:48 2009 -0400"
      },
      "message": "NFSD: cleanup for nfs3proc.c\n\nMSDOS_SUPER_MAGIC is defined in \u003clinux/magic.h\u003e,\nso use MSDOS_SUPER_MAGIC directly.\n\nSigned-off-by: Qinghuang Feng \u003cqhfeng.kernel@gmail.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f044ff830f1afe91e4388320f0c7b6e08d2e05f8",
      "tree": "0656c99afbc46b094e276ea91078784cca1cf114",
      "parents": [
        "f1d110caf7d759eae2c02c84343f63d83db9b9be"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Jan 11 15:24:04 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:47 2009 -0400"
      },
      "message": "nfsd4: split open/lockowner release code\n\nThe caller always knows specifically whether it\u0027s releasing a lockowner\nor an openowner, and the code is simpler if we use separate functions\n(and the apparent recursion is gone).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f1d110caf7d759eae2c02c84343f63d83db9b9be",
      "tree": "fa1b99d4f37f8b0bbce56d220ad3dcba56af262a",
      "parents": [
        "2283963f27fdd56b185e49a964c290130c7c95ab"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Jan 11 14:37:31 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:47 2009 -0400"
      },
      "message": "nfsd4: remove a forward declaration\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2283963f27fdd56b185e49a964c290130c7c95ab",
      "tree": "c1b54a9b233baa004e8a17662b6c3f08fdb523c4",
      "parents": [
        "a1e4ee22863d41a6fbb24310d7951836cb6dafe7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Jan 11 14:27:17 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:47 2009 -0400"
      },
      "message": "nfsd4: split lockstateid/openstateid release logic\n\nThe flags here attempt to make the code more general, but I find it\nactually just adds confusion.\n\nI think it\u0027s clearer to separate the logic for the open and lock cases\nentirely.  And eventually we may want to separate the stateowner and\nstateid types as well, as many of the fields aren\u0027t shared between the\nlock and open cases.\n\nAlso move to eliminate forward references.\n\nStart with the stateid\u0027s.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nReviewed-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "84f09f46b4ee9e4e9b6381f8af31817516d2091b",
      "tree": "33fd95cf666577e0f1b592719851da09de7c0f5c",
      "parents": [
        "ee568b25ee9e160b32d1aef73d8b2ee9c05d34db"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Mar 04 23:05:35 2009 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Mar 17 14:54:45 2009 -0400"
      },
      "message": "NFSD: provide encode routine for OP_OPENATTR\n\nAlthough this operation is unsupported by our implementation\nwe still need to provide an encode routine for it to\nmerely encode its (error) status back in the compound reply.\n\nThanks for Bill Baker at sun.com for testing with the Sun\nOpenSolaris\u0027 client, finding, and reporting this bug at\nConnectathon 2009.\n\nThis bug was introduced in 2.6.27\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "db1dd4d376134eba0e08af523b61cc566a4ea1cd",
      "tree": "8882c673abbaa5713511b7046493fa862b9140d1",
      "parents": [
        "684999149002dd046269666a390458e0acb38280"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Fri Feb 06 15:25:24 2009 -0700"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Mar 16 08:32:27 2009 -0600"
      },
      "message": "Use f_lock to protect f_flags\n\nTraditionally, changes to struct file-\u003ef_flags have been done under BKL\nprotection, or with no protection at all.  This patch causes all f_flags\nchanges after file open/creation time to be done under protection of\nf_lock.  This allows the removal of some BKL usage and fixes a number of\nlongstanding (if microscopic) races.\n\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "fa82a491275a613b15489aab4b99acecb00958d3",
      "tree": "1c5d1f5fb9d6c1870891bf088493541564b93bc9",
      "parents": [
        "b914152a6fbd2cd0441bc293ae8b3f3f1a9407b6"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Jan 22 14:16:04 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@pig.fieldses.org",
        "time": "Tue Jan 27 17:26:59 2009 -0500"
      },
      "message": "nfsd: only set file_lock.fl_lmops in nfsd4_lockt if a stateowner is found\n\nnfsd4_lockt does a search for a lockstateowner when building the lock\nstruct to test. If one is found, it\u0027ll set fl_owner to it. Regardless of\nwhether that happens, it\u0027ll also set fl_lmops. Given that this lock is\nbasically a \"lightweight\" lock that\u0027s just used for checking conflicts,\nsetting fl_lmops is probably not appropriate for it.\n\nThis behavior exposed a bug in DLM\u0027s GETLK implementation where it\nwasn\u0027t clearing out the fields in the file_lock before filling in\nconflicting lock info. While we were able to fix this in DLM, it\nstill seems pointless and dangerous to set the fl_lmops this way\nwhen we may have a NULL lockstateowner.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@pig.fieldses.org\u003e\n"
    },
    {
      "commit": "b914152a6fbd2cd0441bc293ae8b3f3f1a9407b6",
      "tree": "52267a4af3d34ebf190d89b279758d7726383412",
      "parents": [
        "bf935a78814cc9b96d09f612912178adc964ce9c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue Jan 20 19:34:22 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@pig.fieldses.org",
        "time": "Tue Jan 27 17:26:59 2009 -0500"
      },
      "message": "nfsd: fix cred leak on every rpc\n\nSince override_creds() took its own reference on new, we need to release\nour own reference.\n\n(Note the put_cred on the return value puts the *old* value of\ncurrent-\u003ecreds, not the new passed-in value).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "bf935a78814cc9b96d09f612912178adc964ce9c",
      "tree": "2c23a05d1c4433e309f3434ce8bdd6a5a0ed8838",
      "parents": [
        "ce0cf6622c9a6f18c2723ea4bef7616799a1ca39"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue Jan 20 19:32:59 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@pig.fieldses.org",
        "time": "Tue Jan 27 17:26:58 2009 -0500"
      },
      "message": "nfsd: fix null dereference on error path\n\nWe\u0027re forgetting to check the return value from groups_alloc().\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e2b329e2002685c1b0fa3c06caadc0936b7f507f",
      "tree": "b168a5c4b5e8de721ea08cb4c0c9518b1a74b323",
      "parents": [
        "97afe47ac378615d727fc2f0ffa1b58e9837f438"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jan 22 11:08:58 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jan 22 13:16:00 2009 +0300"
      },
      "message": "fs/Kconfig: move nfsd out\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "87df4de8073f922a1f643b9fa6ba0412d5529ecf",
      "tree": "8a7e5d7c5d531ac277c2e0026329f589ccdae101",
      "parents": [
        "4e65ebf08951326709817e654c149d0a94982e01"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Mon Dec 15 19:42:03 2008 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 07 17:38:31 2009 -0500"
      },
      "message": "nfsd: last_byte_offset\n\nrefactor the nfs4 server lock code to use last_byte_offset\nto compute the last byte covered by the lock.  Check for overflow\nso that the last byte is set to NFS4_MAX_UINT64 if offset + len\nwraps around.\n\nAlso, use NFS4_MAX_UINT64 for ~(u64)0 where appropriate.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4e65ebf08951326709817e654c149d0a94982e01",
      "tree": "46364fb84a91985294ffa47945f0a422137e8497",
      "parents": [
        "df96fcf02a5fd2ae4e9b09e079dd6ef12d10ecd7"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Mon Dec 15 19:41:31 2008 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 07 17:32:48 2009 -0500"
      },
      "message": "nfsd: delete wrong file comment from nfsd/nfs4xdr.c\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "df96fcf02a5fd2ae4e9b09e079dd6ef12d10ecd7",
      "tree": "0e51b83a1d83dfb3e7e389fdad8762e338656f85",
      "parents": [
        "0407717d8587f60003f4904bff27650cd836c00c"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Mon Dec 15 19:41:10 2008 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 07 17:32:46 2009 -0500"
      },
      "message": "nfsd: git rid of nfs4_cb_null_ops declaration\n\nThere\u0027s no use for nfs4_cb_null_ops\u0027s declaration in fs/nfsd/nfs4callback.c\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0407717d8587f60003f4904bff27650cd836c00c",
      "tree": "5e06a8ecf42e10e44d05d4b4036d17efec1a9486",
      "parents": [
        "b7aeda40d3010666d2c024c80557b6aa92a1a1ad"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Mon Dec 15 19:40:49 2008 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 07 17:32:45 2009 -0500"
      },
      "message": "nfsd: dprint each op status in nfsd4_proc_compound\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b7aeda40d3010666d2c024c80557b6aa92a1a1ad",
      "tree": "a869fbe934b41c4122f906f7fd70ec3009b1f6d7",
      "parents": [
        "30fa8c0157e4591ee2227aaa0b17cd3b0da5e6cb"
      ],
      "author": {
        "name": "Dean Hildebrand",
        "email": "dhildeb@us.ibm.com",
        "time": "Mon Dec 15 19:40:15 2008 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 07 17:32:45 2009 -0500"
      },
      "message": "nfsd: add etoosmall to nfserrno\n\nSigned-off-by: Dean Hildebrand \u003cdhildeb@us.ibm.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "30fa8c0157e4591ee2227aaa0b17cd3b0da5e6cb",
      "tree": "72d86ee99d280eebe611cf6e38a26809d75b7a52",
      "parents": [
        "24c3767e41a6a59d32bb45abe899eb194e6bf1b8"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "SteveD@redhat.com",
        "time": "Wed Jan 07 16:54:30 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 07 17:23:07 2009 -0500"
      },
      "message": "NFSD: FIDs need to take precedence over UUIDs\n\nWhen determining the fsid_type in fh_compose(), the setting of the FID\nvia fsid\u003d export option needs to take precedence over using the UUID\ndevice id.\n\nSigned-off-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9a8d248e2d2e9c880ac4561f27fea5dc200655bd",
      "tree": "9033bfd8c10f7077d62095d5295e16acac9a4ab2",
      "parents": [
        "2779e3ae39645515cb6c1126634f47c28c9e7190"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 13:37:03 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 07 15:40:45 2009 -0500"
      },
      "message": "nfsd: fix double-locks of directory mutex\n\nA number of nfsd operations depend on the i_mutex to cover more code\nthan just the fsync, so the approach of 4c728ef583b3d8 \"add a vfs_fsync\nhelper\" doesn\u0027t work for nfsd.  Revert the parts of those patches that\ntouch nfsd.\n\nNote: we can\u0027t, however, remove the logic from vfs_fsync that was needed\nonly for the special case of nfsd, because a vfs_fsync(NULL,...) call\ncan still result indirectly from a stackable filesystem that was called\nby nfsd.  (Thanks to Christoph Hellwig for pointing this out.)\n\nReported-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f05ef8db1abe68e3f6fc272efee51bc54ce528c5",
      "tree": "8e74dfecce221e51ec3631c66c0e4f8ce589b566",
      "parents": [
        "0dba7c2a9ed3d4a1e58f5d94fffa9f44dbe012e6"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Jan 05 17:19:37 2009 +0000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 07 15:40:44 2009 -0500"
      },
      "message": "CRED: Fix NFSD regression\n\nFix a regression in NFSD\u0027s permission checking introduced by the credentials\npatches.  There are two parts to the problem, both in nfsd_setuser():\n\n (1) The return value of set_groups() is -ve if in error, not 0, and should be\n     checked appropriately.  0 indicates success.\n\n (2) The UID to use for fs accesses is in new-\u003efsuid, not new-\u003euid (which is\n     0).  This causes CAP_DAC_OVERRIDE to always be set, rather than being\n     cleared if the UID is anything other than 0 after squashing.\n\nReported-by: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "55ef1274dddd4de387c54d110e354ffbb6cdc706",
      "tree": "27d67f6c6929a55239a18d532850807aeaf1b6c4",
      "parents": [
        "69b6ba3712b796a66595cfaf0a5ab4dfe1cf964a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Dec 20 11:58:38 2008 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 07 15:40:27 2009 -0500"
      },
      "message": "nfsd: Ensure nfsv4 calls the underlying filesystem on LOCKT\n\nSince nfsv4 allows LOCKT without an open, but the -\u003elock() method is a\nfile method, we fake up a struct file in the nfsv4 code with just the\nfields we need initialized.  But we forgot to initialize the file\noperations, with the result that LOCKT never results in a call to the\nfilesystem\u0027s -\u003elock() method (if it exists).\n\nWe could just add that one more initialization.  But this hack of faking\nup a struct file with only some fields initialized seems the kind of\nthing that might cause more problems in the future.  We should either do\nan open and get a real struct file, or make lock-testing an inode (not a\nfile) method.\n\nThis patch does the former.\n\nReported-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nTested-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "262a09823bb07c6aafb6c1d312cde613d0b90c85",
      "tree": "dbf609d729e18f1c98eff1fb8c91c9c95a6fbb3d",
      "parents": [
        "9e074856caf13ba83363f73759f5e395f74ccf41"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 12 16:57:35 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:57 2009 -0500"
      },
      "message": "NFSD: Add documenting comments for nfsctl interface\n\nDocument the NFSD sysctl interface laid out in fs/nfsd/nfsctl.c.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    }
  ],
  "next": "9e074856caf13ba83363f73759f5e395f74ccf41"
}
