cachefiles: Define structs
Define the cachefiles_cache struct that's going to carry the cache-level parameters and state of a cache. Define the beginning of the cachefiles_object struct that's going to carry the state for a data storage object. For the moment this is just a debugging ID for logging purposes. Signed-off-by: David Howells <dhowells@redhat.com> Reviewed-by: Jeff Layton <jlayton@kernel.org> cc: linux-cachefs@redhat.com Link: https://lore.kernel.org/r/163819623690.215744.2824739137193655547.stgit@warthog.procyon.org.uk/ # v1 Link: https://lore.kernel.org/r/163906924292.143852.15881439716653984905.stgit@warthog.procyon.org.uk/ # v2 Link: https://lore.kernel.org/r/163967131405.1823006.4480555941533935597.stgit@warthog.procyon.org.uk/ # v3 Link: https://lore.kernel.org/r/164021530610.640689.846094074334176928.stgit@warthog.procyon.org.uk/ # v4
This commit is contained in:
parent
77443f6171
commit
8390fbc465
|
@ -16,6 +16,52 @@
|
|||
#include <linux/cred.h>
|
||||
#include <linux/security.h>
|
||||
|
||||
struct cachefiles_cache;
|
||||
struct cachefiles_object;
|
||||
|
||||
/*
|
||||
* Data file records.
|
||||
*/
|
||||
struct cachefiles_object {
|
||||
int debug_id; /* debugging ID */
|
||||
};
|
||||
|
||||
/*
|
||||
* Cache files cache definition
|
||||
*/
|
||||
struct cachefiles_cache {
|
||||
struct vfsmount *mnt; /* mountpoint holding the cache */
|
||||
struct file *cachefilesd; /* manager daemon handle */
|
||||
const struct cred *cache_cred; /* security override for accessing cache */
|
||||
struct mutex daemon_mutex; /* command serialisation mutex */
|
||||
wait_queue_head_t daemon_pollwq; /* poll waitqueue for daemon */
|
||||
atomic_t gravecounter; /* graveyard uniquifier */
|
||||
atomic_t f_released; /* number of objects released lately */
|
||||
atomic_long_t b_released; /* number of blocks released lately */
|
||||
unsigned frun_percent; /* when to stop culling (% files) */
|
||||
unsigned fcull_percent; /* when to start culling (% files) */
|
||||
unsigned fstop_percent; /* when to stop allocating (% files) */
|
||||
unsigned brun_percent; /* when to stop culling (% blocks) */
|
||||
unsigned bcull_percent; /* when to start culling (% blocks) */
|
||||
unsigned bstop_percent; /* when to stop allocating (% blocks) */
|
||||
unsigned bsize; /* cache's block size */
|
||||
unsigned bshift; /* min(ilog2(PAGE_SIZE / bsize), 0) */
|
||||
uint64_t frun; /* when to stop culling */
|
||||
uint64_t fcull; /* when to start culling */
|
||||
uint64_t fstop; /* when to stop allocating */
|
||||
sector_t brun; /* when to stop culling */
|
||||
sector_t bcull; /* when to start culling */
|
||||
sector_t bstop; /* when to stop allocating */
|
||||
unsigned long flags;
|
||||
#define CACHEFILES_READY 0 /* T if cache prepared */
|
||||
#define CACHEFILES_DEAD 1 /* T if cache dead */
|
||||
#define CACHEFILES_CULLING 2 /* T if cull engaged */
|
||||
#define CACHEFILES_STATE_CHANGED 3 /* T if state changed (poll trigger) */
|
||||
char *rootdirname; /* name of cache root directory */
|
||||
char *secctx; /* LSM security context */
|
||||
char *tag; /* cache binding tag */
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Debug tracing.
|
||||
|
|
Loading…
Reference in New Issue