// SPDX-License-Identifier: GPL-2.0-or-later /* AFS Volume Location Service client * * Copyright (C) 2002 Red Hat, Inc. All Rights Reserved. * Written by David Howells ([email protected]) */ #include <linux/gfp.h> #include <linux/init.h> #include <linux/sched.h> #include "afs_fs.h" #include "internal.h" /* * Deliver reply data to a VL.GetEntryByNameU call. */ static int afs_deliver_vl_get_entry_by_name_u(struct afs_call *call) { … } /* * VL.GetEntryByNameU operation type. */ static const struct afs_call_type afs_RXVLGetEntryByNameU = …; /* * Dispatch a get volume entry by name or ID operation (uuid variant). If the * volname is a decimal number then it's a volume ID not a volume name. */ struct afs_vldb_entry *afs_vl_get_entry_by_name_u(struct afs_vl_cursor *vc, const char *volname, int volnamesz) { … } /* * Deliver reply data to a VL.GetAddrsU call. * * GetAddrsU(IN ListAddrByAttributes *inaddr, * OUT afsUUID *uuidp1, * OUT uint32_t *uniquifier, * OUT uint32_t *nentries, * OUT bulkaddrs *blkaddrs); */ static int afs_deliver_vl_get_addrs_u(struct afs_call *call) { … } /* * VL.GetAddrsU operation type. */ static const struct afs_call_type afs_RXVLGetAddrsU = …; /* * Dispatch an operation to get the addresses for a server, where the server is * nominated by UUID. */ struct afs_addr_list *afs_vl_get_addrs_u(struct afs_vl_cursor *vc, const uuid_t *uuid) { … } /* * Deliver reply data to an VL.GetCapabilities operation. */ static int afs_deliver_vl_get_capabilities(struct afs_call *call) { … } static void afs_destroy_vl_get_capabilities(struct afs_call *call) { … } /* * VL.GetCapabilities operation type */ static const struct afs_call_type afs_RXVLGetCapabilities = …; /* * Probe a volume server for the capabilities that it supports. This can * return up to 196 words. * * We use this to probe for service upgrade to determine what the server at the * other end supports. */ struct afs_call *afs_vl_get_capabilities(struct afs_net *net, struct afs_addr_list *alist, unsigned int addr_index, struct key *key, struct afs_vlserver *server, unsigned int server_index) { … } /* * Deliver reply data to a YFSVL.GetEndpoints call. * * GetEndpoints(IN yfsServerAttributes *attr, * OUT opr_uuid *uuid, * OUT afs_int32 *uniquifier, * OUT endpoints *fsEndpoints, * OUT endpoints *volEndpoints) */ static int afs_deliver_yfsvl_get_endpoints(struct afs_call *call) { … } /* * YFSVL.GetEndpoints operation type. */ static const struct afs_call_type afs_YFSVLGetEndpoints = …; /* * Dispatch an operation to get the addresses for a server, where the server is * nominated by UUID. */ struct afs_addr_list *afs_yfsvl_get_endpoints(struct afs_vl_cursor *vc, const uuid_t *uuid) { … } /* * Deliver reply data to a YFSVL.GetCellName operation. */ static int afs_deliver_yfsvl_get_cell_name(struct afs_call *call) { … } /* * VL.GetCapabilities operation type */ static const struct afs_call_type afs_YFSVLGetCellName = …; /* * Probe a volume server for the capabilities that it supports. This can * return up to 196 words. * * We use this to probe for service upgrade to determine what the server at the * other end supports. */ char *afs_yfsvl_get_cell_name(struct afs_vl_cursor *vc) { … }