Imported reiserfsprogs-3.6.2
This commit is contained in:
1 parent
e7102bdb66
commit
b69459eb80
86 files changed
+23136
-13423
No files matched your search
+285
-82
@@ -1,11 +1,13 @@
|
||||
/*
|
||||
* Copyright 2000 by Hans Reiser, licensing governed by reiserfs/README
|
||||
* Copyright 2000-2002 by Hans Reiser, licensing governed by reiserfs/README
|
||||
*/
|
||||
|
||||
#ifndef REISERFS_LIB_H
|
||||
#define REISERFS_LIB_H
|
||||
|
||||
typedef struct super_block * reiserfs_filsys_t;
|
||||
|
||||
typedef struct reiserfs_filsys reiserfs_filsys_t;
|
||||
|
||||
|
||||
#include "reiserfs_fs.h"
|
||||
|
||||
@@ -14,98 +16,187 @@ struct _bitmap {
|
||||
unsigned long bm_bit_size;
|
||||
char * bm_map;
|
||||
unsigned long bm_set_bits;
|
||||
int bm_dirty; /* used for fetched bitmap */
|
||||
};
|
||||
|
||||
typedef struct _bitmap * reiserfs_bitmap_t;
|
||||
typedef struct _bitmap reiserfs_bitmap_t;
|
||||
|
||||
struct super_block {
|
||||
int s_version; /* on-disk format version */
|
||||
reiserfs_bitmap_t bitmap; /* copy of reiserfs on-disk bitmap */
|
||||
typedef __u32 (*hashf_t) (const char *, int);
|
||||
|
||||
struct reiserfs_filsys {
|
||||
int fs_blocksize;
|
||||
int fs_format; /* on-disk format version */
|
||||
hashf_t fs_hash_function; /* pointer to function which is used to sort
|
||||
names in directory. It is set by
|
||||
reiserfs_open if it is set in the super
|
||||
block, otherwise it is set by first
|
||||
is_properly_hashed */
|
||||
|
||||
int s_dev; /* descriptor of opened block device file */
|
||||
int s_blocksize;
|
||||
struct buffer_head ** s_ap_bitmap; /* array of buffers containing bitmap
|
||||
blocks */
|
||||
struct buffer_head * s_sbh; /* buffer containing super block */
|
||||
struct reiserfs_super_block * s_rs; /* pointer to its b_data */
|
||||
int s_dirt;
|
||||
hashf_t s_hash_function; /* pointer to function which is used to sort
|
||||
names in directory. It is set by reiserfs_open
|
||||
if it is set in the super block, otherwise it
|
||||
is set by first is_properly_hashed */
|
||||
char * file_name; /* file name of underlying device */
|
||||
int s_flags;
|
||||
void * s_vp;
|
||||
int (*block_allocator) (reiserfs_filsys_t fs,
|
||||
char * fs_file_name; /* file name of underlying device */
|
||||
int fs_dev; /* descriptor of opened block device file */
|
||||
struct buffer_head * fs_super_bh; /* buffer containing super block */
|
||||
struct reiserfs_super_block * fs_ondisk_sb; /* pointer to its b_data */
|
||||
|
||||
|
||||
reiserfs_bitmap_t * fs_bitmap2; /* ondisk bitmap after
|
||||
reiserfs_open_ondisk_bitmap */
|
||||
|
||||
|
||||
/* opened journal fields */
|
||||
char * fs_j_file_name; /* file name of relocated journal device */
|
||||
int fs_journal_dev; /* descriptor of opened journal device */
|
||||
struct buffer_head * fs_jh_bh; /* buffer containing journal header */
|
||||
|
||||
/* badblocks */
|
||||
reiserfs_bitmap_t * fs_badblocks_bm;
|
||||
|
||||
int fs_dirt;
|
||||
int fs_flags;
|
||||
void * fs_vp;
|
||||
int (*block_allocator) (reiserfs_filsys_t * fs,
|
||||
unsigned long * free_blocknrs,
|
||||
unsigned long start, int amount_needed);
|
||||
int (*block_deallocator) (reiserfs_filsys_t fs, unsigned long block);
|
||||
int (*block_deallocator) (reiserfs_filsys_t * fs, unsigned long block);
|
||||
};
|
||||
|
||||
|
||||
struct _transaction {
|
||||
unsigned long mount_id;
|
||||
unsigned long trans_id;
|
||||
unsigned long desc_blocknr;
|
||||
unsigned long trans_len;
|
||||
unsigned long commit_blocknr;
|
||||
unsigned long next_trans_offset;
|
||||
};
|
||||
|
||||
typedef struct _transaction reiserfs_trans_t;
|
||||
|
||||
|
||||
/* reiserfslib.c */
|
||||
|
||||
reiserfs_filsys_t reiserfs_open (char * filename, int flags, int * error, void * vp);
|
||||
void reiserfs_read_bitmap_blocks (reiserfs_filsys_t);
|
||||
void reiserfs_free_bitmap_blocks (reiserfs_filsys_t);
|
||||
int no_reiserfs_found (reiserfs_filsys_t fs);
|
||||
void reiserfs_reopen (reiserfs_filsys_t fs, int flags);
|
||||
void reiserfs_flush (reiserfs_filsys_t fs);
|
||||
void reiserfs_free (reiserfs_filsys_t fs);
|
||||
void reiserfs_close (reiserfs_filsys_t fs);
|
||||
int reiserfs_new_blocknrs (reiserfs_filsys_t fs,
|
||||
void init_tb_struct (struct tree_balance * tb, reiserfs_filsys_t *, struct path * path, int size);
|
||||
|
||||
reiserfs_filsys_t * reiserfs_open (char * filename, int flags, int * error, void * vp);
|
||||
reiserfs_filsys_t * reiserfs_create (char * filename, int version, unsigned long block_count,
|
||||
int block_size, int default_journal, int new_format);
|
||||
void reiserfs_flush (reiserfs_filsys_t *);
|
||||
void reiserfs_free (reiserfs_filsys_t *);
|
||||
void reiserfs_close (reiserfs_filsys_t *);
|
||||
void reiserfs_reopen (reiserfs_filsys_t *, int flags);
|
||||
int is_opened_rw (reiserfs_filsys_t * fs);
|
||||
|
||||
struct key * get_next_key_2 (struct path * path);
|
||||
|
||||
/*
|
||||
void reiserfs_read_bitmap_blocks (reiserfs_filsys_t *);
|
||||
void reiserfs_free_bitmap_blocks (reiserfs_filsys_t *);
|
||||
*/
|
||||
int no_reiserfs_found (reiserfs_filsys_t *);
|
||||
int is_block_count_correct (unsigned long block_of_super_block, int block_size,
|
||||
unsigned long block_count, unsigned long journal_size);
|
||||
//unsigned long min_block_amount (int block_size, unsigned long journal_size);
|
||||
unsigned long get_size_of_journal_or_reserved_area (struct reiserfs_super_block * sb);
|
||||
|
||||
int reiserfs_new_blocknrs (reiserfs_filsys_t *,
|
||||
unsigned long * free_blocknrs, unsigned long start,
|
||||
int amount_needed);
|
||||
int reiserfs_free_block (reiserfs_filsys_t fs, unsigned long block);
|
||||
int spread_bitmaps (reiserfs_filsys_t fs);
|
||||
int filesystem_dirty (reiserfs_filsys_t fs);
|
||||
void mark_filesystem_dirty (reiserfs_filsys_t fs);
|
||||
int reiserfs_free_block (reiserfs_filsys_t *, unsigned long block);
|
||||
int spread_bitmaps (reiserfs_filsys_t *);
|
||||
int filesystem_dirty (reiserfs_filsys_t *);
|
||||
void mark_filesystem_dirty (reiserfs_filsys_t *);
|
||||
|
||||
void reiserfs_paste_into_item (reiserfs_filsys_t fs, struct path * path,
|
||||
void reiserfs_paste_into_item (reiserfs_filsys_t *, struct path * path,
|
||||
const void * body, int size);
|
||||
void reiserfs_insert_item (reiserfs_filsys_t fs, struct path * path,
|
||||
void reiserfs_insert_item (reiserfs_filsys_t *, struct path * path,
|
||||
struct item_head * ih, const void * body);
|
||||
|
||||
int reiserfs_find_entry (reiserfs_filsys_t fs, struct key * dir, char * name,
|
||||
int * min_gen_counter);
|
||||
int reiserfs_add_entry (reiserfs_filsys_t fs, struct key * dir, char * name,
|
||||
int reiserfs_locate_entry (reiserfs_filsys_t *, struct key * dir, char * name,
|
||||
struct path * path);
|
||||
int reiserfs_find_entry (reiserfs_filsys_t *, struct key * dir, char * name,
|
||||
int * min_gen_counter, struct key * key);
|
||||
int reiserfs_add_entry (reiserfs_filsys_t *, struct key * dir, char * name, int name_len,
|
||||
struct key * key, int fsck_need);
|
||||
|
||||
int _search_by_entry_key (reiserfs_filsys_t fs, struct key * key,
|
||||
struct path * path);
|
||||
|
||||
/*int reiserfs_bin_search (void * key, void * base, int num, int width,
|
||||
int *ppos, comparison_fn_t comp_func);*/
|
||||
struct key * uget_lkey (struct path * path);
|
||||
struct key * uget_rkey (struct path * path);
|
||||
int reiserfs_search_by_key_3 (reiserfs_filsys_t *, struct key * key,
|
||||
struct path * path);
|
||||
int reiserfs_search_by_key_4 (reiserfs_filsys_t *, struct key * key,
|
||||
struct path * path);
|
||||
int reiserfs_search_by_entry_key (reiserfs_filsys_t *, struct key * key,
|
||||
struct path * path);
|
||||
int usearch_by_position (reiserfs_filsys_t *, struct key * key, int version, struct path * path);
|
||||
struct key * reiserfs_next_key (struct path * path);
|
||||
void copy_key (void * to, void * from);
|
||||
void copy_short_key (void * to, void * from);
|
||||
void copy_item_head(void * p_v_to, void * p_v_from);
|
||||
int comp_keys (void * k1, void * k2);
|
||||
int comp_short_keys (void * p_s_key1, void * p_s_key2);
|
||||
int comp_keys (const void * k1, const void * k2);
|
||||
int comp_keys_3 (const void * k1, const void * k2);
|
||||
int comp_short_keys (const void * p_s_key1, const void * p_s_key2);
|
||||
int comp_items (struct item_head * p_s_ih, struct path * p_s_path);
|
||||
|
||||
int create_dir_sd (reiserfs_filsys_t * fs,
|
||||
struct path * path, struct key * key,
|
||||
void (*modify_item)(struct item_head *, void *));
|
||||
void make_sure_root_dir_exists (reiserfs_filsys_t * fs,
|
||||
void (*modyfy_item)(struct item_head *, void *),
|
||||
int ih_flags);
|
||||
|
||||
int create_badblock_bitmap (reiserfs_filsys_t * fs, char * badblocks_file);
|
||||
void add_badblock_list (reiserfs_filsys_t * fs, int no_badblock_in_tree_yet);
|
||||
|
||||
|
||||
extern struct key root_dir_key;
|
||||
extern struct key parent_root_dir_key;
|
||||
extern struct key lost_found_dir_key;
|
||||
extern __u16 root_dir_format;
|
||||
extern __u16 lost_found_dir_format;
|
||||
|
||||
|
||||
/* bitmap.c */
|
||||
int reiserfs_open_ondisk_bitmap (reiserfs_filsys_t *);
|
||||
int reiserfs_create_ondisk_bitmap (reiserfs_filsys_t *);
|
||||
void reiserfs_free_ondisk_bitmap (reiserfs_filsys_t *);
|
||||
void reiserfs_close_ondisk_bitmap (reiserfs_filsys_t *);
|
||||
int reiserfs_flush_to_ondisk_bitmap (reiserfs_bitmap_t * bm, reiserfs_filsys_t * fs);
|
||||
|
||||
reiserfs_bitmap_t reiserfs_create_bitmap (unsigned int bit_count);
|
||||
int reiserfs_expand_bitmap (reiserfs_bitmap_t bm, unsigned int bit_count);
|
||||
void reiserfs_delete_bitmap (reiserfs_bitmap_t bm);
|
||||
void reiserfs_bitmap_copy (reiserfs_bitmap_t to, reiserfs_bitmap_t from);
|
||||
int reiserfs_bitmap_compare (reiserfs_bitmap_t bm1, reiserfs_bitmap_t bm2);
|
||||
void reiserfs_bitmap_set_bit (reiserfs_bitmap_t bm, unsigned int bit_number);
|
||||
void reiserfs_bitmap_clear_bit (reiserfs_bitmap_t bm, unsigned int bit_number);
|
||||
reiserfs_bitmap_t * reiserfs_create_bitmap (unsigned int bit_count);
|
||||
int reiserfs_expand_bitmap (reiserfs_bitmap_t * bm, unsigned int bit_count);
|
||||
void reiserfs_shrink_bitmap (reiserfs_bitmap_t * bm, unsigned int bit_count);
|
||||
void reiserfs_delete_bitmap (reiserfs_bitmap_t * bm);
|
||||
void reiserfs_bitmap_copy (reiserfs_bitmap_t * to, reiserfs_bitmap_t * from);
|
||||
int reiserfs_bitmap_compare (reiserfs_bitmap_t * bm1, reiserfs_bitmap_t * bm2);
|
||||
void reiserfs_bitmap_disjunction (reiserfs_bitmap_t * disk, reiserfs_bitmap_t * cont);
|
||||
void reiserfs_bitmap_set_bit (reiserfs_bitmap_t * bm, unsigned int bit_number);
|
||||
void reiserfs_bitmap_clear_bit (reiserfs_bitmap_t * bm, unsigned int bit_number);
|
||||
|
||||
int reiserfs_bitmap_test_bit (reiserfs_bitmap_t bm, unsigned int bit_number);
|
||||
int reiserfs_bitmap_find_zero_bit (reiserfs_bitmap_t bm, unsigned long * start);
|
||||
int reiserfs_fetch_disk_bitmap (reiserfs_bitmap_t bm, reiserfs_filsys_t fs);
|
||||
int reiserfs_flush_bitmap (reiserfs_bitmap_t bm, reiserfs_filsys_t fs);
|
||||
void reiserfs_bitmap_zero (reiserfs_bitmap_t bm);
|
||||
void reiserfs_bitmap_fill (reiserfs_bitmap_t bm);
|
||||
int reiserfs_bitmap_ones (reiserfs_bitmap_t bm);
|
||||
int reiserfs_bitmap_zeros (reiserfs_bitmap_t bm);
|
||||
int reiserfs_bitmap_test_bit (reiserfs_bitmap_t * bm, unsigned int bit_number);
|
||||
int reiserfs_bitmap_find_zero_bit (reiserfs_bitmap_t * bm, unsigned long * start);
|
||||
/*int reiserfs_fetch_ondisk_bitmap (reiserfs_bitmap_t * bm, reiserfs_filsys_t *);*/
|
||||
/*int reiserfs_flush_bitmap (reiserfs_bitmap_t * bm, reiserfs_filsys_t *);*/
|
||||
void reiserfs_bitmap_zero (reiserfs_bitmap_t * bm);
|
||||
void reiserfs_bitmap_fill (reiserfs_bitmap_t * bm);
|
||||
int reiserfs_bitmap_ones (reiserfs_bitmap_t * bm);
|
||||
int reiserfs_bitmap_zeros (reiserfs_bitmap_t * bm);
|
||||
|
||||
void reiserfs_bitmap_save (char * filename, reiserfs_bitmap_t bm);
|
||||
reiserfs_bitmap_t reiserfs_bitmap_load (char * filename);
|
||||
void reiserfs_bitmap_invert (reiserfs_bitmap_t bm);
|
||||
FILE * open_file(char * filename, char * option);
|
||||
void close_file(FILE * fp);
|
||||
void reiserfs_bitmap_save (FILE * fp, reiserfs_bitmap_t * bm);
|
||||
|
||||
/* this probably should be in fsck */
|
||||
void reiserfs_begin_stage_info_save(FILE * file, unsigned long stage);
|
||||
void reiserfs_end_stage_info_save(FILE * file);
|
||||
int is_stage_magic_correct (FILE * fp);
|
||||
//void reiserfs_stage_info_save(struct fsck_data *, FILE * file);
|
||||
|
||||
reiserfs_bitmap_t * reiserfs_bitmap_load (FILE * fp);
|
||||
void reiserfs_bitmap_invert (reiserfs_bitmap_t * bm);
|
||||
|
||||
|
||||
int reiserfs_remove_entry (reiserfs_filsys_t fs, struct key * key);
|
||||
int reiserfs_remove_entry (reiserfs_filsys_t *, struct key * key);
|
||||
|
||||
|
||||
|
||||
@@ -115,21 +206,29 @@ int reiserfs_remove_entry (reiserfs_filsys_t fs, struct key * key);
|
||||
#define THE_INTERNAL 2
|
||||
#define THE_SUPER 3
|
||||
#define THE_JDESC 4
|
||||
#define THE_UNKNOWN 5
|
||||
#define HAS_IH_ARRAY 5
|
||||
#define THE_UNKNOWN 6
|
||||
|
||||
int is_reiserfs_magic_string (struct reiserfs_super_block * rs);
|
||||
int is_reiser2fs_magic_string (struct reiserfs_super_block * rs);
|
||||
int correct_direct_item_offset (__u64 offset, int format);
|
||||
int is_blocksize_correct (int blocksize);
|
||||
int is_reiserfs_3_5_magic_string (struct reiserfs_super_block * rs);
|
||||
int is_reiserfs_3_6_magic_string (struct reiserfs_super_block * rs);
|
||||
int is_reiserfs_jr_magic_string (struct reiserfs_super_block * rs);
|
||||
int does_look_like_super_block (struct reiserfs_super_block * rs, int blocksize);
|
||||
int is_any_reiserfs_magic_string (struct reiserfs_super_block * rs);
|
||||
int get_reiserfs_format (struct reiserfs_super_block * sb);
|
||||
int reiserfs_super_block_size (struct reiserfs_super_block * rs);
|
||||
/*int magic_2_version (struct reiserfs_super_block * rs);*/
|
||||
int is_prejournaled_reiserfs (struct reiserfs_super_block * rs);
|
||||
int does_desc_match_commit (struct reiserfs_journal_desc *desc,
|
||||
struct reiserfs_journal_commit *commit);
|
||||
int who_is_this (char * buf, int blocksize);
|
||||
int journal_size (struct super_block * s);
|
||||
int not_data_block (struct super_block * s, unsigned long block);
|
||||
int not_journalable (reiserfs_filsys_t fs, unsigned long block);
|
||||
int block_of_bitmap (reiserfs_filsys_t fs, unsigned long block);
|
||||
int block_of_journal (reiserfs_filsys_t fs, unsigned long block);
|
||||
char * which_block (int code);
|
||||
int get_journal_size (reiserfs_filsys_t *);
|
||||
int not_data_block (reiserfs_filsys_t *, unsigned long block);
|
||||
int not_journalable (reiserfs_filsys_t *, unsigned long block);
|
||||
int block_of_bitmap (reiserfs_filsys_t *, unsigned long block);
|
||||
int block_of_journal (reiserfs_filsys_t *, unsigned long block);
|
||||
int is_tree_node (struct buffer_head * bh, int level);
|
||||
int is_properly_hashed (reiserfs_filsys_t fs,
|
||||
int is_properly_hashed (reiserfs_filsys_t *,
|
||||
char * name, int namelen, __u32 offset);
|
||||
int dir_entry_bad_location (struct reiserfs_de_head * deh,
|
||||
struct item_head * ih, int first);
|
||||
@@ -140,6 +239,7 @@ void make_empty_dir_item_v1 (char * body, __u32 dirid, __u32 objid,
|
||||
__u32 par_dirid, __u32 par_objid);
|
||||
void make_empty_dir_item (char * body, __u32 dirid, __u32 objid,
|
||||
__u32 par_dirid, __u32 par_objid);
|
||||
int reiserfs_is_fs_consistent (reiserfs_filsys_t * fs);
|
||||
|
||||
|
||||
typedef void (*item_action_t) (struct buffer_head * bh, struct item_head * ih);
|
||||
@@ -159,41 +259,144 @@ void set_offset (int format, struct key * key, loff_t offset);
|
||||
void set_type_and_offset (int format, struct key * key, loff_t offset, int type);
|
||||
|
||||
|
||||
typedef int (*check_unfm_func_t) (reiserfs_filsys_t fs, __u32);
|
||||
int is_it_bad_item (reiserfs_filsys_t, struct item_head *, char *,
|
||||
typedef int (*check_unfm_func_t) (reiserfs_filsys_t *, __u32);
|
||||
int is_it_bad_item (reiserfs_filsys_t *, struct item_head *, char *,
|
||||
check_unfm_func_t, int bad_dir);
|
||||
int does_node_have_ih_array (char * buf, int blocksize);
|
||||
|
||||
|
||||
#define hash_func_is_unknown(fs) ((fs)->s_hash_function == 0)
|
||||
#define reiserfs_hash(fs) ((fs)->s_hash_function)
|
||||
|
||||
#define hash_func_is_unknown(fs) ((fs)->fs_hash_function == 0)
|
||||
#define reiserfs_hash(fs) ((fs)->fs_hash_function)
|
||||
|
||||
int known_hashes (void);
|
||||
char * code2name (int code);
|
||||
int func2code (hashf_t func);
|
||||
hashf_t code2func (int code);
|
||||
hashf_t name2func (char * hash);
|
||||
int find_hash_in_use (char * name, int namelen, __u32 hash_value_masked, int code_to_try_first);
|
||||
|
||||
int entry_length (struct item_head * ih, struct reiserfs_de_head * deh,
|
||||
int pos_in_item);
|
||||
char * name_in_entry (struct reiserfs_de_head * deh, int pos_in_item);
|
||||
int name_length (struct item_head * ih,
|
||||
int name_in_entry_length (struct item_head * ih,
|
||||
struct reiserfs_de_head * deh, int pos_in_item);
|
||||
int name_length (char * name, int key_format);
|
||||
|
||||
/* access to stat data fields */
|
||||
void get_set_sd_field (int field, struct item_head * ih, void * sd,
|
||||
void * value, int set);
|
||||
#define GET_SD_MODE 0
|
||||
#define GET_SD_SIZE 1
|
||||
#define GET_SD_NLINK 2
|
||||
#define GET_SD_BLOCKS 3
|
||||
#define GET_SD_FIRST_DIRECT_BYTE 4
|
||||
|
||||
#define get_sd_mode(ih,sd,pmode) get_set_sd_field (GET_SD_MODE, ih, sd, pmode, 0/*get*/)
|
||||
#define set_sd_mode(ih,sd,pmode) get_set_sd_field (GET_SD_MODE, ih, sd, pmode, 1/*set*/)
|
||||
|
||||
#define get_sd_size(ih,sd,psize) get_set_sd_field (GET_SD_SIZE, ih, sd, psize, 0/*get*/)
|
||||
#define set_sd_size(ih,sd,psize) get_set_sd_field (GET_SD_SIZE, ih, sd, psize, 1/*set*/)
|
||||
|
||||
#define get_sd_blocks(ih,sd,pblocks) get_set_sd_field (GET_SD_BLOCKS, ih, sd, pblocks, 0/*get*/)
|
||||
#define set_sd_blocks(ih,sd,pblocks) get_set_sd_field (GET_SD_BLOCKS, ih, sd, pblocks, 1/*set*/)
|
||||
|
||||
//#define get_sd_rdev(ih,sd,pblocks) get_set_sd_field (GET_SD_RDEV, ih, sd, pblocks, 0/*get*/)
|
||||
//#define set_sd_rdev(ih,sd,pblocks) get_set_sd_field (GET_SD_RDEV, ih, sd, pblocks, 1/*set*/)
|
||||
|
||||
//#define get_sd_generation(ih,sd,pblocks) get_set_sd_field (GET_SD_GENER, ih, sd, pblocks, 0/*get*/)
|
||||
//#define set_sd_generation(ih,sd,pblocks) get_set_sd_field (GET_SD_GENER, ih, sd, pblocks, 1/*set*/)
|
||||
|
||||
#define get_sd_nlink(ih,sd,pnlink) get_set_sd_field (GET_SD_NLINK, ih, sd, pnlink, 0/*get*/)
|
||||
#define set_sd_nlink(ih,sd,pnlink) get_set_sd_field (GET_SD_NLINK, ih, sd, pnlink, 1/*set*/)
|
||||
|
||||
#define get_sd_first_direct_byte(ih,sd,pfdb) get_set_sd_field (GET_SD_FIRST_DIRECT_BYTE, ih, sd, pfdb, 0/*get*/)
|
||||
#define set_sd_first_direct_byte(ih,sd,pfdb) get_set_sd_field (GET_SD_FIRST_DIRECT_BYTE, ih, sd, pfdb, 1/*set*/)
|
||||
|
||||
int is_objectid_used (reiserfs_filsys_t * fs, __u32 objectid);
|
||||
void mark_objectid_used (reiserfs_filsys_t * fs, __u32 objectid);
|
||||
|
||||
|
||||
|
||||
/* journal.c */
|
||||
int get_boundary_transactions (reiserfs_filsys_t *, reiserfs_trans_t *,
|
||||
reiserfs_trans_t *);
|
||||
int next_transaction (reiserfs_filsys_t *, reiserfs_trans_t *, reiserfs_trans_t);
|
||||
|
||||
int replay_one_transaction (reiserfs_filsys_t *, reiserfs_trans_t *);
|
||||
|
||||
typedef void (*action_on_trans_t) (reiserfs_filsys_t *, reiserfs_trans_t *);
|
||||
void for_each_transaction (reiserfs_filsys_t *, action_on_trans_t);
|
||||
|
||||
typedef void (*action_on_block_t) (reiserfs_filsys_t *, reiserfs_trans_t *,
|
||||
int index,
|
||||
unsigned long in_journal,
|
||||
unsigned long in_place);
|
||||
void for_each_block (reiserfs_filsys_t * fs, reiserfs_trans_t * trans,
|
||||
action_on_block_t action);
|
||||
|
||||
void reiserfs_only_reopen (reiserfs_filsys_t * fs, int flag);
|
||||
int reiserfs_open_journal (reiserfs_filsys_t *, char *, int flags);
|
||||
int reiserfs_create_journal (reiserfs_filsys_t * fs, char * j_filename,
|
||||
unsigned long offset, unsigned long len,
|
||||
int transaction_max_size);
|
||||
int reiserfs_journal_opened (reiserfs_filsys_t *);
|
||||
void reiserfs_flush_journal (reiserfs_filsys_t * fs);
|
||||
void reiserfs_free_journal (reiserfs_filsys_t * fs);
|
||||
void reiserfs_close_journal (reiserfs_filsys_t *);
|
||||
void reiserfs_reopen_journal (reiserfs_filsys_t * fs, int flag);
|
||||
__u32 advise_journal_max_trans_age (void);
|
||||
__u32 advise_journal_max_commit_age (void);
|
||||
__u32 advise_journal_max_batch (unsigned long journal_trans_max);
|
||||
__u32 advise_journal_max_trans_len (__u32 desired, __u32 journal_size, int blocksize);
|
||||
|
||||
|
||||
|
||||
/* prints.c */
|
||||
void print_indirect_item (FILE * fp, struct buffer_head * bh, int item_num);
|
||||
void print_block (FILE * fp, reiserfs_filsys_t, struct buffer_head * bh, ...);//int print_mode, int first, int last);
|
||||
void print_block (FILE * fp, reiserfs_filsys_t *, struct buffer_head * bh, ...);//int print_mode, int first, int last);
|
||||
int print_super_block (FILE * fp, reiserfs_filsys_t *, char * file_name, struct buffer_head * bh, int short_print);
|
||||
void print_journal (reiserfs_filsys_t *);
|
||||
void print_journal_header (reiserfs_filsys_t * fs);
|
||||
void reiserfs_warning (FILE * fp, const char * fmt, ...);
|
||||
char ftypelet (mode_t mode);
|
||||
void reiserfs_print_item (FILE * fp, struct buffer_head * bh,
|
||||
struct item_head * ih);
|
||||
void print_filesystem_state (FILE * fp, reiserfs_filsys_t * fs);
|
||||
void print_one_transaction (reiserfs_filsys_t * fs, reiserfs_trans_t * trans);
|
||||
void print_journal_params (FILE * fp, struct journal_params * jp);
|
||||
char * get_reiserfs_version (__u16 version);
|
||||
int can_we_format_it (char * device_name, int force);
|
||||
|
||||
#define reiserfs_panic(fmt, list...) \
|
||||
{\
|
||||
fflush (stdout);\
|
||||
fprintf (stderr, "%s %d %s\n", __FILE__, __LINE__, __FUNCTION__);\
|
||||
reiserfs_warning (stderr, fmt, ## list);\
|
||||
exit(4);\
|
||||
reiserfs_warning (stderr, (const char *)fmt, ## list);\
|
||||
reiserfs_warning (stderr, "\n" );\
|
||||
abort ();\
|
||||
}
|
||||
#define reiserfs_exit(val, fmt, list...) \
|
||||
{\
|
||||
fflush (stdout);\
|
||||
fprintf (stderr, "%s %d %s\n", __FILE__, __LINE__, __FUNCTION__);\
|
||||
reiserfs_warning (stderr, (const char *)fmt, ## list);\
|
||||
reiserfs_warning (stderr, "\n" );\
|
||||
exit (val);\
|
||||
}
|
||||
|
||||
#define check_forcing_ask_confirmation(force) \
|
||||
if (force < 1) {\
|
||||
/* avoid formatting it without being forced */\
|
||||
reiserfs_warning (stderr, "Use -f to force over\n");\
|
||||
return 0;\
|
||||
}\
|
||||
if (force < 2) {\
|
||||
if (!user_confirmed (stderr, "Continue (y/n):", "y\n"))\
|
||||
return 0;\
|
||||
}\
|
||||
|
||||
|
||||
#endif /* REISERFS_LIB_H */
|
||||
|
||||
|
||||
Reference in new issue
Block a user