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/path.h> 17 #include <linux/types.h> 18 19 struct dcookie_user; 20 21 /** 22 * dcookie_register - register a user of dcookies 23 * 24 * Register as a dcookie user. Returns %NULL on failure. 25 */ 26 struct 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 */ 34 void 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 */ 47 int get_dcookie(struct path *path, unsigned long *cookie); 48 49 #else 50 dcookie_register(void)51static inline struct dcookie_user * dcookie_register(void) 52 { 53 return NULL; 54 } 55 dcookie_unregister(struct dcookie_user * user)56static inline void dcookie_unregister(struct dcookie_user * user) 57 { 58 return; 59 } 60 get_dcookie(struct path * path,unsigned long * cookie)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