linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC][PATCH 00/13] Fix FS-Cache problems
@ 2011-09-29 14:45 David Howells
  2011-09-29 14:45 ` [PATCH 01/13] Noisefs: A predictable noise producing fs for testing things David Howells
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: David Howells @ 2011-09-29 14:45 UTC (permalink / raw)
  To: moseleymark, mark, jlayton, steved
  Cc: linux-fsdevel, linux-nfs, linux-cachefs



Here are some patches to debug and fix FS-Cache problems.

 (1) A debugging patch to add a predictable pattern generator with a filesystem
     interface.  Can be used to generate regular apparent changes on the NFS
     server.  This was very useful in breaking FS-Cache.

 (2) A patch to correctly mark cached netfs pages.

 (3) A debugging patch to validate page->mapping on a page for which retrieval
     was requested.

 (4) A patch to downgrade memory allocation levels in the cache to not try so
     hard and to be more willing to abort with ENOMEM.  It's a cache - it
     doesn't matter if we can't store something.

 (5) A debugging patch to check that there are no read operations outstanding
     on a cookie when it is relinquished.

 (6) A debugging patch to check that the object cookie pointer doesn't get
     cleared whilst we're trying to read for it.

 (7) A patch to make conditional some debugging prints.

 (8) A patch to make cookie relinquishment log a warning and wait for any
     outstanding reads.

 (9) A patch to fix up operation state handling and accounting.

(10) A patch to provide proper invalidation facilities.

(11) A patch to make a vfs_truncate() for cachefiles's invalidation to call.

     Question: CacheFiles uses truncation in a couple of places.  It has been
     using notify_change() rather than sys_truncate() or something similar.
     This means it bypasses a bunch of checks and suchlike that it possibly
     should be making (security, file locking, lease breaking, vfsmount write).
     Should it be using vfs_truncate() as added by a preceding patch or should
     it use notify_write() and assume that anyone poking around in the cache
     files on disk gets everything they deserve?

(12) A patch to provide invalidation for cachefiles.

(13) A patch to make NFS use the invalidation call.

David
---
David Howells (13):
      NFS: Use FS-Cache invalidation
      CacheFiles: Implement invalidation
      VFS: Make more complete truncate operation available to CacheFiles
      FS-Cache: Provide proper invalidation
      FS-Cache: Fix operation state management and accounting
      FS-Cache: Make cookie relinquishment wait for outstanding reads
      CacheFiles: Make some debugging statements conditional
      FS-Cache: Check cookie is still correct in __fscache_read_or_alloc_pages()
      FS-Cache: Check that there are no read ops when cookie relinquished
      CacheFiles: Downgrade the requirements passed to the allocator
      FS-Cache: Validate page mapping pointer value
      CacheFiles: Fix the marking of cached pages
      Noisefs: A predictable noise producing fs for testing things


 Documentation/filesystems/caching/backend-api.txt |   38 ++
 Documentation/filesystems/caching/netfs-api.txt   |   46 ++-
 Documentation/filesystems/caching/object.txt      |   23 +
 Documentation/filesystems/caching/operations.txt  |    2 
 fs/Kconfig                                        |    1 
 fs/Makefile                                       |    1 
 fs/cachefiles/interface.c                         |   57 +++-
 fs/cachefiles/internal.h                          |    2 
 fs/cachefiles/key.c                               |    2 
 fs/cachefiles/rdwr.c                              |  118 ++++---
 fs/cachefiles/xattr.c                             |    2 
 fs/fscache/cookie.c                               |   78 +++++
 fs/fscache/internal.h                             |   10 +
 fs/fscache/object.c                               |   74 +++++
 fs/fscache/operation.c                            |  135 ++++++---
 fs/fscache/page.c                                 |  188 ++++++++++--
 fs/fscache/stats.c                                |   11 +
 fs/nfs/fscache.h                                  |   20 +
 fs/nfs/inode.c                                    |   20 +
 fs/nfs/nfs4proc.c                                 |    2 
 fs/noisefs/Kconfig                                |   20 +
 fs/noisefs/Makefile                               |    7 
 fs/noisefs/file.c                                 |  331 +++++++++++++++++++++
 fs/noisefs/inode.c                                |  171 +++++++++++
 fs/noisefs/internal.h                             |   59 ++++
 fs/noisefs/super.c                                |  302 +++++++++++++++++++
 fs/open.c                                         |   50 ++-
 include/linux/fs.h                                |    1 
 include/linux/fscache-cache.h                     |   53 +++
 include/linux/fscache.h                           |   50 +++
 mm/page-writeback.c                               |    1 
 31 files changed, 1696 insertions(+), 179 deletions(-)
 create mode 100644 fs/noisefs/Kconfig
 create mode 100644 fs/noisefs/Makefile
 create mode 100644 fs/noisefs/file.c
 create mode 100644 fs/noisefs/inode.c
 create mode 100644 fs/noisefs/internal.h
 create mode 100644 fs/noisefs/super.c

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2011-09-29 14:48 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-29 14:45 [RFC][PATCH 00/13] Fix FS-Cache problems David Howells
2011-09-29 14:45 ` [PATCH 01/13] Noisefs: A predictable noise producing fs for testing things David Howells
2011-09-29 14:46 ` [PATCH 02/13] CacheFiles: Fix the marking of cached pages David Howells
2011-09-29 14:46 ` [PATCH 03/13] FS-Cache: Validate page mapping pointer value David Howells
2011-09-29 14:46 ` [PATCH 04/13] CacheFiles: Downgrade the requirements passed to the allocator David Howells
2011-09-29 14:46 ` [PATCH 05/13] FS-Cache: Check that there are no read ops when cookie relinquished David Howells
2011-09-29 14:46 ` [PATCH 06/13] FS-Cache: Check cookie is still correct in __fscache_read_or_alloc_pages() David Howells
2011-09-29 14:47 ` [PATCH 07/13] CacheFiles: Make some debugging statements conditional David Howells
2011-09-29 14:47 ` [PATCH 08/13] FS-Cache: Make cookie relinquishment wait for outstanding reads David Howells
2011-09-29 14:47 ` [PATCH 09/13] FS-Cache: Fix operation state management and accounting David Howells
     [not found] ` <20110929144536.5812.84405.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2011-09-29 14:47   ` [PATCH 10/13] FS-Cache: Provide proper invalidation David Howells
2011-09-29 14:47 ` [PATCH 11/13] VFS: Make more complete truncate operation available to CacheFiles David Howells
2011-09-29 14:48 ` [PATCH 12/13] CacheFiles: Implement invalidation David Howells
2011-09-29 14:48 ` [PATCH 13/13] NFS: Use FS-Cache invalidation David Howells

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).