localalloc.h 1.9 KB

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