]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - include/linux/dcookies.h
net: rtnetlink: validate IFLA_MTU attribute in rtnl_create_link()
[mirror_ubuntu-bionic-kernel.git] / include / linux / dcookies.h
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
19 struct dcookie_user;
20 struct path;
21
22 /**
23 * dcookie_register - register a user of dcookies
24 *
25 * Register as a dcookie user. Returns %NULL on failure.
26 */
27 struct 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 */
35 void 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 */
48 int get_dcookie(const struct path *path, unsigned long *cookie);
49
50 #else
51
52 static inline struct dcookie_user * dcookie_register(void)
53 {
54 return NULL;
55 }
56
57 static inline void dcookie_unregister(struct dcookie_user * user)
58 {
59 return;
60 }
61
62 static 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 */