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