From 2621384c29039ada4011278c7ff37399e0834f69 Mon Sep 17 00:00:00 2001
From: johann <johann>
Date: Fri, 14 Sep 2007 12:57:01 +0000
Subject: [PATCH] Branch b1_6 b=13181 i=alex i=nikita

Don't take the BKL in fsfilt_ext3_setattr() for 2.6 kernels.
It causes scheduling issues when removing large files.
---
 lustre/ChangeLog          | 8 ++++++++
 lustre/lvfs/fsfilt_ext3.c | 4 ++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/lustre/ChangeLog b/lustre/ChangeLog
index b684804e68..04f281c5e6 100644
--- a/lustre/ChangeLog
+++ b/lustre/ChangeLog
@@ -49,6 +49,14 @@ Bugzilla   : 13596
 Description: MDS hang after unclean shutdown of lots of clients
 Details    : Never resend AST requests.
 
+Severity   : normal
+Frequency  : when removing large files
+Bugzilla   : 13181
+Description: scheduling issue during removal of large Lustre files
+Details    : Don't take the BKL in fsfilt_ext3_setattr() for 2.6 kernels.
+	     It causes scheduling issues when removing large files (17TB in the
+	     present case).
+
 --------------------------------------------------------------------------------
 
 2007-09-27         Cluster File Systems, Inc. <info@clusterfs.com>
diff --git a/lustre/lvfs/fsfilt_ext3.c b/lustre/lvfs/fsfilt_ext3.c
index 1e2908bc15..6737ed4aaa 100644
--- a/lustre/lvfs/fsfilt_ext3.c
+++ b/lustre/lvfs/fsfilt_ext3.c
@@ -521,7 +521,7 @@ static int fsfilt_ext3_setattr(struct dentry *dentry, void *handle,
         struct inode *inode = dentry->d_inode;
         int rc = 0;
 
-        lock_kernel();
+        lock_24kernel();
 
         /* Avoid marking the inode dirty on the superblock list unnecessarily.
          * We are already writing the inode to disk as part of this
@@ -573,7 +573,7 @@ static int fsfilt_ext3_setattr(struct dentry *dentry, void *handle,
         }
 
  out:
-        unlock_kernel();
+        unlock_24kernel();
         RETURN(rc);
 }
 
-- 
GitLab