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 path_equal(const struct path * path1,const struct path * path2)16static 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 /* 22 * Cleanup macro for use with __free(path_put). Avoids dereference and 23 * copying @path unlike DEFINE_FREE(). path_put() will handle the empty 24 * path correctly just ensure @path is initialized: 25 * 26 * struct path path __free(path_put) = {}; 27 */ 28 #define __free_path_put path_put 29 30 #endif /* _LINUX_PATH_H */ 31