1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _LINUX_PATH_H 3 #define _LINUX_PATH_H 4 5 struct dentry; 6 struct vfsmount; 7 8 struct path { 9 struct vfsmount *mnt; 10 struct dentry *dentry; 11 } __randomize_layout; 12 13 extern void path_get(const struct path *); 14 extern void path_put(const struct path *); 15 16 static inline int path_equal(const struct path *path1, const struct path *path2) 17 { 18 return path1->mnt == path2->mnt && path1->dentry == path2->dentry; 19 } 20 21 static inline void path_put_init(struct path *path) 22 { 23 path_put(path); 24 *path = (struct path) { }; 25 } 26 27 /* 28 * Cleanup macro for use with __free(path_put). Avoids dereference and 29 * copying @path unlike DEFINE_FREE(). path_put() will handle the empty 30 * path correctly just ensure @path is initialized: 31 * 32 * struct path path __free(path_put) = {}; 33 */ 34 #define __free_path_put path_put 35 36 #endif /* _LINUX_PATH_H */ 37
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.