[Ocfs2-tools-devel] [PATCH 0/3] tunefs.ocfs2: I/O cache updates

Joel Becker joel.becker at oracle.com
Fri Jun 12 20:18:41 PDT 2009


ocfs2ne has a couple problems with the I/O cache.

1. We use the cache in unlocked (SKIPCLUSTER) and online
   (PERFORM_ONLINE) operations.  this isn't safe, obviously, because
   other things may be going on, especially in the PERFORM_ONLINE case.
2. We get a tiny cache.  Some ops walk a lot of the filesystem.
3. We nest ocfs2_filesys structures to give operations their own clean
   state.  However, each nested ocfs2_filesys has its own I/O cache.
   filesyses higher in the nesting may have stale blocks in their cache
   when their child filesyses exit.

This series of patches attacks all three problems.  We just don't use
the cache when performing stackless or online operations.  We add a new
flag to tunefs_open(), TUNEFS_FLAG_LARGECACHE.  The large operations
(metaecc, uninline, etc) will use this flag to get a big cache.
Finally, we open one cache with the master filesys and share it with the
nested ones.

These patches are atop the io branch, as they need the nocache and mlock
APIs.

Joel





More information about the Ocfs2-tools-devel mailing list