)]}'
{
  "log": [
    {
      "commit": "c902ce1bfb40d8b049bd2319b388b4b68b04bc27",
      "tree": "7dcb1e8378f8ec8e7ad7684cd26e9d5a1b5b22d1",
      "parents": [
        "075d9db13183c102770dc6cefabfee1b832f9614"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jul 07 12:19:48 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:21:56 2011 -0700"
      },
      "message": "FS-Cache: Add a helper to bulk uncache pages on an inode\n\nAdd an FS-Cache helper to bulk uncache pages on an inode.  This will\nonly work for the circumstance where the pages in the cache correspond\n1:1 with the pages attached to an inode\u0027s page cache.\n\nThis is required for CIFS and NFS: When disabling inode cookie, we were\nreturning the cookie and setting cifsi-\u003efscache to NULL but failed to\ninvalidate any previously mapped pages.  This resulted in \"Bad page\nstate\" errors and manifested in other kind of errors when running\nfsstress.  Fix it by uncaching mapped pages when we disable the inode\ncookie.\n\nThis patch should fix the following oops and \"Bad page state\" errors\nseen during fsstress testing.\n\n  ------------[ cut here ]------------\n  kernel BUG at fs/cachefiles/namei.c:201!\n  invalid opcode: 0000 [#1] SMP\n  Pid: 5, comm: kworker/u:0 Not tainted 2.6.38.7-30.fc15.x86_64 #1 Bochs Bochs\n  RIP: 0010: cachefiles_walk_to_object+0x436/0x745 [cachefiles]\n  RSP: 0018:ffff88002ce6dd00  EFLAGS: 00010282\n  RAX: ffff88002ef165f0 RBX: ffff88001811f500 RCX: 0000000000000000\n  RDX: 0000000000000000 RSI: 0000000000000100 RDI: 0000000000000282\n  RBP: ffff88002ce6dda0 R08: 0000000000000100 R09: ffffffff81b3a300\n  R10: 0000ffff00066c0a R11: 0000000000000003 R12: ffff88002ae54840\n  R13: ffff88002ae54840 R14: ffff880029c29c00 R15: ffff88001811f4b0\n  FS:  00007f394dd32720(0000) GS:ffff88002ef00000(0000) knlGS:0000000000000000\n  CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\n  CR2: 00007fffcb62ddf8 CR3: 000000001825f000 CR4: 00000000000006e0\n  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n  DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n  Process kworker/u:0 (pid: 5, threadinfo ffff88002ce6c000, task ffff88002ce55cc0)\n  Stack:\n   0000000000000246 ffff88002ce55cc0 ffff88002ce6dd58 ffff88001815dc00\n   ffff8800185246c0 ffff88001811f618 ffff880029c29d18 ffff88001811f380\n   ffff88002ce6dd50 ffffffff814757e4 ffff88002ce6dda0 ffffffff8106ac56\n  Call Trace:\n   cachefiles_lookup_object+0x78/0xd4 [cachefiles]\n   fscache_lookup_object+0x131/0x16d [fscache]\n   fscache_object_work_func+0x1bc/0x669 [fscache]\n   process_one_work+0x186/0x298\n   worker_thread+0xda/0x15d\n   kthread+0x84/0x8c\n   kernel_thread_helper+0x4/0x10\n  RIP  cachefiles_walk_to_object+0x436/0x745 [cachefiles]\n  ---[ end trace 1d481c9af1804caa ]---\n\nI tested the uncaching by the following means:\n\n (1) Create a big file on my NFS server (104857600 bytes).\n\n (2) Read the file into the cache with md5sum on the NFS client.  Look in\n     /proc/fs/fscache/stats:\n\n\tPages  : mrk\u003d25601 unc\u003d0\n\n (3) Open the file for read/write (\"bash 5\u003c\u003e/warthog/bigfile\").  Look in proc\n     again:\n\n\tPages  : mrk\u003d25601 unc\u003d25601\n\nReported-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-and-Tested-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\ncc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "040d15c86747cf44fcf6b8ee19d805d4ef20caf3",
      "tree": "a4ef01d1071920975bc64f132abdabac9af56c8c",
      "parents": [
        "8d1bca328b7c17af33bcf966d799c556ecbf370f"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Jun 14 15:51:18 2011 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Jun 14 15:51:18 2011 +0000"
      },
      "message": "[CIFS] trivial cleanup fscache cFYI and cERROR messages\n\n... for uniformity and cleaner debug logs.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "96daf2b09178d8ebde2b0d56b027de917c17dfdf",
      "tree": "74802fa44e87925e49067d5106eb762cc27b9b97",
      "parents": [
        "07cc6cf9ef84bcf6a60ee513332bcb0ad5d628d8"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri May 27 04:34:02 2011 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri May 27 04:34:02 2011 +0000"
      },
      "message": "[CIFS] Rename three structures to avoid camel case\n\nsecMode to sec_mode\nand\ncifsTconInfo to cifs_tcon\nand\ncifsSesInfo to cifs_ses\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "b81209de2455c6051cf67f2acd8ec26ccb8caf83",
      "tree": "2f2b3ffcdbd2448342615bbd5bd45de3eafaa49f",
      "parents": [
        "607a569da4cf289fd8eb3887080ed3b212e3112d"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Wed Nov 24 17:49:06 2010 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Nov 30 05:49:32 2010 +0000"
      },
      "message": "cifs: enable fscache iff fsc mount option is used explicitly\n\nCurrently, if CONFIG_CIFS_FSCACHE is set, fscache is enabled on files opened\nas read-only irrespective of the \u0027fsc\u0027 mount option. Fix this by enabling\nfscache only if \u0027fsc\u0027 mount option is specified explicitly.\n\nRemove an extraneous cFYI debug message and fix a typo while at it.\n\nReported-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "0d424ad0a4b8c08e45928bccfa5b4b240097b01b",
      "tree": "40f383b138d2e8121cda4b28f1f7c4b9642fe5ec",
      "parents": [
        "f6acb9d0596889a774e142ed76cb05b90d9763d2"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Sep 20 16:01:35 2010 -0700"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Sep 29 19:04:33 2010 +0000"
      },
      "message": "cifs: add cifs_sb_master_tcon and convert some callers to use it\n\nAt mount time, we\u0027ll always need to create a tcon that will serve as a\ntemplate for others that are associated with the mount. This tcon is\nknown as the \"master\" tcon.\n\nIn some cases, we\u0027ll need to use that tcon regardless of who\u0027s accessing\nthe mount. Add an accessor function for the master tcon and go ahead and\nswitch the appropriate places to use it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "a6e8a8455c94565c53e1a1756d2ab9d9e3a902b8",
      "tree": "544628293da6aa14a136c915d887d0abdc689a03",
      "parents": [
        "ba00ba64cf0895e4c2ac507e56306363dc125a90"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Sep 20 16:01:33 2010 -0700"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Sep 29 19:04:32 2010 +0000"
      },
      "message": "cifs: add function to get a tcon from cifs_sb\n\nWhen we convert cifs to do multiple sessions per mount, we\u0027ll need more\nthan one tcon per superblock. At that point \"cifs_sb-\u003etcon\" will make\nno sense. Add a new accessor function that gets a tcon given a cifs_sb.\nFor now, it just returns cifs_sb-\u003etcon. Later it\u0027ll do more.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "56698236e1294848c63d4768673865ae5a9c69e0",
      "tree": "ce6d43104a236595763759fe68c26ca3089abdd1",
      "parents": [
        "9dc06558c223bbc08290917ac44c25963bc09e43"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Mon Jul 05 18:13:25 2010 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 02 12:40:37 2010 +0000"
      },
      "message": "cifs: read pages from FS-Cache\n\nRead pages from a FS-Cache data storage object into a CIFS inode.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "9dc06558c223bbc08290917ac44c25963bc09e43",
      "tree": "7ffd7618faaa251c286637815db5f91d2d410467",
      "parents": [
        "85f2d6b44d7e83bdeab87df910127c6f296866cf"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Mon Jul 05 18:13:11 2010 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 02 12:40:37 2010 +0000"
      },
      "message": "cifs: store pages into local cache\n\nStore pages from an CIFS inode into the data storage object associated with\nthat inode.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "85f2d6b44d7e83bdeab87df910127c6f296866cf",
      "tree": "238389c1726e212a80336551809b44b0bbedec38",
      "parents": [
        "9451a9a52f91a4c171cfaca2f6d7a2ce91867b8d"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Mon Jul 05 18:13:00 2010 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 02 12:40:36 2010 +0000"
      },
      "message": "cifs: FS-Cache page management\n\nTakes care of invalidation and release of FS-Cache marked pages and also\ninvalidation of the FsCache page flag when the inode is removed.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "9451a9a52f91a4c171cfaca2f6d7a2ce91867b8d",
      "tree": "e447d252996e554a053890a75b55456b9926d602",
      "parents": [
        "d03382ce9a89dbe27cba25130f0b90c0d631d5c5"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Mon Jul 05 18:12:45 2010 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 02 12:40:36 2010 +0000"
      },
      "message": "cifs: define inode-level cache object and register them\n\nDefine inode-level data storage objects (managed by cifsInodeInfo structs).\nEach inode-level object is created in a super-block level object and is itself\na data storage object in to which pages from the inode are stored.\n\nThe inode object is keyed by UniqueId. The coherency data being used is\nLastWriteTime, LastChangeTime and end of file reported by the server.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "d03382ce9a89dbe27cba25130f0b90c0d631d5c5",
      "tree": "f2561981a606a788259ad10f0ec57f9486f85da4",
      "parents": [
        "8913007e67106597fed4b9dd3787e8dca6915a83"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Mon Jul 05 18:12:27 2010 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 02 12:40:36 2010 +0000"
      },
      "message": "cifs: define superblock-level cache index objects and register them\n\nDefine superblock-level cache index objects (managed by cifsTconInfo structs).\nEach superblock object is created in a server-level index object and in itself\nan index into which inode-level objects are inserted.\n\nThe superblock object is keyed by sharename. The UniqueId/IndexNumber is used to\nvalidate that the exported share is the same since we accessed it last time.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "488f1d2d6cc9d665c9f09e4b54f77052732e3058",
      "tree": "2e240da84cdb009b89508e0fa748bebe71e35766",
      "parents": [
        "f579cf3cfd1e19ae5aab6929679d0c04bf1a6284"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Mon Jul 05 18:12:15 2010 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 02 12:40:34 2010 +0000"
      },
      "message": "cifs: define server-level cache index objects and register them\n\nDefine server-level cache index objects (as managed by TCP_ServerInfo structs)\nand register then with FS-Cache. Each server object is created in the CIFS\ntop-level index object and is itself an index into which superblock-level\nobjects are inserted.\n\nThe server objects are now keyed by {IPaddress,family,port} tuple.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    }
  ]
}
