From 6c00084a63ddd0d7dda6351a4196c45ecc35cbeb Mon Sep 17 00:00:00 2001 From: adilger Date: Mon, 6 Feb 2006 20:44:51 +0000 Subject: [PATCH] Branch b_release_1_4_6 When unlinking block-mapped files with the delete thread on a filesystem with extents enabled it will trip an assertion. This is not a configuration that CFS supports, since extents+mballoc are only used on 2.6 kernels with CFS Lustre, and there is no 2.6 asyncdel patch. HP SFS can run with extents and mballoc enabled on 2.4 kernels. b=10134 r=fergal (original patch) --- .../kernel_patches/patches/ext3-extents-asyncdel-2.4.21-chaos.patch | 4 +++- lustre/kernel_patches/patches/ext3-extents-asyncdel-2.4.24.patch | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lustre/kernel_patches/patches/ext3-extents-asyncdel-2.4.21-chaos.patch b/lustre/kernel_patches/patches/ext3-extents-asyncdel-2.4.21-chaos.patch index e5a5616..cd37db4 100644 --- a/lustre/kernel_patches/patches/ext3-extents-asyncdel-2.4.21-chaos.patch +++ b/lustre/kernel_patches/patches/ext3-extents-asyncdel-2.4.21-chaos.patch @@ -2,13 +2,15 @@ Index: 57chaos/fs/ext3/inode.c =================================================================== --- 57chaos.orig/fs/ext3/inode.c 2004-06-21 14:15:31.000000000 -0700 +++ 57chaos/fs/ext3/inode.c 2004-06-21 14:19:27.000000000 -0700 -@@ -2270,6 +2270,10 @@ void ext3_truncate_thread(struct inode * +@@ -2270,6 +2270,12 @@ void ext3_truncate_thread(struct inode * memcpy(nei->i_data, oei->i_data, sizeof(nei->i_data)); memset(oei->i_data, 0, sizeof(oei->i_data)); + if (EXT3_I(old_inode)->i_flags & EXT3_EXTENTS_FL) { + EXT3_I(new_inode)->i_flags |= EXT3_EXTENTS_FL; + ext3_extents_initialize_blockmap(handle, old_inode); ++ } else { ++ EXT3_I(new_inode)->i_flags &= ~EXT3_EXTENTS_FL; + } nei->i_disksize = oei->i_disksize; diff --git a/lustre/kernel_patches/patches/ext3-extents-asyncdel-2.4.24.patch b/lustre/kernel_patches/patches/ext3-extents-asyncdel-2.4.24.patch index 43681a6..bc752e5 100644 --- a/lustre/kernel_patches/patches/ext3-extents-asyncdel-2.4.24.patch +++ b/lustre/kernel_patches/patches/ext3-extents-asyncdel-2.4.24.patch @@ -16,13 +16,15 @@ Index: linux-2.4.24/fs/ext3/inode.c if (S_ISREG(inode->i_mode)) { inode->i_op = &ext3_file_inode_operations; inode->i_fop = &ext3_file_operations; -@@ -2659,6 +2665,10 @@ +@@ -2659,6 +2665,12 @@ memcpy(nei->i_data, oei->i_data, sizeof(nei->i_data)); memset(oei->i_data, 0, sizeof(oei->i_data)); + if (EXT3_I(old_inode)->i_flags & EXT3_EXTENTS_FL) { + EXT3_I(new_inode)->i_flags |= EXT3_EXTENTS_FL; + ext3_extents_initialize_blockmap(handle, old_inode); ++ } else { ++ EXT3_I(new_inode)->i_flags &= ~EXT3_EXTENTS_FL; + } nei->i_disksize = oei->i_disksize; -- 1.8.3.1