From 3611d24c09fae277e4bdfc0280c1b19d8ea8d83f Mon Sep 17 00:00:00 2001 From: adilger Date: Wed, 26 May 2004 15:58:30 +0000 Subject: [PATCH] Add ext3-htree-rename_fix.patch (originally added on b1_2_smallfix, but "land1.sh" didn't merge it for some reason). b=3417 --- .../patches/ext3-htree-rename_fix.patch | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 lustre/kernel_patches/patches/ext3-htree-rename_fix.patch diff --git a/lustre/kernel_patches/patches/ext3-htree-rename_fix.patch b/lustre/kernel_patches/patches/ext3-htree-rename_fix.patch new file mode 100644 index 0000000..75bf288 --- /dev/null +++ b/lustre/kernel_patches/patches/ext3-htree-rename_fix.patch @@ -0,0 +1,24 @@ +===== fs/ext3/namei.c 1.52 vs edited ===== +--- 1.52/fs/ext3/namei.c Mon May 10 05:25:34 2004 ++++ edited/fs/ext3/namei.c Thu May 20 19:57:10 2004 +@@ -2264,11 +2264,15 @@ + /* + * ok, that's it + */ +- retval = ext3_delete_entry(handle, old_dir, old_de, old_bh); +- if (retval == -ENOENT) { +- /* +- * old_de could have moved out from under us. +- */ ++ if (le32_to_cpu(old_de->inode) != old_inode->i_ino || ++ old_de->name_len != old_dentry->d_name.len || ++ strncmp(old_de->name, old_dentry->d_name.name, old_de->name_len) || ++ (retval = ext3_delete_entry(handle, old_dir, ++ old_de, old_bh)) == -ENOENT) { ++ /* old_de could have moved from under us during htree split, so ++ * make sure that we are deleting the right entry. We might ++ * also be pointing to a stale entry in the unused part of ++ * old_bh so just checking inum and the name isn't enough. */ + struct buffer_head *old_bh2; + struct ext3_dir_entry_2 *old_de2; + -- 1.8.3.1