Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
1da177e4 LT |
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 | ||
1da177e4 LT |
13 | |
14 | #ifdef CONFIG_PROFILING | |
15 | ||
1474855d | 16 | #include <linux/dcache.h> |
1da177e4 LT |
17 | #include <linux/types.h> |
18 | ||
19 | struct dcookie_user; | |
37721e1b | 20 | struct path; |
1da177e4 LT |
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 | */ | |
71215a75 | 48 | int get_dcookie(const struct path *path, unsigned long *cookie); |
1da177e4 LT |
49 | |
50 | #else | |
51 | ||
0072b138 | 52 | static inline struct dcookie_user * dcookie_register(void) |
1da177e4 LT |
53 | { |
54 | return NULL; | |
55 | } | |
56 | ||
0072b138 | 57 | static inline void dcookie_unregister(struct dcookie_user * user) |
1da177e4 LT |
58 | { |
59 | return; | |
60 | } | |
448678a0 | 61 | |
71215a75 | 62 | static inline int get_dcookie(const struct path *path, unsigned long *cookie) |
1da177e4 LT |
63 | { |
64 | return -ENOSYS; | |
448678a0 JB |
65 | } |
66 | ||
1da177e4 | 67 | #endif /* CONFIG_PROFILING */ |
448678a0 | 68 | |
1da177e4 | 69 | #endif /* DCOOKIES_H */ |