Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
suballoc.c File Reference
#include <linux/fs.h>
#include <linux/types.h>
#include <linux/slab.h>
#include <linux/highmem.h>
#include <cluster/masklog.h>
#include "ocfs2.h"
#include "alloc.h"
#include "blockcheck.h"
#include "dlmglue.h"
#include "inode.h"
#include "journal.h"
#include "localalloc.h"
#include "suballoc.h"
#include "super.h"
#include "sysfile.h"
#include "uptodate.h"
#include "ocfs2_trace.h"
#include "buffer_head_io.h"

Go to the source code of this file.

Data Structures

struct  ocfs2_suballoc_result
 

Macros

#define NOT_ALLOC_NEW_GROUP   0
 
#define ALLOC_NEW_GROUP   0x1
 
#define ALLOC_GROUPS_FROM_GLOBAL   0x2
 
#define OCFS2_MAX_TO_STEAL   1024
 
#define do_error(fmt,...)
 

Functions

void ocfs2_free_ac_resource (struct ocfs2_alloc_context *ac)
 
void ocfs2_free_alloc_context (struct ocfs2_alloc_context *ac)
 
int ocfs2_check_group_descriptor (struct super_block *sb, struct ocfs2_dinode *di, struct buffer_head *bh)
 
int ocfs2_read_group_descriptor (struct inode *inode, struct ocfs2_dinode *di, u64 gd_blkno, struct buffer_head **bh)
 
void ocfs2_init_steal_slots (struct ocfs2_super *osb)
 
int ocfs2_reserve_new_metadata_blocks (struct ocfs2_super *osb, int blocks, struct ocfs2_alloc_context **ac)
 
int ocfs2_reserve_new_metadata (struct ocfs2_super *osb, struct ocfs2_extent_list *root_el, struct ocfs2_alloc_context **ac)
 
int ocfs2_reserve_new_inode (struct ocfs2_super *osb, struct ocfs2_alloc_context **ac)
 
int ocfs2_reserve_cluster_bitmap_bits (struct ocfs2_super *osb, struct ocfs2_alloc_context *ac)
 
int ocfs2_reserve_clusters (struct ocfs2_super *osb, u32 bits_wanted, struct ocfs2_alloc_context **ac)
 
int ocfs2_claim_metadata (handle_t *handle, struct ocfs2_alloc_context *ac, u32 bits_wanted, u64 *suballoc_loc, u16 *suballoc_bit_start, unsigned int *num_bits, u64 *blkno_start)
 
int ocfs2_find_new_inode_loc (struct inode *dir, struct buffer_head *parent_fe_bh, struct ocfs2_alloc_context *ac, u64 *fe_blkno)
 
int ocfs2_claim_new_inode_at_loc (handle_t *handle, struct inode *dir, struct ocfs2_alloc_context *ac, u64 *suballoc_loc, u16 *suballoc_bit, u64 di_blkno)
 
int ocfs2_claim_new_inode (handle_t *handle, struct inode *dir, struct buffer_head *parent_fe_bh, struct ocfs2_alloc_context *ac, u64 *suballoc_loc, u16 *suballoc_bit, u64 *fe_blkno)
 
u64 ocfs2_which_cluster_group (struct inode *inode, u32 cluster)
 
int __ocfs2_claim_clusters (handle_t *handle, struct ocfs2_alloc_context *ac, u32 min_clusters, u32 max_clusters, u32 *cluster_start, u32 *num_clusters)
 
int ocfs2_claim_clusters (handle_t *handle, struct ocfs2_alloc_context *ac, u32 min_clusters, u32 *cluster_start, u32 *num_clusters)
 
int ocfs2_free_suballoc_bits (handle_t *handle, struct inode *alloc_inode, struct buffer_head *alloc_bh, unsigned int start_bit, u64 bg_blkno, unsigned int count)
 
int ocfs2_free_dinode (handle_t *handle, struct inode *inode_alloc_inode, struct buffer_head *inode_alloc_bh, struct ocfs2_dinode *di)
 
int ocfs2_free_clusters (handle_t *handle, struct inode *bitmap_inode, struct buffer_head *bitmap_bh, u64 start_blk, unsigned int num_clusters)
 
int ocfs2_release_clusters (handle_t *handle, struct inode *bitmap_inode, struct buffer_head *bitmap_bh, u64 start_blk, unsigned int num_clusters)
 
int ocfs2_lock_allocators (struct inode *inode, struct ocfs2_extent_tree *et, u32 clusters_to_add, u32 extents_to_split, struct ocfs2_alloc_context **data_ac, struct ocfs2_alloc_context **meta_ac)
 
int ocfs2_test_inode_bit (struct ocfs2_super *osb, u64 blkno, int *res)
 

Macro Definition Documentation

#define ALLOC_GROUPS_FROM_GLOBAL   0x2

Definition at line 52 of file suballoc.c.

#define ALLOC_NEW_GROUP   0x1

Definition at line 51 of file suballoc.c.

