)]}'
{
  "log": [
    {
      "commit": "2937391385807b3da9cd7a39345259caf550b032",
      "tree": "6b75733afd1c5eb9a847c72b0c745ffc24aef559",
      "parents": [
        "26a414092353590ceaa5955bcb53f863d6ea7549"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 03 17:15:38 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Oct 04 17:12:27 2008 -0400"
      },
      "message": "NLM: Remove unused argument from svc_addsock() function\n\nClean up: The svc_addsock() function no longer uses its \"proto\"\nargument, so remove it.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "26a414092353590ceaa5955bcb53f863d6ea7549",
      "tree": "d829a751e7f6dee7323039e6ea2340e78e5f9fd6",
      "parents": [
        "8c3916f4bdf9c8388bd70d0b399b3a43daf2087a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 03 17:15:30 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Oct 04 17:12:27 2008 -0400"
      },
      "message": "NLM: Remove \"proto\" argument from lockd_up()\n\nClean up: Now that lockd_up() starts listeners for both transports, the\n\"proto\" argument is no longer needed.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "af558e33bedab672f5cfd3260bce7445e353fe21",
      "tree": "eb89187b6c12640a00584bd35be035ba332e4af3",
      "parents": [
        "d5b337b4877f7c4e1d761434ee04d045b0201e03"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Sep 06 12:34:25 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Oct 03 16:19:02 2008 -0400"
      },
      "message": "nfsd: common grace period control\n\nRewrite grace period code to unify management of grace period across\nlockd and nfsd.  The current code has lockd and nfsd cooperate to\ncompute a grace period which is satisfactory to them both, and then\nindividually enforce it.  This creates a slight race condition, since\nthe enforcement is not coordinated.  It\u0027s also more complicated than\nnecessary.\n\nHere instead we have lockd and nfsd each inform common code when they\nenter the grace period, and when they\u0027re ready to leave the grace\nperiod, and allow normal locking only after both of them are ready to\nleave.\n\nWe also expect the locks_start_grace()/locks_end_grace() interface here\nto be simpler to build on for future cluster/high-availability work,\nwhich may require (for example) putting individual filesystems into\ngrace, or enforcing grace periods across multiple cluster nodes.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d5b337b4877f7c4e1d761434ee04d045b0201e03",
      "tree": "0c31c4cfb0f2010a87b0f1ae7246cbd50068306e",
      "parents": [
        "97eb89bb0e5d9ab20dbc677cb18fad1421473287"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Sun Sep 28 09:21:26 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:40 2008 -0400"
      },
      "message": "nfsd: use nfs client rpc callback program\n\nsince commit ff7d9756b501744540be65e172d27ee321d86103\n\"nfsd: use static memory for callback program and stats\"\ndo_probe_callback uses a static callback program\n(NFS4_CALLBACK) rather than the one set in clp-\u003ecl_callback.cb_prog\nas passed in by the client in setclientid (4.0)\nor create_session (4.1).\n\nThis patches introduces rpc_create_args.prognumber that allows\noverriding program-\u003enumber when creating rpc_clnt.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "97eb89bb0e5d9ab20dbc677cb18fad1421473287",
      "tree": "bdb97a295476b8f934c6295b4a2faa9511311b30",
      "parents": [
        "db820d6376aa81accf5b648651e160fd76e363e2"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Sep 26 15:14:13 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:40 2008 -0400"
      },
      "message": "nfsd: do_probe_callback should not clear rpc stats\n\nNow that cb_stats are static (since commit\nff7d9756b501744540be65e172d27ee321d86103)\nthere\u0027s no need to clear them.\n\nInitially I thought it might make sense to do\nthat every callback probing but since the stats\nare per-program and they are shared between possibly\nseveral client callback instances, zeroing them out\nseems like the wrong thing to do.\n\nNote that that commit also introduced a bug\nsince stats.program is also being cleared in the process\nand it is not restored after the memset as it used to be.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "54a66e548079f12a6f54c3cae96812a9ed9b54ae",
      "tree": "94d3bdeb77da374a15d01ba42fd8adcc677fe4d6",
      "parents": [
        "e31a1b662f40fd460e982ef87582c66c51596cd0"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Aug 13 22:03:27 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 17:56:59 2008 -0400"
      },
      "message": "knfsd: allocate readahead cache in individual chunks\n\nI had a report from someone building a large NFS server that they were\nunable to start more than 585 nfsd threads. It was reported against an\nolder kernel using the slab allocator, and I tracked it down to the\nlarge allocation in nfsd_racache_init failing.\n\nIt appears that the slub allocator handles large allocations better,\nbut large contiguous allocations can often be problematic. There\ndoesn\u0027t seem to be any reason that the racache has to be allocated as a\nsingle large chunk. This patch breaks this up so that the racache is\nbuilt up from separate allocations.\n\n(Thanks also to Takashi Iwai for a bugfix.)\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "e31a1b662f40fd460e982ef87582c66c51596cd0",
      "tree": "5c4dd38fb5a4bdf37f086c3b1dd9da499931fdb2",
      "parents": [
        "5bf8c6911fe88bea4f9850007796fbacf9fbfb88"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Tue Aug 12 20:46:18 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 17:56:59 2008 -0400"
      },
      "message": "nfsd: nfs4xdr decode_stateid helper function\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5bf8c6911fe88bea4f9850007796fbacf9fbfb88",
      "tree": "f81cfeb5d0525b8eb4be50b778a15bc800427eed",
      "parents": [
        "1b6b2257dc5a88aae375ff44485f8d6c4ee800e4"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Tue Aug 12 20:45:51 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 17:56:58 2008 -0400"
      },
      "message": "nfsd: properly xdr-decode NFS4_OPEN_CLAIM_DELEGATE_CUR stateid\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "1b6b2257dc5a88aae375ff44485f8d6c4ee800e4",
      "tree": "f501c82b95c8383a9bc12f68337ad79a5697fe56",
      "parents": [
        "e2f282b9f0538e4f63255ffa35bf3b902f5fbde2"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Tue Aug 12 20:45:28 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 17:56:58 2008 -0400"
      },
      "message": "nfsd: don\u0027t declare p in ENCODE_SEQID_OP_HEAD\n\nAfter using the encode_stateid helper the \"p\" pointer declared\nby ENCODE_SEQID_OP_HEAD is warned as unused.\nIn the single site where it is still needed it can be declared\nseparately using the ENCODE_HEAD macro.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e2f282b9f0538e4f63255ffa35bf3b902f5fbde2",
      "tree": "28a8de3ab7d03962fedc3f79f9318b702f580503",
      "parents": [
        "5033b77a931a12bc7395c1834fa50f6d477be3ae"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Tue Aug 12 20:45:07 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 17:56:58 2008 -0400"
      },
      "message": "nfsd: nfs4xdr encode_stateid helper function\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5033b77a931a12bc7395c1834fa50f6d477be3ae",
      "tree": "4c8a7b7c263b93290afb6795cb93a87dd3471909",
      "parents": [
        "c47b2ca42e848e2dce122acbefa0de59320f5683"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Tue Aug 12 20:44:41 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 17:56:58 2008 -0400"
      },
      "message": "nfsd: fix nfsd4_encode_open buffer space reservation\n\nnfsd4_encode_open first reservation is currently for 36 + sizeof(stateid_t)\nwhile it writes after the stateid a cinfo (20 bytes) and 5 more 4-bytes\nwords, for a total of 40 + sizeof(stateid_t).\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c47b2ca42e848e2dce122acbefa0de59320f5683",
      "tree": "118ae754894d503371e0907c1f529841811d5bf9",
      "parents": [
        "8e40741494bd08a15af17b8cfd26a1f7ad1f5081"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Tue Aug 12 20:43:37 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 17:56:58 2008 -0400"
      },
      "message": "nfsd: properly xdr-encode deleg stateid returned from open\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8e40741494bd08a15af17b8cfd26a1f7ad1f5081",
      "tree": "38abbdb115ed4fa868c13fce32f374f7a499f7a3",
      "parents": [
        "bfcd17a6c5529bc37234cfa720a047cf9397bcfc"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Tue Aug 12 20:42:51 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 17:56:57 2008 -0400"
      },
      "message": "nfsd: properly xdr-encode stateid4.seqid as uint32_t for cb_recall\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "04716e6621ff4abb422d64ba7b48718f52716a3e",
      "tree": "742e2e7b6d4c7cf3a39f504000a49e57fe0b538b",
      "parents": [
        "5dd248f6f1ffe1f691fd66749e2a3dc8f8eb7b5e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Aug 07 13:00:20 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 17:56:56 2008 -0400"
      },
      "message": "nfsd: permit unauthenticated stat of export root\n\nRFC 2623 section 2.3.2 permits the server to bypass gss authentication\nchecks for certain operations that a client may perform when mounting.\nIn the case of a client that doesn\u0027t have some form of credentials\navailable to it on boot, this allows it to perform the mount unattended.\n(Presumably real file access won\u0027t be needed until a user with\ncredentials logs in.)\n\nBeing slightly more lenient allows lots of old clients to access\nkrb5-only exports, with the only loss being a small amount of\ninformation leaked about the root directory of the export.\n\nThis affects only v2 and v3; v4 still requires authentication for all\naccess.\n\nThanks to Peter Staubach testing against a Solaris client, which\nsuggesting addition of v3 getattr, to the list, and to Trond for noting\nthat doing so exposes no additional information.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Peter Staubach \u003cstaubach@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\n"
    },
    {
      "commit": "e851db5b05408b89b9a9429a66814b79fabee2a1",
      "tree": "99bac979ed90efed99c89a49cb77719ab4c0a229",
      "parents": [
        "72d31053f62c4bc464c2783974926969614a8649"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jun 30 18:45:30 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 17:56:56 2008 -0400"
      },
      "message": "SUNRPC: Add address family field to svc_serv data structure\n\nIntroduce and initialize an address family field in the svc_serv structure.\n\nThis field will determine what family to use for the service\u0027s listener\nsockets and what families are advertised via the local rpcbind daemon.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "91b80969ba466ba4b915a4a1d03add8c297add3f",
      "tree": "2e35e071d4faa5a57ab6ed4d74cd3ef686e1ba91",
      "parents": [
        "27df6f25ff218072e0e879a96beeb398a79cdbc8"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 29 19:18:45 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 01 14:24:24 2008 -0400"
      },
      "message": "nfsd: fix buffer overrun decoding NFSv4 acl\n\nThe array we kmalloc() here is not large enough.\n\nThanks to Johann Dahm and David Richter for bug report and testing.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: David Richter \u003crichterd@citi.umich.edu\u003e\nTested-by: Johann Dahm \u003cjdahm@umich.edu\u003e\n"
    },
    {
      "commit": "c228c24bf1138d4757dbe20615df655815446da3",
      "tree": "97ee91f5a0eb5f3944f20c3d147a6b3de2d279ab",
      "parents": [
        "24b8b44780a2c53ecb738f4a1c08d114f5eda27c"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Aug 21 08:42:16 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 01 14:17:48 2008 -0400"
      },
      "message": "nfsd: fix compound state allocation error handling\n\nMove the cstate_alloc call so that if it fails, the response is setup to\nencode the NFS error. The out label now means that the\nnfsd4_compound_state has not been allocated.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b0e0c9e7f6d5764633e93944dafd896dd6097318",
      "tree": "668d9adb29cb566f6240e7bc51faaf564d3241ca",
      "parents": [
        "dae816835e8d1276c9e50d9c4dba75b7705fe66c",
        "53e6d8d182e97c5211da4ee1f163c840c7ecf8ca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 12 16:39:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 12 16:39:22 2008 -0700"
      },
      "message": "Merge branch \u0027for-2.6.27\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.27\u0027 of git://linux-nfs.org/~bfields/linux:\n  fs/nfsd/export.c: Adjust error handling code involving auth_domain_put\n  MAINTAINERS: mention lockd and sunrpc in nfs entries\n  lockd: trivial sparse endian annotations\n"
    },
    {
      "commit": "f1c7f79b6ab4f7ada002a0fae47f462ede6b6857",
      "tree": "dda50f0c190aa959b56def945db6301316fea548",
      "parents": [
        "f2d7499be1b1fe1cd8a5e6a01c1f44173894a241"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Aug 08 19:26:42 2008 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 08 11:22:19 2008 -0700"
      },
      "message": "[NFSD] uninline nfsd4_op_name()\n\nThere doesn\u0027t seem to be a compelling reason why nfsd4_op_name() is\nmarked as \"inline\":\n\nIt\u0027s only used in a dprintk(), and as long as it has only one caller\nnon-ancient gcc versions anyway inline it automatically.\n\nThis patch fixes the following compile error with gcc 3.4:\n\n  ...\n    CC      fs/nfsd/nfs4proc.o\n  nfs4proc.c: In function `nfsd4_proc_compound\u0027:\n  nfs4proc.c:854: sorry, unimplemented: inlining failed in call to\n  nfs4proc.c:897: sorry, unimplemented: called from here\n  make[3]: *** [fs/nfsd/nfs4proc.o] Error 1\n\nReported-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n[ Also made it \"const char *\"  - Linus]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "53e6d8d182e97c5211da4ee1f163c840c7ecf8ca",
      "tree": "5f7eb6582c6dd05fa63aed15366198de7bbc6f40",
      "parents": [
        "e8b43555a2a8c71e8501924e260f62b9545c598b"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Fri Jul 25 22:08:09 2008 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 30 13:20:20 2008 -0400"
      },
      "message": "fs/nfsd/export.c: Adjust error handling code involving auth_domain_put\n\nOnce clp is assigned, it never becomes NULL, so we can make a label for it\nin the error handling code.  Because the call to path_lookup follows the\ncall to auth_domain_find, its error handling code should jump to this new\nlabel.\n\nThe semantic match that finds this problem is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@r@\nexpression x,E;\nstatement S;\nposition p1,p2,p3;\n@@\n\n(\nif ((x \u003d auth_domain_find@p1(...)) \u003d\u003d NULL || ...) S\n|\nx \u003d auth_domain_find@p1(...)\n... when !\u003d x\nif (x \u003d\u003d NULL || ...) S\n)\n\u003c...\nif@p3 (...) { ... when !\u003d auth_domain_put(x)\n                  when !\u003d if (x) { ... auth_domain_put(x); ...}\n    return@p2 ...;\n}\n...\u003e\n(\nreturn x;\n|\nreturn 0;\n|\nx \u003d E\n|\nE \u003d x\n|\nauth_domain_put(x)\n)\n\n@exists@\nposition r.p1,r.p2,r.p3;\nexpression x;\nint ret !\u003d 0;\nstatement S;\n@@\n\n* x \u003d auth_domain_find@p1(...)\n  \u003c...\n* if@p3 (...)\n  S\n  ...\u003e\n* return@p2 \\(NULL\\|ret\\);\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3f8206d496e9e9495afb1d4e70d29712b4d403c9",
      "tree": "5bedea1aff8b5e584fbf8497c80fcaccf9242d69",
      "parents": [
        "964bd183624c03680796b63b4ab97ee3905a806a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 03:46:43 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:42 2008 -0400"
      },
      "message": "[PATCH] get rid of indirect users of namei.h\n\nfs.h needs path.h, not namei.h; nfs_fs.h doesn\u0027t need it at all.\nSeveral places in the tree needed direct include.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f419a2e3b64def707e1384ee38abb77f99af5f6d",
      "tree": "adbe12c510f04cf25ca6f822ee8004c8679a3a63",
      "parents": [
        "30524472c2f728c20d6bf35191042a5d455c0a64"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 22 00:07:17 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:31 2008 -0400"
      },
      "message": "[PATCH] kill nameidata passing to permission(), rename to inode_permission()\n\nIncidentally, the name that gives hundreds of false positives on grep\nis not a good idea...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "db2e747b14991a4c6a5c98b0e5f552a193237c03",
      "tree": "8850e8ef9e1a7bb3d7bbc051f191cd8350093564",
      "parents": [
        "7e79eedb3b22200cc8b774baea3a7bf28d766101"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Jun 24 16:50:16 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:18 2008 -0400"
      },
      "message": "[patch 5/5] vfs: remove mode parameter from vfs_symlink()\n\nRemove the unused mode parameter from vfs_symlink and callers.\n\nThanks to Tetsuo Handa for noticing.\n\nCC: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "cc77b1521d06be07c9bb1a4a3e1f775dcaa15093",
      "tree": "b8089e3276d19ba6ab9ecd5ca7ddef7b62df4a7f",
      "parents": [
        "b81f3ea92ba1fa676775677679889dc2a7f03c8b"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Jul 25 01:48:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:47 2008 -0700"
      },
      "message": "lockd: dont return EAGAIN for a permanent error\n\nFix nlm_fopen() to return NLM_FAILED (or NLM_LCK_DENIED_NOLOCKS) instead\nof NLM_LCK_DENIED.  The latter means the lock request failed because of a\nconflicting lock (i.e.  a temporary error), which is wrong in this case.\n\nAlso fix the client to return ENOLCK instead of EAGAIN if a blocking lock\nrequest returns with NLM_LOCK_DENIED.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: David Teigland \u003cteigland@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14b395e35d1afdd8019d11b92e28041fad591b71",
      "tree": "cff7ba9bed7a38300b19a5bacc632979d64fd9c8",
      "parents": [
        "734b397cd14f3340394a8dd3266bec97d01f034b",
        "5108b27651727b5aba0826e8fd7be71b42428701"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 20 21:21:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 20 21:21:46 2008 -0700"
      },
      "message": "Merge branch \u0027for-2.6.27\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.27\u0027 of git://linux-nfs.org/~bfields/linux: (51 commits)\n  nfsd: nfs4xdr.c do-while is not a compound statement\n  nfsd: Use C99 initializers in fs/nfsd/nfs4xdr.c\n  lockd: Pass \"struct sockaddr *\" to new failover-by-IP function\n  lockd: get host reference in nlmsvc_create_block() instead of callers\n  lockd: minor svclock.c style fixes\n  lockd: eliminate duplicate nlmsvc_lookup_host call from nlmsvc_lock\n  lockd: eliminate duplicate nlmsvc_lookup_host call from nlmsvc_testlock\n  lockd: nlm_release_host() checks for NULL, caller needn\u0027t\n  file lock: reorder struct file_lock to save space on 64 bit builds\n  nfsd: take file and mnt write in nfs4_upgrade_open\n  nfsd: document open share bit tracking\n  nfsd: tabulate nfs4 xdr encoding functions\n  nfsd: dprint operation names\n  svcrdma: Change WR context get/put to use the kmem cache\n  svcrdma: Create a kmem cache for the WR contexts\n  svcrdma: Add flush_scheduled_work to module exit function\n  svcrdma: Limit ORD based on client\u0027s advertised IRD\n  svcrdma: Remove unused wait q from svcrdma_xprt structure\n  svcrdma: Remove unneeded spin locks from __svc_rdma_free\n  svcrdma: Add dma map count and WARN_ON\n  ...\n"
    },
    {
      "commit": "5108b27651727b5aba0826e8fd7be71b42428701",
      "tree": "993f3f060d659f3c96644aab049fb3c02d9dc37c",
      "parents": [
        "ad1060c89cfe451de849373d98e42fad58dd25ae"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu Jul 17 21:33:04 2008 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Jul 18 15:18:35 2008 -0400"
      },
      "message": "nfsd: nfs4xdr.c do-while is not a compound statement\n\nThe WRITEMEM macro produces sparse warnings of the form:\nfs/nfsd/nfs4xdr.c:2668:2: warning: do-while statement is not a compound statement\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ad1060c89cfe451de849373d98e42fad58dd25ae",
      "tree": "96c97c09b1378b0defdf23e9426b7969f2cda1c7",
      "parents": [
        "367c8c7bd9a2882daad6c9cb607e1db8ef781ad4"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Jul 18 15:04:16 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Jul 18 15:04:58 2008 -0400"
      },
      "message": "nfsd: Use C99 initializers in fs/nfsd/nfs4xdr.c\n\nThanks to problem report and original patch from Harvey Harrison.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "367c8c7bd9a2882daad6c9cb607e1db8ef781ad4",
      "tree": "67fc93454ea9b3db1f6456cb6d6c255fe0c08178",
      "parents": [
        "560de0e65904db392e1c443c4bf5ee750573336b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jun 30 18:58:14 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 15 16:11:29 2008 -0400"
      },
      "message": "lockd: Pass \"struct sockaddr *\" to new failover-by-IP function\n\nPass a more generic socket address type to nlmsvc_unlock_all_by_ip() to\nallow for future support of IPv6.  Also provide additional sanity\nchecking in failover_unlock_ip() when constructing the server\u0027s IP\naddress.\n\nAs an added bonus, provide clean kerneldoc comments on related NLM\ninterfaces which were recently added.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b6b6152c46861dd914d0e6cea9c27df057d6e235",
      "tree": "0d63ce529c13c09a1997da06199e27b049bb55aa",
      "parents": [
        "48b605f83c920d8daa50e43fc2c7f718e04c7bfa"
      ],
      "author": {
        "name": "Olga Kornievskaia",
        "email": "aglo@citi.umich.edu",
        "time": "Mon Jun 09 16:51:31 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:10 2008 -0400"
      },
      "message": "rpc: bring back cl_chatty\n\nThe cl_chatty flag alows us to control whether a given rpc client leaves\n\n\t\"server X not responding, timed out\"\n\nmessages in the syslog.  Such messages make sense for ordinary nfs\nclients (where an unresponsive server means applications on the\nmountpoint are probably hanging), but not for the callback client (which\ncan fail more commonly, with the only result just of disabling some\noptimizations).\n\nPreviously cl_chatty was removed, do to lack of users; reinstate it, and\nuse it for the nfsd\u0027s callback client.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e518f0560a191269bd345178c899c790eb1ad4c8",
      "tree": "d6ccd40bd872a3453719fb46344e25a877b0dfe6",
      "parents": [
        "4f83aa302f8f8b42397c6d3703d670f0588c03ec"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Jul 04 15:38:41 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jul 07 15:23:34 2008 -0400"
      },
      "message": "nfsd: take file and mnt write in nfs4_upgrade_open\n\ntesting with newpynfs revealed this warning:\nJul  3 07:32:50 buml kernel: writeable file with no mnt_want_write()\nJul  3 07:32:50 buml kernel: ------------[ cut here ]------------\nJul  3 07:32:50 buml kernel: WARNING: at /usr0/export/dev/bhalevy/git/linux-pnfs-bh-nfs41/include/linux/fs.h:855 drop_file_write_access+0x6b/0x7e()\nJul  3 07:32:50 buml kernel: Modules linked in: nfsd auth_rpcgss exportfs nfs lockd nfs_acl sunrpc\nJul  3 07:32:50 buml kernel: Call Trace:\nJul  3 07:32:50 buml kernel: 6eaadc88:  [\u003c6002f471\u003e] warn_on_slowpath+0x54/0x8e\nJul  3 07:32:50 buml kernel: 6eaadcc8:  [\u003c601b790d\u003e] printk+0xa0/0x793\nJul  3 07:32:50 buml kernel: 6eaadd38:  [\u003c601b6205\u003e] __mutex_lock_slowpath+0x1db/0x1ea\nJul  3 07:32:50 buml kernel: 6eaadd68:  [\u003c7107d4d5\u003e] nfs4_preprocess_seqid_op+0x2a6/0x31c [nfsd]\nJul  3 07:32:50 buml kernel: 6eaadda8:  [\u003c60078dc9\u003e] drop_file_write_access+0x6b/0x7e\nJul  3 07:32:50 buml kernel: 6eaaddc8:  [\u003c710804e4\u003e] nfsd4_open_downgrade+0x114/0x1de [nfsd]\nJul  3 07:32:50 buml kernel: 6eaade08:  [\u003c71076215\u003e] nfsd4_proc_compound+0x1ba/0x2dc [nfsd]\nJul  3 07:32:50 buml kernel: 6eaade48:  [\u003c71068221\u003e] nfsd_dispatch+0xe5/0x1c2 [nfsd]\nJul  3 07:32:50 buml kernel: 6eaade88:  [\u003c71312f81\u003e] svc_process+0x3fd/0x714 [sunrpc]\nJul  3 07:32:50 buml kernel: 6eaadea8:  [\u003c60039a81\u003e] kernel_sigprocmask+0xf3/0x100\nJul  3 07:32:50 buml kernel: 6eaadee8:  [\u003c7106874b\u003e] nfsd+0x182/0x29b [nfsd]\nJul  3 07:32:50 buml kernel: 6eaadf48:  [\u003c60021cc9\u003e] run_kernel_thread+0x41/0x4a\nJul  3 07:32:50 buml kernel: 6eaadf58:  [\u003c710685c9\u003e] nfsd+0x0/0x29b [nfsd]\nJul  3 07:32:50 buml kernel: 6eaadf98:  [\u003c60021cb0\u003e] run_kernel_thread+0x28/0x4a\nJul  3 07:32:50 buml kernel: 6eaadfc8:  [\u003c60013829\u003e] new_thread_handler+0x72/0x9c\nJul  3 07:32:50 buml kernel:\nJul  3 07:32:50 buml kernel: ---[ end trace 2426dd7cb2fba3bf ]---\n\nBruce Fields suggested this (Thanks!):\nmaybe we need to be doing a mnt_want_write on open_upgrade and mnt_put_write on downgrade?\n\nThis patch adds a call to mnt_want_write and file_take_write (which is\ndoing the actual work).\n\nThe counter-calls mnt_drop_write a file_release_write are now being properly\ncalled by drop_file_write_access in the exact path printed by the warning\nabove.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4f83aa302f8f8b42397c6d3703d670f0588c03ec",
      "tree": "15ac10dc525eb365258f7fcd1faf0c7c5a9823e7",
      "parents": [
        "695e12f8d2917378d3b93059209e17415de96204"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jul 07 15:02:02 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jul 07 15:04:50 2008 -0400"
      },
      "message": "nfsd: document open share bit tracking\n\nIt\u0027s not immediately obvious from the code why we\u0027re doing this.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "695e12f8d2917378d3b93059209e17415de96204",
      "tree": "12456e9a2ff2d1594e7d16083d5f74d0cf3546e5",
      "parents": [
        "e86322f611eef95aafaf726fd3965e5b211f1985"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Jul 04 14:38:33 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Jul 04 16:21:30 2008 -0400"
      },
      "message": "nfsd: tabulate nfs4 xdr encoding functions\n\nIn preparation for minorversion 1\n\nAll encoders now return an nfserr status (typically their\nnfserr argument).  Unsupported ops go through nfsd4_encode_operation\ntoo, so use nfsd4_encode_noop to encode nothing for their reply body.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e86322f611eef95aafaf726fd3965e5b211f1985",
      "tree": "28547e26df4fc6ae671dc8cc6912a53717e4db08",
      "parents": [
        "b001a1b6aa960949a24c2cdc28257dfcc9428d74",
        "8948896c9e098c6fd31a6a698a598a7cbd7fa40e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Jul 03 16:24:06 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Jul 03 16:24:06 2008 -0400"
      },
      "message": "Merge branch \u0027for-bfields\u0027 of git://linux-nfs.org/~tomtucker/xprt-switch-2.6 into for-2.6.27\n"
    },
    {
      "commit": "b001a1b6aa960949a24c2cdc28257dfcc9428d74",
      "tree": "8d60006778f3cbfdd88c57bbca83661c9b82d05a",
      "parents": [
        "f2feb96bc3d18e50cab7de9eab142f99d91aa5f6"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jul 02 11:15:03 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 02 19:03:19 2008 -0400"
      },
      "message": "nfsd: dprint operation names\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f2feb96bc3d18e50cab7de9eab142f99d91aa5f6",
      "tree": "d4e665a8208f3fb18aa7b9346c0dcf79eb2060a7",
      "parents": [
        "3c375c6f3a809d0d999d6dc933634f0b97ed7ae9"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jul 02 11:14:22 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 02 15:58:21 2008 -0400"
      },
      "message": "nfsd: nfs4 minorversion decoder vectors\n\nHave separate vectors of operation decoders for each minorversion.\nObsolete ops in newer minorversions have default implementation returning\nnfserr_opnotsupp.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3c375c6f3a809d0d999d6dc933634f0b97ed7ae9",
      "tree": "ff70067da6e470d7bb95bc47c676ead27bf921aa",
      "parents": [
        "347e0ad9c91b5bd7506d61f236048cc72b7fc151"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jul 02 11:14:01 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 02 15:58:21 2008 -0400"
      },
      "message": "nfsd: unsupported nfs4 ops should fail with nfserr_opnotsupp\n\nnfserr_opnotsupp should be returned for unsupported nfs4 ops\nrather than nfserr_op_illegal.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "347e0ad9c91b5bd7506d61f236048cc72b7fc151",
      "tree": "9ea53c7bfa2fc19389fe9c4bcbfe66bb49360aa0",
      "parents": [
        "30cff1ffff3981c8d96dc33870b652e70190ba37"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jul 02 11:13:41 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 02 15:58:20 2008 -0400"
      },
      "message": "nfsd: tabulate nfs4 xdr decoding functions\n\nIn preparation for minorversion 1\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "30cff1ffff3981c8d96dc33870b652e70190ba37",
      "tree": "26cdbe835637c5cd0885f9edc917d02cf8d66003",
      "parents": [
        "07cad1d2a4b0112acd41381d5bc6be82fd71ebac"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jul 02 11:13:18 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 02 15:58:20 2008 -0400"
      },
      "message": "nfsd: return nfserr_minor_vers_mismatch when compound minorversion !\u003d 0\n\nCheck minorversion once before decoding any operation and reject with\nnfserr_minor_vers_mismatch if !\u003d 0 (this still happens in nfsd4_proc_compound).\nIn this case return a zero length resultdata array as required by RFC3530.\n\nminorversion 1 processing will have its own vector of decoders.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "07cad1d2a4b0112acd41381d5bc6be82fd71ebac",
      "tree": "736d279de9f0684b4320196478eceabb1700b89d",
      "parents": [
        "100766f8347c1aeb5a548c5c7aa9012f4a3276f1"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Jul 01 15:38:35 2008 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 01 15:22:03 2008 -0400"
      },
      "message": "nfsd: clean up mnt_want_write calls\n\nMultiple mnt_want_write() calls in the switch statement looks really\nugly.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "100766f8347c1aeb5a548c5c7aa9012f4a3276f1",
      "tree": "fd9d011197bb466d49d102b5298f4293d18d311c",
      "parents": [
        "3cd2cfeae187fb754f9530e3f919256f350e89ca"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Jun 30 14:09:46 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 30 15:27:47 2008 -0400"
      },
      "message": "nfsd: treat all shutdown signals as equivalent\n\nknfsd currently uses 2 signal masks when processing requests. A \"loose\"\nmask (SHUTDOWN_SIGS) that it uses when receiving network requests, and\nthen a more \"strict\" mask (ALLOWED_SIGS, which is just SIGKILL) that it\nallows when doing the actual operation on the local storage.\n\nThis is apparently unnecessarily complicated. The underlying filesystem\nshould be able to sanely handle a signal in the middle of an operation.\nThis patch removes the signal mask handling from knfsd altogether. When\nknfsd is started as a kthread, all signals are ignored. It then allows\nall of the signals in SHUTDOWN_SIGS. There\u0027s no need to set the mask\nas well.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "496d6c32d4d057cb44272d9bd587ff97d023ee92",
      "tree": "5cfe2928782d5c58eab88f7b439b617858618b3f",
      "parents": [
        "863a24882ed0a57ff25daaf39885f3a47b706e4b"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Thu May 08 13:03:09 2008 +1000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 30 15:24:11 2008 -0400"
      },
      "message": "nfsd: fix spurious EACCESS in reconnect_path()\n\nThanks to Frank Van Maarseveen for the original problem report: \"A\nprivileged process on an NFS client which drops privileges after using\nthem to change the current working directory, will experience incorrect\nEACCES after an NFS server reboot. This problem can also occur after\nmemory pressure on the server, particularly when the client side is\nquiet for some time.\"\n\nThis occurs because the filehandle points to a directory whose parents\nare no longer in the dentry cache, and we\u0027re attempting to reconnect the\ndirectory to its parents without adequate permissions to perform lookups\nin the parent directories.\n\nWe can therefore fix the problem by acquiring the necessary capabilities\nbefore attempting the reconnection.  We do this only in the\nno_subtree_check case, since the documented behavior of the\nsubtree_check export option requires the server to check that the user\nhas lookup permissions on all parents.\n\nThe subtree_check case still has a problem, since reconnect_path()\nunnecessarily requires both read and lookup permissions on all parent\ndirectories.  However, a fix in that case would be more delicate, and\nuse of subtree_check is already discouraged for other reasons.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: Frank van Maarseveen \u003cfrankvm@frankvm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8837abcab3d16608bd2c7fac051a839d48f2f30c",
      "tree": "d29865adb4292ff437a9a68b2c09aca9d56f2468",
      "parents": [
        "599eb3046a1380f31c65715f3940184c531c90cb"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Jun 16 13:20:29 2008 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 23 13:02:50 2008 -0400"
      },
      "message": "nfsd: rename MAY_ flags\n\nRename nfsd_permission() specific MAY_* flags to NFSD_MAY_* to make it\nclear, that these are not used outside nfsd, and to avoid name and\nnumber space conflicts with the VFS.\n\n[comment from hch: rename MAY_READ, MAY_WRITE and MAY_EXEC as well]\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "599eb3046a1380f31c65715f3940184c531c90cb",
      "tree": "559719d700d80fc2acef1ff77506daa351cebba9",
      "parents": [
        "c7d106c90ec40a0e35a6960157b40f238627246e"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 19 10:11:09 2008 +1000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 23 13:02:50 2008 -0400"
      },
      "message": "knfsd: nfsd: Handle ERESTARTSYS from syscalls.\n\nOCFS2 can return -ERESTARTSYS from write requests (and possibly\nelsewhere) if there is a signal pending.\n\nIf nfsd is shutdown (by sending a signal to each thread) while there\nis still an IO load from the client, each thread could handle one last\nrequest with a signal pending.  This can result in -ERESTARTSYS\nwhich is not understood by nfserrno() and so is reflected back to\nthe client as nfserr_io aka -EIO.  This is wrong.\n\nInstead, interpret ERESTARTSYS to mean \"try again later\" by returning\nnfserr_jukebox.  The client will resend and - if the server is\nrestarted - the write will (hopefully) be successful and everyone will\nbe happy.\n\n The symptom that I narrowed down to this was:\n    copy a large file via NFS to an OCFS2 filesystem, and restart\n    the nfs server during the copy.\n    The \u0027cp\u0027 might get an -EIO, and the file will be corrupted -\n    presumably holes in the middle where writes appeared to fail.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c7d106c90ec40a0e35a6960157b40f238627246e",
      "tree": "21dd79c282982c65f39a00df406dad02cadb6efc",
      "parents": [
        "abd1ec4efd82ca06127bce833ad8a4bbec8a0dcb"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 12 13:38:42 2008 +1000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 23 13:02:50 2008 -0400"
      },
      "message": "nfsd: fix race in nfsd_nrthreads()\n\nWe need the nfsd_mutex before accessing nfsd_serv-\u003esv_nrthreads or we\ncan\u0027t even guarantee nfsd_serv will still be there.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a75c5d01e4235a7dd785548ac756f248b1b40107",
      "tree": "602c517b868a219d184e42d23cda4e834396c8ca",
      "parents": [
        "9867d76ca16b3f455f9ca83861f4ce5c94a25928"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jun 10 08:40:39 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 23 13:02:49 2008 -0400"
      },
      "message": "sunrpc: remove sv_kill_signal field from svc_serv struct\n\nSince we no longer make any distinction between shutdown signals with\nnfsd, then it becomes easier to just standardize on a particular signal\nto use to bring it down (SIGINT, in this case).\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9867d76ca16b3f455f9ca83861f4ce5c94a25928",
      "tree": "1715f69545bf6e766e6e18b33c39270ea7bd15ce",
      "parents": [
        "e096bbc6488d3e49d476bf986d33752709361277"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jun 10 08:40:38 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 23 13:02:49 2008 -0400"
      },
      "message": "knfsd: convert knfsd to kthread API\n\nThis patch is rather large, but I couldn\u0027t figure out a way to break it\nup that would remain bisectable. It does several things:\n\n- change svc_thread_fn typedef to better match what kthread_create expects\n- change svc_pool_map_set_cpumask to be more kthread friendly. Make it\n  take a task arg and and get rid of the \"oldmask\"\n- have svc_set_num_threads call kthread_create directly\n- eliminate __svc_create_thread\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e096bbc6488d3e49d476bf986d33752709361277",
      "tree": "2fa5e0367c84eac07c70c1a68243a688fca2d6e2",
      "parents": [
        "3dd98a3bccb1bdd30b8a4a755e7bead1b64160ec"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jun 10 08:40:37 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 23 13:02:49 2008 -0400"
      },
      "message": "knfsd: remove special handling for SIGHUP\n\nThe special handling for SIGHUP in knfsd is a holdover from much\nearlier versions of Linux where reloading the export table was\nmore expensive. That facility is not really needed anymore and\nto my knowledge, is seldom-used.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3dd98a3bccb1bdd30b8a4a755e7bead1b64160ec",
      "tree": "53b124bc44b33330102ef73f170fa91e785633bc",
      "parents": [
        "bedbdd8bada194a690d2901801bf8451965086b3"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jun 10 08:40:36 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 23 13:02:49 2008 -0400"
      },
      "message": "knfsd: clean up nfsd filesystem interfaces\n\nSeveral of the nfsd filesystem interfaces allow changes to parameters\nthat don\u0027t have any effect on a running nfsd service. They are only ever\nchecked when nfsd is started. This patch fixes it so that changes to\nthose procfiles return -EBUSY if nfsd is already running to make it\nclear that changes on the fly don\u0027t work.\n\nThe patch should also close some relatively harmless races between\nchanging the info in those interfaces and starting nfsd, since these\nvariables are being moved under the protection of the nfsd_mutex.\n\nFinally, the nfsv4recoverydir file always returns -EINVAL if read. This\npatch fixes it to return the recoverydir path as expected.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "bedbdd8bada194a690d2901801bf8451965086b3",
      "tree": "dc7ea15dd52370429bd63cd6803d6402cebbd50b",
      "parents": [
        "0d169ca136357d51a65d686f3c84866a8ba20ae9"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 10 08:40:35 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 23 13:02:49 2008 -0400"
      },
      "message": "knfsd: Replace lock_kernel with a mutex for nfsd thread startup/shutdown locking.\n\nThis removes the BKL from the RPC service creation codepath. The BKL\nreally isn\u0027t adequate for this job since some of this info needs\nprotection across sleeps.\n\nAlso, add some comments to try and clarify how the locking should work\nand to make it clear that the BKL isn\u0027t necessary as long as there is\nadequate locking between tasks when touching the svc_serv fields.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "13b1867cacbfe6d8203f432996bd8a2ee6b04e79",
      "tree": "04c3a0f519f7115073f7b0ca10b5e15669d88515",
      "parents": [
        "3b12cd9862d5f560031d90bda78952ab55e36b24"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Thu May 29 12:56:08 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 23 13:02:48 2008 -0400"
      },
      "message": "nfsd: make nfs4xdr WRITEMEM safe against zero count\n\nWRITEMEM zeroes the last word in the destination buffer\nfor padding purposes, but this must not be done if\nno bytes are to be copied, as it would result\nin zeroing of the word right before the array.\n\nThe current implementation works since it\u0027s always called\nwith non zero nbytes or it follows an encoding of the\nstring (or opaque) length which, if equal to zero,\ncan be overwritten with zero.\n\nNevertheless, it seems safer to check for this case.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3b12cd9862d5f560031d90bda78952ab55e36b24",
      "tree": "a14b023787ff662b8c29b4946f650ae428ac4493",
      "parents": [
        "b55e0ba19cd2d83317a7f1dbb626080951442ab3"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon May 05 17:17:44 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 23 13:02:48 2008 -0400"
      },
      "message": "nfsd: add dprintk of compound return\n\nWe already print each operation of the compound when debugging is turned\non; printing the result could also help with remote debugging.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "88dd0be3874566796fa4ffbdf927a53c4a6a2f4b",
      "tree": "29cb36a8d21d274e5a7dbd11ec69da225d328c65",
      "parents": [
        "b8291ad07a7f3b5b990900f0001198ac23ba893e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon May 05 19:47:29 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 18 19:13:07 2008 -0400"
      },
      "message": "nfsd: reorder printk in do_probe_callback to avoid use-after-free\n\nWe\u0027re currently dereferencing the client after we drop our reference\ncount to it.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b55e0ba19cd2d83317a7f1dbb626080951442ab3",
      "tree": "a8d9ec9a80dd1b7cc0f8770042600c7494c4e270",
      "parents": [
        "b8291ad07a7f3b5b990900f0001198ac23ba893e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Apr 28 18:22:50 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 18 19:12:54 2008 -0400"
      },
      "message": "nfsd: remove unnecessary atomic ops\n\nThese bit operations don\u0027t need to be atomic.  They\u0027re all done under a\nsingle big mutex anyway.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8e24eea728068bbeb6a3c500b848f883a20bf225",
      "tree": "93e79da649723e2766237505b22725fec395f139",
      "parents": [
        "530b6412786d7f83592c1a8e2445541ed73fca76"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Apr 30 00:55:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:54 2008 -0700"
      },
      "message": "fs: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ef2db2630652d68dfd336088648adae7ef0bcd4",
      "tree": "c49fdc3e89f1a438d4d379492f75ca689662cdac",
      "parents": [
        "59b7435149eab2dd06dd678742faff6049cb655f"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Apr 29 01:02:04 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:20 2008 -0700"
      },
      "message": "nfsd: use proc_create to setup de-\u003eproc_fops\n\nUse proc_create() to make sure that -\u003eproc_fops be setup before gluing PDE to\nmain tree.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e36cd4a2873c398ba188f16e4087cce7f00a1506",
      "tree": "60dcaba46a18d9f60e6a0514542a35a81f059cee",
      "parents": [
        "c272cca625ab507e7cc23708ee5c64d2f384708f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 24 16:59:30 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 25 13:00:11 2008 -0400"
      },
      "message": "nfsd: don\u0027t allow setting ctime over v4\n\nPresumably this is left over from earlier drafts of v4, which listed\nTIME_METADATA as writeable.  It\u0027s read-only in rfc 3530, and shouldn\u0027t\nbe modifiable anyway.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "1a747ee0cc11a198f9e2435add821bd0dfedb7c1",
      "tree": "10b5a55bde30bef3f466e5126bd44fc0e111fc5a",
      "parents": [
        "17efa372cfe4d189705edf6cd4fbe283827a5dc7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 24 10:08:22 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 25 13:00:11 2008 -0400"
      },
      "message": "locks: don\u0027t call -\u003ecopy_lock methods on return of conflicting locks\n\nThe file_lock structure is used both as a heavy-weight representation of\nan active lock, with pointers to reference-counted structures, etc., and\nas a simple container for parameters that describe a file lock.\n\nThe conflicting lock returned from __posix_lock_file is an example of\nthe latter; so don\u0027t call the filesystem or lock manager callbacks when\ncopying to it.  This also saves the need for an unnecessary\nlocks_init_lock in the nfsv4 server.\n\nThanks to Trond for pointing out the error.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "17efa372cfe4d189705edf6cd4fbe283827a5dc7",
      "tree": "dcf10b96b079fff6edebbf451a32608ce6032663",
      "parents": [
        "4373ea84c84d8a96e99d3da99e813d3e36d1bd11"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Thu Jan 17 11:10:12 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 25 13:00:11 2008 -0400"
      },
      "message": "lockd: unlock lockd locks held for a certain filesystem\n\nAdd /proc/fs/nfsd/unlock_filesystem, which allows e.g.:\n\nshell\u003e echo /mnt/sfs1 \u003e /proc/fs/nfsd/unlock_filesystem\n\nso that a filesystem can be unmounted before allowing a peer nfsd to\ntake over nfs service for the filesystem.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nCc: Lon Hohberger  \u003clhh@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n\n fs/lockd/svcsubs.c          |   66 +++++++++++++++++++++++++++++++++++++++-----\n fs/nfsd/nfsctl.c            |   65 +++++++++++++++++++++++++++++++++++++++++++\n include/linux/lockd/lockd.h |    7 ++++\n 3 files changed, 131 insertions(+), 7 deletions(-)\n"
    },
    {
      "commit": "4373ea84c84d8a96e99d3da99e813d3e36d1bd11",
      "tree": "956fb92c4501cf2ed0f21a8942dfc31d4621711f",
      "parents": [
        "9d91cdcc0cce3186742f38e7352459b2087fbb86"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Thu Jan 17 11:10:12 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 25 13:00:10 2008 -0400"
      },
      "message": "lockd: unlock lockd locks associated with a given server ip\n\nFor high-availability NFS service, we generally need to be able to drop\nfile locks held on the exported filesystem before moving clients to a\nnew server.  Currently the only way to do that is by shutting down lockd\nentirely, which is often undesireable (for example, if you want to\ncontinue exporting other filesystems).\n\nThis patch allows the administrator to release all locks held by clients\naccessing the client through a given server ip address, by echoing that\naddress to a new file, /proc/fs/nfsd/unlock_ip, as in:\n\nshell\u003e echo 10.1.1.2 \u003e /proc/fs/nfsd/unlock_ip\n\nThe expected sequence of events can be:\n1. Tear down the IP address\n2. Unexport the path\n3. Write IP to /proc/fs/nfsd/unlock_ip to unlock files\n4. Signal peer to begin take-over.\n\nFor now we only support IPv4 addresses and NFSv2/v3 (NFSv4 locks are not\naffected).\n\nAlso, if unmounting the filesystem is required, we assume at step 3 that\nclients using the given server ip are the only clients holding locks on\nthe given filesystem; otherwise, an additional patch is required to\nallow revoking all locks held by lockd on a given filesystem.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nCc: Lon Hohberger  \u003clhh@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n\n fs/lockd/svcsubs.c          |   66 +++++++++++++++++++++++++++++++++++++++-----\n fs/nfsd/nfsctl.c            |   65 +++++++++++++++++++++++++++++++++++++++++++\n include/linux/lockd/lockd.h |    7 ++++\n 3 files changed, 131 insertions(+), 7 deletions(-)\n"
    },
    {
      "commit": "ca456252db0521e5e88024fa2b67535e9739e030",
      "tree": "3d62ce9e370dfe62e986ab44710262991a2ad2e1",
      "parents": [
        "dee3209d993f17081d2c58d6470dfc8d6662078b"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Apr 16 16:28:47 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:43 2008 -0400"
      },
      "message": "knfsd: clear both setuid and setgid whenever a chown is done\n\nCurrently, knfsd only clears the setuid bit if the owner of a file is\nchanged on a SETATTR call, and only clears the setgid bit if the group\nis changed. POSIX says this in the spec for chown():\n\n    \"If the specified file is a regular file, one or more of the\n     S_IXUSR, S_IXGRP, or S_IXOTH bits of the file mode are set, and the\n     process does not have appropriate privileges, the set-user-ID\n     (S_ISUID) and set-group-ID (S_ISGID) bits of the file mode shall\n     be cleared upon successful return from chown().\"\n\nIf I\u0027m reading this correctly, then knfsd is doing this wrong. It should\nbe clearing both the setuid and setgid bit on any SETATTR that changes\nthe uid or gid. This wasn\u0027t really as noticable before, but now that the\nATTR_KILL_S*ID bits are a no-op for the NFS client, it\u0027s more evident.\n\nThis patch corrects the nfsd_setattr logic so that this occurs. It also\ndoes a bit of cleanup to the function.\n\nThere is also one small behavioral change. If a SETATTR call comes in\nthat changes the uid/gid and the mode, then we now only clear the setgid\nbit if the group execute bit isn\u0027t set. The setgid bit without a group\nexecute bit signifies mandatory locking and we likely don\u0027t want to\nclear the bit in that case. Since there is no call in POSIX that should\ngenerate a SETATTR call like this, then this should rarely happen, but\nit\u0027s worth noting.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "dee3209d993f17081d2c58d6470dfc8d6662078b",
      "tree": "d19b417851b970c659612593a1f9b6df942e313e",
      "parents": [
        "0dc220f0815497858db539d27947f3ec83202ace"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Apr 16 16:28:46 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:43 2008 -0400"
      },
      "message": "knfsd: get rid of imode variable in nfsd_setattr\n\n...it\u0027s not really needed.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ff7d9756b501744540be65e172d27ee321d86103",
      "tree": "d5f812aa7dd230e51f4b5e2d921692757f41b983",
      "parents": [
        "8774282c4cef82695ccca8bd09976de5d6e49610"
      ],
      "author": {
        "name": "Olga Kornievskaia",
        "email": "aglo@citi.umich.edu",
        "time": "Fri Mar 28 16:04:56 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:42 2008 -0400"
      },
      "message": "nfsd: use static memory for callback program and stats\n\nThere\u0027s no need to dynamically allocate this memory, and doing so may\ncreate the possibility of races on shutdown of the rpc client.  (We\u0027ve\nwitnessed it only after adding rpcsec_gss support to the server, after\nwhich the rpc code can send destroys calls that expect to still be able\nto access the rpc_stats structure after it has been destroyed.)\n\nSuch races are in theory possible if the module containing this \"static\"\nmemory is removed very quickly after an rpc client is destroyed, but\nwe haven\u0027t seen that happen.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "03550fac06c4f0c39a1885d46015c28794413c82",
      "tree": "090c03e257149a034263b81a95742ce1fdcaebc6",
      "parents": [
        "c3bb257d2d3a1a4e49372b9d74eaebe0fcf110dd"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Mar 14 17:51:12 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:41 2008 -0400"
      },
      "message": "nfsd: move most of fh_verify to separate function\n\nMove the code that actually parses the filehandle and looks up the\ndentry and export to a separate function.  This simplifies the reference\ncounting a little and moves fh_verify() a little closer to the kernel\nideal of small, minimally-indentended functions.  Clean up a few other\nminor style sins along the way.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9167f501c6b53492eb2566dd618ce7f55f2856d5",
      "tree": "41a39a802a0c6c848bfc7d9b322dbf83ab63fcdb",
      "parents": [
        "a3fa73bd0eea74c58315114c9fc3e913f6c26d61"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Feb 26 10:54:36 2008 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:40 2008 -0400"
      },
      "message": "nfsd: initialize lease type in nfs4_open_delegation()\n\nWhile lease is correctly checked by supplying the type argument to\nvfs_setlease(), it\u0027s stored with fl_type uninitialized. This breaks the\nlogic when checking the type of the lease.  The fix is to initialize\nfl_type.\n\nThe old code still happened to function correctly since F_RDLCK is zero,\nand we only implement read delegations currently (nor write\ndelegations).  But that\u0027s no excuse for not fixing this.\n\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3ba1514815817f93a4f09615726dd4bcd0ddbbc9",
      "tree": "3822bc0b3447b3f68ae8179059f022e056c87ab4",
      "parents": [
        "a254b246ee238ab90e7b3fae1f76875b608b2213"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Feb 20 12:49:02 2008 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:39 2008 -0400"
      },
      "message": "nfsd: fix sparse warning in vfs.c\n\nfs/nfsd/vfs.c:991:27: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a254b246ee238ab90e7b3fae1f76875b608b2213",
      "tree": "1e4c35e1225b91693694d0384ef6f1e0e8500e4d",
      "parents": [
        "d8421202121ce74daf4625ca9d1d825bbd7ce66a"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Feb 20 12:49:00 2008 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:39 2008 -0400"
      },
      "message": "nfsd: fix sparse warnings\n\nAdd extern to nfsd/nfsd.h\nfs/nfsd/nfssvc.c:146:5: warning: symbol \u0027nfsd_nrthreads\u0027 was not declared. Should it be static?\nfs/nfsd/nfssvc.c:261:5: warning: symbol \u0027nfsd_nrpools\u0027 was not declared. Should it be static?\nfs/nfsd/nfssvc.c:269:5: warning: symbol \u0027nfsd_get_nrthreads\u0027 was not declared. Should it be static?\nfs/nfsd/nfssvc.c:281:5: warning: symbol \u0027nfsd_set_nrthreads\u0027 was not declared. Should it be static?\nfs/nfsd/export.c:1534:23: warning: symbol \u0027nfs_exports_op\u0027 was not declared. Should it be static?\n\nAdd include of auth.h\nfs/nfsd/auth.c:27:5: warning: symbol \u0027nfsd_setuser\u0027 was not declared. Should it be static?\n\nMake static, move forward declaration closer to where it\u0027s needed.\nfs/nfsd/nfs4state.c:1877:1: warning: symbol \u0027laundromat_main\u0027 was not declared. Should it be static?\n\nMake static, forward declaration was already marked static.\nfs/nfsd/nfs4idmap.c:206:1: warning: symbol \u0027idtoname_parse\u0027 was not declared. Should it be static?\nfs/nfsd/vfs.c:1156:1: warning: symbol \u0027nfsd_create_setattr\u0027 was not declared. Should it be static?\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f2b0dee2ec8d562ad9ced2b7481be72d356c6cfc",
      "tree": "0e5c88c5bdc2bc34c63ad8c788cb70b8ced2cabc",
      "parents": [
        "7b54fe61ffd5bfa4e50d371a2415225aa0cbb38e"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Feb 13 23:30:26 2008 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:38 2008 -0400"
      },
      "message": "make nfsd_create_setattr() static\n\nThis patch makes the needlessly global nfsd_create_setattr() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5ea0dd61f221ba2701314a85e998b8202412553d",
      "tree": "1f1d1f2bea5fd98cc06af8d070242bdfd1ddd87b",
      "parents": [
        "c0ce6ec87c59d7a29438717b1f72f83fb408f416"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Feb 11 17:11:39 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:38 2008 -0400"
      },
      "message": "NFSD: Remove NFSD_TCP kernel build option\n\nLikewise, distros usually leave CONFIG_NFSD_TCP enabled.\n\nTCP support in the Linux NFS server is stable enough that we can leave it\non always.  CONFIG_NFSD_TCP adds about 10 lines of code, and defaults to\n\"Y\" anyway.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c0ce6ec87c59d7a29438717b1f72f83fb408f416",
      "tree": "197fe7b8f89250b54b3f08d559d49f331c00d759",
      "parents": [
        "67eb6ff610d50da231a37beb634d6dea4b5025ab"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 11 15:48:47 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:38 2008 -0400"
      },
      "message": "nfsd: clarify readdir/mountpoint-crossing code\n\nThe code here is difficult to understand; attempt to clarify somewhat by\npulling out one of the more mystifying conditionals into a separate\nfunction.\n\nWhile we\u0027re here, also add lease_time to the list of attributes that we\ndon\u0027t really need to cross a mountpoint to fetch.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Peter Staubach \u003cstaubach@redhat.com\u003e\n"
    },
    {
      "commit": "6a85fa3adddd3a74bd5b94c4b72668d307b88377",
      "tree": "f7e89f37ccfe1b5db09aa2478f2baecabbaef009",
      "parents": [
        "0836f587258c2a24bfdc8810ad2327e7f354b6c7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Jan 26 23:36:48 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:37 2008 -0400"
      },
      "message": "nfsd4: kill unnecessary check in preprocess_stateid_op\n\nThis condition is always true.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0836f587258c2a24bfdc8810ad2327e7f354b6c7",
      "tree": "d2eb463c8d3652b630161b7250fe9d88ffeed7bd",
      "parents": [
        "f3362737be14668f4e8f5c8d082eb131aafc1353"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Jan 26 19:08:12 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:37 2008 -0400"
      },
      "message": "nfsd4: simplify stateid sequencing checks\n\nPull this common code into a separate function.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f3362737be14668f4e8f5c8d082eb131aafc1353",
      "tree": "70ba9bbfa4102b11c24ee2c01240a187c081c9a9",
      "parents": [
        "065f30ec14b1460c695b371bc44e068832a60d9b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Jan 26 14:58:45 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:37 2008 -0400"
      },
      "message": "nfsd4: remove unnecessary CHECK_FH check in preprocess_seqid_op\n\nEvery caller sets this flag, so it\u0027s meaningless.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f15364bd4cf8799a7677b6daeed7b67d9139d974",
      "tree": "bef48016533d184ea171d4b64336a5ad65ebc18e",
      "parents": [
        "d751a7cd0695554498f25d3026ca6710dbb3698f"
      ],
      "author": {
        "name": "Aurélien Charbon",
        "email": "aurelien.charbon@ext.bull.net",
        "time": "Fri Jan 18 15:50:56 2008 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:36 2008 -0400"
      },
      "message": "IPv6 support for NFS server export caches\n\nThis adds IPv6 support to the interfaces that are used to express nfsd\nexports.  All addressed are stored internally as IPv6; backwards\ncompatibility is maintained using mapped addresses.\n\nThanks to Bruce Fields, Brian Haley, Neil Brown and Hideaki Joshifuji\nfor comments\n\nSigned-off-by: Aurelien Charbon \u003caurelien.charbon@bull.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Brian Haley \u003cbrian.haley@hp.com\u003e\nCc:  YOSHIFUJI Hideaki / 吉藤英明 \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2c463e95480829a2fe8f386589516e13b1289db6",
      "tree": "7294d93a15f62ccc2c649ef9782b7f85ae7d1ef8",
      "parents": [
        "ec82687f29127a954dd0da95dc1e0a4ce92b560c"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:56 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:29:27 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: check mnt instead of superblock directly\n\nIf we depend on the inodes for writeability, we will not catch the r/o mounts\nwhen implemented.\n\nThis patches uses __mnt_want_write().  It does not guarantee that the mount\nwill stay writeable after the check.  But, this is OK for one of the checks\nbecause it is just for a printk().\n\nThe other two are probably unnecessary and duplicate existing checks in the\nVFS.  This won\u0027t make them better checks than before, but it will make them\ndetect r/o mounts.\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18f335aff86913de3c76f88d32c8135c1da62ce6",
      "tree": "bf541547b9774137a161d200bace04ad152e80e3",
      "parents": [
        "9079b1eb1753f217c3de9f1b7dd7fd549cc3f0cf"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:38 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:29:15 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: elevate write count for xattr_permission() callers\n\nThis basically audits the callers of xattr_permission(), which calls\npermission() and can perform writes to the filesystem.\n\n[AV: add missing parts - removexattr() and nfsd posix acls, plug for a leak\nspotted by Miklos]\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9079b1eb1753f217c3de9f1b7dd7fd549cc3f0cf",
      "tree": "8e522ad0b16829849e4b1602270eb10997fba41d",
      "parents": [
        "75c3f29de7451677c59580b0a959f694f36aac28"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:49 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:25:34 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: get write access for vfs_rename() callers\n\nThis also uses the little helper in the NFS code to make an if() a little bit\nless ugly.  We introduced the helper at the beginning of the series.\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "75c3f29de7451677c59580b0a959f694f36aac28",
      "tree": "c82ad50102bfa38f2dc6bb0f763cde9f3dff3790",
      "parents": [
        "463c3197263bd26ac59a00d2484990e17e35c50e"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:45 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:25:34 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: write counts for link/symlink\n\n[AV: add missing nfsd pieces]\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "463c3197263bd26ac59a00d2484990e17e35c50e",
      "tree": "b27c04f978ccd447ae33f7387b6a4aba0033acc5",
      "parents": [
        "0622753b800e4cc6cb9319b36b27658c72dd7cdc"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:57 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:25:34 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: get callers of vfs_mknod/create/mkdir()\n\nThis takes care of all of the direct callers of vfs_mknod().\nSince a few of these cases also handle normal file creation\nas well, this also covers some calls to vfs_create().\n\nSo that we don\u0027t have to make three mnt_want/drop_write()\ncalls inside of the switch statement, we move some of its\nlogic outside of the switch and into a helper function\nsuggested by Christoph.\n\nThis also encapsulates a fix for mknod(S_IFREG) that Miklos\nfound.\n\n[AV: merged mkdir handling, added missing nfsd pieces]\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0622753b800e4cc6cb9319b36b27658c72dd7cdc",
      "tree": "5a32b65a087ff7fd5effa8d3f6f1f9717d4391aa",
      "parents": [
        "49e0d02cf018d4edf24bfc8531a816a26367e4ce"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:34 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:25:33 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: elevate write count for rmdir and unlink.\n\nElevate the write count during the vfs_rmdir() and vfs_unlink().\n\n[AV: merged rmdir and unlink parts, added missing pieces in nfsd]\n\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "aceaf78da92a53f5e1b105649a1b8c0afdb2135c",
      "tree": "cab04e05f8b504b0a11d4986045bc3b08a3a1e75",
      "parents": [
        "8366025eb80dfa0d8d94b286d53027081c280ef1"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:31 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:25:32 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: create helper to drop file write access\n\nIf someone decides to demote a file from r/w to just\nr/o, they can use this same code as __fput().\n\nNFS does just that, and will use this in the next\npatch.\n\nAV: drop write access in __fput() only after we evict from file list.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J Bruce Fields\" \u003cbfields@fieldses.org\u003e\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b663c6fd98c9cf586279db03cec3257c413efd00",
      "tree": "f268ae9e706044f48d2f95fcb4841ce89c70cf4b",
      "parents": [
        "9b89ca7a3847c0d5b1e86e83f4860a866f28a89b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Mar 14 19:37:11 2008 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 14 16:49:15 2008 -0700"
      },
      "message": "nfsd: fix oops on access from high-numbered ports\n\nThis bug was always here, but before my commit 6fa02839bf9412e18e77\n(\"recheck for secure ports in fh_verify\"), it could only be triggered by\nfailure of a kmalloc().  After that commit it could be triggered by a\nclient making a request from a non-reserved port for access to an export\nmarked \"secure\".  (Exports are \"secure\" by default.)\n\nThe result is a struct svc_export with a reference count one too low,\nresulting in likely oopses next time the export is accessed.\n\nThe reference counting here is not straightforward; a later patch will\nclean up fh_verify().\n\nThanks to Lukas Hejtmanek for the bug report and followup.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Lukas Hejtmanek \u003cxhejtman@ics.muni.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5216a8e70e25b01cbd2915cd0442fb96deb2c262",
      "tree": "f372bd3cb3fc2f4a2d3e4ad303e6c4d3f8f48865",
      "parents": [
        "90dc7d2796edf94a9eaa838321a9734c8513e717"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Feb 21 10:57:45 2008 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 21 18:42:29 2008 -0500"
      },
      "message": "Wrap buffers used for rpc debug printks into RPC_IFDEBUG\n\nSorry for the noise, but here\u0027s the v3 of this compilation fix :)\n\nThere are some places, which declare the char buf[...] on the stack\nto push it later into dprintk(). Since the dprintk sometimes (if the\nCONFIG_SYSCTL\u003dn) becomes an empty do { } while (0) stub, these buffers\ncause gcc to produce appropriate warnings.\n\nWrap these buffers with RPC_IFDEBUG macro, as Trond proposed, to\ncompile them out when not needed.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cf28b4863f9ee8f122e8ff3ac0d403e07ba9c6d9",
      "tree": "65c91f6911b34c32e517938289621ce0e7baeaf3",
      "parents": [
        "c32c2f63a9d6c953aaf168c0b2551da9734f76d2"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:38:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:17:09 2008 -0800"
      },
      "message": "d_path: Make d_path() use a struct path\n\nd_path() is used on a \u003cdentry,vfsmount\u003e pair.  Lets use a struct path to\nreflect this.\n\n[akpm@linux-foundation.org: fix build in mm/memory.c]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nAcked-by: Bryan Wu \u003cbryan.wu@analog.com\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c32c2f63a9d6c953aaf168c0b2551da9734f76d2",
      "tree": "14eca3083f3de4a87a95359ab66109c10add1ae7",
      "parents": [
        "e83aece3afad4d56cc01abe069d3519e851cd2de"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:38:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:17:08 2008 -0800"
      },
      "message": "d_path: Make seq_path() use a struct path argument\n\nseq_path() is always called with a dentry and a vfsmount from a struct path.\nMake seq_path() take it directly as an argument.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e83aece3afad4d56cc01abe069d3519e851cd2de",
      "tree": "360f38ea9f656205941bc98aab93121b67f0a81f",
      "parents": [
        "5477549161480432d053565d2720f08626baf9e3"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:38:41 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:17:08 2008 -0800"
      },
      "message": "Use struct path in struct svc_expkey\n\nI\u0027m embedding struct path into struct svc_expkey.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5477549161480432d053565d2720f08626baf9e3",
      "tree": "0993666627a6f53f5c7cc9277a329760ccc1002d",
      "parents": [
        "448678a0f3cdd0157f00e98bd337e32030273637"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:38:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:17:08 2008 -0800"
      },
      "message": "Use struct path in struct svc_export\n\nI\u0027m embedding struct path into struct svc_export.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[ezk@cs.sunysb.edu: NFSD: fix wrong mnt_writer count in rename]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nAcked-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d957f9bf87da74f420424d16ece005202bbebd3",
      "tree": "363d4770c0c74a536524c99ccd2762ce96ee9bbe",
      "parents": [
        "4ac9137858e08a19f29feac4e1f4df7c268b0ba5"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Introduce path_put()\n\n* Add path_put() functions for releasing a reference to the dentry and\n  vfsmount of a struct path in the right order\n\n* Switch from path_release(nd) to path_put(\u0026nd-\u003epath)\n\n* Rename dput_path() to path_put_conditional()\n\n[akpm@linux-foundation.org: fix cifs]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003clinux-fsdevel@vger.kernel.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ac9137858e08a19f29feac4e1f4df7c268b0ba5",
      "tree": "f5b5d84fd12fcc2b0ba0e7ce1a79ff381ad8f5dd",
      "parents": [
        "c5e725f33b733a77de622e91b6ba5645fcf070be"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Embed a struct path into struct nameidata instead of nd-\u003e{dentry,mnt}\n\nThis is the central patch of a cleanup series. In most cases there is no good\nreason why someone would want to use a dentry for itself. This series reflects\nthat fact and embeds a struct path into nameidata.\n\nTogether with the other patches of this series\n- it enforced the correct order of getting/releasing the reference count on\n  \u003cdentry,vfsmount\u003e pairs\n- it prepares the VFS for stacking support since it is essential to have a\n  struct path in every place where the stack can be traversed\n- it reduces the overall code size:\n\nwithout patch series:\n   text    data     bss     dec     hex filename\n5321639  858418  715768 6895825  6938d1 vmlinux\n\nwith patch series:\n   text    data     bss     dec     hex filename\n5320026  858418  715768 6894212  693284 vmlinux\n\nThis patch:\n\nSwitch from nd-\u003e{dentry,mnt} to nd-\u003epath.{dentry,mnt} everywhere.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix cifs]\n[akpm@linux-foundation.org: fix smack]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e231c2ee64eb1c5cd3c63c31da9dac7d888dcf7f",
      "tree": "d4b17ef65960594681397a3acac02c2d248200b5",
      "parents": [
        "d1bc8e95445224276d7896b8b08cbb0b28a0ca80"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:26 2008 -0800"
      },
      "message": "Convert ERR_PTR(PTR_ERR(p)) instances to ERR_CAST(p)\n\nConvert instances of ERR_PTR(PTR_ERR(p)) to ERR_CAST(p) using:\n\nperl -spi -e \u0027s/ERR_PTR[(]PTR_ERR[(](.*)[)][)]/ERR_CAST(\\1)/\u0027 `grep -rl \u0027ERR_PTR[(]*PTR_ERR\u0027 fs crypto net security`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e338d263a76af78fe8f38a72131188b58fceb591",
      "tree": "f3f046fc6fd66de43de7191830f0daf3bc4ec8eb",
      "parents": [
        "8f6936f4d29aa14e54a2470b954a2e1f96322988"
      ],
      "author": {
        "name": "Andrew Morgan",
        "email": "morgan@kernel.org",
        "time": "Mon Feb 04 22:29:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:20 2008 -0800"
      },
      "message": "Add 64-bit capability support to the kernel\n\nThe patch supports legacy (32-bit) capability userspace, and where possible\ntranslates 32-bit capabilities to/from userspace and the VFS to 64-bit\nkernel space capabilities.  If a capability set cannot be compressed into\n32-bits for consumption by user space, the system call fails, with -ERANGE.\n\nFWIW libcap-2.00 supports this change (and earlier capability formats)\n\n http://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.6/\n\n[akpm@linux-foundation.org: coding-syle fixes]\n[akpm@linux-foundation.org: use get_task_comm()]\n[ezk@cs.sunysb.edu: build fix]\n[akpm@linux-foundation.org: do not initialise statics to 0 or NULL]\n[akpm@linux-foundation.org: unused var]\n[serue@us.ibm.com: export __cap_ symbols]\nSigned-off-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "87d26ea7771ad637035e6bd5a2700d81ee9162da",
      "tree": "c1da6cd6fe03bfadb3276bd30423c7d4b105ef41",
      "parents": [
        "50431d94e732ba71b66a83c5435890728e313095"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 22 17:40:42 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:15 2008 -0500"
      },
      "message": "nfsd: more careful input validation in nfsctl write methods\n\nNeil Brown points out that we\u0027re checking buf[size-1] in a couple places\nwithout first checking whether size is zero.\n\nActually, given the implementation of simple_transaction_get(), buf[-1]\nis zero, so in both of these cases the subsequent check of the value of\nbuf[size-1] will catch this case.\n\nBut it seems fragile to depend on that, so add explicit checks for this\ncase.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "f7b8066f9ff68016489ff6f9fb358aa59bd14e1b",
      "tree": "cf4e6e2d0cefcd9dcd44a65b11f5fcfb28c497c9",
      "parents": [
        "4b8449af75fa2e2d9736ec503a818be626a4e763"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jan 21 12:20:45 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:15 2008 -0500"
      },
      "message": "knfsd: don\u0027t bother mapping putrootfh enoent to eperm\n\nNeither EPERM and ENOENT map to valid errors for PUTROOTFH according to\nrfc 3530, and, if anything, ENOENT is likely to be slightly more\ninformative; so don\u0027t bother mapping ENOENT to EPERM.  (Probably this\nwas originally done because one likely cause was that there is an fsid\u003d0\nexport but that it isn\u0027t permitted to this particular client.  Now that\nwe allow WRONGSEC returns, this is somewhat less likely.)\n\nIn the long term we should work to make this situation less likely,\nperhaps by turning off nfsv4 service entirely in the absence of the\npseudofs root, or constructing a pseudofilesystem root ourselves in the\nkernel as necessary.\n\nThanks to Benny Halevy \u003cbhalevy@panasas.com\u003e for pointing out this\nproblem.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "9571af18fa1e4a431dc6f6023ddbd87d1112fd5d",
      "tree": "d8eafdea71ea1c13fe9c733442d41857e17901ac",
      "parents": [
        "a217813f9067b785241cb7f31956e51d2071703a"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:37 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:14 2008 -0500"
      },
      "message": "svc: Add svc_xprt_names service to replace svc_sock_names\n\nCreate a transport independent version of the svc_sock_names function.\n\nThe toclose capability of the svc_sock_names service can be implemented\nusing the svc_xprt_find and svc_xprt_close services.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a217813f9067b785241cb7f31956e51d2071703a",
      "tree": "5bda9ab6a461562975506d2100b16db19e3e628b",
      "parents": [
        "7fcb98d58cb4d18af6386f71025fc5192f25fbca"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:35 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:13 2008 -0500"
      },
      "message": "knfsd: Support adding transports by writing portlist file\n\nUpdate the write handler for the portlist file to allow creating new\nlistening endpoints on a transport. The general form of the string is:\n\n\u003ctransport_name\u003e\u003cspace\u003e\u003cport number\u003e\n\nFor example:\n\necho \"tcp 2049\" \u003e /proc/fs/nfsd/portlist\n\nThis is intended to support the creation of a listening endpoint for\nRDMA transports without adding #ifdef code to the nfssvc.c file.\n\nTransports can also be removed as follows:\n\n\u0027-\u0027\u003ctransport_name\u003e\u003cspace\u003e\u003cport number\u003e\n\nFor example:\n\necho \"-tcp 2049\" \u003e /proc/fs/nfsd/portlist\n\nAttempting to add a listener with an invalid transport string results\nin EPROTONOSUPPORT and a perror string of \"Protocol not supported\".\n\nAttempting to remove an non-existent listener (.e.g. bad proto or port)\nresults in ENOTCONN and a perror string of\n\"Transport endpoint is not connected\"\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7a18208383ab3f3ce4a1f4e0536acc9372523d81",
      "tree": "851a1cc29d753297c2e7cf4cb4a95c4af7868427",
      "parents": [
        "bb5cf160b282644c4491afbf76fbc66f5dc35030"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:53 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:11 2008 -0500"
      },
      "message": "svc: Make close transport independent\n\nMove sk_list and sk_ready to svc_xprt. This involves close because these\nlists are walked by svcs when closing all their transports. So I combined\nthe moving of these lists to svc_xprt with making close transport independent.\n\nThe svc_force_sock_close has been changed to svc_close_all and takes a list\nas an argument. This removes some svc internals knowledge from the svcs.\n\nThis code races with module removal and transport addition.\n\nThanks to Simon Holm Thøgersen for a compile fix.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Simon Holm Thøgersen \u003codie@cs.aau.dk\u003e\n"
    },
    {
      "commit": "d7c9f1ed972b4a468dd24a2457721704dfe9ca70",
      "tree": "40cd2b38db79df4d90753b58789c3e4bc274095f",
      "parents": [
        "b700cbb11fced2a0e953fdd19eac07ffaad86598"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:44 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:09 2008 -0500"
      },
      "message": "svc: Change services to use new svc_create_xprt service\n\nModify the various kernel RPC svcs to use the svc_create_xprt service.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8838dc43d6544570e8969a74ddc4a0d21abffde6",
      "tree": "f3082dd80293fe5279d8ff993d2e0c17a0a2f2b4",
      "parents": [
        "b39c18fce003bb2d5a51a4734d8fdd2c81fa1a78"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jan 14 13:12:19 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:07 2008 -0500"
      },
      "message": "nfsd4: clean up access_valid, deny_valid checks.\n\nDocument these checks a little better and inline, as suggested by Neil\nBrown (note both functions have two callers).  Remove an obviously bogus\ncheck while we\u0027re there (checking whether unsigned value is negative).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "5c002b3bb294a637312cab7ad92a0deafa05a758",
      "tree": "0183f792fe61fe1bb6a117baf385020feb5b085c",
      "parents": [
        "29dbf546159f5701e11de26fa2da5c4a962e0f83"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Nov 30 16:55:23 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:07 2008 -0500"
      },
      "message": "nfsd: allow root to set uid and gid on create\n\nThe server silently ignores attempts to set the uid and gid on create.\nBased on the comment, this appears to have been done to prevent some\noverly-clever IRIX client from causing itself problems.\n\nPerhaps we should remove that hack completely.  For now, at least, it\nmakes sense to allow root (when no_root_squash is set) to set uid and\ngid.\n\nWhile we\u0027re there, since nfsd_create and nfsd_create_v3 share the same\nlogic, pull that out into a separate function.  And spell out the\nindividual modifications of ia_valid instead of doing them both at once\ninside a conditional.\n\nThanks to Roger Willcocks \u003croger@filmlight.ltd.uk\u003e for the bug report\nand original patch on which this is based.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "406a7ea97d9dc1a9348ba92c4cd0e7c678185c4c",
      "tree": "bf3d7e7fe94343aad6a57a60917ebecfa64376e7",
      "parents": [
        "39325bd03fc16d903f1e0f51104436d939899c8c"
      ],
      "author": {
        "name": "Frank Filz",
        "email": "ffilzlnx@us.ibm.com",
        "time": "Tue Nov 27 11:34:05 2007 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:06 2008 -0500"
      },
      "message": "nfsd: Allow AIX client to read dir containing mountpoints\n\nThis patch addresses a compatibility issue with a Linux NFS server and\nAIX NFS client.\n\nI have exported /export as fsid\u003d0 with sec\u003dkrb5:krb5i\nI have mount --bind /home onto /export/home\nI have exported /export/home with sec\u003dkrb5i\n\nThe AIX client mounts / -o sec\u003dkrb5:krb5i onto /mnt\n\nIf I do an ls /mnt, the AIX client gets a permission error. Looking at\nthe network traceIwe see a READDIR looking for attributes\nFATTR4_RDATTR_ERROR and FATTR4_MOUNTED_ON_FILEID. The response gives a\nNFS4ERR_WRONGSEC which the AIX client is not expecting.\n\nSince the AIX client is only asking for an attribute that is an\nattribute of the parent file system (pseudo root in my example), it\nseems reasonable that there should not be an error.\n\nIn discussing this issue with Bruce Fields, I initially proposed\nignoring the error in nfsd4_encode_dirent_fattr() if all that was being\nasked for was FATTR4_RDATTR_ERROR and FATTR4_MOUNTED_ON_FILEID, however,\nBruce suggested that we avoid calling cross_mnt() if only these\nattributes are requested.\n\nThe following patch implements bypassing cross_mnt() if only\nFATTR4_RDATTR_ERROR and FATTR4_MOUNTED_ON_FILEID are called. Since there\nis some complexity in the code in nfsd4_encode_fattr(), I didn\u0027t want to\nduplicate code (and introduce a maintenance nightmare), so I added a\nparameter to nfsd4_encode_fattr() that indicates whether it should\nignore cross mounts and simply fill in the attribute using the passed in\ndentry as opposed to it\u0027s parent.\n\nSigned-off-by: Frank Filz \u003cffilzlnx@us.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "39325bd03fc16d903f1e0f51104436d939899c8c",
      "tree": "de63f3c58a3b82d26223e4dfdda1a98570c5a84a",
      "parents": [
        "b7e6b86948df8d08d420558212e09eb449be9bfa"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Nov 26 17:06:39 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:06 2008 -0500"
      },
      "message": "nfsd4: fix bad seqid on lock request incompatible with open mode\n\nThe failure to return a stateowner from nfs4_preprocess_seqid_op() means\nin the case where a lock request is of a type incompatible with an open\n(due to, e.g., an application attempting a write lock on a file open for\nread), means that fs/nfsd/nfs4xdr.c:ENCODE_SEQID_OP_TAIL() never bumps\nthe seqid as it should.  The client, attempting to close the file\nafterwards, then gets an (incorrect) bad sequence id error.  Worse, this\nprevents the open file from ever being closed, so we leak state.\n\nThanks to Benny Halevy and Trond Myklebust for analysis, and to Steven\nWilton for the report and extensive data-gathering.\n\nCc: Benny Halevy \u003cbhalevy@panasas.com\u003e\nCc: Steven Wilton \u003csteven.wilton@team.eftel.com.au\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    }
  ],
  "next": "404ec117be5d36e1a4c4582d0c518594333e32df"
}
