localalloc.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. unsigned int ocfs2_la_default_mb(struct ocfs2_super *osb);
  31. int ocfs2_begin_local_alloc_recovery(struct ocfs2_super *osb,
  32. int node_num,
  33. struct ocfs2_dinode **alloc_copy);
  34. int ocfs2_complete_local_alloc_recovery(struct ocfs2_super *osb,
  35. struct ocfs2_dinode *alloc);
  36. int ocfs2_alloc_should_use_local(struct ocfs2_super *osb,
  37. u64 bits);
  38. struct ocfs2_alloc_context;
  39. int ocfs2_reserve_local_alloc_bits(struct ocfs2_super *osb,
  40. u32 bits_wanted,
  41. struct ocfs2_alloc_context *ac);
  42. int ocfs2_claim_local_alloc_bits(struct ocfs2_super *osb,
  43. handle_t *handle,
  44. struct ocfs2_alloc_context *ac,
  45. u32 bits_wanted,
  46. u32 *bit_off,
  47. u32 *num_bits);
  48. int ocfs2_free_local_alloc_bits(struct ocfs2_super *osb,
  49. handle_t *handle,
  50. struct ocfs2_alloc_context *ac,
  51. u32 bit_off,
  52. u32 num_bits);
  53. void ocfs2_local_alloc_seen_free_bits(struct ocfs2_super *osb,
  54. unsigned int num_clusters);
  55. void ocfs2_la_enable_worker(struct work_struct *work);
  56. #endif /* OCFS2_LOCALALLOC_H */