Files
ternfs-XTXMarkets/kmod/super.h
Miroslav Crnic 768072e054 kmod: remove block service cache
With reduced span cache time the block service cache
is no longer needed. We also don't need to fetch
changed block services from registry as we'll get
it as part of span fetches.
2025-12-09 15:34:09 +00:00

55 lines
1.1 KiB
C

// Copyright 2025 XTX Markets Technologies Limited
//
// SPDX-License-Identifier: GPL-2.0-or-later
#ifndef _TERNFS_SUPER_H
#define _TERNFS_SUPER_H
#include <linux/inet.h>
#include "net.h"
#include "registry.h"
extern int ternfs_registry_refresh_time_jiffies;
extern unsigned int ternfs_readahead_pages;
// We store addresses as atomics so that we can
// easily refresh them.
struct ternfs_fs_info {
struct ternfs_registry_addr registry_addr;
struct ternfs_metadata_socket sock;
atomic64_t shard_addrs1[256];
atomic64_t shard_addrs2[256];
atomic64_t cdc_addr1;
atomic64_t cdc_addr2;
atomic64_t capacity;
atomic64_t available;
struct delayed_work registry_refresh_work;
kuid_t uid;
kgid_t gid;
umode_t fmask;
umode_t dmask;
};
int __init ternfs_fs_init(void);
void __cold ternfs_fs_exit(void);
static inline u64 ternfs_mk_addr(u32 ip, u16 port) {
return ((u64)port << 32) | (u64)ip;
}
static inline __be32 ternfs_get_addr_ip(u64 v) {
return htonl(v&((1ull<<32)-1));
}
static inline __be16 ternfs_get_addr_port(u64 v) {
return htons(v >> 32);
}
#endif