dcookies.h 1.3 KB

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