From 5c1f83d1a329821fb2d7bb9428b6777d512ea9af Mon Sep 17 00:00:00 2001 From: nikita Date: Fri, 8 Dec 2006 12:03:04 +0000 Subject: [PATCH] remove BREAKPOINT() calls. --- .../kernel_patches/patches/ext3-iam-separate.patch | 29 ++------ .../patches/ext3-pdirops-2.6.9.patch | 80 +++++++++++++--------- 2 files changed, 55 insertions(+), 54 deletions(-) diff --git a/lustre/kernel_patches/patches/ext3-iam-separate.patch b/lustre/kernel_patches/patches/ext3-iam-separate.patch index b6b3b1c..f4f1ff8 100644 --- a/lustre/kernel_patches/patches/ext3-iam-separate.patch +++ b/lustre/kernel_patches/patches/ext3-iam-separate.patch @@ -15,7 +15,7 @@ Index: iam/fs/ext3/iam.c =================================================================== --- iam.orig/fs/ext3/iam.c +++ iam/fs/ext3/iam.c -@@ -0,0 +1,1445 @@ +@@ -0,0 +1,1443 @@ +/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- + * vim:expandtab:shiftwidth=8:tabstop=8: + * @@ -367,7 +367,6 @@ Index: iam/fs/ext3/iam.c + if (result && p->ip_leaf.il_bh != NULL) + result = iam_leaf_check(&p->ip_leaf); + if (result == 0) { -+ BREAKPOINT(); + ext3_std_error(iam_path_obj(p)->i_sb, result); + } + return result; @@ -495,7 +494,6 @@ Index: iam/fs/ext3/iam.c + iam_ikeycpy(bag, k0, k1); + iam_ikeycpy(bag, k1, iam_leaf_ikey(leaf, k1)); + if (!first && iam_ikeycmp(bag, k0, k1) > 0) { -+ BREAKPOINT(); + return 0; + } + first = 0; @@ -2154,7 +2152,7 @@ Index: iam/fs/ext3/iam_lfix.c =================================================================== --- iam.orig/fs/ext3/iam_lfix.c +++ iam/fs/ext3/iam_lfix.c -@@ -0,0 +1,728 @@ +@@ -0,0 +1,724 @@ +/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- + * vim:expandtab:shiftwidth=8:tabstop=8: + * @@ -2341,7 +2339,6 @@ Index: iam/fs/ext3/iam_lfix.c + ill->ill_magic, le16_to_cpu(IAM_LEAF_HEADER_MAGIC), + count, leaf_count_limit(l)); + result = -EIO; -+ BREAKPOINT(); + } + return result; +} @@ -2739,7 +2736,6 @@ Index: iam/fs/ext3/iam_lfix.c + + root = (void *)frame->bh->b_data; + if (le64_to_cpu(root->ilr_magic) != IAM_LFIX_ROOT_MAGIC) { -+ BREAKPOINT(); + return -EIO; + } + limit_correct = dx_root_limit(path); @@ -2748,11 +2744,9 @@ Index: iam/fs/ext3/iam_lfix.c + count = dx_get_count(entries); + limit = dx_get_limit(entries); + if (count > limit) { -+ BREAKPOINT(); + return -EIO; + } + if (limit != limit_correct) { -+ BREAKPOINT(); + return -EIO; + } + return 0; @@ -2887,7 +2881,7 @@ Index: iam/fs/ext3/iam_lvar.c =================================================================== --- iam.orig/fs/ext3/iam_lvar.c +++ iam/fs/ext3/iam_lvar.c -@@ -0,0 +1,1071 @@ +@@ -0,0 +1,1060 @@ +/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- + * vim:expandtab:shiftwidth=8:tabstop=8: + * @@ -3216,7 +3210,6 @@ Index: iam/fs/ext3/iam_lvar.c + nexthash = e_hash(scan); + if (nexthash != get_hash(iam_leaf_container(leaf), + e_char(scan), e_keysize(scan))) { -+ BREAKPOINT(); + return 0; + } + if (0 && nexthash < starthash) { @@ -3228,17 +3221,14 @@ Index: iam/fs/ext3/iam_lvar.c + n_print(leaf); + printk("%#x < %#x\n", nexthash, starthash); + dump_stack(); -+ BREAKPOINT(); + return 0; + } + if (nexthash < hash) { -+ BREAKPOINT(); + return 0; + } + hash = nexthash; + } + if (scan != end) { -+ BREAKPOINT(); + return 0; + } + return 1; @@ -3301,7 +3291,6 @@ Index: iam/fs/ext3/iam_lvar.c + head->vlh_magic, le16_to_cpu(IAM_LVAR_LEAF_MAGIC), + used); + result = -EIO; -+ BREAKPOINT(); + } + return result; +} @@ -3720,23 +3709,17 @@ Index: iam/fs/ext3/iam_lvar.c + struct lvar_root *root; + + root = (void *)frame->bh->b_data; -+ if (le64_to_cpu(root->vr_magic) != IAM_LVAR_ROOT_MAGIC) { -+ BREAKPOINT(); ++ if (le64_to_cpu(root->vr_magic) != IAM_LVAR_ROOT_MAGIC) + return -EIO; -+ } + limit_correct = dx_root_limit(path); + } else + limit_correct = dx_node_limit(path); + count = dx_get_count(entries); + limit = dx_get_limit(entries); -+ if (count > limit) { -+ BREAKPOINT(); ++ if (count > limit) + return -EIO; -+ } -+ if (limit != limit_correct) { -+ BREAKPOINT(); ++ if (limit != limit_correct) + return -EIO; -+ } + return 0; +} + diff --git a/lustre/kernel_patches/patches/ext3-pdirops-2.6.9.patch b/lustre/kernel_patches/patches/ext3-pdirops-2.6.9.patch index 2540d52..9447a0b 100644 --- a/lustre/kernel_patches/patches/ext3-pdirops-2.6.9.patch +++ b/lustre/kernel_patches/patches/ext3-pdirops-2.6.9.patch @@ -47,19 +47,37 @@ Index: iam/fs/ext3/namei.c static inline void dx_set_limit(struct iam_entry *entries, unsigned value) { ((struct dx_countlimit *) entries)->limit = cpu_to_le16(value); -@@ -143,7 +144,10 @@ int dx_node_check(struct iam_path *p, st +@@ -138,23 +139,20 @@ int dx_node_check(struct iam_path *p, st + iam_get_ikey(p, e, iam_path_ikey(p, 1)); + if (i > 0 && + iam_ikeycmp(c, iam_path_ikey(p, 0), +- iam_path_ikey(p, 1)) > 0) { +- BREAKPOINT(); ++ iam_path_ikey(p, 1)) > 0) return 0; - } +- } blk = dx_get_block(p, e); - if (inode->i_size < (blk + 1) * inode->i_sb->s_blocksize) { +- BREAKPOINT(); + /* + * Disable this check as it is racy. + */ -+ if (0 && inode->i_size < (blk + 1) * inode->i_sb->s_blocksize) { - BREAKPOINT(); ++ if (0 && inode->i_size < (blk + 1) * inode->i_sb->s_blocksize) return 0; +- } + /* + * By definition of a tree, no node points to the root. + */ +- if (blk == root) { +- BREAKPOINT(); ++ if (blk == root) + return 0; } -@@ -241,12 +245,241 @@ struct stats dx_show_entries(struct dx_h +- } + return 1; + } + +@@ -241,12 +239,241 @@ struct stats dx_show_entries(struct dx_h } #endif /* DX_DEBUG */ @@ -303,7 +321,7 @@ Index: iam/fs/ext3/namei.c struct iam_descr *param; struct iam_frame *frame; -@@ -255,20 +488,19 @@ int dx_lookup(struct iam_path *path) +@@ -255,20 +482,19 @@ int dx_lookup(struct iam_path *path) param = iam_path_descr(path); c = path->ip_container; @@ -334,7 +352,7 @@ Index: iam/fs/ext3/namei.c if (err != 0) break; -@@ -283,53 +515,82 @@ int dx_lookup(struct iam_path *path) +@@ -283,53 +509,82 @@ int dx_lookup(struct iam_path *path) break; assert_inv(dx_node_check(path, frame)); @@ -362,7 +380,7 @@ Index: iam/fs/ext3/namei.c + if (i > 0) { + err = dx_check_path(path, frame - 1); + if (err != 0) -+ break; ++ break; } - frame->at = iam_entry_shift(path, p, -1); @@ -455,7 +473,7 @@ Index: iam/fs/ext3/namei.c /* * Probe for a directory leaf block to search. * -@@ -339,7 +600,7 @@ int dx_lookup(struct iam_path *path) +@@ -339,7 +594,7 @@ int dx_lookup(struct iam_path *path) * check for this error code, and make sure it never gets reflected * back to userspace. */ @@ -464,7 +482,7 @@ Index: iam/fs/ext3/namei.c struct dx_hash_info *hinfo, struct iam_path *path) { int err; -@@ -347,7 +608,7 @@ static int dx_probe(struct dentry *dentr +@@ -347,7 +602,7 @@ static int dx_probe(struct dentry *dentr assert_corr(path->ip_data != NULL); ipc = container_of(path->ip_data, struct iam_path_compat, ipc_descr); @@ -473,7 +491,7 @@ Index: iam/fs/ext3/namei.c ipc->ipc_hinfo = hinfo; assert_corr(dx_index_is_compat(path)); -@@ -356,6 +617,7 @@ static int dx_probe(struct dentry *dentr +@@ -356,6 +611,7 @@ static int dx_probe(struct dentry *dentr return err; } @@ -481,7 +499,7 @@ Index: iam/fs/ext3/namei.c /* * This function increments the frame pointer to search the next leaf * block, and reads in the necessary intervening nodes if the search -@@ -391,10 +653,16 @@ static int ext3_htree_advance(struct ino +@@ -391,10 +647,16 @@ static int ext3_htree_advance(struct ino * nodes need to be read. */ while (1) { @@ -499,7 +517,7 @@ Index: iam/fs/ext3/namei.c if (p == path->ip_frames) return 0; num_frames++; -@@ -409,7 +677,7 @@ static int ext3_htree_advance(struct ino +@@ -409,7 +671,7 @@ static int ext3_htree_advance(struct ino * If the hash is 1, then continue only if the next page has a * continuation hash of any value. This is used for readdir * handling. Otherwise, check to see if the hash matches the @@ -508,7 +526,7 @@ Index: iam/fs/ext3/namei.c * there's no point to read in the successive index pages. */ iam_get_ikey(path, p->at, (struct iam_ikey *)&bhash); -@@ -425,25 +693,125 @@ static int ext3_htree_advance(struct ino +@@ -425,25 +687,125 @@ static int ext3_htree_advance(struct ino * block so no check is necessary */ while (num_frames--) { @@ -639,7 +657,7 @@ Index: iam/fs/ext3/namei.c } int ext3_htree_next_block(struct inode *dir, __u32 hash, -@@ -649,14 +1017,25 @@ void iam_insert_key(struct iam_path *pat +@@ -649,14 +1011,25 @@ void iam_insert_key(struct iam_path *pat struct iam_entry *new = iam_entry_shift(path, frame->at, +1); int count = dx_get_count(entries); @@ -665,7 +683,7 @@ Index: iam/fs/ext3/namei.c } void dx_insert_block(struct iam_path *path, struct iam_frame *frame, -@@ -882,7 +1261,7 @@ static struct buffer_head * ext3_dx_find +@@ -882,7 +1255,7 @@ static struct buffer_head * ext3_dx_find sb = dir->i_sb; /* NFS may look up ".." - look at dx_root directory block */ if (namelen > 2 || name[0] != '.'||(name[1] != '.' && name[1] != '\0')){ @@ -674,7 +692,7 @@ Index: iam/fs/ext3/namei.c if (*err != 0) return NULL; } else { -@@ -1114,7 +1493,7 @@ struct ext3_dir_entry_2 *move_entries(st +@@ -1114,7 +1487,7 @@ struct ext3_dir_entry_2 *move_entries(st hash2 = map[split].hash; continued = hash2 == map[split - 1].hash; dxtrace(printk("Split block %i at %x, %i/%i\n", @@ -683,7 +701,7 @@ Index: iam/fs/ext3/namei.c /* Fancy dance to stay within two buffers */ de2 = dx_move_dirents(data1, data2, map + split, count - split); -@@ -1484,16 +1863,38 @@ static int shift_entries(struct iam_path +@@ -1484,16 +1857,38 @@ static int shift_entries(struct iam_path (char *) iam_entry_shift(path, entries, count1), count2 * iam_entry_size(path)); @@ -725,7 +743,7 @@ Index: iam/fs/ext3/namei.c { struct iam_entry *entries; /* old block contents */ -@@ -1501,6 +1902,8 @@ int split_index_node(handle_t *handle, s +@@ -1501,6 +1896,8 @@ int split_index_node(handle_t *handle, s struct iam_frame *frame, *safe; struct buffer_head *bh_new[DX_MAX_TREE_HEIGHT] = {0}; u32 newblock[DX_MAX_TREE_HEIGHT] = {0}; @@ -734,7 +752,7 @@ Index: iam/fs/ext3/namei.c struct inode *dir = iam_path_obj(path); struct iam_descr *descr; int nr_splet; -@@ -1523,12 +1926,14 @@ int split_index_node(handle_t *handle, s +@@ -1523,12 +1920,14 @@ int split_index_node(handle_t *handle, s * - first allocate all necessary blocks * * - insert pointers into them atomically. @@ -753,7 +771,7 @@ Index: iam/fs/ext3/namei.c dxtrace(printk("using %u of %u node entries\n", dx_get_count(entries), dx_get_limit(entries))); -@@ -1536,6 +1941,7 @@ int split_index_node(handle_t *handle, s +@@ -1536,6 +1935,7 @@ int split_index_node(handle_t *handle, s for (nr_splet = 0; frame >= path->ip_frames && dx_get_count(frame->entries) == dx_get_limit(frame->entries); --frame, ++nr_splet) { @@ -761,7 +779,7 @@ Index: iam/fs/ext3/namei.c if (nr_splet == DX_MAX_TREE_HEIGHT) { ext3_warning(dir->i_sb, __FUNCTION__, "Directory index full!\n"); -@@ -1545,14 +1951,53 @@ int split_index_node(handle_t *handle, s +@@ -1545,14 +1945,53 @@ int split_index_node(handle_t *handle, s } safe = frame; @@ -816,7 +834,7 @@ Index: iam/fs/ext3/namei.c BUFFER_TRACE(frame->bh, "get_write_access"); err = ext3_journal_get_write_access(handle, frame->bh); if (err) -@@ -1560,6 +2005,7 @@ int split_index_node(handle_t *handle, s +@@ -1560,6 +1999,7 @@ int split_index_node(handle_t *handle, s } /* Add "safe" node to transaction too */ if (safe + 1 != path->ip_frames) { @@ -824,7 +842,7 @@ Index: iam/fs/ext3/namei.c err = ext3_journal_get_write_access(handle, safe->bh); if (err) goto journal_error; -@@ -1596,16 +2042,21 @@ int split_index_node(handle_t *handle, s +@@ -1596,16 +2036,21 @@ int split_index_node(handle_t *handle, s assert_corr(i == 0); @@ -846,7 +864,7 @@ Index: iam/fs/ext3/namei.c /* Shift frames in the path */ memmove(frames + 2, frames + 1, (sizeof path->ip_frames) - 2 * sizeof frames[0]); -@@ -1621,10 +2072,12 @@ int split_index_node(handle_t *handle, s +@@ -1621,10 +2066,12 @@ int split_index_node(handle_t *handle, s err = ext3_journal_get_write_access(handle, bh2); if (err) goto journal_error; @@ -859,7 +877,7 @@ Index: iam/fs/ext3/namei.c count = shift_entries(path, frame, count, entries, entries2, newblock[i]); /* Which index block gets the new entry? */ -@@ -1634,7 +2087,11 @@ int split_index_node(handle_t *handle, s +@@ -1634,7 +2081,11 @@ int split_index_node(handle_t *handle, s frame->at = iam_entry_shift(path, entries2, idx - count + d); frame->entries = entries = entries2; @@ -871,7 +889,7 @@ Index: iam/fs/ext3/namei.c bh_new[i] = bh2; parent->at = iam_entry_shift(path, parent->at, +1); -@@ -1647,20 +2104,25 @@ int split_index_node(handle_t *handle, s +@@ -1647,20 +2098,25 @@ int split_index_node(handle_t *handle, s err = ext3_journal_dirty_metadata(handle, bh2); if (err) goto journal_error; @@ -898,7 +916,7 @@ Index: iam/fs/ext3/namei.c if (nr_splet > 0) { /* * Log ->i_size modification. -@@ -1674,6 +2136,12 @@ journal_error: +@@ -1674,6 +2130,12 @@ journal_error: ext3_std_error(dir->i_sb, err); cleanup: @@ -911,7 +929,7 @@ Index: iam/fs/ext3/namei.c for (i = 0; i < ARRAY_SIZE(bh_new); ++i) { if (bh_new[i] != NULL) brelse(bh_new[i]); -@@ -1695,18 +2163,18 @@ static int ext3_dx_add_entry(handle_t *h +@@ -1695,18 +2157,18 @@ static int ext3_dx_add_entry(handle_t *h struct buffer_head * bh = NULL; struct inode *dir = dentry->d_parent->d_inode; struct ext3_dir_entry_2 *de; @@ -932,7 +950,7 @@ Index: iam/fs/ext3/namei.c isize = dir->i_size; err = param->id_ops->id_node_read(path->ip_container, -@@ -1726,7 +2194,7 @@ static int ext3_dx_add_entry(handle_t *h +@@ -1726,7 +2188,7 @@ static int ext3_dx_add_entry(handle_t *h goto cleanup; } @@ -941,7 +959,7 @@ Index: iam/fs/ext3/namei.c if (err) goto cleanup; -@@ -1742,6 +2210,7 @@ static int ext3_dx_add_entry(handle_t *h +@@ -1742,6 +2204,7 @@ static int ext3_dx_add_entry(handle_t *h journal_error: ext3_std_error(dir->i_sb, err); cleanup: -- 1.8.3.1