localalloc.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /* -*- mode: c; c-basic-offset: 8; -*-
  2. * vim: noexpandtab sw=8 ts=8 sts=0:
  3. *
  4. * localalloc.h
  5. *
  6. * Function prototypes
  7. *
  8. * Copyright (C) 2002, 2004 Oracle. All rights reserved.
  9. *
  10. * This program is free software; you can redistribute it and/or
  11. * modify it under the terms of the GNU General Public
  12. * License as published by the Free Software Foundation; either
  13. * version 2 of the License, or (at your option) any later version.
  14. *
  15. * This program is distributed in the hope that it will be useful,
  16. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  18. * General Public License for more details.
  19. *
  20. * You should have received a copy of the GNU General Public
  21. * License along with this program; if not, write to the
  22. * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  23. * Boston, MA 021110-1307, USA.
  24. */
  25. #ifndef OCFS2_LOCALALLOC_H
  26. #define OCFS2_LOCALALLOC_H
  27. int ocfs2_load_local_alloc(struct ocfs2_super *osb);
  28. void ocfs2_shutdown_local_alloc(struct ocfs2_super *osb);
  29. void ocfs2_la_set_sizes(struct ocfs2_super *osb, int requested_mb);
  30. int ocfs2_begin_local_alloc_recovery(struct ocfs2_super *osb,
  31. int node_num,
  32. struct ocfs2_dinode **alloc_copy);
  33. int ocfs2_complete_local_alloc_recovery(struct ocfs2_super *osb,
  34. struct ocfs2_dinode *alloc);
  35. int ocfs2_alloc_should_use_local(struct ocfs2_super *osb,
  36. u64 bits);
  37. struct ocfs2_alloc_context;
  38. int ocfs2_reserve_local_alloc_bits(struct ocfs2_super *osb,
  39. u32 bits_wanted,
  40. struct ocfs2_alloc_context *ac);
  41. int ocfs2_claim_local_alloc_bits(struct ocfs2_super *osb,
  42. handle_t *handle,
  43. struct ocfs2_alloc_context *ac,
  44. u32 bits_wanted,
  45. u32 *bit_off,
  46. u32 *num_bits);
  47. void ocfs2_local_alloc_seen_free_bits(struct ocfs2_super *osb,
  48. unsigned int num_clusters);
  49. void ocfs2_la_enable_worker(struct work_struct *work);
  50. #endif /* OCFS2_LOCALALLOC_H */