Skip to content
Snippets Groups Projects
  • Dan Magenheimer's avatar
    077b1f83
    mm: cleancache core ops functions and config · 077b1f83
    Dan Magenheimer authored
    
    This third patch of eight in this cleancache series provides
    the core code for cleancache that interfaces between the hooks in
    VFS and individual filesystems and a cleancache backend.  It also
    includes build and config patches.
    
    Two new files are added: mm/cleancache.c and include/linux/cleancache.h.
    
    Note that CONFIG_CLEANCACHE can default to on; in systems that do
    not provide a cleancache backend, all hooks devolve to a simple
    check of a global enable flag, so performance impact should
    be negligible but can be reduced to zero impact if config'ed off.
    However for this first commit, it defaults to off.
    
    Details and a FAQ can be found in Documentation/vm/cleancache.txt
    
    Credits: Cleancache_ops design derived from Jeremy Fitzhardinge
    design for tmem
    
    [v8: dan.magenheimer@oracle.com: fix exportfs call affecting btrfs]
    [v8: akpm@linux-foundation.org: use static inline function, not macro]
    [v7: dan.magenheimer@oracle.com: cleanup sysfs and remove cleancache prefix]
    [v6: JBeulich@novell.com: robustly handle buggy fs encode_fh actor definition]
    [v5: jeremy@goop.org: clean up global usage and static var names]
    [v5: jeremy@goop.org: simplify init hook and any future fs init changes]
    [v5: hch@infradead.org: cleaner non-global interface for ops registration]
    [v4: adilger@sun.com: interface must support exportfs FS's]
    [v4: hch@infradead.org: interface must support 64-bit FS on 32-bit kernel]
    [v3: akpm@linux-foundation.org: use one ops struct to avoid pointer hops]
    [v3: akpm@linux-foundation.org: document and ensure PageLocked reqts are met]
    [v3: ngupta@vflare.org: fix success/fail codes, change funcs to void]
    [v2: viro@ZenIV.linux.org.uk: use sane types]
    Signed-off-by: default avatarDan Magenheimer <dan.magenheimer@oracle.com>
    Reviewed-by: default avatarJeremy Fitzhardinge <jeremy@goop.org>
    Reviewed-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Acked-by: default avatarAl Viro <viro@ZenIV.linux.org.uk>
    Acked-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Acked-by: default avatarNitin Gupta <ngupta@vflare.org>
    Acked-by: default avatarMinchan Kim <minchan.kim@gmail.com>
    Acked-by: default avatarAndreas Dilger <adilger@sun.com>
    Acked-by: default avatarJan Beulich <JBeulich@novell.com>
    Cc: Matthew Wilcox <matthew@wil.cx>
    Cc: Nick Piggin <npiggin@kernel.dk>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: Rik Van Riel <riel@redhat.com>
    Cc: Chris Mason <chris.mason@oracle.com>
    Cc: Ted Ts'o <tytso@mit.edu>
    Cc: Mark Fasheh <mfasheh@suse.com>
    Cc: Joel Becker <joel.becker@oracle.com>
    077b1f83
    History
    mm: cleancache core ops functions and config
    Dan Magenheimer authored
    
    This third patch of eight in this cleancache series provides
    the core code for cleancache that interfaces between the hooks in
    VFS and individual filesystems and a cleancache backend.  It also
    includes build and config patches.
    
    Two new files are added: mm/cleancache.c and include/linux/cleancache.h.
    
    Note that CONFIG_CLEANCACHE can default to on; in systems that do
    not provide a cleancache backend, all hooks devolve to a simple
    check of a global enable flag, so performance impact should
    be negligible but can be reduced to zero impact if config'ed off.
    However for this first commit, it defaults to off.
    
    Details and a FAQ can be found in Documentation/vm/cleancache.txt
    
    Credits: Cleancache_ops design derived from Jeremy Fitzhardinge
    design for tmem
    
    [v8: dan.magenheimer@oracle.com: fix exportfs call affecting btrfs]
    [v8: akpm@linux-foundation.org: use static inline function, not macro]
    [v7: dan.magenheimer@oracle.com: cleanup sysfs and remove cleancache prefix]
    [v6: JBeulich@novell.com: robustly handle buggy fs encode_fh actor definition]
    [v5: jeremy@goop.org: clean up global usage and static var names]
    [v5: jeremy@goop.org: simplify init hook and any future fs init changes]
    [v5: hch@infradead.org: cleaner non-global interface for ops registration]
    [v4: adilger@sun.com: interface must support exportfs FS's]
    [v4: hch@infradead.org: interface must support 64-bit FS on 32-bit kernel]
    [v3: akpm@linux-foundation.org: use one ops struct to avoid pointer hops]
    [v3: akpm@linux-foundation.org: document and ensure PageLocked reqts are met]
    [v3: ngupta@vflare.org: fix success/fail codes, change funcs to void]
    [v2: viro@ZenIV.linux.org.uk: use sane types]
    Signed-off-by: default avatarDan Magenheimer <dan.magenheimer@oracle.com>
    Reviewed-by: default avatarJeremy Fitzhardinge <jeremy@goop.org>
    Reviewed-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Acked-by: default avatarAl Viro <viro@ZenIV.linux.org.uk>
    Acked-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Acked-by: default avatarNitin Gupta <ngupta@vflare.org>
    Acked-by: default avatarMinchan Kim <minchan.kim@gmail.com>
    Acked-by: default avatarAndreas Dilger <adilger@sun.com>
    Acked-by: default avatarJan Beulich <JBeulich@novell.com>
    Cc: Matthew Wilcox <matthew@wil.cx>
    Cc: Nick Piggin <npiggin@kernel.dk>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: Rik Van Riel <riel@redhat.com>
    Cc: Chris Mason <chris.mason@oracle.com>
    Cc: Ted Ts'o <tytso@mit.edu>
    Cc: Mark Fasheh <mfasheh@suse.com>
    Cc: Joel Becker <joel.becker@oracle.com>