fid.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * V9FS FID Management
  3. *
  4. * Copyright (C) 2005 by Eric Van Hensbergen <ericvh@gmail.com>
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License version 2
  8. * as published by the Free Software Foundation.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU General Public License
  16. * along with this program; if not, write to:
  17. * Free Software Foundation
  18. * 51 Franklin Street, Fifth Floor
  19. * Boston, MA 02111-1301 USA
  20. *
  21. */
  22. #ifndef FS_9P_FID_H
  23. #define FS_9P_FID_H
  24. #include <linux/list.h>
  25. struct p9_fid *v9fs_fid_lookup(struct dentry *dentry);
  26. static inline struct p9_fid *v9fs_parent_fid(struct dentry *dentry)
  27. {
  28. return v9fs_fid_lookup(dentry->d_parent);
  29. }
  30. void v9fs_fid_add(struct dentry *dentry, struct p9_fid *fid);
  31. struct p9_fid *v9fs_writeback_fid(struct dentry *dentry);
  32. static inline struct p9_fid *clone_fid(struct p9_fid *fid)
  33. {
  34. return IS_ERR(fid) ? fid : p9_client_walk(fid, 0, NULL, 1);
  35. }
  36. static inline struct p9_fid *v9fs_fid_clone(struct dentry *dentry)
  37. {
  38. return clone_fid(v9fs_fid_lookup(dentry));
  39. }
  40. #endif