Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 756
b: refs/heads/master
c: 6a3a16f
h: refs/heads/master
v: v3
  • Loading branch information
Al Viro authored and Linus Torvalds committed May 1, 2005
1 parent b5b4773 commit 459d94d
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d46aa455dd5457fdbebad17db4ff4df655cbfbae
refs/heads/master: 6a3a16f2ef6f335286e2b2bf8284b0ab4ff38ec0
4 changes: 2 additions & 2 deletions trunk/fs/reiserfs/bitmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -736,7 +736,7 @@ static inline int this_blocknr_allocation_would_make_it_a_large_file(reiserfs_bl
#ifdef DISPLACE_NEW_PACKING_LOCALITIES
static inline void displace_new_packing_locality (reiserfs_blocknr_hint_t *hint)
{
struct reiserfs_key * key = &hint->key;
struct in_core_key * key = &hint->key;

hint->th->displace_new_blocks = 0;
hint->search_start = hint->beg + keyed_hash((char*)(&key->k_objectid),4) % (hint->end - hint->beg);
Expand Down Expand Up @@ -777,7 +777,7 @@ static inline int old_way (reiserfs_blocknr_hint_t * hint)

static inline void hundredth_slices (reiserfs_blocknr_hint_t * hint)
{
struct reiserfs_key * key = &hint->key;
struct in_core_key * key = &hint->key;
b_blocknr_t slice_start;

slice_start = (keyed_hash((char*)(&key->k_dir_id),4) % 100) * (hint->end / 100);
Expand Down
1 change: 1 addition & 0 deletions trunk/fs/reiserfs/stree.c
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,7 @@ const struct reiserfs_key MIN_KEY = {0, 0, {{0, 0},}};

/* Maximal possible key. It is never in the tree. */
const struct reiserfs_key MAX_KEY = {0xffffffff, 0xffffffff, {{0xffffffff, 0xffffffff},}};
const struct in_core_key MAX_IN_CORE_KEY = {0xffffffff, 0xffffffff, {{0xffffffff, 0xffffffff},}};


/* Get delimiting key of the buffer by looking for it in the buffers in the path, starting from the bottom
Expand Down
4 changes: 2 additions & 2 deletions trunk/fs/reiserfs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ static void reiserfs_unlockfs(struct super_block *s) {
reiserfs_allow_writes(s) ;
}

extern const struct reiserfs_key MAX_KEY;
extern const struct in_core_key MAX_IN_CORE_KEY;


/* this is used to delete "save link" when there are no items of a
Expand Down Expand Up @@ -164,7 +164,7 @@ static int finish_unfinished (struct super_block * s)

/* compose key to look for "save" links */
max_cpu_key.version = KEY_FORMAT_3_5;
max_cpu_key.on_disk_key = MAX_KEY;
max_cpu_key.on_disk_key = MAX_IN_CORE_KEY;
max_cpu_key.key_length = 3;

#ifdef CONFIG_QUOTA
Expand Down
32 changes: 29 additions & 3 deletions trunk/include/linux/reiserfs_fs.h
Original file line number Diff line number Diff line change
Expand Up @@ -433,6 +433,23 @@ static inline void set_offset_v2_k_offset( struct offset_v2 *v2, loff_t offset )
# define set_offset_v2_k_offset(v2,val) (offset_v2_k_offset(v2) = (val))
#endif

struct in_core_offset_v1 {
__u32 k_offset;
__u32 k_uniqueness;
} __attribute__ ((__packed__));

struct in_core_offset_v2 {
#ifdef __LITTLE_ENDIAN
/* little endian version */
__u64 k_offset:60;
__u64 k_type: 4;
#else
/* big endian version */
__u64 k_type: 4;
__u64 k_offset:60;
#endif
} __attribute__ ((__packed__));

/* Key of an item determines its location in the S+tree, and
is composed of 4 components */
struct reiserfs_key {
Expand All @@ -445,9 +462,18 @@ struct reiserfs_key {
} __attribute__ ((__packed__)) u;
} __attribute__ ((__packed__));

struct in_core_key {
__u32 k_dir_id; /* packing locality: by default parent
directory object id */
__u32 k_objectid; /* object identifier */
union {
struct in_core_offset_v1 k_offset_v1;
struct in_core_offset_v2 k_offset_v2;
} __attribute__ ((__packed__)) u;
} __attribute__ ((__packed__));

struct cpu_key {
struct reiserfs_key on_disk_key;
struct in_core_key on_disk_key;
int version;
int key_length; /* 3 in all cases but direct2indirect and
indirect2direct conversion */
Expand Down Expand Up @@ -1476,7 +1502,7 @@ struct tree_balance
int fs_gen; /* saved value of `reiserfs_generation' counter
see FILESYSTEM_CHANGED() macro in reiserfs_fs.h */
#ifdef DISPLACE_NEW_PACKING_LOCALITIES
struct reiserfs_key key; /* key pointer, to pass to block allocator or
struct in_core_key key; /* key pointer, to pass to block allocator or
another low-level subsystem */
#endif
} ;
Expand Down Expand Up @@ -2117,7 +2143,7 @@ struct buffer_head * get_FEB (struct tree_balance *);
struct __reiserfs_blocknr_hint {
struct inode * inode; /* inode passed to allocator, if we allocate unf. nodes */
long block; /* file offset, in blocks */
struct reiserfs_key key;
struct in_core_key key;
struct path * path; /* search path, used by allocator to deternine search_start by
* various ways */
struct reiserfs_transaction_handle * th; /* transaction handle is needed to log super blocks and
Expand Down

0 comments on commit 459d94d

Please sign in to comment.