diff options
Diffstat (limited to 'cmogstored.h')
-rw-r--r-- | cmogstored.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/cmogstored.h b/cmogstored.h index db87ac0..61a7ffc 100644 --- a/cmogstored.h +++ b/cmogstored.h @@ -109,6 +109,10 @@ struct mog_wbuf; struct mog_dev { dev_t st_dev; uint32_t devid; + pthread_mutex_t usage_lock; /* protects usage_txt */ + unsigned usage_len; + char *usage_txt; + time_t usage_mtime; struct mog_ioq ioq; /* normal requests */ struct mog_ioq fsckq; /* low-priority for MogileFS fsck */ }; @@ -206,8 +210,9 @@ struct mog_http { unsigned has_range:1; /* for GET */ unsigned bad_range:1; unsigned skip_rbuf_defer:1; + unsigned usage_txt:1; enum mog_chunk_state chunk_state:2; - unsigned unused_padding:2; + unsigned unused_padding:1; uint8_t path_tip; uint8_t path_end; uint16_t line_end; @@ -374,7 +379,7 @@ void mog_set_maxconns(unsigned long); /* svc.c */ struct mog_svc *mog_svc_new(const char *docroot); -typedef int (*mog_scandev_cb)(const struct mog_dev *, struct mog_svc *); +typedef int (*mog_scandev_cb)(struct mog_dev *, struct mog_svc *); size_t mog_svc_each(Hash_processor processor, void *data); void mog_svc_upgrade_prepare(void); bool mog_svc_start_each(void *svc_ptr, void *have_mgmt_ptr); @@ -385,12 +390,13 @@ bool mog_svc_atfork_child(void *svc_ptr, void *parent); /* dev.c */ struct mog_dev *mog_dev_for(struct mog_svc *, uint32_t mog_devid, bool update); -int mog_dev_mkusage(const struct mog_dev *, struct mog_svc *); +int mog_dev_mkusage(struct mog_dev *, struct mog_svc *); size_t mog_dev_hash(const void *, size_t tablesize); bool mog_dev_cmp(const void *a, const void *b); void mog_dev_free(void *devptr); bool mog_dev_user_rescale_i(void *devp, void *svcp); bool mog_dev_requeue_prepare(void *devp, void *ign); +void mog_dev_usage_update(struct mog_dev *, struct mog_svc *); /* valid_path.rl */ int mog_valid_path(const char *buf, size_t len); |