| /* SPDX-License-Identifier: GPL-2.0 */ | |
| #ifndef _LINUX_PATH_H | |
| #define _LINUX_PATH_H | |
| struct dentry; | |
| struct vfsmount; | |
| struct path { | |
| struct vfsmount *mnt; | |
| struct dentry *dentry; | |
| } __randomize_layout; | |
| extern void path_get(const struct path *); | |
| extern void path_put(const struct path *); | |
| static inline int path_equal(const struct path *path1, const struct path *path2) | |
| { | |
| return path1->mnt == path2->mnt && path1->dentry == path2->dentry; | |
| } | |
| /* | |
| * Cleanup macro for use with __free(path_put). Avoids dereference and | |
| * copying @path unlike DEFINE_FREE(). path_put() will handle the empty | |
| * path correctly just ensure @path is initialized: | |
| * | |
| * struct path path __free(path_put) = {}; | |
| */ | |
| #define __free_path_put path_put | |
| #endif /* _LINUX_PATH_H */ |