/core/10.5/fusefs/fuse_kludges.c

http://macfuse.googlecode.com/ · C · 37 lines · 27 code · 6 blank · 4 comment · 2 complexity · 65507222a5b725634c854b65e35931ab MD5 · raw file

  1. /*
  2. * Copyright (C) 2006-2008 Google. All Rights Reserved.
  3. * Amit Singh <singh@>
  4. */
  5. #include "fuse_kludges.h"
  6. #include <libkern/version.h>
  7. #if M_MACFUSE_ENABLE_EXCHANGE
  8. extern void
  9. fuse_kludge_exchange(vnode_t v1, vnode_t v2)
  10. {
  11. if (version_major > 9) {
  12. char *tmp_v_name = ((struct fuse_kludge_vnode_10 *)v1)->v_name;
  13. ((struct fuse_kludge_vnode_10 *)v1)->v_name =
  14. ((struct fuse_kludge_vnode_10 *)v2)->v_name;
  15. ((struct fuse_kludge_vnode_10 *)v2)->v_name = tmp_v_name;
  16. vnode_t tmp_v_parent = ((struct fuse_kludge_vnode_10 *)v1)->v_parent;
  17. ((struct fuse_kludge_vnode_10 *)v1)->v_parent =
  18. ((struct fuse_kludge_vnode_10 *)v2)->v_parent;
  19. ((struct fuse_kludge_vnode_10 *)v2)->v_parent = tmp_v_parent;
  20. } else {
  21. char *tmp_v_name = ((struct fuse_kludge_vnode_9 *)v1)->v_name;
  22. ((struct fuse_kludge_vnode_9 *)v1)->v_name =
  23. ((struct fuse_kludge_vnode_9 *)v2)->v_name;
  24. ((struct fuse_kludge_vnode_9 *)v2)->v_name = tmp_v_name;
  25. vnode_t tmp_v_parent = ((struct fuse_kludge_vnode_9 *)v1)->v_parent;
  26. ((struct fuse_kludge_vnode_9 *)v1)->v_parent =
  27. ((struct fuse_kludge_vnode_9 *)v2)->v_parent;
  28. ((struct fuse_kludge_vnode_9 *)v2)->v_parent = tmp_v_parent;
  29. }
  30. }
  31. #endif /* M_MACFUSE_ENABLE_EXCHANGE */