1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * V9FS FID Management 4 * 5 * Copyright (C) 2005 by Eric Van Hensbergen <ericvh@gmail.com> 6 */ 7 #ifndef FS_9P_FID_H 8 #define FS_9P_FID_H 9 #include <linux/list.h> 10 11 struct p9_fid *v9fs_fid_lookup(struct dentry *dentry); 12 static inline struct p9_fid *v9fs_parent_fid(struct dentry *dentry) 13 { 14 return v9fs_fid_lookup(dentry->d_parent); 15 } 16 void v9fs_fid_add(struct dentry *dentry, struct p9_fid *fid); 17 struct p9_fid *v9fs_writeback_fid(struct dentry *dentry); 18 static inline struct p9_fid *clone_fid(struct p9_fid *fid) 19 { 20 return IS_ERR(fid) ? fid : p9_client_walk(fid, 0, NULL, 1); 21 } 22 static inline struct p9_fid *v9fs_fid_clone(struct dentry *dentry) 23 { 24 return clone_fid(v9fs_fid_lookup(dentry)); 25 } 26 #endif 27