18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * V9FS FID Management
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci *  Copyright (C) 2005 by Eric Van Hensbergen <ericvh@gmail.com>
68c2ecf20Sopenharmony_ci */
78c2ecf20Sopenharmony_ci#ifndef FS_9P_FID_H
88c2ecf20Sopenharmony_ci#define FS_9P_FID_H
98c2ecf20Sopenharmony_ci#include <linux/list.h>
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_cistruct p9_fid *v9fs_fid_lookup(struct dentry *dentry);
128c2ecf20Sopenharmony_cistatic inline struct p9_fid *v9fs_parent_fid(struct dentry *dentry)
138c2ecf20Sopenharmony_ci{
148c2ecf20Sopenharmony_ci	return v9fs_fid_lookup(dentry->d_parent);
158c2ecf20Sopenharmony_ci}
168c2ecf20Sopenharmony_civoid v9fs_fid_add(struct dentry *dentry, struct p9_fid *fid);
178c2ecf20Sopenharmony_cistruct p9_fid *v9fs_writeback_fid(struct dentry *dentry);
188c2ecf20Sopenharmony_cistatic inline struct p9_fid *clone_fid(struct p9_fid *fid)
198c2ecf20Sopenharmony_ci{
208c2ecf20Sopenharmony_ci	return IS_ERR(fid) ? fid :  p9_client_walk(fid, 0, NULL, 1);
218c2ecf20Sopenharmony_ci}
228c2ecf20Sopenharmony_cistatic inline struct p9_fid *v9fs_fid_clone(struct dentry *dentry)
238c2ecf20Sopenharmony_ci{
248c2ecf20Sopenharmony_ci	return clone_fid(v9fs_fid_lookup(dentry));
258c2ecf20Sopenharmony_ci}
268c2ecf20Sopenharmony_ci#endif
27