#define do_error (   fmt,
  ... 
)
Value:
do{ \
if (resize) \
mlog(ML_ERROR, fmt "\n", ##__VA_ARGS__); \
ocfs2_error(sb, fmt, ##__VA_ARGS__); \
} while (0)

Definition at line 175 of file suballoc.c.

#define NOT_ALLOC_NEW_GROUP   0

Definition at line 50 of file suballoc.c.

#define OCFS2_MAX_TO_STEAL   1024

Definition at line 54 of file suballoc.c.

Function Documentation

int __ocfs2_claim_clusters ( handle_t *  handle,
struct ocfs2_alloc_context ac,
u32  min_clusters,
u32  max_clusters,
u32 cluster_start,
u32 num_clusters 
)

Definition at line 2294 of file suballoc.c.

int ocfs2_check_group_descriptor ( struct super_block sb,
struct ocfs2_dinode di,
struct buffer_head *  bh 
)

Definition at line 278 of file suballoc.c.

int ocfs2_claim_clusters ( handle_t *  handle,
struct ocfs2_alloc_context ac,
u32  min_clusters,
u32 cluster_start,
u32 num_clusters 
)

Definition at line 2365 of file suballoc.c.

int ocfs2_claim_metadata ( handle_t *  handle,
struct ocfs2_alloc_context ac,
u32  bits_wanted,
u64 suballoc_loc,
u16 suballoc_bit_start,
unsigned int num_bits,
u64 blkno_start 
)

Definition at line 1987 of file suballoc.c.

int ocfs2_claim_new_inode ( handle_t *  handle,
struct inode dir,
struct buffer_head *  parent_fe_bh,
struct ocfs2_alloc_context ac,
u64 suballoc_loc,
u16 suballoc_bit,
u64 fe_blkno 
)

Definition at line 2190 of file suballoc.c.

int ocfs2_claim_new_inode_at_loc ( handle_t *  handle,
struct inode dir,
struct ocfs2_alloc_context ac,
u64 suballoc_loc,
u16 suballoc_bit,
u64  di_blkno 
)

Definition at line 2121 of file suballoc.c.

int ocfs2_find_new_inode_loc ( struct inode dir,
struct buffer_head *  parent_fe_bh,
struct ocfs2_alloc_context ac,
u64 fe_blkno 
)

Definition at line 2060 of file suballoc.c.

void ocfs2_free_ac_resource ( struct ocfs2_alloc_context ac)

Definition at line 142 of file suballoc.c.

void ocfs2_free_alloc_context ( struct ocfs2_alloc_context ac)

Definition at line 164 of file suballoc.c.

int ocfs2_free_clusters ( handle_t *  handle,
struct inode bitmap_inode,
struct buffer_head *  bitmap_bh,
u64  start_blk,
unsigned int  num_clusters 
)

Definition at line 2583 of file suballoc.c.

int ocfs2_free_dinode ( handle_t *  handle,
struct inode inode_alloc_inode,
struct buffer_head *  inode_alloc_bh,
struct ocfs2_dinode di 
)

Definition at line 2522 of file suballoc.c.

int ocfs2_free_suballoc_bits ( handle_t *  handle,
struct inode alloc_inode,
struct buffer_head *  alloc_bh,
unsigned int  start_bit,
u64  bg_blkno,
unsigned int  count 
)

Definition at line 2511 of file suballoc.c.

void ocfs2_init_steal_slots ( struct ocfs2_super osb)

Definition at line 909 of file suballoc.c.

int ocfs2_lock_allocators ( struct inode inode,
struct ocfs2_extent_tree et,
u32  clusters_to_add,
u32  extents_to_split,
struct ocfs2_alloc_context **  data_ac,
struct ocfs2_alloc_context **  meta_ac 
)

Definition at line 2666 of file suballoc.c.

int ocfs2_read_group_descriptor ( struct inode inode,
struct ocfs2_dinode di,
u64  gd_blkno,
struct buffer_head **  bh 
)

Definition at line 332 of file suballoc.c.

int ocfs2_release_clusters ( handle_t *  handle,
struct inode bitmap_inode,
struct buffer_head *  bitmap_bh,
u64  start_blk,
unsigned int  num_clusters 
)

Definition at line 2598 of file suballoc.c.

int ocfs2_reserve_cluster_bitmap_bits ( struct ocfs2_super osb,
struct ocfs2_alloc_context ac 
)

Definition at line 1159 of file suballoc.c.

int ocfs2_reserve_clusters ( struct ocfs2_super osb,
u32  bits_wanted,
struct ocfs2_alloc_context **  ac 
)

Definition at line 1233 of file suballoc.c.

int ocfs2_reserve_new_inode ( struct ocfs2_super osb,
struct ocfs2_alloc_context **  ac 
)

Definition at line 1065 of file suballoc.c.

int ocfs2_reserve_new_metadata ( struct ocfs2_super osb,
struct ocfs2_extent_list root_el,
struct ocfs2_alloc_context **  ac 
)

Definition at line 1056 of file suballoc.c.

int ocfs2_reserve_new_metadata_blocks ( struct ocfs2_super osb,
int  blocks,
struct ocfs2_alloc_context **  ac 
)

Definition at line 994 of file suballoc.c.

int ocfs2_test_inode_bit ( struct ocfs2_super osb,
u64  blkno,
int res 
)

Definition at line 2856 of file suballoc.c.

u64 ocfs2_which_cluster_group ( struct inode inode,
u32  cluster 
)

Definition at line 2252 of file suballoc.c.