1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * dcookies.h 4 * 5 * Persistent cookie-path mappings 6 * 7 * Copyright 2002 John Levon <levon@movementarian.org> 8 */ 9 10#ifndef DCOOKIES_H 11#define DCOOKIES_H 12 13 14#ifdef CONFIG_PROFILING 15 16#include <linux/dcache.h> 17#include <linux/types.h> 18 19struct dcookie_user; 20struct path; 21 22/** 23 * dcookie_register - register a user of dcookies 24 * 25 * Register as a dcookie user. Returns %NULL on failure. 26 */ 27struct dcookie_user * dcookie_register(void); 28 29/** 30 * dcookie_unregister - unregister a user of dcookies 31 * 32 * Unregister as a dcookie user. This may invalidate 33 * any dcookie values returned from get_dcookie(). 34 */ 35void dcookie_unregister(struct dcookie_user * user); 36 37/** 38 * get_dcookie - acquire a dcookie 39 * 40 * Convert the given dentry/vfsmount pair into 41 * a cookie value. 42 * 43 * Returns -EINVAL if no living task has registered as a 44 * dcookie user. 45 * 46 * Returns 0 on success, with *cookie filled in 47 */ 48int get_dcookie(const struct path *path, unsigned long *cookie); 49 50#else 51 52static inline struct dcookie_user * dcookie_register(void) 53{ 54 return NULL; 55} 56 57static inline void dcookie_unregister(struct dcookie_user * user) 58{ 59 return; 60} 61 62static inline int get_dcookie(const struct path *path, unsigned long *cookie) 63{ 64 return -ENOSYS; 65} 66 67#endif /* CONFIG_PROFILING */ 68 69#endif /* DCOOKIES_H */ 70