]>
Commit | Line | Data |
---|---|---|
1f327613 | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
3ed8491c EVH |
2 | /* |
3 | * V9FS FID Management | |
4 | * | |
5 | * Copyright (C) 2005 by Eric Van Hensbergen <[email protected]> | |
3ed8491c | 6 | */ |
e0459f57 AK |
7 | #ifndef FS_9P_FID_H |
8 | #define FS_9P_FID_H | |
3ed8491c EVH |
9 | #include <linux/list.h> |
10 | ||
bd238fb4 | 11 | struct p9_fid *v9fs_fid_lookup(struct dentry *dentry); |
77d5a6b7 AV |
12 | static inline struct p9_fid *v9fs_parent_fid(struct dentry *dentry) |
13 | { | |
14 | return v9fs_fid_lookup(dentry->d_parent); | |
15 | } | |
2ea03e1d | 16 | void v9fs_fid_add(struct dentry *dentry, struct p9_fid *fid); |
3cf387d7 | 17 | struct p9_fid *v9fs_writeback_fid(struct dentry *dentry); |
987a6485 | 18 | void v9fs_open_fid_add(struct inode *inode, struct p9_fid *fid); |
797fc16d AV |
19 | static inline struct p9_fid *clone_fid(struct p9_fid *fid) |
20 | { | |
21 | return IS_ERR(fid) ? fid : p9_client_walk(fid, 0, NULL, 1); | |
22 | } | |
7d50a29f AV |
23 | static inline struct p9_fid *v9fs_fid_clone(struct dentry *dentry) |
24 | { | |
6636b6dc JW |
25 | struct p9_fid *fid, *nfid; |
26 | ||
27 | fid = v9fs_fid_lookup(dentry); | |
28 | if (!fid || IS_ERR(fid)) | |
29 | return fid; | |
30 | ||
ff5e72eb | 31 | nfid = clone_fid(fid); |
6636b6dc JW |
32 | p9_client_clunk(fid); |
33 | return nfid; | |
7d50a29f | 34 | } |
e0459f57 | 35 | #endif |