at v6.16 752 B view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _LINUX_PATH_H 3#define _LINUX_PATH_H 4 5struct dentry; 6struct vfsmount; 7 8struct path { 9 struct vfsmount *mnt; 10 struct dentry *dentry; 11} __randomize_layout; 12 13extern void path_get(const struct path *); 14extern void path_put(const struct path *); 15 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 */