Skip to content
  • David Howells's avatar
    FS-Cache: Add a helper to bulk uncache pages on an inode · c902ce1b
    David Howells authored
    Add an FS-Cache helper to bulk uncache pages on an inode.  This will
    only work for the circumstance where the pages in the cache correspond
    1:1 with the pages attached to an inode's page cache.
    
    This is required for CIFS and NFS: When disabling inode cookie, we were
    returning the cookie and setting cifsi->fscache to NULL but failed to
    invalidate any previously mapped pages.  This resulted in "Bad page
    state" errors and manifested in other kind of errors when running
    fsstress.  Fix it by uncaching mapped pages when we disable the inode
    cookie.
    
    This patch should fix the following oops and "Bad page state" errors
    seen during fsstress testing.
    
      ------------[ cut here ]------------
      kernel BUG at fs/cachefiles/namei.c:201!
      invalid opcode: 0000 [#1] SMP
      Pid: 5, comm: kworker/u:0 Not tainted 2.6.38.7-30.fc15.x86_64 #1 Bochs Bochs
      RIP: 0010: cachefiles_walk_to_object+0x436/0x745 [cachefiles]
      RSP: 0018:ffff88002ce6dd00  EFLAGS: 00010282
      RAX: ff...
    c902ce1b