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 <dhowe...@redhat.com>
cc: linux-cachefs@redhat.com
Link: 
https://lore.kernel.org/r/163819623690.215744.2824739137193655547.st...@warthog.procyon.org.uk/
 # v1
Link: 
https://lore.kernel.org/r/163906924292.143852.15881439716653984905.st...@warthog.procyon.org.uk/
 # v2
Link: 
https://lore.kernel.org/r/163967131405.1823006.4480555941533935597.st...@warthog.procyon.org.uk/
 # v3
---

 fs/cachefiles/internal.h |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/fs/cachefiles/internal.h b/fs/cachefiles/internal.h
index 26e0e23d7702..cff4b2a5f928 100644
--- a/fs/cachefiles/internal.h
+++ b/fs/cachefiles/internal.h
@@ -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.


--
Linux-cachefs mailing list
Linux-cachefs@redhat.com
https://listman.redhat.com/mailman/listinfo/linux-cachefs

Reply via email to